diff --git a/ARCs/arc-0058.md b/ARCs/arc-0058.md
new file mode 100644
index 000000000..04a7dd17d
--- /dev/null
+++ b/ARCs/arc-0058.md
@@ -0,0 +1,735 @@
+---
+arc: 58
+title: Plugin-Based Account Abstraction
+description: Account abstraction using stateful applications
+author: Joe Polny (@joe-p), Kyle Breeding aka krby.algo (@kylebeee)
+discussions-to: https://github.com/algorandfoundation/ARCs/issues/269
+status: Draft
+type: Standards Track
+category: ARC
+created: 2024-01-08
+requires: 4
+---
+
+## Abstract
+
+This ARC proposes a standard for using stateful applications and rekey transactions to enable account abstraction on Algorand. The abstracted account is controlled by a single stateful application which serves as the auth address of the abstracted account. Other applications can be used as plugins to provide additional functionality to the abstracted account with fine-grained control over their permissions. This dovetails nicely with the advent of agentic AI, allowing users to bring autonomous agent functionality into their wallet with extreme sandboxing.
+
+## Motivation
+
+Manually signing transactions for every dApp interaction can be rather fatiguing for end-users, resulting in a frustrating UX. In some cases, it makes specific app designs that require many transactions borderline impossible.
+
+Another common point of friction for end-users in the Algorand ecosystem is ASA opt-in transactions. This is a particularly high point of friction for onboarding new accounts since they must be funded and then initiate a transaction. This standard can be used to allow mass creation of non-custodial accounts and trigger opt-ins on their behalf.
+
+## Specification
+
+### Definitions
+
+**External Owned Account (EOA)** - An account that is _not_ controlled by a smart contract.
+
+**Abstracted Account** - An account that has functionality beyond a typical keypair-based account.
+
+**Abstracted Account App** - The stateful application used to control the abstracted account. This app's address is the `auth-addr` of the abstracted account.
+
+**Plugin** - An additional application that adds functionality to the **Abstracted Account App** (and thus the **Abstracted Account**).
+
+**Admin** - An account, separate from the **Abstracted Account**, that controls the **Abstracted Account App**. In particular, this account can initiate rekeys, manage plugins, and transfer admin privileges.
+
+**Escrow** - An account the abstracted account creates and utilizes to silo assets for a given plugin.
+
+**Allowance** - A set of permissions related to a given escrow that permits associated plugins to request funds for use.
+
+**Delegation Type** - Determines who is credited with user interaction when a plugin is used. This affects the `lastUserInteraction` timestamp which can be used for account activity tracking.
+
+**Escrow Factory** - A global singleton contract responsible for creating escrow accounts and providing a registry of which abstracted account created each escrow.
+
+### Temporary State Management
+
+During plugin execution, the abstracted account app **MUST** temporarily store:
+
+- `spendingAddress`: A global state key indicating the account being rekeyed to the plugin being used.
+
+This state **MUST** be cleared before the transaction group completes via `arc58_verifyAuthAddr`.
+
+### [ARC-4](./arc-0004.md) Methods
+
+An Abstracted Account App that adheres to this standard **MUST** implement the following methods:
+
+```json
+{
+ "methods": [
+ {
+ "name": "arc58_changeAdmin",
+ "desc": "Attempt to change the admin for this app. Some implementations MAY not support this.",
+ "args": [
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_pluginChangeAdmin",
+ "desc": "Attempt to change the admin via plugin.",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "The app calling the plugin"
+ },
+ {
+ "type": "address",
+ "name": "allowedCaller",
+ "desc": "The address that triggered the plugin"
+ },
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_getAdmin",
+ "desc": "Get the admin of this app. This method SHOULD always be used rather than reading directly from state because different implementations may have different ways of determining the admin.",
+ "args": [],
+ "returns": {
+ "type": "address"
+ },
+ "readonly": true
+ },
+ {
+ "name": "arc58_verifyAuthAddr",
+ "desc": "Verify the abstracted account is rekeyed to this app",
+ "args": [],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_rekeyTo",
+ "desc": "Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.",
+ "args": [
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "The address to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "flash",
+ "desc": "Whether or not this should be a flash rekey. If true, the rekey back to the app address must be done in the same txn group as this call"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_canCall",
+ "desc": "Check whether the plugin can be used",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "The plugin to be rekeyed to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether this is callable globally"
+ },
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "The address that will trigger the plugin"
+ },
+ {
+ "type": "byte[4]",
+ "name": "method",
+ "desc": "The method being called on the plugin, if applicable"
+ }
+ ],
+ "returns": {
+ "type": "bool",
+ "desc": "Whether the plugin can be called with these parameters"
+ },
+ "readonly": true
+ },
+ {
+ "name": "arc58_rekeyToPlugin",
+ "desc": "Temporarily rekey to an approved plugin app address",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "The app to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group. If the plugin has method restrictions, these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_rekeyToNamedPlugin",
+ "desc": "Temporarily rekey to a named plugin app address",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The name of the plugin to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group. If the plugin has method restrictions, these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_addPlugin",
+ "desc": "Add an app to the list of approved plugins",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "app",
+ "desc": "The app to add"
+ },
+ {
+ "type": "address",
+ "name": "allowedCaller",
+ "desc": "The address that's allowed to call the app, or the global zero address for any address"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "The ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used. If the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_removePlugin",
+ "desc": "Remove an app from the list of approved plugins",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "app",
+ "desc": "The app to remove"
+ },
+ {
+ "type": "address",
+ "name": "allowedCaller",
+ "desc": "The address that's allowed to call the app"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_addNamedPlugin",
+ "desc": "Add a named plugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ },
+ {
+ "type": "uint64",
+ "name": "app",
+ "desc": "The app to add"
+ },
+ {
+ "type": "address",
+ "name": "allowedCaller",
+ "desc": "The address that's allowed to call the app, or the global zero address for any address"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "The ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used. If the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_removeNamedPlugin",
+ "desc": "Remove a named plugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_newEscrow",
+ "desc": "Create a new escrow for the controlled address",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The name of the escrow to create"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_reclaim",
+ "desc": "Transfer funds from an escrow back to the controlled address",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to reclaim funds from"
+ },
+ {
+ "type": "(uint64,uint64,bool)[]",
+ "name": "reclaims",
+ "desc": "The list of reclaims to make from the escrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_optinEscrow",
+ "desc": "Opt-in an escrow account to assets",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to opt-in to"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_pluginOptinEscrow",
+ "desc": "Opt-in an escrow account to assets via a plugin / allowed caller",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "app",
+ "desc": "The app related to the escrow optin"
+ },
+ {
+ "type": "address",
+ "name": "allowedCaller",
+ "desc": "The address allowed to call the plugin related to the escrow optin"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ },
+ {
+ "type": "pay",
+ "name": "mbrPayment",
+ "desc": "The payment txn that is used to pay for the asset opt-in"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_addAllowances",
+ "desc": "Add an allowance for an escrow account",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to add the allowance for"
+ },
+ {
+ "type": "(uint64,uint8,uint64,uint64,uint64,bool)[]",
+ "name": "allowances",
+ "desc": "The list of allowances to add"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_removeAllowances",
+ "desc": "Remove allowances for an escrow account",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to remove the allowance for"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to remove the allowance for"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ }
+ }
+ ]
+}
+```
+
+### Plugins
+
+Plugins are applications that the Abstracted Account App **MUST** rekey to when `rekeyToPlugin` or `rekeyToNamedPlugin` is called. After a plugin has been rekeyed to, the abstracted account **MUST** be rekeyed back to the abstracted account application. When and how this rekey is done does not matter, but it **MUST** be verified by a call to `verifyAuthAddr` as the last transaction in the group OR the last transaction in the group must be an explicit rekey transaction.
+
+### Plugin Validation Process
+
+When `rekeyToPlugin` is called, the implementation **MUST** validate the entire transaction group to ensure:
+
+1. **Plugin Existence**: The plugin exists and is properly configured
+2. **Expiration Check**: The plugin has not expired based on `lastValid` timestamp/round
+3. **Cooldown Enforcement**: Sufficient time has passed since the plugin was last used
+4. **Method Validation**: If method restrictions exist, each plugin call must use an allowed method
+5. **Rekey Verification**: The group must contain a rekey back to the abstracted account
+6. **Application Isolation**: During rekey, only calls to the specified plugin application are allowed
+
+### Plugin Permissions
+
+When adding a plugin, the admin can specify an address that is allowed to call `rekeyToPlugin` for that specific plugin. Using the zero address will allow anyone to use the plugin. If `global LatestTimeStamp` (or `global Round` if the `useRounds` argument was set to `true` at plugin install time) has passed the specified end time (or round), the `rekeyToPlugin` call **MUST** fail. If the permitted address is not the zero address and does not match the caller specified at install time, the `rekeyToPlugin` call **MUST** fail.
+
+In addition to expiration times, plugins can have several other security restrictions that give the user further control and security:
+
+- **Cooldowns** - Prevent plugins from being used more frequently than the user intended
+- **Method restrictions** - Check the ARC-0004 method selector argument to restrict which methods on a compliant plugin can be utilized, also supporting cooldowns for subsets of a plugin's functionality
+- **Escrow system** - Used in conjunction with these permissions to sandbox asset allocations by plugins
+
+### Delegation Types
+
+Plugins can be configured with different delegation types that determine user interaction tracking:
+
+- **Self Delegation (Type 0)**: When used, the plugin caller is credited with user interaction, updating `lastUserInteraction`
+- **Other Types**: Implementation-specific delegation types may exist for different interaction attribution models
+
+The delegation type **MUST NOT** be set to "self" (0) when the allowed caller is the zero address (global), as this would create ambiguity about who should be credited with the interaction.
+
+### Escrows & Allowances
+
+Along with the Abstracted Account contract there is an escrow factory contract. This contract is meant to be a global singleton and has two responsibilities:
+
+- Mint escrow contracts for abstracted accounts to use
+- Provide a single source of truth for correlating escrows with the Abstracted Account that created them
+
+The child escrow contracts themselves are rekeyed to the Abstracted Account at creation time and their only other functionality is being deleted.
+
+The escrow accounts act as silos for funding plugin activity. They are named and referenceable when a plugin is added to the Abstracted Account. Doing so will restrict all ASA activities to happen through the escrow instead of the Abstracted Account's main `controlled_address`. Allowances allow escrows to be given funds under certain restrictions.
+
+#### Escrow Factory Integration
+
+When a plugin is added with an escrow name:
+
+1. If an escrow with that name already exists, it is reused
+2. If no escrow exists, the abstracted account calls the escrow factory's `new(pay)uint64` method
+3. The factory creates a new escrow application and returns its ID
+4. The escrow is immediately rekeyed to the abstracted account for control
+5. The escrow name and application ID are stored for future reference
+
+#### Allowance Structure
+
+An allowance has the following structure:
+
+```typescript
+export type AllowanceInfo = {
+ /** The type of allowance to use (0=Flat, 1=Window, 2=Drip) */
+ type: SpendAllowanceType
+ /** The maximum size of the bucket if using drip */
+ max: uint64
+ /** The amount of the asset the plugin is allowed to access or per window */
+ allowed: uint64
+ /** The amount spent during the current or last interacted window */
+ spent: uint64
+ /** The rate the allowance should be expanded */
+ interval: uint64
+ /** The amount leftover when the bucket was last accessed */
+ last: uint64
+ /** The timestamp or round the allowance was added */
+ start: uint64
+ /** Whether to use round number or unix timestamp when evaluating this allowance */
+ useRounds: boolean
+}
+```
+
+#### Allowance Types
+
+There are three allowance strategies, each with different behaviors:
+
+**Flat (Type 0)**
+- One-time allowance that depletes as used
+- Example: "This escrow can spend 10 ALGO total, after that the allowance must be replaced"
+- `allowed` = total spendable amount
+- `spent` = amount already used
+- Available = `allowed - spent`
+
+**Window (Type 1)**
+- Periodic allowance that resets at regular intervals
+- Example: "This escrow can spend 10 ALGO per month"
+- `allowed` = amount per window
+- `interval` = duration of each window
+- `start` = when the first window began
+- Resets to full allowance at the start of each new window
+- Does not accumulate across windows
+
+**Drip (Type 2)**
+- Continuous allowance that refills at a steady rate up to a maximum
+- Example: "This escrow can hold up to 10 ALGO, replenishing at 1 ALGO per day"
+- `allowed` = refill rate per interval
+- `interval` = time between refills
+- `max` = maximum bucket size
+- `spent` = current amount in bucket (leftover from previous access)
+- Accumulates over time up to the maximum
+
+#### Allowance Validation
+
+When a plugin requests funds through `fundsRequest`, the implementation:
+
+1. Calculates available funds based on allowance type and current time
+2. Verifies the request amount does not exceed available funds
+3. Updates the allowance state (spent amount, last access time)
+4. Transfers the requested funds from controlled address to spending address
+
+Each allowance is stored in a box map with the key being a composite key of the escrow application ID and the asset the allowance pertains to.
+
+When `arc58_addPlugin` or `arc58_addNamedPlugin` are called with an escrow name provided, the Abstracted Account should call the `new(pay)uint64` method on the escrow factory contract if an escrow with the given name does not already exist and store the name and application ID for later use.
+
+#### Named Plugins
+
+The admin can optionally add a named plugin to their abstracted account application. Any name that matches the regex `/^ARC\d+$/` **MUST** implement the interface(s) described in the respective ARC. The ARC number **MUST NOT** have any leading zeros.
+
+### Wallet and Application Support
+
+#### Adding Plugins
+
+An application may ask a user to add a plugin to their Abstracted Account App. The wallet **MUST** show the user the requested permitted caller, end time, and plugin app ID. Wallets **MAY** have a database of known plugins to describe the plugin in a more human-friendly way, but the exact details of this implementation are outside the scope of this ARC.
+
+#### Viewing Plugins
+
+For a given Abstracted Account, a wallet **SHOULD** allow the user to view all of the plugins added to their Abstracted Account App. Wallets also **SHOULD** provide the user a way to manually add and remove plugins from their Abstracted Account App.
+
+#### Supporting EOA Rekeys
+
+If a user connects to an app with an Abstracted Account, the app **SHOULD** allow the user to easily sign transactions with an externally owned account. It is easy for the admin to manually call `rekeyTo` prior to interacting with an app, but this does not guarantee the user will rekey back to the Abstracted Account (thus breaking plugin functionality). As such, to improve user experience, applications **SHOULD** be able to send transaction groups that start with a `rekeyTo` call that rekeys to the admin account with `flash` set to true. Because `flash` is set to true, the last transaction in the group **MUST** be a rekey from the admin address to the Abstracted Account address.
+
+This requires wallets to be able to tell apps that the connected account is an Abstracted Account.
+
+## Rationale
+
+### App vs Logic Sig
+
+There have been similar proposals for reducing end-user friction, such as [ARC-47](./arc-0047.md) which enables safer usage of delegated logic signatures. The major downside of logic signatures is that they are not usable by smart contracts. This severely limits composability and potential use cases.
+
+### Plugins
+
+Rather than constantly updating the approval program of the abstracted account application to add functionality, it is safer and easier to simply add additional apps that enable the desired functionality. This also gives the end-user more control over what various dApps can do with their account at any time.
+
+### Plugin Permissions
+
+A common use case for plugins will be end-users allowing specific apps to perform actions on their account. As such, implementing this in the Abstracted Account App allows for wallets and other ecosystem tools to easily display permissions to end users. The end time is also useful to ensure a user only enables a plugin for the time that it would be useful for them. The concept of plugins is similar to approvals on EVM chains and there have been cases where old approvals became an attack vector.
+
+### Escrow System Design
+
+The escrow system provides several benefits:
+
+1. **Asset Isolation**: Plugins can only access pre-allocated funds, limiting potential damage
+2. **Granular Control**: Different assets can have different allowance rules
+3. **Flexible Allowances**: Three allowance types cover most use cases from one-time spends to ongoing subscriptions
+
+## Backwards Compatibility
+
+Existing Algorand accounts can transition to an abstracted account by creating a new abstracted account application and setting the address to their current address. This requires them to create a new account to act as the admin.
+
+End-users can use an abstracted account with any dApp provided they rekey the account to an externally owned account.
+
+## Reference Implementation & Test Cases
+
+Reference implementation and tests are available [here](https://github.com/algorandfoundation/ARCs/assets/arc-0058)
+
+### Potential Use Cases
+
+These are potential use cases of this ARC. These are NOT part of the ARC itself and should likely be further developed and discussed in a separate ARC. They solely exist to demonstrate what the usage of this ARC will look like.
+
+#### 0-ALGO Opt-In Onboarding
+
+Using the above reference implementation, 0-ALGO onboarding can be done via the following sequence. It should be noted that a different implementation focused specifically on this use case could be even more efficient.
+
+```mermaid
+sequenceDiagram
+ participant Wallet
+ participant Dapp
+ participant Abstracted App
+ participant OptIn Plugin
+ Wallet->>Wallet: Create keypair
+ note over Wallet: The user should not see
nor care about the address
+ Wallet->>Dapp: Send public key
+ Dapp->>Abstracted App: createApplication({ admin: Dapp })
+ Dapp->>Abstracted App: Add opt-in plugin
+ Dapp->>Abstracted App: changeAdmin({ admin: Alice })
+ note over Dapp,Abstracted App: There could also be a specific implementation that does
the above three transactions upon create
+ Dapp->>Wallet: Abstracted App ID
+ note over Wallet: The user sees the
Abstracted App Address
+ par Opt-In Transaction Group
+ Dapp->>Abstracted App: arc58_rekeyToPlugin({ plugin: OptIn Plugin })
+ Dapp->>Abstracted App: Send ASA MBR
+ Dapp->>OptIn Plugin: optIn(asset)
+ Dapp->>Abstracted App: arc58_verifyAuthAddr
+ end
+```
+
+#### Transition Existing Address
+
+If a user wants to transition an existing keypair-based account to an abstracted account and use the existing secret key for admin actions, they need to perform the following steps using the above reference implementation.
+
+```mermaid
+sequenceDiagram
+ participant Wallet
+ participant Abstracted App
+ note over Wallet: Address: EXISTING_ADDRESS
Auth Addr: EXISTING_ADDRESS
+ Wallet->>Wallet: Create new keypair
+ note over Wallet: Address: NEW_ADDRESS
Auth Addr: NEW_ADDRESS
+ Wallet->>Wallet: Rekey NEW_ADDRESS to EXISTING_ADDRESS
+ note over Wallet: Address: NEW_ADDRESS
Auth Addr: EXISTING_ADDRESS
+ Wallet->>Abstracted App: createApplication({ admin: NEW_ADDRESS, controlledAddress: EXISTING_ADDRESS })
+ note over Abstracted App: Address: APP_ADDRESS
Admin: NEW_ADDRESS
Controlled Address: EXISTING_ADDRESS
+ Wallet->>Wallet: Rekey EXISTING_ADDRESS to APP_ADDRESS
+ note over Wallet: Address: EXISTING_ADDRESS
Auth Addr: APP_ADDRESS
+```
+
+#### Postmortem Authorization
+
+Using this ARC, you could create an abstracted account that changes who the admin is after a certain amount of time has passed without the original admin's interaction. The admin of the account will effectively be controlled by a time-based dead man's switch.
+
+## Security Considerations
+
+By adding a plugin to an abstracted account (without an escrow), that plugin can get complete control of the account. As such, extreme diligence must be taken by the end-user to ensure they are adding safe and/or trusted plugins. The security assumptions for plugins are very similar to delegated logic signatures, with the exception that plugins can always be revoked.
+
+The security assumptions of plugins are also similar to EVM approvals, which are a common source of exploits and scams. Implementations of plugins on Algorand should learn from the lessons of EVM approvals.
+
+### Additional Security Considerations
+
+**Method Restrictions**: When using method restrictions, plugin developers must ensure their applications properly adhere to the `ARC-0004` standard for method routing.
+
+**Temporary State**: The temporary `spendingAddress` state must be properly cleared to prevent state pollution between plugin executions.
+
+## Copyright
+
+Copyright and related rights waived via CC0.
diff --git a/assets/arc-0058/.algokit.toml b/assets/arc-0058/.algokit.toml
new file mode 100644
index 000000000..885e1fd84
--- /dev/null
+++ b/assets/arc-0058/.algokit.toml
@@ -0,0 +1,10 @@
+[algokit]
+min_version = "v1.12.1"
+
+[project]
+type = 'workspace'
+projects_root_path = 'projects'
+
+[generate.devcontainer]
+description = "Generate a default 'devcontainer.json' configuration that pre-installs algokit and launches Algorand sandbox as part of codespace container provisioning."
+path = ".algokit/generators/create-devcontainer"
diff --git a/assets/arc-0058/.algokit/generators/create-devcontainer/copier.yaml b/assets/arc-0058/.algokit/generators/create-devcontainer/copier.yaml
new file mode 100644
index 000000000..e98f33484
--- /dev/null
+++ b/assets/arc-0058/.algokit/generators/create-devcontainer/copier.yaml
@@ -0,0 +1,4 @@
+_tasks:
+ - "echo '==== Successfully generated new .devcontainer.json file 🚀 ===='"
+
+_templates_suffix: ".j2"
diff --git a/assets/arc-0058/.algokit/generators/create-devcontainer/devcontainer.json b/assets/arc-0058/.algokit/generators/create-devcontainer/devcontainer.json
new file mode 100644
index 000000000..6452c65ba
--- /dev/null
+++ b/assets/arc-0058/.algokit/generators/create-devcontainer/devcontainer.json
@@ -0,0 +1,19 @@
+{
+ "forwardPorts": [4001, 4002, 8980, 5173],
+ "portsAttributes": {
+ "4001": {
+ "label": "algod"
+ },
+ "4002": {
+ "label": "kmd"
+ },
+ "8980": {
+ "label": "indexer"
+ },
+ "5173": {
+ "label": "vite"
+ }
+ },
+ "postCreateCommand": "mkdir -p ~/.config/algokit && pipx install algokit && sudo chown -R codespace:codespace ~/.config/algokit",
+ "postStartCommand": "for i in {1..5}; do algokit localnet status > /dev/null 2>&1 && break || sleep 30; algokit localnet reset; done"
+}
diff --git a/assets/arc-0058/.editorconfig b/assets/arc-0058/.editorconfig
new file mode 100644
index 000000000..5e550a150
--- /dev/null
+++ b/assets/arc-0058/.editorconfig
@@ -0,0 +1,10 @@
+[*]
+charset = utf-8
+insert_final_newline = true
+end_of_line = lf
+indent_style = space
+indent_size = 2
+tab_width = 2
+max_line_length = 140
+trim_trailing_whitespace = true
+single_quote = true
diff --git a/assets/arc-0058/.gitattributes b/assets/arc-0058/.gitattributes
new file mode 100644
index 000000000..6313b56c5
--- /dev/null
+++ b/assets/arc-0058/.gitattributes
@@ -0,0 +1 @@
+* text=auto eol=lf
diff --git a/assets/arc-0058/.github/workflows/arc-0058-cd.yaml b/assets/arc-0058/.github/workflows/arc-0058-cd.yaml
new file mode 100644
index 000000000..ff269a01b
--- /dev/null
+++ b/assets/arc-0058/.github/workflows/arc-0058-cd.yaml
@@ -0,0 +1,45 @@
+name: Release arc-0058
+
+on:
+ workflow_call:
+
+jobs:
+ deploy-testnet:
+ runs-on: "ubuntu-latest"
+
+ environment: contract-testnet
+ steps:
+ - name: Checkout source code
+ uses: actions/checkout@v4
+
+ - name: Use Node.js 22.x
+ uses: actions/setup-node@v4
+ with:
+ node-version: '22.x'
+ cache: 'npm'
+ cache-dependency-path: '**/package-lock.json'
+
+ - name: Set up Python 3.12
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install algokit
+ run: pipx install algokit
+
+ - name: Bootstrap dependencies
+ run: algokit project bootstrap all --project-name 'arc-0058'
+
+ - name: Configure git
+ shell: bash
+ run: |
+ # set git user and email as test invoke git
+ git config --global user.email "actions@github.com" && git config --global user.name "github-actions"
+
+ - name: Deploy to testnet
+ run: algokit project deploy testnet --project-name 'arc-0058'
+ env:
+ # This is the account that becomes the creator of the contract
+ DEPLOYER_MNEMONIC: ${{ secrets.DEPLOYER_MNEMONIC }}
+ # The dispenser account is used to ensure the deployer account is funded
+ DISPENSER_MNEMONIC: ${{ secrets.DISPENSER_MNEMONIC }}
diff --git a/assets/arc-0058/.github/workflows/arc-0058-ci.yaml b/assets/arc-0058/.github/workflows/arc-0058-ci.yaml
new file mode 100644
index 000000000..f626e3ef3
--- /dev/null
+++ b/assets/arc-0058/.github/workflows/arc-0058-ci.yaml
@@ -0,0 +1,72 @@
+name: Validate arc-0058
+
+on:
+ workflow_call:
+
+jobs:
+ validate:
+ runs-on: "ubuntu-latest"
+ steps:
+ - name: Checkout source code
+ uses: actions/checkout@v4
+
+ - name: Use Node.js 22.x
+ uses: actions/setup-node@v4
+ with:
+ node-version: '22.x'
+ cache: 'npm'
+ cache-dependency-path: "**/package-lock.json"
+
+ - name: Set up Python 3.12
+ uses: actions/setup-python@v5
+ with:
+ python-version: "3.12"
+
+ - name: Install algokit
+ run: pipx install algokit
+
+ - name: Start LocalNet
+ run: algokit localnet start
+
+ - name: Bootstrap dependencies
+ run: algokit project bootstrap all --project-name 'arc-0058'
+
+ - name: Configure git
+ shell: bash
+ run: |
+ # set git user and email as test invoke git
+ git config --global user.email "actions@github.com" && git config --global user.name "github-actions"
+
+
+ - name: Audit dependencies
+ run: algokit project run audit --project-name 'arc-0058'
+
+
+
+ - name: Lint and format
+ run: algokit project run lint --project-name 'arc-0058'
+
+
+
+ - name: Run tests
+ shell: bash
+ run: |
+ set -o pipefail
+ algokit project run test --project-name 'arc-0058'
+
+
+ - name: Build smart contracts
+ run: algokit project run build --project-name 'arc-0058'
+
+ - name: Scan TEAL files for issues
+ run: algokit project run audit-teal --project-name 'arc-0058'
+
+ # # Uncomment to enable TEAL static analysis with snapshoting using Tealer package
+ # # Would first require running locally using audit-teal command and committing the snapshots into source control
+ # # Please note, tealer has a known bug that may result in large snapshot file sizes, track resolution here:
+ # # https://github.com/crytic/tealer/issues/101
+ # - name: Check output stability of the smart contracts
+ # run: algokit project run ci-teal-diff --project-name 'arc-0058'
+
+ - name: Run deployer against LocalNet
+ run: algokit project deploy localnet --project-name 'arc-0058'
diff --git a/assets/arc-0058/.gitignore b/assets/arc-0058/.gitignore
new file mode 100644
index 000000000..4105eb2fc
--- /dev/null
+++ b/assets/arc-0058/.gitignore
@@ -0,0 +1,170 @@
+# Byte-compiled / optimized / DLL files
+__pycache__/
+*.py[cod]
+*$py.class
+
+# C extensions
+*.so
+
+# Distribution / packaging
+.Python
+build/
+develop-eggs/
+dist/
+downloads/
+eggs/
+.eggs/
+lib/
+lib64/
+parts/
+sdist/
+var/
+wheels/
+share/python-wheels/
+*.egg-info/
+.installed.cfg
+*.egg
+MANIFEST
+
+# PyInstaller
+# Usually these files are written by a python script from a template
+# before PyInstaller builds the exe, so as to inject date/other infos into it.
+*.manifest
+*.spec
+
+# Installer logs
+pip-log.txt
+pip-delete-this-directory.txt
+
+# Unit test / coverage reports
+htmlcov/
+.tox/
+.nox/
+.coverage
+.coverage.*
+.cache
+nosetests.xml
+coverage.xml
+*.cover
+*.py,cover
+.hypothesis/
+.pytest_cache/
+cover/
+
+# Translations
+*.mo
+*.pot
+
+# Django stuff:
+*.log
+local_settings.py
+db.sqlite3
+db.sqlite3-journal
+
+# Flask stuff:
+instance/
+.webassets-cache
+
+# Scrapy stuff:
+.scrapy
+
+# Sphinx documentation
+docs/_build/
+
+# PyBuilder
+.pybuilder/
+target/
+
+# Jupyter Notebook
+.ipynb_checkpoints
+
+# IPython
+profile_default/
+ipython_config.py
+
+# pyenv
+# For a library or package, you might want to ignore these files since the code is
+# intended to run in multiple environments; otherwise, check them in:
+# .python-version
+
+# pipenv
+# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
+# However, in case of collaboration, if having platform-specific dependencies or dependencies
+# having no cross-platform support, pipenv may install dependencies that don't work, or not
+# install all needed dependencies.
+#Pipfile.lock
+
+# poetry
+# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
+# This is especially recommended for binary packages to ensure reproducibility, and is more
+# commonly ignored for libraries.
+# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
+#poetry.lock
+
+# pdm
+# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
+#pdm.lock
+# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
+# in version control.
+# https://pdm.fming.dev/#use-with-ide
+.pdm.toml
+
+# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
+__pypackages__/
+
+# Celery stuff
+celerybeat-schedule
+celerybeat.pid
+
+# SageMath parsed files
+*.sage.py
+
+# Environments
+.env
+.venv
+env/
+venv/
+ENV/
+env.bak/
+venv.bak/
+
+# Spyder project settings
+.spyderproject
+.spyproject
+
+# Rope project settings
+.ropeproject
+
+# mkdocs documentation
+/site
+
+# mypy
+.mypy_cache/
+.dmypy.json
+dmypy.json
+
+# Pyre type checker
+.pyre/
+
+# pytype static type analyzer
+.pytype/
+
+# Ruff (linter)
+.ruff_cache/
+
+# Cython debug symbols
+cython_debug/
+
+# PyCharm
+.idea/
+!.idea/runConfigurations
+
+# macOS
+.DS_Store
+
+# Received approval test files
+*.received.*
+
+# NPM
+node_modules
+
diff --git a/assets/arc-0058/.vscode/settings.json b/assets/arc-0058/.vscode/settings.json
new file mode 100644
index 000000000..033fd1083
--- /dev/null
+++ b/assets/arc-0058/.vscode/settings.json
@@ -0,0 +1,5 @@
+{
+ // Disabled due to matangover.mypy extension not supporting monorepos
+ // To be addressed as part of https://github.com/matangover/mypy-vscode/issues/82
+ "mypy.enabled": false
+}
diff --git a/assets/arc-0058/README.md b/assets/arc-0058/README.md
new file mode 100644
index 000000000..33aa792c4
--- /dev/null
+++ b/assets/arc-0058/README.md
@@ -0,0 +1,22 @@
+# arc-0058
+
+Welcome to your new AlgoKit project!
+
+This is your workspace root. A `workspace` in AlgoKit is an orchestrated collection of standalone projects (backends, smart contracts, frontend apps and etc).
+
+By default, `projects_root_path` parameter is set to `projects`. Which instructs AlgoKit CLI to create a new directory under `projects` directory when new project is instantiated via `algokit init` at the root of the workspace.
+
+## Getting Started
+
+To get started refer to `README.md` files in respective sub-projects in the `projects` directory.
+
+To learn more about algokit, visit [documentation](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/algokit.md).
+
+### GitHub Codespaces
+
+To get started execute:
+
+1. `algokit generate devcontainer` - invoking this command from the root of this repository will create a `devcontainer.json` file with all the configuration needed to run this project in a GitHub codespace. [Run the repository inside a codespace](https://docs.github.com/en/codespaces/getting-started/quickstart) to get started.
+2. `algokit init` - invoke this command inside a github codespace to launch an interactive wizard to guide you through the process of creating a new AlgoKit project
+
+Powered by [Copier templates](https://copier.readthedocs.io/en/stable/).
diff --git a/assets/arc-0058/arc-0058.code-workspace b/assets/arc-0058/arc-0058.code-workspace
new file mode 100644
index 000000000..89e542de0
--- /dev/null
+++ b/assets/arc-0058/arc-0058.code-workspace
@@ -0,0 +1,32 @@
+{
+ "folders": [
+ {
+ "path": "./",
+ "name": "ROOT"
+ },
+ {
+ "path": "projects/arc-0058"
+ }
+ ],
+ "settings": {
+ "files.exclude": {
+ "projects/": true
+ },
+ "jest.disabledWorkspaceFolders": [
+ "ROOT",
+ "projects"
+ ]
+ },
+ "extensions": {
+ "recommendations": [
+ "joshx.workspace-terminals"
+ ]
+ },
+ "tasks": {
+ "version": "2.0.0",
+ "tasks": []
+ },
+ "launch": {
+ "configurations": []
+ }
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/.gitkeep b/assets/arc-0058/projects/.gitkeep
new file mode 100644
index 000000000..e69de29bb
diff --git a/assets/arc-0058/projects/arc-0058/.algokit.toml b/assets/arc-0058/projects/arc-0058/.algokit.toml
new file mode 100644
index 000000000..cc5965491
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit.toml
@@ -0,0 +1,51 @@
+[algokit]
+min_version = "v2.6.0"
+
+[generate.smart-contract]
+description = "Generate a new smart contract for existing project"
+path = ".algokit/generators/create_contract"
+
+[generate.env-file]
+description = "Generate a new generic or Algorand network specific .env file"
+path = ".algokit/generators/create_env_file"
+
+[project]
+type = 'contract'
+name = 'arc-0058'
+artifacts = 'smart_contracts/artifacts'
+
+[project.deploy]
+command = "npm run deploy:ci"
+environment_secrets = [
+ "DEPLOYER_MNEMONIC",
+ "DISPENSER_MNEMONIC",
+]
+
+[project.deploy.localnet]
+environment_secrets = []
+
+[project.run]
+# Commands intended for use locally and in CI
+build = { commands = [
+ 'npm run build',
+], description = 'Build all smart contracts in the project' }
+test = { commands = [
+ 'npm run test',
+], description = 'Run smart contract tests using vitest' }
+audit = { commands = [
+ 'npm run audit',
+], description = 'Audit with better-npm-audit' }
+lint = { commands = [
+ 'npm run lint',
+ 'npm run format',
+], description = 'Perform linting' }
+audit-teal = { commands = [
+ # 🚨 IMPORTANT 🚨: For strict TEAL validation, remove --exclude statements. The default starter contract is not for production. Ensure thorough testing and adherence to best practices in smart contract development. This is not a replacement for a professional audit.
+ 'algokit task analyze smart_contracts/artifacts --recursive --force --exclude rekey-to --exclude is-updatable --exclude missing-fee-check --exclude is-deletable --exclude can-close-asset --exclude can-close-account --exclude unprotected-deletable --exclude unprotected-updatable',
+], description = 'Audit TEAL files' }
+
+# Commands intented for CI only, prefixed with `ci-` by convention
+ci-teal-diff = { commands = [
+ 'git add -N ./smart_contracts/artifacts',
+ 'git diff --exit-code --minimal ./smart_contracts/artifacts',
+], description = 'Check TEAL files for differences' }
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/.copier-answers.yml b/assets/arc-0058/projects/arc-0058/.algokit/.copier-answers.yml
new file mode 100644
index 000000000..e68a9967c
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/.copier-answers.yml
@@ -0,0 +1,9 @@
+# Changes here will be overwritten by Copier; NEVER EDIT MANUALLY
+_commit: 0.3.2
+_src_path: gh:algorandfoundation/algokit-typescript-template
+author_email: kyle.breeding@algorand.foundation
+author_name: Kyle Breeding
+contract_name: abstracted_account
+preset_name: production
+project_name: arc-0058
+
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/copier.yaml b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/copier.yaml
new file mode 100644
index 000000000..82f2c4a42
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/copier.yaml
@@ -0,0 +1,15 @@
+_tasks:
+ - "echo '==== Successfully initialized new smart contract 🚀 ===='"
+
+contract_name:
+ type: str
+ help: Name of your new contract.
+ placeholder: "my-new-contract"
+ default: "my-new-contract"
+
+include_tests:
+ type: bool
+ help: Should we include testing files?
+ default: 'yes'
+
+_templates_suffix: ".j2"
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/contract.algo.ts.j2 b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/contract.algo.ts.j2
new file mode 100644
index 000000000..344c1a17d
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/contract.algo.ts.j2
@@ -0,0 +1,7 @@
+import { Contract } from '@algorandfoundation/algorand-typescript'
+
+export class {{ contract_name.split('_')|map('capitalize')|join }} extends Contract {
+ {% if preset_name != 'starter' %}public {% endif %}hello(name: string): string {
+ return `Hello, ${name}`
+ }
+}
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/deploy-config.ts.j2 b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/deploy-config.ts.j2
new file mode 100644
index 000000000..4626980f4
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/deploy-config.ts.j2
@@ -0,0 +1,33 @@
+import { AlgorandClient } from '@algorandfoundation/algokit-utils'
+import { {{ contract_name.split('_')|map('capitalize')|join }}Factory } from '../artifacts/{{ contract_name }}/{{ contract_name.split('_')|map('capitalize')|join }}Client'
+
+// Below is a showcase of various deployment options you can use in TypeScript Client
+export async function deploy() {
+ console.log('=== Deploying {{ contract_name.split('_')|map('capitalize')|join }} ===')
+
+ const algorand = AlgorandClient.fromEnvironment()
+ const deployer = await algorand.account.fromEnvironment('DEPLOYER')
+
+ const factory = algorand.client.getTypedAppFactory({{ contract_name.split('_')|map('capitalize')|join }}Factory, {
+ defaultSender: deployer.addr,
+ })
+
+ const { appClient, result } = await factory.deploy({ onUpdate: 'append', onSchemaBreak: 'append' })
+
+ // If app was just created fund the app account
+ if (['create', 'replace'].includes(result.operationPerformed)) {
+ await algorand.send.payment({
+ amount: (1).algo(),
+ sender: deployer.addr,
+ receiver: appClient.appAddress,
+ })
+ }
+
+ const method = 'hello'
+ const response = await appClient.send.hello({
+ args: { name: 'world' },
+ })
+ console.log(
+ `Called ${method} on ${appClient.appClient.appName} (${appClient.appClient.appId}) with name = world, received: ${response.return}`,
+ )
+}
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.e2e.spec.ts{% endif %}.j2 b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.e2e.spec.ts{% endif %}.j2
new file mode 100644
index 000000000..146e27020
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.e2e.spec.ts{% endif %}.j2
@@ -0,0 +1,36 @@
+import { Config } from '@algorandfoundation/algokit-utils'
+import { algorandFixture } from '@algorandfoundation/algokit-utils/testing'
+import { Address } from 'algosdk'
+import { beforeAll, beforeEach, describe, expect, test } from 'vitest'
+import { {{ contract_name.split('_')|map('capitalize')|join }}Factory } from '../artifacts/{{ contract_name }}/{{ contract_name.split('_')|map('capitalize')|join }}Client'
+
+describe('{{ contract_name.split('_')|map('capitalize')|join }} contract', () => {
+ const localnet = algorandFixture()
+ beforeAll(() => {
+ Config.configure({
+ debug: true,
+ // traceAll: true,
+ })
+ })
+ beforeEach(localnet.newScope)
+
+ const deploy = async (account: Address) => {
+ const factory = localnet.algorand.client.getTypedAppFactory({{ contract_name.split('_')|map('capitalize')|join }}Factory, {
+ defaultSender: account,
+ })
+
+ const { appClient } = await factory.deploy({ onUpdate: 'append', onSchemaBreak: 'append' })
+ return { client: appClient }
+ }
+
+ test('says hello', async () => {
+ const { testAccount } = localnet.context
+ const { client } = await deploy(testAccount)
+
+ const result = await client.send.hello({ args: { name: 'World' } })
+
+ expect(result.return).toBe('Hello World')
+ })
+
+})
+
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.spec.ts{% endif %}.j2 b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.spec.ts{% endif %}.j2
new file mode 100644
index 000000000..e7a7414b2
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_contract/smart_contracts/{{ contract_name }}/{% if include_tests %}contract.spec.ts{% endif %}.j2
@@ -0,0 +1,14 @@
+import { TestExecutionContext } from '@algorandfoundation/algorand-typescript-testing'
+import { describe, expect, it } from 'vitest'
+import { {{ contract_name.split('_')|map('capitalize')|join }} } from './contract.algo'
+
+describe('{{ contract_name.split('_')|map('capitalize')|join }} contract', () => {
+ const ctx = new TestExecutionContext()
+ it('Logs the returned value when sayHello is called', () => {
+ const contract = ctx.contract.create({{ contract_name.split('_')|map('capitalize')|join }})
+
+ const result = contract.hello('Sally')
+
+ expect(result).toBe('Hello Sally')
+ })
+})
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/copier.yaml b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/copier.yaml
new file mode 100644
index 000000000..afa2cace0
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/copier.yaml
@@ -0,0 +1,49 @@
+_tasks:
+ - "echo '==== Successfully generated new .env file 🚀 ===='"
+
+target_network:
+ type: str
+ help: Name of your target network.
+ choices:
+ - mainnet
+ - testnet
+ - localnet
+ - custom
+ default: "localnet"
+ when: "{{ not use_generic_env }}"
+
+custom_network_name:
+ type: str
+ help: Name of your custom Algorand network.
+ placeholder: "custom"
+ when: "{{ not use_generic_env and target_network == 'custom' }}"
+
+is_localnet:
+ type: bool
+ help: Whether to deploy on localnet.
+ placeholder: "true"
+ default: "{{ target_network == 'localnet' and not use_generic_env }}"
+ when: 'false'
+
+is_testnet:
+ type: bool
+ help: Whether to deploy on testnet.
+ placeholder: "true"
+ default: "{{ target_network == 'testnet' and not use_generic_env }}"
+ when: 'false'
+
+is_mainnet:
+ type: bool
+ help: Whether to deploy on mainnet.
+ placeholder: "true"
+ default: "{{ target_network == 'mainnet' and not use_generic_env }}"
+ when: 'false'
+
+is_customnet:
+ type: bool
+ help: Whether to deploy on custom network.
+ placeholder: "true"
+ default: "{{ target_network == 'custom' and not use_generic_env }}"
+ when: 'false'
+
+_templates_suffix: ".j2"
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_customnet %}.env.{{custom_network_name}}{% endif %} b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_customnet %}.env.{{custom_network_name}}{% endif %}
new file mode 100644
index 000000000..cfc9f21ec
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_customnet %}.env.{{custom_network_name}}{% endif %}
@@ -0,0 +1,7 @@
+# this file contains algorand network settings for interacting with testnet via algonode
+ALGOD_TOKEN={YOUR_ALGOD_TOKEN}
+ALGOD_SERVER={YOUR_ALGOD_SERVER_URL}
+ALGOD_PORT={YOUR_ALGOD_PORT}
+INDEXER_TOKEN={YOUR_INDEXER_TOKEN}
+INDEXER_SERVER={YOUR_INDEXER_SERVER_URL}
+INDEXER_PORT={YOUR_INDEXER_PORT}
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_localnet %}.env.localnet{% endif %} b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_localnet %}.env.localnet{% endif %}
new file mode 100644
index 000000000..fcbf442dd
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_localnet %}.env.localnet{% endif %}
@@ -0,0 +1,7 @@
+# this file should contain environment variables specific to algokit localnet
+ALGOD_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+ALGOD_SERVER=http://localhost
+ALGOD_PORT=4001
+INDEXER_TOKEN=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
+INDEXER_SERVER=http://localhost
+INDEXER_PORT=8980
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_mainnet %}.env.mainnet{% endif %} b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_mainnet %}.env.mainnet{% endif %}
new file mode 100644
index 000000000..bb9a78733
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_mainnet %}.env.mainnet{% endif %}
@@ -0,0 +1,3 @@
+# this file contains algorand network settings for interacting with testnet via algonode
+ALGOD_SERVER=https://mainnet-api.algonode.cloud
+INDEXER_SERVER=https://mainnet-idx.algonode.cloud
diff --git a/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_testnet %}.env.testnet{% endif %} b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_testnet %}.env.testnet{% endif %}
new file mode 100644
index 000000000..eeea43d7f
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.algokit/generators/create_env_file/{% if is_testnet %}.env.testnet{% endif %}
@@ -0,0 +1,3 @@
+# this file contains algorand network settings for interacting with testnet via algonode
+ALGOD_SERVER=https://testnet-api.algonode.cloud
+INDEXER_SERVER=https://testnet-idx.algonode.cloud
diff --git a/assets/arc-0058/projects/arc-0058/.editorconfig b/assets/arc-0058/projects/arc-0058/.editorconfig
new file mode 100644
index 000000000..0a71b0756
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.editorconfig
@@ -0,0 +1,7 @@
+root=true
+
+[*]
+indent_style = space
+indent_size = 2
+end_of_line = lf
+insert_final_newline = true
diff --git a/assets/arc-0058/projects/arc-0058/.gitignore b/assets/arc-0058/projects/arc-0058/.gitignore
new file mode 100644
index 000000000..25494bf34
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.gitignore
@@ -0,0 +1,62 @@
+# Logs
+logs
+*.log
+npm-debug.log*
+yarn-debug.log*
+yarn-error.log*
+pnpm-debug.log*
+lerna-debug.log*
+
+# Dependency directories
+node_modules/
+
+# TypeScript cache
+*.tsbuildinfo
+
+# Optional npm cache directory
+.npm
+
+# Optional eslint cache
+.eslintcache
+
+# Stores VSCode versions used for testing VSCode extensions
+.vscode-test
+
+# Editor/OS directories and files
+.DS_Store
+*.suo
+
+# IntelliJ family
+.idea
+!.idea/
+.idea/*
+!.idea/runConfigurations/
+
+# yarn v2
+.yarn/cache
+.yarn/unplugged
+.yarn/build-state.yml
+.yarn/install-state.gz
+.pnp.*
+
+# Compiled code
+dist/
+build/
+
+# Coverage report
+coverage
+
+# dotenv environment variable files
+.env
+.env.development.local
+.env.test.local
+.env.production.local
+.env.local
+
+# Received approval test files
+*.received.*
+
+# AlgoKit
+debug_traces/
+.algokit/static-analysis/ # Replace with .algokit/static-analysis/tealer/ to enable snapshot checks in CI
+.algokit/sources
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application.xml
new file mode 100644
index 000000000..c182f6ef7
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application____LocalNet.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application____LocalNet.xml
new file mode 100644
index 000000000..d9fcbc348
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build_Smart_Contract_application____LocalNet.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build___Deploy_Smart_Contract_application.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build___Deploy_Smart_Contract_application.xml
new file mode 100644
index 000000000..beca23fee
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Build___Deploy_Smart_Contract_application.xml
@@ -0,0 +1,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Deploy_Built_Smart_Contract_application.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Deploy_Built_Smart_Contract_application.xml
new file mode 100644
index 000000000..17b8154ef
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Deploy_Built_Smart_Contract_application.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Reset_AlgoKit_LocalNet.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Reset_AlgoKit_LocalNet.xml
new file mode 100644
index 000000000..7f1236a4f
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Reset_AlgoKit_LocalNet.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Start_AlgoKit_LocalNet.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Start_AlgoKit_LocalNet.xml
new file mode 100644
index 000000000..f699a7ac4
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Start_AlgoKit_LocalNet.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Stop_AlgoKit_LocalNet.xml b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Stop_AlgoKit_LocalNet.xml
new file mode 100644
index 000000000..e510cbce2
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.idea/runConfigurations/Stop_AlgoKit_LocalNet.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/arc-0058/projects/arc-0058/.npmrc b/assets/arc-0058/projects/arc-0058/.npmrc
new file mode 100644
index 000000000..c42da845b
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.npmrc
@@ -0,0 +1 @@
+engine-strict = true
diff --git a/assets/arc-0058/projects/arc-0058/.pre-commit-config.yaml b/assets/arc-0058/projects/arc-0058/.pre-commit-config.yaml
new file mode 100644
index 000000000..a687bff29
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.pre-commit-config.yaml
@@ -0,0 +1,26 @@
+repos:
+ - repo: local
+ hooks:
+ - repo: local
+ hooks:
+ - id: prettier
+ name: Prettier
+ entry: npm run format
+ language: system
+ - repo: local
+ hooks:
+ - id: vitest
+ name: Vitest
+ entry: npm run test
+ language: system
+ # # Uncomment to enable TEAL static analysis using Tealer package
+ # - id: tealer
+ # name: tealer
+ # description: "Run AlgoKit `Tealer` for TEAL static analysis"
+ # entry: algokit
+ # language: system
+ # args: [project, run, "audit-teal"]
+ # require_serial: false
+ # additional_dependencies: []
+ # minimum_pre_commit_version: "0"
+ # files: '^.*\.teal$'
diff --git a/assets/arc-0058/projects/arc-0058/.prettierignore b/assets/arc-0058/projects/arc-0058/.prettierignore
new file mode 100644
index 000000000..8ca71b1a1
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.prettierignore
@@ -0,0 +1,13 @@
+# don't ever format node_modules
+node_modules
+# don't lint format output (make sure it's set to your correct build folder name)
+dist
+build
+# don't format nyc coverage output
+coverage
+# don't format generated types
+**/generated/types.d.ts
+**/generated/types.ts
+# don't format ide files
+.idea
+smart_contracts/artifacts
diff --git a/assets/arc-0058/projects/arc-0058/.prettierrc.js b/assets/arc-0058/projects/arc-0058/.prettierrc.js
new file mode 100644
index 000000000..c484d0e14
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.prettierrc.js
@@ -0,0 +1,10 @@
+module.exports = {
+ singleQuote: true,
+ jsxSingleQuote: false,
+ semi: false,
+ tabWidth: 2,
+ trailingComma: 'all',
+ printWidth: 120,
+ endOfLine: 'lf',
+ arrowParens: 'always',
+}
diff --git a/assets/arc-0058/projects/arc-0058/.tours/getting-started-with-your-algokit-project.tour b/assets/arc-0058/projects/arc-0058/.tours/getting-started-with-your-algokit-project.tour
new file mode 100644
index 000000000..ab71a74df
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.tours/getting-started-with-your-algokit-project.tour
@@ -0,0 +1,56 @@
+{
+ "$schema": "https://aka.ms/codetour-schema",
+ "title": "Getting Started with Your AlgoKit Project",
+ "steps": [
+ {
+ "file": "README.md",
+ "description": "Welcome to your brand new AlgoKit template-based project. In this tour, we will guide you through the main features and capabilities included in the template.",
+ "line": 3
+ },
+ {
+ "file": "README.md",
+ "description": "Start by ensuring you have followed the setup of pre-requisites.",
+ "line": 9
+ },
+ {
+ "file": ".algokit.toml",
+ "description": "This is the main configuration file used by algokit-cli to manage the project. The default template includes a starter 'Hello World' contract that is deployed via the `algokit-utils` package. To create a new smart contract, you can use the [`algokit generate`](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/generate.md) command and invoke a pre-bundled generator template by running `algokit generate smart-contract` (see how it is defined in the `.algokit.toml`, you can create your own generators if needed). This action will create a new folder in the `smart_contracts` directory, named after your project. Each folder contains a `contract.algo.ts` file, which is the entry point for your contract implementation, and `deployConfig.ts` file, that perform the deployment of the contract. Additionally you can define custom commands to run (similar to `npm` scripts), see definitions under `[project]` section in `.algokit.toml`.",
+ "line": 1
+ },
+ {
+ "file": "smart_contracts/hello_world/deploy-config.ts",
+ "description": "The default deployment scripts invoke a sample method on the starter contract that demonstrates how to interact with your deployed Algorand on-chain applications using the [`AlgoKit Typed Clients`](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/generate.md#1-typed-clients) feature. The invocation if deploy is aliased in `.algokit.toml` file, allowing simple deployments via `algokit project deploy` command.",
+ "line": 32
+ },
+ {
+ "file": "smart_contracts/abstracted_account/contact.spec.ts",
+ "description": "The default tests provided demonstrate an example of setting up in-memory fast unit tests with the Algorand TypeScript testing library that mocks AVM functionality.",
+ "line": 5
+ },
+ {
+ "file": "smart_contracts/abstracted_account/contact.e2e.spec.ts",
+ "description": "The default tests provided demonstrate an example of setting up an end-to-end test with fixtures, and testing smart contract calls against a LocalNet network via an AlgoKit typed client.",
+ "line": 7
+ },
+ {
+ "file": ".env.localnet.template",
+ "description": "Environment files are a crucial mechanism that allows you to set up the [`algokit deploy`](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/deploy.md) feature to simplify deploying your contracts in CI/CD environments (please note we still recommend careful evaluation when it comes to deployment to MainNet). Clone the file and remove the `.template` suffix to apply the changes to deployment scripts and launch configurations. The network prefix `localnet|testnet|mainnet` is primarily optimized for `algokit deploy`. The order of loading the variables is `.env.{network}` < `.env`.",
+ "line": 2
+ },
+ {
+ "file": ".vscode/launch.json",
+ "description": "Refer to the pre-bundled Visual Studio launch configurations, offering various options on how to execute the build and deployment of your smart contracts. Alternatively execute `algokit project run` to see list of available custom commands.",
+ "line": 5
+ },
+ {
+ "file": ".vscode/extensions.json",
+ "description": "We highly recommend installing the recommended extensions to get the most out of this template starter project in your VSCode IDE.",
+ "line": 3
+ },
+ {
+ "file": "smart_contracts/index.ts",
+ "description": "Uncomment the following line to enable artifacts required for the [AlgoKit AVM Debugger](https://github.com/algorandfoundation/algokit-avm-vscode-debugger) that run for every single call rather than just failures. This VSCode plugin is available on the [VSCode Extension Marketplace](https://marketplace.visualstudio.com/items?itemName=algorandfoundation.algokit-avm-vscode-debugger) for every call. A new folder will be automatically created in the `.algokit` directory with source maps of all TEAL contracts in this workspace, as well as traces that will appear in a folder at the root of the workspace. You can then use the traces as entry points to trigger the debug extension. Make sure to have the `.algokit.toml` file available at the root of the workspace.",
+ "line": 13
+ }
+ ]
+}
diff --git a/assets/arc-0058/projects/arc-0058/.vscode/extensions.json b/assets/arc-0058/projects/arc-0058/.vscode/extensions.json
new file mode 100644
index 000000000..cb7119273
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.vscode/extensions.json
@@ -0,0 +1,10 @@
+{
+ "recommendations": [
+ "dbaeumer.vscode-eslint",
+ "esbenp.prettier-vscode",
+ "vitest.explorer",
+ "editorconfig.editorconfig",
+ "vsls-contrib.codetour",
+ "algorandfoundation.algokit-avm-vscode-debugger"
+ ]
+}
diff --git a/assets/arc-0058/projects/arc-0058/.vscode/launch.json b/assets/arc-0058/projects/arc-0058/.vscode/launch.json
new file mode 100644
index 000000000..093ebb1d3
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.vscode/launch.json
@@ -0,0 +1,58 @@
+{
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Build & Deploy contracts",
+ "type": "node",
+ "request": "launch",
+ "runtimeExecutable": "npm",
+ "runtimeArgs": ["run", "deploy"],
+ "cwd": "${workspaceFolder}/smart_contracts",
+ "console": "integratedTerminal",
+ "skipFiles": ["/**", "node_modules/**"],
+ "preLaunchTask": "Build contracts (+ LocalNet)",
+ "env": {
+ "ALGOD_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "ALGOD_SERVER": "http://localhost",
+ "ALGOD_PORT": "4001",
+ "INDEXER_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "INDEXER_SERVER": "http://localhost",
+ "INDEXER_PORT": "8980"
+ }
+ },
+ {
+ "name": "Deploy contracts",
+ "type": "node",
+ "request": "launch",
+ "runtimeExecutable": "npm",
+ "runtimeArgs": ["run", "deploy"],
+ "cwd": "${workspaceFolder}/smart_contracts",
+ "console": "integratedTerminal",
+ "skipFiles": ["/**", "node_modules/**"],
+ "env": {
+ "ALGOD_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "ALGOD_SERVER": "http://localhost",
+ "ALGOD_PORT": "4001",
+ "INDEXER_TOKEN": "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
+ "INDEXER_SERVER": "http://localhost",
+ "INDEXER_PORT": "8980"
+ }
+ },
+ {
+ "name": "Build contracts",
+ "request": "launch",
+ "runtimeExecutable": "npm",
+ "runtimeArgs": ["run", "build"],
+ "cwd": "${workspaceFolder}",
+ "console": "integratedTerminal",
+ "skipFiles": ["/**", "node_modules/**"],
+ },
+ {
+ "type": "avm",
+ "request": "launch",
+ "name": "Debug AVM executions",
+ "simulateTraceFile": "${workspaceFolder}/${command:PickSimulateTraceFile}",
+ "stopOnEntry": true
+ }
+ ]
+}
diff --git a/assets/arc-0058/projects/arc-0058/.vscode/settings.json b/assets/arc-0058/projects/arc-0058/.vscode/settings.json
new file mode 100644
index 000000000..b829961af
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.vscode/settings.json
@@ -0,0 +1,18 @@
+{
+ "files.eol": "\n",
+ "editor.formatOnSave": true,
+ "editor.defaultFormatter": "esbenp.prettier-vscode",
+ "editor.codeActionsOnSave": {
+ "source.organizeImports": "explicit"
+ },
+ "jest.enable": false,
+ "files.associations": {
+ ".github/**/*.yml": "github-actions-workflow"
+ },
+ "eslint.enable": true,
+ "eslint.validate": ["typescript"],
+ "eslint.options": {
+ "extensions": [".ts"]
+ },
+ "eslint.workingDirectories": ["./smart_contracts"]
+ }
diff --git a/assets/arc-0058/projects/arc-0058/.vscode/tasks.json b/assets/arc-0058/projects/arc-0058/.vscode/tasks.json
new file mode 100644
index 000000000..55310abcf
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/.vscode/tasks.json
@@ -0,0 +1,69 @@
+{
+ "version": "2.0.0",
+ "tasks": [
+ {
+ "label": "Build contracts",
+ "type": "npm",
+ "script": "build",
+ "path": "${workspaceFolder}",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "group": {
+ "kind": "build",
+ "isDefault": true
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "Build contracts (+ LocalNet)",
+ "type": "npm",
+ "script": "build",
+ "path": "${workspaceFolder}",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "dependsOn": "Start AlgoKit LocalNet",
+ "problemMatcher": []
+ },
+ {
+ "label": "Start AlgoKit LocalNet",
+ "command": "algokit",
+ "args": ["localnet", "start"],
+ "type": "shell",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "Stop AlgoKit LocalNet",
+ "command": "algokit",
+ "args": ["localnet", "stop"],
+ "type": "shell",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "Reset AlgoKit LocalNet",
+ "command": "algokit",
+ "args": ["localnet", "reset"],
+ "type": "shell",
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "problemMatcher": []
+ },
+ {
+ "label": "Analyze TEAL contracts with AlgoKit Tealer integration",
+ "command": "algokit",
+ "args": ["task", "analyze", "${workspaceFolder}/.algokit", "--recursive", "--force"],
+ "options": {
+ "cwd": "${workspaceFolder}"
+ },
+ "problemMatcher": []
+ }
+ ]
+}
diff --git a/assets/arc-0058/projects/arc-0058/README.md b/assets/arc-0058/projects/arc-0058/README.md
new file mode 100644
index 000000000..c25df8eb4
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/README.md
@@ -0,0 +1,160 @@
+# arc-0058
+
+This project has been generated using AlgoKit. See below for default getting started instructions.
+
+# Setup
+
+### Pre-requisites
+
+- [Nodejs 22](https://nodejs.org/en/download) or later
+- [AlgoKit CLI 2.5](https://github.com/algorandfoundation/algokit-cli?tab=readme-ov-file#install) or later
+- [Docker](https://www.docker.com/) (only required for LocalNet)
+- [Puya Compiler 4.4.4](https://pypi.org/project/puyapy/) or later
+
+> For interactive tour over the codebase, download [vsls-contrib.codetour](https://marketplace.visualstudio.com/items?itemName=vsls-contrib.codetour) extension for VS Code, then open the [`.codetour.json`](./.tours/getting-started-with-your-algokit-project.tour) file in code tour extension.
+
+### Initial Setup
+
+#### 1. Clone the Repository
+Start by cloning this repository to your local machine.
+
+#### 2. Install Pre-requisites
+Ensure the following pre-requisites are installed and properly configured:
+
+- **Docker**: Required for running a local Algorand network.
+- **AlgoKit CLI**: Essential for project setup and operations. Verify installation with `algokit --version`, expecting `2.6.0` or later.
+
+#### 3. Bootstrap Your Local Environment
+Run the following commands within the project folder:
+
+- **Setup Project**: Execute `algokit project bootstrap all` to install dependencies and setup npm dependencies.
+- **Configure environment**: Execute `algokit generate env-file -a target_network localnet` to create a `.env.localnet` file with default configuration for `localnet`.
+- **Start LocalNet**: Use `algokit localnet start` to initiate a local Algorand network.
+
+### Development Workflow
+
+#### Terminal
+Directly manage and interact with your project using AlgoKit commands:
+
+1. **Build Contracts**: `algokit project run build` compiles all smart contracts. You can also specify a specific contract by passing the name of the contract folder as an extra argument.
+For example: `algokit project run build -- hello_world` will only build the `hello_world` contract.
+2. **Deploy**: Use `algokit project deploy localnet` to deploy contracts to the local network. You can also specify a specific contract by passing the name of the contract folder as an extra argument.
+For example: `algokit project deploy localnet -- hello_world` will only deploy the `hello_world` contract.
+
+#### VS Code
+For a seamless experience with breakpoint debugging and other features:
+
+1. **Open Project**: In VS Code, open the repository root.
+2. **Install Extensions**: Follow prompts to install recommended extensions.
+3. **Debugging**:
+ - Use `F5` to start debugging.
+
+#### JetBrains IDEs
+While primarily optimized for VS Code, JetBrains IDEs are supported:
+
+1. **Open Project**: In your JetBrains IDE, open the repository root.
+2. **Automatic Setup**: The IDE should configure the Node.js environment.
+3. **Debugging**: Use `Shift+F10` or `Ctrl+R` to start debugging. Note: Windows users may encounter issues with pre-launch tasks due to a known bug. See [JetBrains forums](https://youtrack.jetbrains.com/issue/IDEA-277486/Shell-script-configuration-cannot-run-as-before-launch-task) for workarounds.
+
+## AlgoKit Workspaces and Project Management
+This project supports both standalone and monorepo setups through AlgoKit workspaces. Leverage [`algokit project run`](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/project/run.md) commands for efficient monorepo project orchestration and management across multiple projects within a workspace.
+
+## AlgoKit Generators
+
+This template provides a set of [algokit generators](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/generate.md) that allow you to further modify the project instantiated from the template to fit your needs, as well as giving you a base to build your own extensions to invoke via the `algokit generate` command.
+
+### Generate Smart Contract
+
+By default the template creates a single `HelloWorld` contract under abstracted_account folder in the `smart_contracts` directory. To add a new contract:
+
+1. From the root of the project (`../`) execute `algokit generate smart-contract`. This will create a new starter smart contract and deployment configuration file under `{your_contract_name}` subfolder in the `smart_contracts` directory.
+2. Each contract potentially has different creation parameters and deployment steps. Hence, you need to define your deployment logic in `deploy-config.ts` file.
+3. Technically, you need to reference your contract deployment logic in the `index.ts` file. However, by default, `index.ts` will auto import all TypeScript deployment files under `smart_contracts` directory. If you want to manually import specific contracts, modify the default code provided by the template in `index.ts` file.
+
+> Please note, above is just a suggested convention tailored for the base configuration and structure of this template. The default code supplied by the template in the `index.ts` file is tailored for the suggested convention. You are free to modify the structure and naming conventions as you see fit.
+
+### Generate '.env' files
+
+By default the template instance does not contain any env files to deploy to different networks. Using [`algokit project deploy`](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/project/deploy.md) against `localnet` | `testnet` | `mainnet` will use default values for `algod` and `indexer` unless overwritten via `.env` or `.env.{target_network}`.
+
+To generate a new `.env` or `.env.{target_network}` file, run `algokit generate env-file`
+
+### Debugging Smart Contracts
+
+This project is optimized to work with AlgoKit AVM Debugger extension. To activate it:
+
+Refer to the commented header in the `index.ts` file in the `smart_contracts` folder.Since you have opted in to include VSCode launch configurations in your project, you can also use the `Debug TEAL via AlgoKit AVM Debugger` launch configuration to interactively select an available trace file and launch the debug session for your smart contract.
+
+
+For information on using and setting up the `AlgoKit AVM Debugger` VSCode extension refer [here](https://github.com/algorandfoundation/algokit-avm-vscode-debugger). To install the extension from the VSCode Marketplace, use the following link: [AlgoKit AVM Debugger extension](https://marketplace.visualstudio.com/items?itemName=algorandfoundation.algokit-avm-vscode-debugger).### Continuous Integration / Continuous Deployment (CI/CD)
+
+This project uses [GitHub Actions](https://docs.github.com/en/actions/learn-github-actions/understanding-github-actions) to define CI/CD workflows, which are located in the [.github/workflows](`../../.github/workflows`) folder.
+
+> Please note, if you instantiated the project with --workspace flag in `algokit init` it will automatically attempt to move the contents of the `.github` folder to the root of the workspace.
+
+### AlgoKit Workspaces
+
+To define custom `algokit project run` commands refer to [documentation](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/project/run.md). This allows orchestration of commands spanning across multiple projects within an algokit workspace based project (monorepo).
+
+#### Setting up GitHub for CI/CD workflow and TestNet deployment
+
+ 1. Every time you have a change to your smart contract, and when you first initialize the project you need to [build the contract](#initial-setup) and then commit the `smart_contracts/artifacts` folder so the [output stability](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/articles/output_stability.md) tests pass
+ 2. Decide what values you want to use for the `allowUpdate` and `allowDelete` parameters specified in [`deploy-config.ts`](./smart_contracts/abstracted_account/deploy-config.ts).
+ When deploying to LocalNet these values are both set to `true` for convenience. But for non-LocalNet networks
+ they are more conservative and use `false`
+ These default values will allow the smart contract to be deployed initially, but will not allow the app to be updated or deleted if is changed and the build will instead fail.
+ To help you decide it may be helpful to read the [AlgoKit Utils app deployment documentation](https://github.com/algorandfoundation/algokit-utils-ts/blob/main/docs/capabilities/app-deploy.md) or the [AlgoKit smart contract deployment architecture](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/architecture-decisions/2023-01-12_smart-contract-deployment.md#upgradeable-and-deletable-contracts).
+ 3. Create a [Github Environment](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#creating-an-environment) named `Test`.
+ Note: If you have a private repository and don't have GitHub Enterprise then Environments won't work and you'll need to convert the GitHub Action to use a different approach. Ignore this step if you picked `Starter` preset.
+ 4. Create or obtain a mnemonic for an Algorand account for use on TestNet to deploy apps, referred to as the `DEPLOYER` account.
+ 5. Store the mnemonic as a [secret](https://docs.github.com/en/actions/deployment/targeting-different-environments/using-environments-for-deployment#environment-secrets) `DEPLOYER_MNEMONIC`
+ in the Test environment created in step 3.
+ 6. The account used to deploy the smart contract will require enough funds to create the app, and also fund it. There are two approaches available here:
+ * Either, ensure the account is funded outside of CI/CD.
+ In Testnet, funds can be obtained by using the [Algorand TestNet dispenser](https://bank.testnet.algorand.network/) and we recommend provisioning 50 ALGOs.
+ * Or, fund the account as part of the CI/CD process by using a `DISPENSER_MNEMONIC` GitHub Environment secret to point to a separate `DISPENSER` account that you maintain ALGOs in (similarly, you need to provision ALGOs into this account using the [TestNet dispenser](https://bank.testnet.algorand.network/)).
+
+#### Continuous Integration
+
+For pull requests and pushes to `main` branch against this repository the following checks are automatically performed by GitHub Actions:
+ - NPM dependencies are audited using [better-npm-audit](https://github.com/jeemok/better-npm-audit#readme)
+ - Code formatting is performed using [Prettier](https://prettier.io/)
+ - Linting is checked using [ESLint](https://eslint.org/)
+- The base framework for testing is [vitest](https://vitest.dev/), and the project includes two separate kinds of tests:
+- - `Algorand TypeScript` smart contract unit tests, that are run using [`algorand-typescript-testing`](https://github.com/algorandfoundation/algorand-typescript-testing), which are executed in a Node.js intepreter emulating major AVM behaviour
+- - End-to-end (e2e) `AppClient` tests that are run against `algokit localnet` and test the behaviour in a real network environment
+ - Smart contract artifacts are built
+ - Smart contract artifacts are checked for [output stability](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/articles/output_stability.md).
+ - Smart contract is deployed to a AlgoKit LocalNet instance
+
+> NOTE: By default smart contract artifacts are compiled with `--debug-level` set to 0, to change this, modify the compiler invocation under the `build` script in `package.json`
+
+#### Continuous Deployment
+
+For pushes to `main` branch, after the above checks pass, the following deployment actions are performed:
+ - The smart contract(s) are deployed to TestNet using [AlgoNode](https://algonode.io).
+
+> Please note deployment is also performed via `algokit deploy` command which can be invoked both via CI as seen on this project, or locally. For more information on how to use `algokit deploy` please see [AlgoKit documentation](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/features/deploy.md).
+
+# Tools
+
+This project makes use of Algorand TypeScript to build Algorand smart contracts. The following tools are in use:
+
+- [Algorand](https://www.algorand.com/) - Layer 1 Blockchain; [Developer portal](https://dev.algorand.co/), [Why Algorand?](https://dev.algorand.co/getting-started/why-algorand/)
+- [AlgoKit](https://github.com/algorandfoundation/algokit-cli) - One-stop shop tool for developers building on the Algorand network; [docs](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/algokit.md), [intro tutorial](https://github.com/algorandfoundation/algokit-cli/blob/main/docs/tutorials/intro.md)
+- [Algorand TypeScript](https://github.com/algorandfoundation/puya-ts/) - A semantically and syntactically compatible, typed TypeScript language that works with standard TypeScript tooling and allows you to express smart contracts (apps) and smart signatures (logic signatures) for deployment on the Algorand Virtual Machine (AVM); [docs](https://github.com/algorandfoundation/puya-ts/), [examples](https://github.com/algorandfoundation/puya-ts/tree/main/examples)
+- [AlgoKit Utils](https://github.com/algorandfoundation/algokit-utils-ts) - A set of core Algorand utilities that make it easier to build solutions on Algorand.
+- [NPM](https://www.npmjs.com/): TypeScript packaging and dependency management.
+- [TypeScript](https://www.typescriptlang.org/): Strongly typed programming language that builds on JavaScript
+- [ts-node-dev](https://github.com/wclr/ts-node-dev): TypeScript development execution environment- [Prettier](https://prettier.io/): A code formatter.- [ESLint](https://eslint.org/): A JavaScript / TypeScript linter.
+- [vitest](https://vitest.dev/): Automated testing.
+- [better-npm-audit](https://github.com/jeemok/better-npm-audit#readme): Tool for scanning JavaScript / TypeScript environments for packages with known vulnerabilities.
+- [pre-commit](https://pre-commit.com/): A framework for managing and maintaining multi-language pre-commit hooks, to enable pre-commit you need to run `pre-commit install` in the root of the repository. This will install the pre-commit hooks and run them against modified files when committing. If any of the hooks fail, the commit will be aborted. To run the hooks on all files, use `pre-commit run --all-files`.
+
+
+It has also been configured to have a productive dev experience out of the box in [VS Code](https://code.visualstudio.com/), see the [.vscode](./.vscode) folder.
+
+
+
+It has also been configured to have a productive dev experience out of the box in [Jetbrains IDEs](https://www.jetbrains.com/ides/), see the [.idea](./.idea) folder.
+
diff --git a/assets/arc-0058/projects/arc-0058/eslint.config.mjs b/assets/arc-0058/projects/arc-0058/eslint.config.mjs
new file mode 100644
index 000000000..4d2428a33
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/eslint.config.mjs
@@ -0,0 +1,18 @@
+import eslint from '@eslint/js'
+import tseslint from 'typescript-eslint'
+import globals from 'globals'
+
+export default tseslint.config(
+ eslint.configs.recommended,
+ tseslint.configs.recommended,
+ {
+ languageOptions: {
+ globals: {
+ ...globals.node,
+ },
+ },
+ rules: {
+ '@typescript-eslint/explicit-member-accessibility': 'warn',
+ },
+ },
+);
diff --git a/assets/arc-0058/projects/arc-0058/jest.config.js b/assets/arc-0058/projects/arc-0058/jest.config.js
new file mode 100644
index 000000000..45b355708
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/jest.config.js
@@ -0,0 +1,10 @@
+/** @type {import('ts-jest').JestConfigWithTsJest} */
+module.exports = {
+ preset: 'ts-jest',
+ testEnvironment: 'node',
+ testTimeout: 60000,
+ // temporary fix for bigint serialization issue
+ // https://github.com/wormholelabs-xyz/wormhole-sdk-ts/commit/afab351e7ba90ec9abccdaf9edd220fe363f2399#diff-860bd1f15d1e0bafcfc6f62560524f588e6d6bf56d4ab1b0f6f8146461558730R15
+ maxWorkers: "50%",
+ workerThreads: true,
+};
diff --git a/assets/arc-0058/projects/arc-0058/package-lock.json b/assets/arc-0058/projects/arc-0058/package-lock.json
new file mode 100644
index 000000000..49c6e30a0
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/package-lock.json
@@ -0,0 +1,9027 @@
+{
+ "name": "smart_contracts",
+ "version": "1.0.0",
+ "lockfileVersion": 3,
+ "requires": true,
+ "packages": {
+ "": {
+ "name": "smart_contracts",
+ "version": "1.0.0",
+ "dependencies": {
+ "@algorandfoundation/algorand-typescript": "^1.0.1",
+ "@jest/globals": "^29.7.0",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.4.0"
+ },
+ "devDependencies": {
+ "@algorandfoundation/algokit-client-generator": "^6.0.1-beta.2",
+ "@algorandfoundation/algokit-utils": "^9.1.2",
+ "@algorandfoundation/algokit-utils-debug": "^1.0.4",
+ "@algorandfoundation/algorand-typescript-testing": "^1.0.1",
+ "@algorandfoundation/puya-ts": "^1.0.1",
+ "@eslint/js": "^9.18.0",
+ "@rollup/plugin-typescript": "^12.1.2",
+ "@tsconfig/node22": "^22.0.0",
+ "@vitest/coverage-v8": "^2.1.8",
+ "algosdk": "^3.4.0",
+ "better-npm-audit": "^3.11.0",
+ "dotenv": "^16.4.7",
+ "eslint": "^9.18.0",
+ "prettier": "^3.4.2",
+ "ts-node-dev": "^2.0.0",
+ "typescript": "^5.7.3",
+ "typescript-eslint": "^8.19.1",
+ "vitest": "^2.1.8"
+ },
+ "engines": {
+ "node": ">=22.0",
+ "npm": ">=9.0"
+ }
+ },
+ "node_modules/@algorandfoundation/algokit-client-generator": {
+ "version": "6.0.1-beta.3",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-client-generator/-/algokit-client-generator-6.0.1-beta.3.tgz",
+ "integrity": "sha512-M8/S1pZotIY7uzljXImSdo7+W3mzXKszy92tTA65yp0XEv/0frs4tX/EECGQpgRKz8z6W+NJlf1WZbLQY5ipZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^5.4.1",
+ "change-case": "^5.4.4",
+ "commander": "^14.0.0",
+ "jsonschema": "^1.5.0"
+ },
+ "bin": {
+ "algokit-client-generator": "bin/cli.mjs",
+ "algokitgen": "bin/cli.mjs"
+ },
+ "engines": {
+ "node": ">=20.0"
+ },
+ "peerDependencies": {
+ "@algorandfoundation/algokit-utils": "^9.0.0",
+ "algosdk": "^3.2.0"
+ }
+ },
+ "node_modules/@algorandfoundation/algokit-utils": {
+ "version": "9.1.2",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils/-/algokit-utils-9.1.2.tgz",
+ "integrity": "sha512-gZTg9H5FAce+QcT79y8Eun8by+MtlgocYjIUvP2ahh2O0U0HCcTSjVux5lQZj5+EsSaL3sR0p+BmjXnPAMplbA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^6.0.3"
+ },
+ "engines": {
+ "node": ">=20.0"
+ },
+ "peerDependencies": {
+ "algosdk": "^3.0.0"
+ }
+ },
+ "node_modules/@algorandfoundation/algokit-utils-debug": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/algokit-utils-debug/-/algokit-utils-debug-1.0.4.tgz",
+ "integrity": "sha512-Sx1M6DTRUcgrOc5Q289G1K3xKf/8JzGXnB6LD7DXEnpnkNLenHForlqHH5vAsN1RY6H2viwYSxEFmKItqY9WDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "buffer": "^6.0.3"
+ },
+ "engines": {
+ "node": ">=18.0"
+ },
+ "peerDependencies": {
+ "@algorandfoundation/algokit-utils": "^9.0.0",
+ "algosdk": "^3.0.0"
+ }
+ },
+ "node_modules/@algorandfoundation/algorand-typescript": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/algorand-typescript/-/algorand-typescript-1.0.1.tgz",
+ "integrity": "sha512-XRn1D2/wU66j878/MmSS2kIkq8M8EgECiMeLMzatFIztVZclh3R3z+4CvXbF/WzluWUXCC7cyYmRWttrvqfYTQ==",
+ "peerDependencies": {
+ "tslib": "^2.6.2"
+ }
+ },
+ "node_modules/@algorandfoundation/algorand-typescript-testing": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/algorand-typescript-testing/-/algorand-typescript-testing-1.0.1.tgz",
+ "integrity": "sha512-KXgvxnmQh8JdJN1v6b187Oxn09pAsKbzTviVymguwhKTRDuhkzwwBHmMzwq21PV+3RU9xa1zDQ5kTDp016+tRg==",
+ "dev": true,
+ "dependencies": {
+ "@algorandfoundation/algorand-typescript": "1.0.1",
+ "@algorandfoundation/puya-ts": "1.0.1",
+ "elliptic": "^6.6.1",
+ "js-sha256": "^0.11.0",
+ "js-sha3": "^0.9.3",
+ "js-sha512": "^0.9.0",
+ "tweetnacl": "^1.0.3",
+ "upath": "^2.0.1"
+ }
+ },
+ "node_modules/@algorandfoundation/puya-ts": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@algorandfoundation/puya-ts/-/puya-ts-1.0.1.tgz",
+ "integrity": "sha512-rTDLzp8ER0O5ueVWb/rrDQ17qGXFaqi+QG/4bRg0gCoJkCYkRhH19XDFn4VlPTD/E2MUepPl5qWduZe+h1Zy3g==",
+ "bundleDependencies": [
+ "vscode-jsonrpc",
+ "vscode-languageserver",
+ "vscode-languageserver-textdocument"
+ ],
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "dependencies": {
+ "@algorandfoundation/algorand-typescript": "1.0.1",
+ "arcsecond": "^5.0.0",
+ "argparse": "^2.0.1",
+ "chalk": "^5.4.1",
+ "change-case": "^5.4.4",
+ "cross-spawn": "7.0.6",
+ "glob": "^11.0.3",
+ "minimatch": "^10.0.3",
+ "pathe": "^2.0.3",
+ "polytype": "^0.17.0",
+ "signal-exit": "^4.1.0",
+ "tar": "^7.4.3",
+ "tslib": "^2.8.1",
+ "typescript": "^5.8.3",
+ "vscode-jsonrpc": "^8.2.0",
+ "vscode-languageserver": "^9.0.1",
+ "vscode-languageserver-textdocument": "^1.0.12",
+ "vscode-uri": "^3.1.0",
+ "which": "^5.0.0"
+ },
+ "bin": {
+ "download-puya-binary": "bin/download-puya-binary.mjs",
+ "puya-ts": "bin/run-cli.mjs",
+ "puyats": "bin/run-cli.mjs",
+ "puyats-ls": "bin/puyats-ls.mjs"
+ }
+ },
+ "node_modules/@algorandfoundation/puya-ts/node_modules/pathe": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-2.0.3.tgz",
+ "integrity": "sha512-WUjGcAqP1gQacoQe+OBJsFA7Ld4DyXuUIjZ5cc75cLHvJ7dtNsTugphxIADwspS+AraAUePCKrSVtPLFj/F88w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@ampproject/remapping": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.3.0.tgz",
+ "integrity": "sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/code-frame": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.27.1.tgz",
+ "integrity": "sha512-cjQ7ZlQ0Mv3b47hABuTevyTuYN4i+loJKGeV9flcCgIK37cCXRh+L1bd3iBHlynerhQ7BhCkn2BPbQUL+rGqFg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "js-tokens": "^4.0.0",
+ "picocolors": "^1.1.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/compat-data": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.28.4.tgz",
+ "integrity": "sha512-YsmSKC29MJwf0gF8Rjjrg5LQCmyh+j/nD8/eP7f+BeoQTKYqs9RoWbjGOdy0+1Ekr68RJZMUOPVQaQisnIo4Rw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/core": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.28.4.tgz",
+ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-compilation-targets": "^7.27.2",
+ "@babel/helper-module-transforms": "^7.28.3",
+ "@babel/helpers": "^7.28.4",
+ "@babel/parser": "^7.28.4",
+ "@babel/template": "^7.27.2",
+ "@babel/traverse": "^7.28.4",
+ "@babel/types": "^7.28.4",
+ "@jridgewell/remapping": "^2.3.5",
+ "convert-source-map": "^2.0.0",
+ "debug": "^4.1.0",
+ "gensync": "^1.0.0-beta.2",
+ "json5": "^2.2.3",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/babel"
+ }
+ },
+ "node_modules/@babel/core/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/generator": {
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.28.3.tgz",
+ "integrity": "sha512-3lSpxGgvnmZznmBkCRnVREPUFJv2wrv9iAoFDvADJc0ypmdOxdUtcLeBgBJ6zE0PMeTKnxeQzyk0xTBq4Ep7zw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.28.3",
+ "@babel/types": "^7.28.2",
+ "@jridgewell/gen-mapping": "^0.3.12",
+ "@jridgewell/trace-mapping": "^0.3.28",
+ "jsesc": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.27.2.tgz",
+ "integrity": "sha512-2+1thGUUWWjLTYTHZWK1n8Yga0ijBz1XAhUXcKy81rd5g6yh7hGqMp45v7cadSbEHc9G3OTv45SyneRN3ps4DQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/compat-data": "^7.27.2",
+ "@babel/helper-validator-option": "^7.27.1",
+ "browserslist": "^4.24.0",
+ "lru-cache": "^5.1.1",
+ "semver": "^6.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-compilation-targets/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/@babel/helper-globals": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@babel/helper-globals/-/helper-globals-7.28.0.tgz",
+ "integrity": "sha512-+W6cISkXFa1jXsDEdYA8HeevQT/FULhxzR99pxphltZcVaugps53THCeiWA8SguxxpSp3gKPiuYfSWopkLQ4hw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-imports": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.27.1.tgz",
+ "integrity": "sha512-0gSFWUPNXNopqtIPQvlD5WgXYI5GY2kP2cCvoT8kczjbfcfuIljTbcWrulD1CIPIX2gt1wghbDy08yE1p+/r3w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/traverse": "^7.27.1",
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-module-transforms": {
+ "version": "7.28.3",
+ "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.28.3.tgz",
+ "integrity": "sha512-gytXUbs8k2sXS9PnQptz5o0QnpLL51SwASIORY6XaBKF88nsOT0Zw9szLqlSGQDP/4TljBAD5y98p2U1fqkdsw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-module-imports": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1",
+ "@babel/traverse": "^7.28.3"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/@babel/helper-plugin-utils": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.27.1.tgz",
+ "integrity": "sha512-1gn1Up5YXka3YYAHGKpbideQ5Yjf1tDa9qYcgysz+cNCXukyLl6DjPXhD3VRwSb8c0J9tA4b2+rHEZtc6R0tlw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-string-parser": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-string-parser/-/helper-string-parser-7.27.1.tgz",
+ "integrity": "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-identifier": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.27.1.tgz",
+ "integrity": "sha512-D2hP9eA+Sqx1kBZgzxZh0y1trbuU+JoDkiEwqhQ36nodYqJwyEIhPSdMNd7lOm/4io72luTPWH20Yda0xOuUow==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helper-validator-option": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.27.1.tgz",
+ "integrity": "sha512-YvjJow9FxbhFFKDSuFnVCe2WxXk1zWc22fFePVNEaWJEu8IrZVlda6N0uHwzZrUM1il7NC9Mlp4MaJYbYd9JSg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/helpers": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.28.4.tgz",
+ "integrity": "sha512-HFN59MmQXGHVyYadKLVumYsA9dBFun/ldYxipEjzA4196jpLZd8UjEEBLkbEkvfYreDqJhZxYAWFPtrfhNpj4w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.4"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/parser": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.28.4.tgz",
+ "integrity": "sha512-yZbBqeM6TkpP9du/I2pUZnJsRMGGvOuIrhjzC1AwHwW+6he4mni6Bp/m8ijn0iOuZuPI2BfkCoSRunpyjnrQKg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.4"
+ },
+ "bin": {
+ "parser": "bin/babel-parser.js"
+ },
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-async-generators": {
+ "version": "7.8.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz",
+ "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-bigint": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz",
+ "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-properties": {
+ "version": "7.12.13",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz",
+ "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.12.13"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-class-static-block": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz",
+ "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-attributes": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.27.1.tgz",
+ "integrity": "sha512-oFT0FrKHgF53f4vOsZGi2Hh3I35PfSmVs4IBFLFj4dnafP+hIWDLg3VyKmUHfLoLHlyxY4C7DGtmHuJgn+IGww==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-import-meta": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz",
+ "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-json-strings": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz",
+ "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-jsx": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.27.1.tgz",
+ "integrity": "sha512-y8YTNIeKoyhGd9O0Jiyzyyqk8gdjnumGTQPsz0xOZOQ2RmkVJeZ1vmmfIvFEKqucBG6axJGBZDE/7iI5suUI/w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-logical-assignment-operators": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz",
+ "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz",
+ "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-numeric-separator": {
+ "version": "7.10.4",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz",
+ "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.10.4"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-object-rest-spread": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz",
+ "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-catch-binding": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz",
+ "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-optional-chaining": {
+ "version": "7.8.3",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz",
+ "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.8.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-private-property-in-object": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz",
+ "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-top-level-await": {
+ "version": "7.14.5",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz",
+ "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.14.5"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/plugin-syntax-typescript": {
+ "version": "7.27.1",
+ "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-typescript/-/plugin-syntax-typescript-7.27.1.tgz",
+ "integrity": "sha512-xfYCBMxveHrRMnAWl1ZlPXOZjzkN82THFvLhQhFXFt81Z5HnN+EtUkZhv/zcKpmT3fzmWZB0ywiBrbC3vogbwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0-0"
+ }
+ },
+ "node_modules/@babel/template": {
+ "version": "7.27.2",
+ "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.27.2.tgz",
+ "integrity": "sha512-LPDZ85aEJyYSd18/DkjNh4/y1ntkE5KwUHWTiqgRxruuZL2F1yuHligVHLvcHY2vMHXttKFpJn6LwfI7cw7ODw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/parser": "^7.27.2",
+ "@babel/types": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/traverse": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.28.4.tgz",
+ "integrity": "sha512-YEzuboP2qvQavAcjgQNVgsvHIDv6ZpwXvcvjmyySP2DIMuByS/6ioU5G9pYrWHM6T2YDfc7xga9iNzYOs12CFQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.27.1",
+ "@babel/generator": "^7.28.3",
+ "@babel/helper-globals": "^7.28.0",
+ "@babel/parser": "^7.28.4",
+ "@babel/template": "^7.27.2",
+ "@babel/types": "^7.28.4",
+ "debug": "^4.3.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@babel/types": {
+ "version": "7.28.4",
+ "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.28.4.tgz",
+ "integrity": "sha512-bkFqkLhh3pMBUQQkpVgWDWq/lqzc2678eUyDlTBhRqhCHFguYYGM0Efga7tYk4TogG/3x0EEl66/OQ+WGbWB/Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/helper-string-parser": "^7.27.1",
+ "@babel/helper-validator-identifier": "^7.27.1"
+ },
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/@bcoe/v8-coverage": {
+ "version": "0.2.3",
+ "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz",
+ "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==",
+ "license": "MIT"
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.8.1",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz",
+ "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "0.3.9"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support/node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.9",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz",
+ "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.0.3",
+ "@jridgewell/sourcemap-codec": "^1.4.10"
+ }
+ },
+ "node_modules/@esbuild/aix-ppc64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/aix-ppc64/-/aix-ppc64-0.25.0.tgz",
+ "integrity": "sha512-O7vun9Sf8DFjH2UtqK8Ku3LkquL9SZL8OLY1T5NZkA34+wG3OQF7cl4Ql8vdNzM6fzBbYfLaiRLIOZ+2FOCgBQ==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "aix"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm/-/android-arm-0.25.0.tgz",
+ "integrity": "sha512-PTyWCYYiU0+1eJKmw21lWtC+d08JDZPQ5g+kFyxP0V+es6VPPSUhM6zk8iImp2jbV6GwjX4pap0JFbUQN65X1g==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-arm64/-/android-arm64-0.25.0.tgz",
+ "integrity": "sha512-grvv8WncGjDSyUBjN9yHXNt+cq0snxXbDxy5pJtzMKGmmpPxeAmAhWxXI+01lU5rwZomDgD3kJwulEnhTRUd6g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/android-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/android-x64/-/android-x64-0.25.0.tgz",
+ "integrity": "sha512-m/ix7SfKG5buCnxasr52+LI78SQ+wgdENi9CqyCXwjVR2X4Jkz+BpC3le3AoBPYTC9NHklwngVXvbJ9/Akhrfg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-arm64/-/darwin-arm64-0.25.0.tgz",
+ "integrity": "sha512-mVwdUb5SRkPayVadIOI78K7aAnPamoeFR2bT5nszFUZ9P8UpK4ratOdYbZZXYSqPKMHfS1wdHCJk1P1EZpRdvw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/darwin-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/darwin-x64/-/darwin-x64-0.25.0.tgz",
+ "integrity": "sha512-DgDaYsPWFTS4S3nWpFcMn/33ZZwAAeAFKNHNa1QN0rI4pUjgqf0f7ONmXf6d22tqTY+H9FNdgeaAa+YIFUn2Rg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-arm64/-/freebsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-VN4ocxy6dxefN1MepBx/iD1dH5K8qNtNe227I0mnTRjry8tj5MRk4zprLEdG8WPyAPb93/e4pSgi1SoHdgOa4w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/freebsd-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/freebsd-x64/-/freebsd-x64-0.25.0.tgz",
+ "integrity": "sha512-mrSgt7lCh07FY+hDD1TxiTyIHyttn6vnjesnPoVDNmDfOmggTLXRv8Id5fNZey1gl/V2dyVK1VXXqVsQIiAk+A==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm/-/linux-arm-0.25.0.tgz",
+ "integrity": "sha512-vkB3IYj2IDo3g9xX7HqhPYxVkNQe8qTK55fraQyTzTX/fxaDtXiEnavv9geOsonh2Fd2RMB+i5cbhu2zMNWJwg==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-arm64/-/linux-arm64-0.25.0.tgz",
+ "integrity": "sha512-9QAQjTWNDM/Vk2bgBl17yWuZxZNQIF0OUUuPZRKoDtqF2k4EtYbpyiG5/Dk7nqeK6kIJWPYldkOcBqjXjrUlmg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ia32": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ia32/-/linux-ia32-0.25.0.tgz",
+ "integrity": "sha512-43ET5bHbphBegyeqLb7I1eYn2P/JYGNmzzdidq/w0T8E2SsYL1U6un2NFROFRg1JZLTzdCoRomg8Rvf9M6W6Gg==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-loong64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-loong64/-/linux-loong64-0.25.0.tgz",
+ "integrity": "sha512-fC95c/xyNFueMhClxJmeRIj2yrSMdDfmqJnyOY4ZqsALkDrrKJfIg5NTMSzVBr5YW1jf+l7/cndBfP3MSDpoHw==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-mips64el": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-mips64el/-/linux-mips64el-0.25.0.tgz",
+ "integrity": "sha512-nkAMFju7KDW73T1DdH7glcyIptm95a7Le8irTQNO/qtkoyypZAnjchQgooFUDQhNAy4iu08N79W4T4pMBwhPwQ==",
+ "cpu": [
+ "mips64el"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-ppc64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-ppc64/-/linux-ppc64-0.25.0.tgz",
+ "integrity": "sha512-NhyOejdhRGS8Iwv+KKR2zTq2PpysF9XqY+Zk77vQHqNbo/PwZCzB5/h7VGuREZm1fixhs4Q/qWRSi5zmAiO4Fw==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-riscv64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-riscv64/-/linux-riscv64-0.25.0.tgz",
+ "integrity": "sha512-5S/rbP5OY+GHLC5qXp1y/Mx//e92L1YDqkiBbO9TQOvuFXM+iDqUNG5XopAnXoRH3FjIUDkeGcY1cgNvnXp/kA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-s390x": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-s390x/-/linux-s390x-0.25.0.tgz",
+ "integrity": "sha512-XM2BFsEBz0Fw37V0zU4CXfcfuACMrppsMFKdYY2WuTS3yi8O1nFOhil/xhKTmE1nPmVyvQJjJivgDT+xh8pXJA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/linux-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/linux-x64/-/linux-x64-0.25.0.tgz",
+ "integrity": "sha512-9yl91rHw/cpwMCNytUDxwj2XjFpxML0y9HAOH9pNVQDpQrBxHy01Dx+vaMu0N1CKa/RzBD2hB4u//nfc+Sd3Cw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-arm64/-/netbsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-RuG4PSMPFfrkH6UwCAqBzauBWTygTvb1nxWasEJooGSJ/NwRw7b2HOwyRTQIU97Hq37l3npXoZGYMy3b3xYvPw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/netbsd-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/netbsd-x64/-/netbsd-x64-0.25.0.tgz",
+ "integrity": "sha512-jl+qisSB5jk01N5f7sPCsBENCOlPiS/xptD5yxOx2oqQfyourJwIKLRA2yqWdifj3owQZCL2sn6o08dBzZGQzA==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "netbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-arm64/-/openbsd-arm64-0.25.0.tgz",
+ "integrity": "sha512-21sUNbq2r84YE+SJDfaQRvdgznTD8Xc0oc3p3iW/a1EVWeNj/SdUCbm5U0itZPQYRuRTW20fPMWMpcrciH2EJw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/openbsd-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/openbsd-x64/-/openbsd-x64-0.25.0.tgz",
+ "integrity": "sha512-2gwwriSMPcCFRlPlKx3zLQhfN/2WjJ2NSlg5TKLQOJdV0mSxIcYNTMhk3H3ulL/cak+Xj0lY1Ym9ysDV1igceg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openbsd"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/sunos-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/sunos-x64/-/sunos-x64-0.25.0.tgz",
+ "integrity": "sha512-bxI7ThgLzPrPz484/S9jLlvUAHYMzy6I0XiU1ZMeAEOBcS0VePBFxh1JjTQt3Xiat5b6Oh4x7UC7IwKQKIJRIg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "sunos"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-arm64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-arm64/-/win32-arm64-0.25.0.tgz",
+ "integrity": "sha512-ZUAc2YK6JW89xTbXvftxdnYy3m4iHIkDtK3CLce8wg8M2L+YZhIvO1DKpxrd0Yr59AeNNkTiic9YLf6FTtXWMw==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-ia32": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-ia32/-/win32-ia32-0.25.0.tgz",
+ "integrity": "sha512-eSNxISBu8XweVEWG31/JzjkIGbGIJN/TrRoiSVZwZ6pkC6VX4Im/WV2cz559/TXLcYbcrDN8JtKgd9DJVIo8GA==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@esbuild/win32-x64": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/@esbuild/win32-x64/-/win32-x64-0.25.0.tgz",
+ "integrity": "sha512-ZENoHJBxA20C2zFzh6AI4fT6RraMzjYw4xKWemRTRmRVtN9c5DcH9r/f2ihEkMjOW5eGgrwCslG/+Y/3bL+DHQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ],
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils": {
+ "version": "4.9.0",
+ "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.9.0.tgz",
+ "integrity": "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eslint-visitor-keys": "^3.4.3"
+ },
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0"
+ }
+ },
+ "node_modules/@eslint-community/eslint-utils/node_modules/eslint-visitor-keys": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz",
+ "integrity": "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^12.22.0 || ^14.17.0 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint-community/regexpp": {
+ "version": "4.12.1",
+ "resolved": "https://registry.npmjs.org/@eslint-community/regexpp/-/regexpp-4.12.1.tgz",
+ "integrity": "sha512-CCZCDJuduB9OUkFkY2IgppNZMi2lBQgD2qzwXkEia16cge2pijY/aXi96CJMquDMn3nJdlPV1A5KrJEXwfLNzQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.0.0 || ^14.0.0 || >=16.0.0"
+ }
+ },
+ "node_modules/@eslint/config-array": {
+ "version": "0.21.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-array/-/config-array-0.21.0.tgz",
+ "integrity": "sha512-ENIdc4iLu0d93HeYirvKmrzshzofPw6VkZRKQGe9Nv46ZnWUzcF1xV01dcvEg/1wXUR61OmmlSfyeyO7EvjLxQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/object-schema": "^2.1.6",
+ "debug": "^4.3.1",
+ "minimatch": "^3.1.2"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/config-array/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@eslint/config-helpers": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/config-helpers/-/config-helpers-0.4.0.tgz",
+ "integrity": "sha512-WUFvV4WoIwW8Bv0KeKCIIEgdSiFOsulyN0xrMu+7z43q/hkOLXjvb5u7UC9jDxvRzcrbEmuZBX5yJZz1741jog==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/core": {
+ "version": "0.16.0",
+ "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.16.0.tgz",
+ "integrity": "sha512-nmC8/totwobIiFcGkDza3GIKfAw1+hLiYVrh3I1nIomQ8PEr5cxg34jnkmGawul/ep52wGRAcyeDCNtWKSOj4Q==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@types/json-schema": "^7.0.15"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/eslintrc": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/@eslint/eslintrc/-/eslintrc-3.3.1.tgz",
+ "integrity": "sha512-gtF186CXhIl1p4pJNGZw8Yc6RlshoePRvE0X91oPGb3vZ8pM3qOS9W9NGPat9LziaBV7XrJWGylNQXkGcnM3IQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ajv": "^6.12.4",
+ "debug": "^4.3.2",
+ "espree": "^10.0.1",
+ "globals": "^14.0.0",
+ "ignore": "^5.2.0",
+ "import-fresh": "^3.2.1",
+ "js-yaml": "^4.1.0",
+ "minimatch": "^3.1.2",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/@eslint/eslintrc/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@eslint/js": {
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.37.0.tgz",
+ "integrity": "sha512-jaS+NJ+hximswBG6pjNX0uEJZkrT0zwpVi3BA3vX22aFGjJjmgSTSmPpZCRKmoBL5VY/M6p0xsSJx7rk7sy5gg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ }
+ },
+ "node_modules/@eslint/object-schema": {
+ "version": "2.1.6",
+ "resolved": "https://registry.npmjs.org/@eslint/object-schema/-/object-schema-2.1.6.tgz",
+ "integrity": "sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@eslint/plugin-kit": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.4.0.tgz",
+ "integrity": "sha512-sB5uyeq+dwCWyPi31B2gQlVlo+j5brPlWx4yZBrEaRo/nhdDE8Xke1gsGgtiBdaBTxuTkceLVuVt/pclrasb0A==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@eslint/core": "^0.16.0",
+ "levn": "^0.4.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ }
+ },
+ "node_modules/@humanfs/core": {
+ "version": "0.19.1",
+ "resolved": "https://registry.npmjs.org/@humanfs/core/-/core-0.19.1.tgz",
+ "integrity": "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanfs/node": {
+ "version": "0.16.7",
+ "resolved": "https://registry.npmjs.org/@humanfs/node/-/node-0.16.7.tgz",
+ "integrity": "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "dependencies": {
+ "@humanfs/core": "^0.19.1",
+ "@humanwhocodes/retry": "^0.4.0"
+ },
+ "engines": {
+ "node": ">=18.18.0"
+ }
+ },
+ "node_modules/@humanwhocodes/module-importer": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz",
+ "integrity": "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.22"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@humanwhocodes/retry": {
+ "version": "0.4.3",
+ "resolved": "https://registry.npmjs.org/@humanwhocodes/retry/-/retry-0.4.3.tgz",
+ "integrity": "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=18.18"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/nzakas"
+ }
+ },
+ "node_modules/@isaacs/balanced-match": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz",
+ "integrity": "sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@isaacs/brace-expansion": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz",
+ "integrity": "sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@isaacs/balanced-match": "^4.0.1"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/@isaacs/cliui": {
+ "version": "8.0.2",
+ "resolved": "https://registry.npmjs.org/@isaacs/cliui/-/cliui-8.0.2.tgz",
+ "integrity": "sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^5.1.2",
+ "string-width-cjs": "npm:string-width@^4.2.0",
+ "strip-ansi": "^7.0.1",
+ "strip-ansi-cjs": "npm:strip-ansi@^6.0.1",
+ "wrap-ansi": "^8.1.0",
+ "wrap-ansi-cjs": "npm:wrap-ansi@^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/@isaacs/fs-minipass": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/@isaacs/fs-minipass/-/fs-minipass-4.0.1.tgz",
+ "integrity": "sha512-wgm9Ehl2jpeqP3zw/7mo3kRHFp5MEDhqAdwy1fTGkHAwnkGOVsgpvQhL8B5n1qlb01jV3n/bI0ZfZp5lWA1k4w==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "minipass": "^7.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz",
+ "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==",
+ "license": "ISC",
+ "dependencies": {
+ "camelcase": "^5.3.1",
+ "find-up": "^4.1.0",
+ "get-package-type": "^0.1.0",
+ "js-yaml": "^3.13.1",
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/argparse": {
+ "version": "1.0.10",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
+ "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
+ "license": "MIT",
+ "dependencies": {
+ "sprintf-js": "~1.0.2"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/js-yaml": {
+ "version": "3.14.1",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
+ "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^1.0.7",
+ "esprima": "^4.0.0"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/load-nyc-config/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@istanbuljs/schema": {
+ "version": "0.1.3",
+ "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz",
+ "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/console": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/console/-/console-29.7.0.tgz",
+ "integrity": "sha512-5Ni4CU7XHQi32IJ398EEP4RrB8eV09sXP2ROqD4bksHrnTree52PsxvX8tpL8LvTZ3pFzXyPbNQReSN41CAhOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/console/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/console/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/core": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/core/-/core-29.7.0.tgz",
+ "integrity": "sha512-n7aeXWKMnGtDA48y8TLWJPJmLmmZ642Ceo78cYWEpiD7FzDgmNDV/GCVRorPABdXLJZ/9wzzgZAlHjXjxDHGsg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/reporters": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-changed-files": "^29.7.0",
+ "jest-config": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-resolve-dependencies": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/core/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/core/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/core/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/core/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/environment": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-29.7.0.tgz",
+ "integrity": "sha512-aQIfHDq33ExsN4jP1NWGXhxgQ/wixs60gDiKO+XVMd8Mn0NWPWgc34ZQDTb2jKaUWQ7MuwoitXAsN2XVXNMpAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-8uMeAMycttpva3P1lBHB8VciS9V0XAr3GymPpipdyQXbBcuhkLQOSe8E/p92RyAdToS6ZD1tFkX+CkhoECE0dQ==",
+ "license": "MIT",
+ "dependencies": {
+ "expect": "^29.7.0",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/expect-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/expect-utils/-/expect-utils-29.7.0.tgz",
+ "integrity": "sha512-GlsNBWiFQFCVi9QVSx7f5AgMeLxe9YCCs5PuP2O2LdjDAA8Jh9eX7lA1Jq/xdXw3Wb3hyvlFNfZIfcRetSzYcA==",
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.6.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/fake-timers": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-29.7.0.tgz",
+ "integrity": "sha512-q4DH1Ha4TTFPdxLsqDXK1d3+ioSL7yL5oCMJZgDYm6i+6CygW5E5xVr/D1HdsGxjt1ZWSfUAs9OxSB/BNelWrQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@sinonjs/fake-timers": "^10.0.2",
+ "@types/node": "*",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/globals": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-29.7.0.tgz",
+ "integrity": "sha512-mpiz3dutLbkW2MNFubUGUEVLkTGiqW6yLVTA+JbP6fI6J5iL9Y0Nlg8k95pcF8ctKwCS7WVxteBs29hhfAotzQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "jest-mock": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/reporters": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-29.7.0.tgz",
+ "integrity": "sha512-DApq0KJbJOEzAFYjHADNNxAE3KbhxQB1y5Kplb5Waqw6zVbuWatSnMjE5gs8FUgEPmNsnZA3NCWl9NG0ia04Pg==",
+ "license": "MIT",
+ "dependencies": {
+ "@bcoe/v8-coverage": "^0.2.3",
+ "@jest/console": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "exit": "^0.1.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "istanbul-lib-coverage": "^3.0.0",
+ "istanbul-lib-instrument": "^6.0.0",
+ "istanbul-lib-report": "^3.0.0",
+ "istanbul-lib-source-maps": "^4.0.0",
+ "istanbul-reports": "^3.1.3",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "slash": "^3.0.0",
+ "string-length": "^4.0.1",
+ "strip-ansi": "^6.0.0",
+ "v8-to-istanbul": "^9.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/istanbul-lib-source-maps": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.1.tgz",
+ "integrity": "sha512-n3s8EwkdFIJCG3BPKBYvskgXGoy88ARzvegkitk60NxRdwltLOTaH7CUiMRXvwYorl0Q712iEjcWB+fK/MrWVw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0",
+ "source-map": "^0.6.1"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/@jest/reporters/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/@jest/schemas": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/schemas/-/schemas-29.6.3.tgz",
+ "integrity": "sha512-mo5j5X+jIZmJQveBKeS/clAueipV7KgiX1vMgCxam1RNYiqE1w62n0/tJJnHtjW8ZHcQco5gY85jA3mi0L+nSA==",
+ "license": "MIT",
+ "dependencies": {
+ "@sinclair/typebox": "^0.27.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/source-map": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-29.6.3.tgz",
+ "integrity": "sha512-MHjT95QuipcPrpLM+8JMSzFx6eHp5Bm+4XeFDJlwsvVBjmKNiIAvasGK2fxz2WbGRlnvqehFbh07MMa7n3YJnw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "callsites": "^3.0.0",
+ "graceful-fs": "^4.2.9"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-result": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-29.7.0.tgz",
+ "integrity": "sha512-Fdx+tv6x1zlkJPcWXmMDAG2HBnaR9XPSd5aDWQVsfrZmLVT3lU1cwyxLgRmXR9yrq4NBoEm9BMsfgFzTQAbJYA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "collect-v8-coverage": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/test-sequencer": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-29.7.0.tgz",
+ "integrity": "sha512-GQwJ5WZVrKnOJuiYiAF52UNUJXgTZx1NHjFSEB0qEMmSZKAkdMoIzw/Cj6x6NF4AvV23AUqDpFzQkN/eYCYTxw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-29.7.0.tgz",
+ "integrity": "sha512-ok/BTPFzFKVMwO5eOHRrvnBVHdRy9IrsrW1GpMaQ9MCnilNLXQKmAX8s1YXDFaai9xJpac2ySzV0YeRRECr2Vw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/types": "^29.6.3",
+ "@jridgewell/trace-mapping": "^0.3.18",
+ "babel-plugin-istanbul": "^6.1.1",
+ "chalk": "^4.0.0",
+ "convert-source-map": "^2.0.0",
+ "fast-json-stable-stringify": "^2.1.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "pirates": "^4.0.4",
+ "slash": "^3.0.0",
+ "write-file-atomic": "^4.0.2"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/transform/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/transform/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jest/types": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/@jest/types/-/types-29.6.3.tgz",
+ "integrity": "sha512-u3UPsIilWKOM3F9CXtrG8LEJmNxwoCQC/XVj4IKYXvvpx7QIi/Kg1LI5uDmDpKlac62NUtX7eLjRh+jVZcLOzw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "@types/istanbul-lib-coverage": "^2.0.0",
+ "@types/istanbul-reports": "^3.0.0",
+ "@types/node": "*",
+ "@types/yargs": "^17.0.8",
+ "chalk": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/@jest/types/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/@jest/types/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/@jridgewell/gen-mapping": {
+ "version": "0.3.13",
+ "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.13.tgz",
+ "integrity": "sha512-2kkt/7niJ6MgEPxF0bYdQ6etZaA+fQvDcLKckhy1yIQOzaoKjBBjSj63/aLVjYE3qhRt5dvM+uUyfCg6UKCBbA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.0",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/remapping": {
+ "version": "2.3.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/remapping/-/remapping-2.3.5.tgz",
+ "integrity": "sha512-LI9u/+laYG4Ds1TDKSJW2YPrIlcVYOwi2fUC6xB43lueCjgxV4lffOCZCtYFiH6TNOX+tQKXx97T4IKHbhyHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/gen-mapping": "^0.3.5",
+ "@jridgewell/trace-mapping": "^0.3.24"
+ }
+ },
+ "node_modules/@jridgewell/resolve-uri": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz",
+ "integrity": "sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.0.0"
+ }
+ },
+ "node_modules/@jridgewell/sourcemap-codec": {
+ "version": "1.5.5",
+ "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.5.tgz",
+ "integrity": "sha512-cYQ9310grqxueWbl+WuIUIaiUaDcj7WOq5fVhEljNVgRfOUhY9fy2zTvfoqWsnebh8Sl70VScFbICvJnLKB0Og==",
+ "license": "MIT"
+ },
+ "node_modules/@jridgewell/trace-mapping": {
+ "version": "0.3.31",
+ "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.31.tgz",
+ "integrity": "sha512-zzNR+SdQSDJzc8joaeP8QQoCQr8NuYx2dIIytl1QeBEZHJ9uW6hebsrYgbz8hJwUQao3TWCMtmfV8Nu1twOLAw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/resolve-uri": "^3.1.0",
+ "@jridgewell/sourcemap-codec": "^1.4.14"
+ }
+ },
+ "node_modules/@nodelib/fs.scandir": {
+ "version": "2.1.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz",
+ "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "2.0.5",
+ "run-parallel": "^1.1.9"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.stat": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz",
+ "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@nodelib/fs.walk": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz",
+ "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.scandir": "2.1.5",
+ "fastq": "^1.6.0"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/@pkgjs/parseargs": {
+ "version": "0.11.0",
+ "resolved": "https://registry.npmjs.org/@pkgjs/parseargs/-/parseargs-0.11.0.tgz",
+ "integrity": "sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg==",
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "engines": {
+ "node": ">=14"
+ }
+ },
+ "node_modules/@rollup/plugin-typescript": {
+ "version": "12.1.4",
+ "resolved": "https://registry.npmjs.org/@rollup/plugin-typescript/-/plugin-typescript-12.1.4.tgz",
+ "integrity": "sha512-s5Hx+EtN60LMlDBvl5f04bEiFZmAepk27Q+mr85L/00zPDn1jtzlTV6FWn81MaIwqfWzKxmOJrBWHU6vtQyedQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@rollup/pluginutils": "^5.1.0",
+ "resolve": "^1.22.1"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^2.14.0||^3.0.0||^4.0.0",
+ "tslib": "*",
+ "typescript": ">=3.7.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ },
+ "tslib": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/pluginutils": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/@rollup/pluginutils/-/pluginutils-5.3.0.tgz",
+ "integrity": "sha512-5EdhGZtnu3V88ces7s53hhfK5KSASnJZv8Lulpc04cWO3REESroJXg73DFsOmgbU2BhwV0E20bu2IDZb3VKW4Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0",
+ "estree-walker": "^2.0.2",
+ "picomatch": "^4.0.2"
+ },
+ "engines": {
+ "node": ">=14.0.0"
+ },
+ "peerDependencies": {
+ "rollup": "^1.20.0||^2.0.0||^3.0.0||^4.0.0"
+ },
+ "peerDependenciesMeta": {
+ "rollup": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@rollup/rollup-android-arm-eabi": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.52.4.tgz",
+ "integrity": "sha512-BTm2qKNnWIQ5auf4deoetINJm2JzvihvGb9R6K/ETwKLql/Bb3Eg2H1FBp1gUb4YGbydMA3jcmQTR73q7J+GAA==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-android-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.52.4.tgz",
+ "integrity": "sha512-P9LDQiC5vpgGFgz7GSM6dKPCiqR3XYN1WwJKA4/BUVDjHpYsf3iBEmVz62uyq20NGYbiGPR5cNHI7T1HqxNs2w==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "android"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.52.4.tgz",
+ "integrity": "sha512-QRWSW+bVccAvZF6cbNZBJwAehmvG9NwfWHwMy4GbWi/BQIA/laTIktebT2ipVjNncqE6GLPxOok5hsECgAxGZg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-darwin-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.52.4.tgz",
+ "integrity": "sha512-hZgP05pResAkRJxL1b+7yxCnXPGsXU0fG9Yfd6dUaoGk+FhdPKCJ5L1Sumyxn8kvw8Qi5PvQ8ulenUbRjzeCTw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.52.4.tgz",
+ "integrity": "sha512-xmc30VshuBNUd58Xk4TKAEcRZHaXlV+tCxIXELiE9sQuK3kG8ZFgSPi57UBJt8/ogfhAF5Oz4ZSUBN77weM+mQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-freebsd-x64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.52.4.tgz",
+ "integrity": "sha512-WdSLpZFjOEqNZGmHflxyifolwAiZmDQzuOzIq9L27ButpCVpD7KzTRtEG1I0wMPFyiyUdOO+4t8GvrnBLQSwpw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "freebsd"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-gnueabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.52.4.tgz",
+ "integrity": "sha512-xRiOu9Of1FZ4SxVbB0iEDXc4ddIcjCv2aj03dmW8UrZIW7aIQ9jVJdLBIhxBI+MaTnGAKyvMwPwQnoOEvP7FgQ==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm-musleabihf": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.52.4.tgz",
+ "integrity": "sha512-FbhM2p9TJAmEIEhIgzR4soUcsW49e9veAQCziwbR+XWB2zqJ12b4i/+hel9yLiD8pLncDH4fKIPIbt5238341Q==",
+ "cpu": [
+ "arm"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.52.4.tgz",
+ "integrity": "sha512-4n4gVwhPHR9q/g8lKCyz0yuaD0MvDf7dV4f9tHt0C73Mp8h38UCtSCSE6R9iBlTbXlmA8CjpsZoujhszefqueg==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-arm64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.52.4.tgz",
+ "integrity": "sha512-u0n17nGA0nvi/11gcZKsjkLj1QIpAuPFQbR48Subo7SmZJnGxDpspyw2kbpuoQnyK+9pwf3pAoEXerJs/8Mi9g==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-loong64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-loong64-gnu/-/rollup-linux-loong64-gnu-4.52.4.tgz",
+ "integrity": "sha512-0G2c2lpYtbTuXo8KEJkDkClE/+/2AFPdPAbmaHoE870foRFs4pBrDehilMcrSScrN/fB/1HTaWO4bqw+ewBzMQ==",
+ "cpu": [
+ "loong64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-ppc64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-ppc64-gnu/-/rollup-linux-ppc64-gnu-4.52.4.tgz",
+ "integrity": "sha512-teSACug1GyZHmPDv14VNbvZFX779UqWTsd7KtTM9JIZRDI5NUwYSIS30kzI8m06gOPB//jtpqlhmraQ68b5X2g==",
+ "cpu": [
+ "ppc64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.52.4.tgz",
+ "integrity": "sha512-/MOEW3aHjjs1p4Pw1Xk4+3egRevx8Ji9N6HUIA1Ifh8Q+cg9dremvFCUbOX2Zebz80BwJIgCBUemjqhU5XI5Eg==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-riscv64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-riscv64-musl/-/rollup-linux-riscv64-musl-4.52.4.tgz",
+ "integrity": "sha512-1HHmsRyh845QDpEWzOFtMCph5Ts+9+yllCrREuBR/vg2RogAQGGBRC8lDPrPOMnrdOJ+mt1WLMOC2Kao/UwcvA==",
+ "cpu": [
+ "riscv64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-s390x-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.52.4.tgz",
+ "integrity": "sha512-seoeZp4L/6D1MUyjWkOMRU6/iLmCU2EjbMTyAG4oIOs1/I82Y5lTeaxW0KBfkUdHAWN7j25bpkt0rjnOgAcQcA==",
+ "cpu": [
+ "s390x"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-Wi6AXf0k0L7E2gteNsNHUs7UMwCIhsCTs6+tqQ5GPwVRWMaflqGec4Sd8n6+FNFDw9vGcReqk2KzBDhCa1DLYg==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-linux-x64-musl": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.52.4.tgz",
+ "integrity": "sha512-dtBZYjDmCQ9hW+WgEkaffvRRCKm767wWhxsFW3Lw86VXz/uJRuD438/XvbZT//B96Vs8oTA8Q4A0AfHbrxP9zw==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "linux"
+ ]
+ },
+ "node_modules/@rollup/rollup-openharmony-arm64": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-openharmony-arm64/-/rollup-openharmony-arm64-4.52.4.tgz",
+ "integrity": "sha512-1ox+GqgRWqaB1RnyZXL8PD6E5f7YyRUJYnCqKpNzxzP0TkaUh112NDrR9Tt+C8rJ4x5G9Mk8PQR3o7Ku2RKqKA==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "openharmony"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-arm64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.52.4.tgz",
+ "integrity": "sha512-8GKr640PdFNXwzIE0IrkMWUNUomILLkfeHjXBi/nUvFlpZP+FA8BKGKpacjW6OUUHaNI6sUURxR2U2g78FOHWQ==",
+ "cpu": [
+ "arm64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-ia32-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.52.4.tgz",
+ "integrity": "sha512-AIy/jdJ7WtJ/F6EcfOb2GjR9UweO0n43jNObQMb6oGxkYTfLcnN7vYYpG+CN3lLxrQkzWnMOoNSHTW54pgbVxw==",
+ "cpu": [
+ "ia32"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-gnu": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-gnu/-/rollup-win32-x64-gnu-4.52.4.tgz",
+ "integrity": "sha512-UF9KfsH9yEam0UjTwAgdK0anlQ7c8/pWPU2yVjyWcF1I1thABt6WXE47cI71pGiZ8wGvxohBoLnxM04L/wj8mQ==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@rollup/rollup-win32-x64-msvc": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.52.4.tgz",
+ "integrity": "sha512-bf9PtUa0u8IXDVxzRToFQKsNCRz9qLYfR/MpECxl4mRoWYjAeFjgxj1XdZr2M/GNVpT05p+LgQOHopYDlUu6/w==",
+ "cpu": [
+ "x64"
+ ],
+ "dev": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "win32"
+ ]
+ },
+ "node_modules/@sinclair/typebox": {
+ "version": "0.27.8",
+ "resolved": "https://registry.npmjs.org/@sinclair/typebox/-/typebox-0.27.8.tgz",
+ "integrity": "sha512-+Fj43pSMwJs4KRrH/938Uf+uAELIgVBmQzg/q1YG10djyfA3TnrU8N8XzqCh/okZdszqBQTZf96idMfE5lnwTA==",
+ "license": "MIT"
+ },
+ "node_modules/@sinonjs/commons": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-3.0.1.tgz",
+ "integrity": "sha512-K3mCHKQ9sVh8o1C9cxkwxaOmXoAMlDxC1mYyHrjqOWEcBjYr76t96zL2zlj5dUGZ3HSw240X1qgH3Mjf1yJWpQ==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "type-detect": "4.0.8"
+ }
+ },
+ "node_modules/@sinonjs/fake-timers": {
+ "version": "10.3.0",
+ "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-10.3.0.tgz",
+ "integrity": "sha512-V4BG07kuYSUkTCSBHG8G8TNhM+F19jXFWnQtzj+we8DrkpSBCee9Z3Ms8yiGer/dlmhe35/Xdgyo3/0rQKg7YA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@sinonjs/commons": "^3.0.0"
+ }
+ },
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.11.tgz",
+ "integrity": "sha512-DcRjDCujK/kCk/cUe8Xz8ZSpm8mS3mNNpta+jGCA6USEDfktlNvm1+IuZ9eTcDbNk41BHwpHHeW+N1lKCz4zOw==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.11",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz",
+ "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz",
+ "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.4.tgz",
+ "integrity": "sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/@tsconfig/node22": {
+ "version": "22.0.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node22/-/node22-22.0.2.tgz",
+ "integrity": "sha512-Kmwj4u8sDRDrMYRoN9FDEcXD8UpBSaPQQ24Gz+Gamqfm7xxn+GBR7ge/Z7pK8OXNGyUzbSwJj+TH6B+DS/epyA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/babel__core": {
+ "version": "7.20.5",
+ "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.20.5.tgz",
+ "integrity": "sha512-qoQprZvz5wQFJwMDqeseRXWv3rqMvhgpbXFfVyWhbx9X47POIA6i/+dXefEmZKoAgOaTdaIgNSMqMIU61yRyzA==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.20.7",
+ "@babel/types": "^7.20.7",
+ "@types/babel__generator": "*",
+ "@types/babel__template": "*",
+ "@types/babel__traverse": "*"
+ }
+ },
+ "node_modules/@types/babel__generator": {
+ "version": "7.27.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.27.0.tgz",
+ "integrity": "sha512-ufFd2Xi92OAVPYsy+P4n7/U7e68fex0+Ee8gSG9KX7eo084CWiQ4sdxktvdl0bOPupXtVJPY19zk6EwWqUQ8lg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__template": {
+ "version": "7.4.4",
+ "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.4.tgz",
+ "integrity": "sha512-h/NUaSyG5EyxBIp8YRxo4RMe2/qQgvyowRwVMzhYhBCONbW8PUsg4lkFMrhgZhUe5z3L3MiLDuvyJ/CaPa2A8A==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.1.0",
+ "@babel/types": "^7.0.0"
+ }
+ },
+ "node_modules/@types/babel__traverse": {
+ "version": "7.28.0",
+ "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.28.0.tgz",
+ "integrity": "sha512-8PvcXf70gTDZBgt9ptxJ8elBeBjcLOAcOtoO/mPJjtji1+CdGbHgm77om1GrsPxsiE+uXIpNSK64UYaIwQXd4Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/types": "^7.28.2"
+ }
+ },
+ "node_modules/@types/estree": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@types/estree/-/estree-1.0.8.tgz",
+ "integrity": "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/graceful-fs": {
+ "version": "4.1.9",
+ "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.9.tgz",
+ "integrity": "sha512-olP3sd1qOEe5dXTSaFvQG+02VdRXcdytWLAZsAq1PecU8uqQAhkrnbli7DagjtXKW/Bl7YJbUsa8MPcuc8LHEQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*"
+ }
+ },
+ "node_modules/@types/istanbul-lib-coverage": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.6.tgz",
+ "integrity": "sha512-2QF/t/auWm0lsy8XtKVPG19v3sSOQlJe/YHZgfjb/KBBHOGSV+J2q/S671rcq9uTBrLAXmZpqJiaQbMT+zNU1w==",
+ "license": "MIT"
+ },
+ "node_modules/@types/istanbul-lib-report": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.3.tgz",
+ "integrity": "sha512-NQn7AHQnk/RSLOxrBbGyJM/aVQ+pjj5HCgasFxc0K/KhoATfQ/47AyUl15I2yBUpihjmas+a+VJBOqecrFH+uA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-coverage": "*"
+ }
+ },
+ "node_modules/@types/istanbul-reports": {
+ "version": "3.0.4",
+ "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.4.tgz",
+ "integrity": "sha512-pk2B1NWalF9toCRu6gjBzR69syFjP4Od8WRAX+0mmf9lAjCRicLOWc+ZrxZHx/0XRjotgkF9t6iaMJ+aXcOdZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/istanbul-lib-report": "*"
+ }
+ },
+ "node_modules/@types/json-schema": {
+ "version": "7.0.15",
+ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.15.tgz",
+ "integrity": "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/node": {
+ "version": "24.7.1",
+ "resolved": "https://registry.npmjs.org/@types/node/-/node-24.7.1.tgz",
+ "integrity": "sha512-CmyhGZanP88uuC5GpWU9q+fI61j2SkhO3UGMUdfYRE6Bcy0ccyzn1Rqj9YAB/ZY4kOXmNf0ocah5GtphmLMP6Q==",
+ "license": "MIT",
+ "dependencies": {
+ "undici-types": "~7.14.0"
+ }
+ },
+ "node_modules/@types/stack-utils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.3.tgz",
+ "integrity": "sha512-9aEbYZ3TbYMznPdcdr3SmIrLXwC/AKZXQeCf9Pgao5CKb8CyHuEX5jzWPTkvregvhRJHcpRO6BFoGW9ycaOkYw==",
+ "license": "MIT"
+ },
+ "node_modules/@types/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/@types/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-xevGOReSYGM7g/kUBZzPqCrR/KYAo+F0yiPc85WFTJa0MSLtyFTVTU6cJu/aV4mid7IffDIWqo69THF2o4JiEQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/strip-json-comments": {
+ "version": "0.0.30",
+ "resolved": "https://registry.npmjs.org/@types/strip-json-comments/-/strip-json-comments-0.0.30.tgz",
+ "integrity": "sha512-7NQmHra/JILCd1QqpSzl8+mJRc8ZHz3uDm8YV1Ks9IhK0epEiTw8aIErbvH9PI+6XbqhyIQy3462nEsn7UVzjQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/@types/yargs": {
+ "version": "17.0.33",
+ "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-17.0.33.tgz",
+ "integrity": "sha512-WpxBCKWPLr4xSsHgz511rFJAM+wS28w2zEO1QDNY5zM/S8ok70NNfztH0xwhqKyaK0OHCbN98LDAZuy1ctxDkA==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/yargs-parser": "*"
+ }
+ },
+ "node_modules/@types/yargs-parser": {
+ "version": "21.0.3",
+ "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-21.0.3.tgz",
+ "integrity": "sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==",
+ "license": "MIT"
+ },
+ "node_modules/@typescript-eslint/eslint-plugin": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.0.tgz",
+ "integrity": "sha512-hA8gxBq4ukonVXPy0OKhiaUh/68D0E88GSmtC1iAEnGaieuDi38LhS7jdCHRLi6ErJBNDGCzvh5EnzdPwUc0DA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/regexpp": "^4.10.0",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/type-utils": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
+ "graphemer": "^1.4.0",
+ "ignore": "^7.0.0",
+ "natural-compare": "^1.4.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "@typescript-eslint/parser": "^8.46.0",
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/eslint-plugin/node_modules/ignore": {
+ "version": "7.0.5",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-7.0.5.tgz",
+ "integrity": "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/@typescript-eslint/parser": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.46.0.tgz",
+ "integrity": "sha512-n1H6IcDhmmUEG7TNVSspGmiHHutt7iVKtZwRppD7e04wha5MrkV1h3pti9xQLcCMt6YWsncpoT0HMjkH1FNwWQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/project-service": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/project-service/-/project-service-8.46.0.tgz",
+ "integrity": "sha512-OEhec0mH+U5Je2NZOeK1AbVCdm0ChyapAyTeXVIYTPXDJ3F07+cu87PPXcGoYqZ7M9YJVvFnfpGg1UmCIqM+QQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/tsconfig-utils": "^8.46.0",
+ "@typescript-eslint/types": "^8.46.0",
+ "debug": "^4.3.4"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/scope-manager": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.46.0.tgz",
+ "integrity": "sha512-lWETPa9XGcBes4jqAMYD9fW0j4n6hrPtTJwWDmtqgFO/4HF4jmdH/Q6wggTw5qIT5TXjKzbt7GsZUBnWoO3dqw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/tsconfig-utils": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.0.tgz",
+ "integrity": "sha512-WrYXKGAHY836/N7zoK/kzi6p8tXFhasHh8ocFL9VZSAkvH956gfeRfcnhs3xzRy8qQ/dq3q44v1jvQieMFg2cw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/type-utils": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.46.0.tgz",
+ "integrity": "sha512-hy+lvYV1lZpVs2jRaEYvgCblZxUoJiPyCemwbQZ+NGulWkQRy0HRPYAoef/CNSzaLt+MLvMptZsHXHlkEilaeg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0",
+ "debug": "^4.3.4",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/types": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.46.0.tgz",
+ "integrity": "sha512-bHGGJyVjSE4dJJIO5yyEWt/cHyNwga/zXGJbJJ8TiO01aVREK6gCTu3L+5wrkb1FbDkQ+TKjMNe9R/QQQP9+rA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.0.tgz",
+ "integrity": "sha512-ekDCUfVpAKWJbRfm8T1YRrCot1KFxZn21oV76v5Fj4tr7ELyk84OS+ouvYdcDAwZL89WpEkEj2DKQ+qg//+ucg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/project-service": "8.46.0",
+ "@typescript-eslint/tsconfig-utils": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/visitor-keys": "8.46.0",
+ "debug": "^4.3.4",
+ "fast-glob": "^3.3.2",
+ "is-glob": "^4.0.3",
+ "minimatch": "^9.0.4",
+ "semver": "^7.6.0",
+ "ts-api-utils": "^2.1.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/typescript-estree/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/@typescript-eslint/utils": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.46.0.tgz",
+ "integrity": "sha512-nD6yGWPj1xiOm4Gk0k6hLSZz2XkNXhuYmyIrOWcHoPuAhjT9i5bAG+xbWPgFeNR8HPHHtpNKdYUXJl/D3x7f5g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.7.0",
+ "@typescript-eslint/scope-manager": "8.46.0",
+ "@typescript-eslint/types": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/@typescript-eslint/visitor-keys": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.0.tgz",
+ "integrity": "sha512-FrvMpAK+hTbFy7vH5j1+tMYHMSKLE6RzluFJlkFNKD0p9YsUT75JlBSmr5so3QRzvMwU5/bIEdeNrxm8du8l3Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/types": "8.46.0",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ }
+ },
+ "node_modules/@vitest/coverage-v8": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/coverage-v8/-/coverage-v8-2.1.9.tgz",
+ "integrity": "sha512-Z2cOr0ksM00MpEfyVE8KXIYPEcBFxdbLSs56L8PO0QQMxt/6bDj45uQfxoc96v05KW3clk7vvgP0qfDit9DmfQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@ampproject/remapping": "^2.3.0",
+ "@bcoe/v8-coverage": "^0.2.3",
+ "debug": "^4.3.7",
+ "istanbul-lib-coverage": "^3.2.2",
+ "istanbul-lib-report": "^3.0.1",
+ "istanbul-lib-source-maps": "^5.0.6",
+ "istanbul-reports": "^3.1.7",
+ "magic-string": "^0.30.12",
+ "magicast": "^0.3.5",
+ "std-env": "^3.8.0",
+ "test-exclude": "^7.0.1",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@vitest/browser": "2.1.9",
+ "vitest": "2.1.9"
+ },
+ "peerDependenciesMeta": {
+ "@vitest/browser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/expect": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/expect/-/expect-2.1.9.tgz",
+ "integrity": "sha512-UJCIkTBenHeKT1TTlKMJWy1laZewsRIzYighyYiJKZreqtdxSos/S1t+ktRMQWu2CKqaarrkeszJx1cgC5tGZw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.9",
+ "@vitest/utils": "2.1.9",
+ "chai": "^5.1.2",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/mocker": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/mocker/-/mocker-2.1.9.tgz",
+ "integrity": "sha512-tVL6uJgoUdi6icpxmdrn5YNo3g3Dxv+IHJBr0GXHaEdTcw3F+cPKnsXFhli6nO+f/6SDKPHEK1UN+k+TQv0Ehg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/spy": "2.1.9",
+ "estree-walker": "^3.0.3",
+ "magic-string": "^0.30.12"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "msw": "^2.4.9",
+ "vite": "^5.0.0"
+ },
+ "peerDependenciesMeta": {
+ "msw": {
+ "optional": true
+ },
+ "vite": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/@vitest/mocker/node_modules/estree-walker": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-3.0.3.tgz",
+ "integrity": "sha512-7RUKfXgSMMkzt6ZuXmqapOurLGPPfgj6l9uRZ7lRGolvk0y2yocc35LdcxKC5PQZdn2DMqioAQ2NoWcrTKmm6g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "^1.0.0"
+ }
+ },
+ "node_modules/@vitest/pretty-format": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/pretty-format/-/pretty-format-2.1.9.tgz",
+ "integrity": "sha512-KhRIdGV2U9HOUzxfiHmY8IFHTdqtOhIzCpd8WRdJiE7D/HUcZVD0EgQCVjm+Q9gkUXWgBvMmTtZgIG48wq7sOQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/runner": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/runner/-/runner-2.1.9.tgz",
+ "integrity": "sha512-ZXSSqTFIrzduD63btIfEyOmNcBmQvgOVsPNPe0jYtESiXkhd8u2erDLnMxmGrDCwHCCHE7hxwRDCT3pt0esT4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/utils": "2.1.9",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/snapshot": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/snapshot/-/snapshot-2.1.9.tgz",
+ "integrity": "sha512-oBO82rEjsxLNJincVhLhaxxZdEtV0EFHMK5Kmx5sJ6H9L183dHECjiefOAdnqpIgT5eZwT04PoggUnW88vOBNQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "2.1.9",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/spy": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/spy/-/spy-2.1.9.tgz",
+ "integrity": "sha512-E1B35FwzXXTs9FHNK6bDszs7mtydNi5MIfUWpceJ8Xbfb1gBMscAnwLbEu+B44ed6W3XjL9/ehLPHR1fkf1KLQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "tinyspy": "^3.0.2"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/@vitest/utils": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/@vitest/utils/-/utils-2.1.9.tgz",
+ "integrity": "sha512-v0psaMSkNJ3A2NMrUEHFRzJtDPFn+/VWZ5WxImB21T9fjucJRmS7xCS3ppEnARb9y11OAzaD+P2Ps+b+BGX5iQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/pretty-format": "2.1.9",
+ "loupe": "^3.1.2",
+ "tinyrainbow": "^1.2.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/acorn": {
+ "version": "8.15.0",
+ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz",
+ "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==",
+ "devOptional": true,
+ "license": "MIT",
+ "bin": {
+ "acorn": "bin/acorn"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/acorn-jsx": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
+ "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
+ "dev": true,
+ "license": "MIT",
+ "peerDependencies": {
+ "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
+ }
+ },
+ "node_modules/acorn-walk": {
+ "version": "8.3.4",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.3.4.tgz",
+ "integrity": "sha512-ueEepnujpqee2o5aIYnvHU6C0A42MNdsIDeqy5BydrkuC5R1ZuUFnm27EeFJGoEHJQgn3uleRvmTXaJgfXbt4g==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "acorn": "^8.11.0"
+ },
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
+ "node_modules/ajv": {
+ "version": "6.12.6",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
+ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/algorand-msgpack": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/algorand-msgpack/-/algorand-msgpack-1.1.0.tgz",
+ "integrity": "sha512-08k7pBQnkaUB5p+jL7f1TRaUIlTSDE0cesFu1mD7llLao+1cAhtvvZmGE3OnisTd0xOn118QMw74SRqddqaYvw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">= 14"
+ }
+ },
+ "node_modules/algosdk": {
+ "version": "3.5.2",
+ "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-3.5.2.tgz",
+ "integrity": "sha512-frhGtZl1JvfrLRKmMvUm880wj4OiWsWo2FhbreNWh7pdFsKuWPj60fV682wt/CYefLI70iwHavPOwGBkTVt0VA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "algorand-msgpack": "^1.1.0",
+ "hi-base32": "^0.5.1",
+ "js-sha256": "^0.9.0",
+ "js-sha3": "^0.8.0",
+ "js-sha512": "^0.8.0",
+ "json-bigint": "^1.0.0",
+ "tweetnacl": "^1.0.3",
+ "vlq": "^2.0.4"
+ },
+ "engines": {
+ "node": ">=18.0.0"
+ }
+ },
+ "node_modules/algosdk/node_modules/js-sha256": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz",
+ "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/algosdk/node_modules/js-sha3": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz",
+ "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/algosdk/node_modules/js-sha512": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz",
+ "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/ansi-escapes": {
+ "version": "4.3.2",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
+ "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
+ "license": "MIT",
+ "dependencies": {
+ "type-fest": "^0.21.3"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ansi-regex": {
+ "version": "6.2.2",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-6.2.2.tgz",
+ "integrity": "sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-regex?sponsor=1"
+ }
+ },
+ "node_modules/ansi-styles": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-5.2.0.tgz",
+ "integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/anymatch": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz",
+ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==",
+ "license": "ISC",
+ "dependencies": {
+ "normalize-path": "^3.0.0",
+ "picomatch": "^2.0.4"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/anymatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/arcsecond": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/arcsecond/-/arcsecond-5.0.0.tgz",
+ "integrity": "sha512-J/fHdyadnsIencRsM6oUSsraCKG+Ni9Udcgr/eusxjTzX3SEQtCUQSpP0YtImFPfIK6DdT1nqwN0ng4FqNmwgA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/argparse": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
+ "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==",
+ "dev": true,
+ "license": "Python-2.0"
+ },
+ "node_modules/assertion-error": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-2.0.1.tgz",
+ "integrity": "sha512-Izi8RQcffqCeNVgFigKli1ssklIbpHnCYc6AknXGYoB6grJqyeby7jv12JUQgmTAnIDnbck1uxksT4dzN3PWBA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/astral-regex": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz",
+ "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-29.7.0.tgz",
+ "integrity": "sha512-BrvGY3xZSwEcCzKvKsCi2GgHqDqsYkOP4/by5xCgIwGXQxIEh+8ew3gmrE1y7XRR6LHZIj6yLYnUi/mm2KXKBg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/transform": "^29.7.0",
+ "@types/babel__core": "^7.1.14",
+ "babel-plugin-istanbul": "^6.1.1",
+ "babel-preset-jest": "^29.6.3",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.8.0"
+ }
+ },
+ "node_modules/babel-jest/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/babel-jest/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/babel-plugin-istanbul": {
+ "version": "6.1.1",
+ "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz",
+ "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/helper-plugin-utils": "^7.0.0",
+ "@istanbuljs/load-nyc-config": "^1.0.0",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-instrument": "^5.0.4",
+ "test-exclude": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/istanbul-lib-instrument": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.1.tgz",
+ "integrity": "sha512-pzqtp31nLv/XFOzXGuvhCb8qhjmTVo5vjVk19XE4CRlSWz0KoeJ3bw9XsA7nOp9YBf4qHjwBxkDzKcME/J29Yg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/core": "^7.12.3",
+ "@babel/parser": "^7.14.7",
+ "@istanbuljs/schema": "^0.1.2",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^6.3.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/semver": {
+ "version": "6.3.1",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
+ "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ }
+ },
+ "node_modules/babel-plugin-istanbul/node_modules/test-exclude": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz",
+ "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==",
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^7.1.4",
+ "minimatch": "^3.0.4"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/babel-plugin-jest-hoist": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.6.3.tgz",
+ "integrity": "sha512-ESAc/RJvGTFEzRwOTT4+lNDk/GNHMkKbNzsvT0qKRfDyyYTskxB5rnU2njIDYVxXCBHHEI1c0YwHob3WaYujOg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/template": "^7.3.3",
+ "@babel/types": "^7.3.3",
+ "@types/babel__core": "^7.1.14",
+ "@types/babel__traverse": "^7.0.6"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/babel-preset-current-node-syntax": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.2.0.tgz",
+ "integrity": "sha512-E/VlAEzRrsLEb2+dv8yp3bo4scof3l9nR4lrld+Iy5NyVqgVYUJnDAmunkhPMisRI32Qc4iRiz425d8vM++2fg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/plugin-syntax-async-generators": "^7.8.4",
+ "@babel/plugin-syntax-bigint": "^7.8.3",
+ "@babel/plugin-syntax-class-properties": "^7.12.13",
+ "@babel/plugin-syntax-class-static-block": "^7.14.5",
+ "@babel/plugin-syntax-import-attributes": "^7.24.7",
+ "@babel/plugin-syntax-import-meta": "^7.10.4",
+ "@babel/plugin-syntax-json-strings": "^7.8.3",
+ "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4",
+ "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3",
+ "@babel/plugin-syntax-numeric-separator": "^7.10.4",
+ "@babel/plugin-syntax-object-rest-spread": "^7.8.3",
+ "@babel/plugin-syntax-optional-catch-binding": "^7.8.3",
+ "@babel/plugin-syntax-optional-chaining": "^7.8.3",
+ "@babel/plugin-syntax-private-property-in-object": "^7.14.5",
+ "@babel/plugin-syntax-top-level-await": "^7.14.5"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0 || ^8.0.0-0"
+ }
+ },
+ "node_modules/babel-preset-jest": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-29.6.3.tgz",
+ "integrity": "sha512-0B3bhxR6snWXJZtR/RliHTDPRgn1sNHOR0yVtq/IiQFyuOVjFS+wuio/R4gSNkyYmKmJB4wGZv2NZanmKmTnNA==",
+ "license": "MIT",
+ "dependencies": {
+ "babel-plugin-jest-hoist": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": "^7.0.0"
+ }
+ },
+ "node_modules/balanced-match": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz",
+ "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==",
+ "license": "MIT"
+ },
+ "node_modules/base64-js": {
+ "version": "1.5.1",
+ "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz",
+ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/baseline-browser-mapping": {
+ "version": "2.8.16",
+ "resolved": "https://registry.npmjs.org/baseline-browser-mapping/-/baseline-browser-mapping-2.8.16.tgz",
+ "integrity": "sha512-OMu3BGQ4E7P1ErFsIPpbJh0qvDudM/UuJeHgkAvfWe+0HFJCXh+t/l8L6fVLR55RI/UbKrVLnAXZSVwd9ysWYw==",
+ "license": "Apache-2.0",
+ "bin": {
+ "baseline-browser-mapping": "dist/cli.js"
+ }
+ },
+ "node_modules/better-npm-audit": {
+ "version": "3.11.0",
+ "resolved": "https://registry.npmjs.org/better-npm-audit/-/better-npm-audit-3.11.0.tgz",
+ "integrity": "sha512-/Pt05DK6HQaRjWDc5McsCkJBZYfhgQGneKnxzPJExtRq38NttO1Hm30m0GVQeZogE94LVNBVrhWwVsoCo+at3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "commander": "^8.0.0",
+ "dayjs": "^1.10.6",
+ "lodash.get": "^4.4.2",
+ "semver": "^7.6.3",
+ "table": "^6.7.1"
+ },
+ "bin": {
+ "better-npm-audit": "index.js"
+ },
+ "engines": {
+ "node": ">= 8.12"
+ }
+ },
+ "node_modules/better-npm-audit/node_modules/commander": {
+ "version": "8.3.0",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-8.3.0.tgz",
+ "integrity": "sha512-OkTL9umf+He2DZkUq8f8J9of7yL6RJKI24dVITBmNfZBmri9zYZQrKkuXiKhyfPSu8tUhnVBB1iKXevvnlR4Ww==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/bignumber.js": {
+ "version": "9.3.1",
+ "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.3.1.tgz",
+ "integrity": "sha512-Ko0uX15oIUS7wJ3Rb30Fs6SkVbLmPBAKdlm7q9+ak9bbIeFf0MwuBsQV6z7+X768/cHsfg+WlysDWJcmthjsjQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/binary-extensions": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.3.0.tgz",
+ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/bn.js": {
+ "version": "4.12.2",
+ "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.2.tgz",
+ "integrity": "sha512-n4DSx829VRTRByMRGdjQ9iqsN0Bh4OolPsFnaZBLcbi8iXcB+kJ9s7EnRt4wILZNV3kPLHkRVfOc/HvhC3ovDw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/brace-expansion": {
+ "version": "1.1.12",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.12.tgz",
+ "integrity": "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==",
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0",
+ "concat-map": "0.0.1"
+ }
+ },
+ "node_modules/braces": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
+ "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
+ "license": "MIT",
+ "dependencies": {
+ "fill-range": "^7.1.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/brorand": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz",
+ "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/browserslist": {
+ "version": "4.26.3",
+ "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.26.3.tgz",
+ "integrity": "sha512-lAUU+02RFBuCKQPj/P6NgjlbCnLBMp4UtgTx7vNHd3XSIJF87s9a5rA3aH2yw3GS9DqZAUbOtZdCCiZeVRqt0w==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "baseline-browser-mapping": "^2.8.9",
+ "caniuse-lite": "^1.0.30001746",
+ "electron-to-chromium": "^1.5.227",
+ "node-releases": "^2.0.21",
+ "update-browserslist-db": "^1.1.3"
+ },
+ "bin": {
+ "browserslist": "cli.js"
+ },
+ "engines": {
+ "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7"
+ }
+ },
+ "node_modules/bs-logger": {
+ "version": "0.2.6",
+ "resolved": "https://registry.npmjs.org/bs-logger/-/bs-logger-0.2.6.tgz",
+ "integrity": "sha512-pd8DCoxmbgc7hyPKOvxtqNcjYoOsABPQdcCUjGp3d42VR2CX1ORhk2A87oqqu5R1kk+76nsxZupkmyd+MVtCog==",
+ "license": "MIT",
+ "dependencies": {
+ "fast-json-stable-stringify": "2.x"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/bser": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz",
+ "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "node-int64": "^0.4.0"
+ }
+ },
+ "node_modules/buffer": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz",
+ "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "base64-js": "^1.3.1",
+ "ieee754": "^1.2.1"
+ }
+ },
+ "node_modules/buffer-from": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz",
+ "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==",
+ "license": "MIT"
+ },
+ "node_modules/cac": {
+ "version": "6.7.14",
+ "resolved": "https://registry.npmjs.org/cac/-/cac-6.7.14.tgz",
+ "integrity": "sha512-b6Ilus+c3RrdDk+JhLKUAQfzzgLEPy6wcXqS7f/xe1EETvsDP6GORG7SFuOs6cID5YkqchW/LXZbX5bc8j7ZcQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/callsites": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
+ "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/camelcase": {
+ "version": "5.3.1",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz",
+ "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/caniuse-lite": {
+ "version": "1.0.30001749",
+ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001749.tgz",
+ "integrity": "sha512-0rw2fJOmLfnzCRbkm8EyHL8SvI2Apu5UbnQuTsJ0ClgrH8hcwFooJ1s5R0EP8o8aVrFu8++ae29Kt9/gZAZp/Q==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/caniuse-lite"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "CC-BY-4.0"
+ },
+ "node_modules/chai": {
+ "version": "5.3.3",
+ "resolved": "https://registry.npmjs.org/chai/-/chai-5.3.3.tgz",
+ "integrity": "sha512-4zNhdJD/iOjSH0A05ea+Ke6MU5mmpQcbQsSOkgdaUMJ9zTlDTD/GYlwohmIE2u0gaxHYiVHEn1Fw9mZ/ktJWgw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "assertion-error": "^2.0.1",
+ "check-error": "^2.1.1",
+ "deep-eql": "^5.0.1",
+ "loupe": "^3.1.0",
+ "pathval": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/chalk": {
+ "version": "5.6.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-5.6.2.tgz",
+ "integrity": "sha512-7NzBL0rN6fMUW+f7A6Io4h40qQlG+xGmtMxfbnH/K7TAtt8JQWVQK+6g0UXKMeVJoyV5EkkNsErQ8pVD3bLHbA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^12.17.0 || ^14.13 || >=16.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/change-case": {
+ "version": "5.4.4",
+ "resolved": "https://registry.npmjs.org/change-case/-/change-case-5.4.4.tgz",
+ "integrity": "sha512-HRQyTk2/YPEkt9TnUPbOpr64Uw3KOicFWPVBb+xiHvd6eBx/qPr9xqfBFDT8P2vWsvvz4jbEkfDe71W3VyNu2w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/char-regex": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz",
+ "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/check-error": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/check-error/-/check-error-2.1.1.tgz",
+ "integrity": "sha512-OAlb+T7V4Op9OwdkjmguYRqncdlx5JiofwOAUkmTF+jNdHwzTaTs4sRAGpzLF3oOz5xAyDGrPgeIDFQmDOTiJw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 16"
+ }
+ },
+ "node_modules/chokidar": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz",
+ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "anymatch": "~3.1.2",
+ "braces": "~3.0.2",
+ "glob-parent": "~5.1.2",
+ "is-binary-path": "~2.1.0",
+ "is-glob": "~4.0.1",
+ "normalize-path": "~3.0.0",
+ "readdirp": "~3.6.0"
+ },
+ "engines": {
+ "node": ">= 8.10.0"
+ },
+ "funding": {
+ "url": "https://paulmillr.com/funding/"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/chokidar/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/chownr": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/chownr/-/chownr-3.0.0.tgz",
+ "integrity": "sha512-+IxzY9BZOQd/XuYPRmrvEVjF/nqj5kgT4kEq7VofrDoM1MxoRjEWkrCC3EtLi59TVawxTAn+orJwFQcrqEN1+g==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/ci-info": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-3.9.0.tgz",
+ "integrity": "sha512-NIxF55hv4nSqQswkAeiOi1r83xy8JldOFDTWiug55KBu9Jnblncd2U6ViHmYgHf01TPZS77NJBhBMKdWj9HQMQ==",
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/sibiraj-s"
+ }
+ ],
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cjs-module-lexer": {
+ "version": "1.4.3",
+ "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-1.4.3.tgz",
+ "integrity": "sha512-9z8TZaGM1pfswYeXrUpzPrkx8UnWYdhJclsiYMm6x/w5+nN+8Tf/LnAgfLGQCm59qAOxU8WwHEq2vNwF6i4j+Q==",
+ "license": "MIT"
+ },
+ "node_modules/cliui": {
+ "version": "8.0.1",
+ "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz",
+ "integrity": "sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==",
+ "license": "ISC",
+ "dependencies": {
+ "string-width": "^4.2.0",
+ "strip-ansi": "^6.0.1",
+ "wrap-ansi": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/cliui/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/cliui/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/cliui/node_modules/wrap-ansi": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/co": {
+ "version": "4.6.0",
+ "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz",
+ "integrity": "sha512-QVb0dM5HvG+uaxitm8wONl7jltx8dqhfU33DcqtOZcLSVIKSDDLDi7+0LbAKiyI8hD9u42m2YxXSkMGWThaecQ==",
+ "license": "MIT",
+ "engines": {
+ "iojs": ">= 1.0.0",
+ "node": ">= 0.12.0"
+ }
+ },
+ "node_modules/collect-v8-coverage": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz",
+ "integrity": "sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q==",
+ "license": "MIT"
+ },
+ "node_modules/color-convert": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
+ "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
+ "license": "MIT",
+ "dependencies": {
+ "color-name": "~1.1.4"
+ },
+ "engines": {
+ "node": ">=7.0.0"
+ }
+ },
+ "node_modules/color-name": {
+ "version": "1.1.4",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
+ "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
+ "license": "MIT"
+ },
+ "node_modules/commander": {
+ "version": "14.0.1",
+ "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.1.tgz",
+ "integrity": "sha512-2JkV3gUZUVrbNA+1sjBOYLsMZ5cEEl8GTFP2a4AVz5hvasAMCQ1D2l2le/cX+pV4N6ZU17zjUahLpIXRrnWL8A==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=20"
+ }
+ },
+ "node_modules/concat-map": {
+ "version": "0.0.1",
+ "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
+ "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
+ "license": "MIT"
+ },
+ "node_modules/convert-source-map": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-2.0.0.tgz",
+ "integrity": "sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg==",
+ "license": "MIT"
+ },
+ "node_modules/create-jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/create-jest/-/create-jest-29.7.0.tgz",
+ "integrity": "sha512-Adz2bdH0Vq3F53KEMJOoftQFutWCukm6J24wbPWRO4k1kMY7gS7ds/uoJkNuV8wDCtWWnuwGcJwpWcih+zEW1Q==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "exit": "^0.1.2",
+ "graceful-fs": "^4.2.9",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "prompts": "^2.0.1"
+ },
+ "bin": {
+ "create-jest": "bin/create-jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/create-jest/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/create-jest/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/cross-spawn": {
+ "version": "7.0.6",
+ "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
+ "integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.1.0",
+ "shebang-command": "^2.0.0",
+ "which": "^2.0.1"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/cross-spawn/node_modules/isexe": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
+ "integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
+ "license": "ISC"
+ },
+ "node_modules/cross-spawn/node_modules/which": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
+ "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^2.0.0"
+ },
+ "bin": {
+ "node-which": "bin/node-which"
+ },
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/dayjs": {
+ "version": "1.11.18",
+ "resolved": "https://registry.npmjs.org/dayjs/-/dayjs-1.11.18.tgz",
+ "integrity": "sha512-zFBQ7WFRvVRhKcWoUh+ZA1g2HVgUbsZm9sbddh8EC5iv93sui8DVVz1Npvz+r6meo9VKfa8NyLWBsQK1VvIKPA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/debug": {
+ "version": "4.4.3",
+ "resolved": "https://registry.npmjs.org/debug/-/debug-4.4.3.tgz",
+ "integrity": "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==",
+ "license": "MIT",
+ "dependencies": {
+ "ms": "^2.1.3"
+ },
+ "engines": {
+ "node": ">=6.0"
+ },
+ "peerDependenciesMeta": {
+ "supports-color": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/dedent": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/dedent/-/dedent-1.7.0.tgz",
+ "integrity": "sha512-HGFtf8yhuhGhqO07SV79tRp+br4MnbdjeVxotpn1QBl30pcLLCQjX5b2295ll0fv8RKDKsmWYrl05usHM9CewQ==",
+ "license": "MIT",
+ "peerDependencies": {
+ "babel-plugin-macros": "^3.1.0"
+ },
+ "peerDependenciesMeta": {
+ "babel-plugin-macros": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/deep-eql": {
+ "version": "5.0.2",
+ "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-5.0.2.tgz",
+ "integrity": "sha512-h5k/5U50IJJFpzfL6nO9jaaumfjO/f2NjK/oYB2Djzm4p9L+3T9qWpZqZ2hAbLPuuYq9wrU08WQyBTL5GbPk5Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/deep-is": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
+ "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/deepmerge": {
+ "version": "4.3.1",
+ "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.3.1.tgz",
+ "integrity": "sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/detect-newline": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz",
+ "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "devOptional": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
+ "node_modules/diff-sequences": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-29.6.3.tgz",
+ "integrity": "sha512-EjePK1srD3P08o2j4f0ExnylqRs5B9tJjcp9t1krH2qRi8CCdsYfwe9JgSLurFBWwq4uOlipzfk5fHNvwFKr8Q==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/dotenv": {
+ "version": "16.6.1",
+ "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.6.1.tgz",
+ "integrity": "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://dotenvx.com"
+ }
+ },
+ "node_modules/dynamic-dedupe": {
+ "version": "0.3.0",
+ "resolved": "https://registry.npmjs.org/dynamic-dedupe/-/dynamic-dedupe-0.3.0.tgz",
+ "integrity": "sha512-ssuANeD+z97meYOqd50e04Ze5qp4bPqo8cCkI4TRjZkzAUgIDTrXV1R8QCdINpiI+hw14+rYazvTRdQrz0/rFQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "xtend": "^4.0.0"
+ }
+ },
+ "node_modules/eastasianwidth": {
+ "version": "0.2.0",
+ "resolved": "https://registry.npmjs.org/eastasianwidth/-/eastasianwidth-0.2.0.tgz",
+ "integrity": "sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/electron-to-chromium": {
+ "version": "1.5.234",
+ "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.5.234.tgz",
+ "integrity": "sha512-RXfEp2x+VRYn8jbKfQlRImzoJU01kyDvVPBmG39eU2iuRVhuS6vQNocB8J0/8GrIMLnPzgz4eW6WiRnJkTuNWg==",
+ "license": "ISC"
+ },
+ "node_modules/elliptic": {
+ "version": "6.6.1",
+ "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.6.1.tgz",
+ "integrity": "sha512-RaddvvMatK2LJHqFJ+YA4WysVN5Ita9E35botqIYspQ4TkRAlCicdzKOjlyv/1Za5RyTNn7di//eEV0uTAfe3g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bn.js": "^4.11.9",
+ "brorand": "^1.1.0",
+ "hash.js": "^1.0.0",
+ "hmac-drbg": "^1.0.1",
+ "inherits": "^2.0.4",
+ "minimalistic-assert": "^1.0.1",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/emittery": {
+ "version": "0.13.1",
+ "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.13.1.tgz",
+ "integrity": "sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/emittery?sponsor=1"
+ }
+ },
+ "node_modules/emoji-regex": {
+ "version": "9.2.2",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-9.2.2.tgz",
+ "integrity": "sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/error-ex": {
+ "version": "1.3.4",
+ "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.4.tgz",
+ "integrity": "sha512-sqQamAnR14VgCr1A618A3sGrygcpK+HEbenA/HiEAkkUwcZIIB/tgWqHFxWgOyDh4nB4JCRimh79dR5Ywc9MDQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-arrayish": "^0.2.1"
+ }
+ },
+ "node_modules/es-module-lexer": {
+ "version": "1.7.0",
+ "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-1.7.0.tgz",
+ "integrity": "sha512-jEQoCwk8hyb2AZziIOLhDqpm5+2ww5uIE6lkO/6jcOCusfk6LhMHpXXfBLXTZ7Ydyt0j4VoUQv6uGNYbdW+kBA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esbuild": {
+ "version": "0.25.0",
+ "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.25.0.tgz",
+ "integrity": "sha512-BXq5mqc8ltbaN34cDqWuYKyNhX8D/Z0J1xdtdQ8UcIIIyJyz+ZMKUt58tF3SrZ85jcfN/PZYhjR5uDQAYNVbuw==",
+ "dev": true,
+ "hasInstallScript": true,
+ "license": "MIT",
+ "bin": {
+ "esbuild": "bin/esbuild"
+ },
+ "engines": {
+ "node": ">=18"
+ },
+ "optionalDependencies": {
+ "@esbuild/aix-ppc64": "0.25.0",
+ "@esbuild/android-arm": "0.25.0",
+ "@esbuild/android-arm64": "0.25.0",
+ "@esbuild/android-x64": "0.25.0",
+ "@esbuild/darwin-arm64": "0.25.0",
+ "@esbuild/darwin-x64": "0.25.0",
+ "@esbuild/freebsd-arm64": "0.25.0",
+ "@esbuild/freebsd-x64": "0.25.0",
+ "@esbuild/linux-arm": "0.25.0",
+ "@esbuild/linux-arm64": "0.25.0",
+ "@esbuild/linux-ia32": "0.25.0",
+ "@esbuild/linux-loong64": "0.25.0",
+ "@esbuild/linux-mips64el": "0.25.0",
+ "@esbuild/linux-ppc64": "0.25.0",
+ "@esbuild/linux-riscv64": "0.25.0",
+ "@esbuild/linux-s390x": "0.25.0",
+ "@esbuild/linux-x64": "0.25.0",
+ "@esbuild/netbsd-arm64": "0.25.0",
+ "@esbuild/netbsd-x64": "0.25.0",
+ "@esbuild/openbsd-arm64": "0.25.0",
+ "@esbuild/openbsd-x64": "0.25.0",
+ "@esbuild/sunos-x64": "0.25.0",
+ "@esbuild/win32-arm64": "0.25.0",
+ "@esbuild/win32-ia32": "0.25.0",
+ "@esbuild/win32-x64": "0.25.0"
+ }
+ },
+ "node_modules/escalade": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.2.0.tgz",
+ "integrity": "sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/escape-string-regexp": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz",
+ "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/eslint": {
+ "version": "9.37.0",
+ "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.37.0.tgz",
+ "integrity": "sha512-XyLmROnACWqSxiGYArdef1fItQd47weqB7iwtfr9JHwRrqIXZdcFMvvEcL9xHCmL0SNsOvF0c42lWyM1U5dgig==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@eslint-community/eslint-utils": "^4.8.0",
+ "@eslint-community/regexpp": "^4.12.1",
+ "@eslint/config-array": "^0.21.0",
+ "@eslint/config-helpers": "^0.4.0",
+ "@eslint/core": "^0.16.0",
+ "@eslint/eslintrc": "^3.3.1",
+ "@eslint/js": "9.37.0",
+ "@eslint/plugin-kit": "^0.4.0",
+ "@humanfs/node": "^0.16.6",
+ "@humanwhocodes/module-importer": "^1.0.1",
+ "@humanwhocodes/retry": "^0.4.2",
+ "@types/estree": "^1.0.6",
+ "@types/json-schema": "^7.0.15",
+ "ajv": "^6.12.4",
+ "chalk": "^4.0.0",
+ "cross-spawn": "^7.0.6",
+ "debug": "^4.3.2",
+ "escape-string-regexp": "^4.0.0",
+ "eslint-scope": "^8.4.0",
+ "eslint-visitor-keys": "^4.2.1",
+ "espree": "^10.4.0",
+ "esquery": "^1.5.0",
+ "esutils": "^2.0.2",
+ "fast-deep-equal": "^3.1.3",
+ "file-entry-cache": "^8.0.0",
+ "find-up": "^5.0.0",
+ "glob-parent": "^6.0.2",
+ "ignore": "^5.2.0",
+ "imurmurhash": "^0.1.4",
+ "is-glob": "^4.0.0",
+ "json-stable-stringify-without-jsonify": "^1.0.1",
+ "lodash.merge": "^4.6.2",
+ "minimatch": "^3.1.2",
+ "natural-compare": "^1.4.0",
+ "optionator": "^0.9.3"
+ },
+ "bin": {
+ "eslint": "bin/eslint.js"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://eslint.org/donate"
+ },
+ "peerDependencies": {
+ "jiti": "*"
+ },
+ "peerDependenciesMeta": {
+ "jiti": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/eslint-scope": {
+ "version": "8.4.0",
+ "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-8.4.0.tgz",
+ "integrity": "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "esrecurse": "^4.3.0",
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint-visitor-keys": {
+ "version": "4.2.1",
+ "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-4.2.1.tgz",
+ "integrity": "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/eslint/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/eslint/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/espree": {
+ "version": "10.4.0",
+ "resolved": "https://registry.npmjs.org/espree/-/espree-10.4.0.tgz",
+ "integrity": "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "acorn": "^8.15.0",
+ "acorn-jsx": "^5.3.2",
+ "eslint-visitor-keys": "^4.2.1"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/eslint"
+ }
+ },
+ "node_modules/esprima": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
+ "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
+ "license": "BSD-2-Clause",
+ "bin": {
+ "esparse": "bin/esparse.js",
+ "esvalidate": "bin/esvalidate.js"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/esquery": {
+ "version": "1.6.0",
+ "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.6.0.tgz",
+ "integrity": "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "estraverse": "^5.1.0"
+ },
+ "engines": {
+ "node": ">=0.10"
+ }
+ },
+ "node_modules/esrecurse": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
+ "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "estraverse": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estraverse": {
+ "version": "5.3.0",
+ "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
+ "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=4.0"
+ }
+ },
+ "node_modules/estree-walker": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-2.0.2.tgz",
+ "integrity": "sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/esutils": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
+ "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/execa": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz",
+ "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==",
+ "license": "MIT",
+ "dependencies": {
+ "cross-spawn": "^7.0.3",
+ "get-stream": "^6.0.0",
+ "human-signals": "^2.1.0",
+ "is-stream": "^2.0.0",
+ "merge-stream": "^2.0.0",
+ "npm-run-path": "^4.0.1",
+ "onetime": "^5.1.2",
+ "signal-exit": "^3.0.3",
+ "strip-final-newline": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sindresorhus/execa?sponsor=1"
+ }
+ },
+ "node_modules/execa/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/exit": {
+ "version": "0.1.2",
+ "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz",
+ "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/expect": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/expect/-/expect-29.7.0.tgz",
+ "integrity": "sha512-2Zks0hf1VLFYI1kbh0I5jP3KHHyCHpkfyHBzsSXRFgl/Bg9mWYfMW8oD+PdMPlEwy5HNsR9JutYy6pMeOh61nw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/expect-utils": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/expect-type": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/expect-type/-/expect-type-1.2.2.tgz",
+ "integrity": "sha512-JhFGDVJ7tmDJItKhYgJCGLOWjuK9vPxiXoUFLwLDc99NlmklilbiQJwoctZtt13+xMw91MCk/REan6MWHqDjyA==",
+ "dev": true,
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=12.0.0"
+ }
+ },
+ "node_modules/fast-deep-equal": {
+ "version": "3.1.3",
+ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
+ "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-glob": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.3.tgz",
+ "integrity": "sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@nodelib/fs.stat": "^2.0.2",
+ "@nodelib/fs.walk": "^1.2.3",
+ "glob-parent": "^5.1.2",
+ "merge2": "^1.3.0",
+ "micromatch": "^4.0.8"
+ },
+ "engines": {
+ "node": ">=8.6.0"
+ }
+ },
+ "node_modules/fast-glob/node_modules/glob-parent": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
+ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.1"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/fast-json-stable-stringify": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
+ "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
+ "license": "MIT"
+ },
+ "node_modules/fast-levenshtein": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
+ "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/fast-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/fast-uri/-/fast-uri-3.1.0.tgz",
+ "integrity": "sha512-iPeeDKJSWf4IEOasVVrknXpaBV0IApz/gp7S2bb7Z4Lljbl2MGJRqInZiUrQwV16cpzw/D3S5j5Julj/gT52AA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/fastify"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fastify"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/fastq": {
+ "version": "1.19.1",
+ "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.19.1.tgz",
+ "integrity": "sha512-GwLTyxkCXjXbxqIhTsMI2Nui8huMPtnxg7krajPJAjnEG/iiOS7i+zCtWGZR9G0NBKbXKh6X9m9UIsYX/N6vvQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "reusify": "^1.0.4"
+ }
+ },
+ "node_modules/fb-watchman": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.2.tgz",
+ "integrity": "sha512-p5161BqbuCaSnB8jIbzQHOlpgsPmK5rJVDfDKO91Axs5NC1uu3HRQm6wt9cd9/+GtQQIO53JdGXXoyDpTAsgYA==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "bser": "2.1.1"
+ }
+ },
+ "node_modules/file-entry-cache": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-8.0.0.tgz",
+ "integrity": "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flat-cache": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/fill-range": {
+ "version": "7.1.1",
+ "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
+ "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
+ "license": "MIT",
+ "dependencies": {
+ "to-regex-range": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/find-up": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz",
+ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^6.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/flat-cache": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-4.0.1.tgz",
+ "integrity": "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "flatted": "^3.2.9",
+ "keyv": "^4.5.4"
+ },
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/flatted": {
+ "version": "3.3.3",
+ "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.3.3.tgz",
+ "integrity": "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/foreground-child": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz",
+ "integrity": "sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "cross-spawn": "^7.0.6",
+ "signal-exit": "^4.0.1"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/fs.realpath": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
+ "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
+ "license": "ISC"
+ },
+ "node_modules/fsevents": {
+ "version": "2.3.3",
+ "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.3.tgz",
+ "integrity": "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw==",
+ "hasInstallScript": true,
+ "license": "MIT",
+ "optional": true,
+ "os": [
+ "darwin"
+ ],
+ "engines": {
+ "node": "^8.16.0 || ^10.6.0 || >=11.0.0"
+ }
+ },
+ "node_modules/function-bind": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz",
+ "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/gensync": {
+ "version": "1.0.0-beta.2",
+ "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz",
+ "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6.9.0"
+ }
+ },
+ "node_modules/get-caller-file": {
+ "version": "2.0.5",
+ "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
+ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
+ "license": "ISC",
+ "engines": {
+ "node": "6.* || 8.* || >= 10.*"
+ }
+ },
+ "node_modules/get-package-type": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz",
+ "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/get-stream": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz",
+ "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/glob": {
+ "version": "11.0.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-11.0.3.tgz",
+ "integrity": "sha512-2Nim7dha1KVkaiF4q6Dj+ngPPMdfvLJEOpZk/jKiUAkqKebpGAWQXAq9z1xu9HKu5lWfqw/FASuccEjyznjPaA==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.3.1",
+ "jackspeak": "^4.1.1",
+ "minimatch": "^10.0.3",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^2.0.0"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/glob-parent": {
+ "version": "6.0.2",
+ "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz",
+ "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "is-glob": "^4.0.3"
+ },
+ "engines": {
+ "node": ">=10.13.0"
+ }
+ },
+ "node_modules/globals": {
+ "version": "14.0.0",
+ "resolved": "https://registry.npmjs.org/globals/-/globals-14.0.0.tgz",
+ "integrity": "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/graceful-fs": {
+ "version": "4.2.11",
+ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
+ "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
+ "license": "ISC"
+ },
+ "node_modules/graphemer": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/graphemer/-/graphemer-1.4.0.tgz",
+ "integrity": "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/handlebars": {
+ "version": "4.7.8",
+ "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz",
+ "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==",
+ "license": "MIT",
+ "dependencies": {
+ "minimist": "^1.2.5",
+ "neo-async": "^2.6.2",
+ "source-map": "^0.6.1",
+ "wordwrap": "^1.0.0"
+ },
+ "bin": {
+ "handlebars": "bin/handlebars"
+ },
+ "engines": {
+ "node": ">=0.4.7"
+ },
+ "optionalDependencies": {
+ "uglify-js": "^3.1.4"
+ }
+ },
+ "node_modules/has-flag": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
+ "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/hash.js": {
+ "version": "1.1.7",
+ "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz",
+ "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "inherits": "^2.0.3",
+ "minimalistic-assert": "^1.0.1"
+ }
+ },
+ "node_modules/hasown": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.2.tgz",
+ "integrity": "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==",
+ "license": "MIT",
+ "dependencies": {
+ "function-bind": "^1.1.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ }
+ },
+ "node_modules/hi-base32": {
+ "version": "0.5.1",
+ "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz",
+ "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/hmac-drbg": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
+ "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "hash.js": "^1.0.3",
+ "minimalistic-assert": "^1.0.0",
+ "minimalistic-crypto-utils": "^1.0.1"
+ }
+ },
+ "node_modules/html-escaper": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz",
+ "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==",
+ "license": "MIT"
+ },
+ "node_modules/human-signals": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz",
+ "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==",
+ "license": "Apache-2.0",
+ "engines": {
+ "node": ">=10.17.0"
+ }
+ },
+ "node_modules/ieee754": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz",
+ "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/ignore": {
+ "version": "5.3.2",
+ "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.3.2.tgz",
+ "integrity": "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 4"
+ }
+ },
+ "node_modules/import-fresh": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.1.tgz",
+ "integrity": "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "parent-module": "^1.0.0",
+ "resolve-from": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/import-local": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.2.0.tgz",
+ "integrity": "sha512-2SPlun1JUPWoM6t3F0dw0FkCF/jWY8kttcY4f599GLTSjh2OCuuhdTkJQsEcZzBqbXZGKMK2OqW1oZsjtf/gQA==",
+ "license": "MIT",
+ "dependencies": {
+ "pkg-dir": "^4.2.0",
+ "resolve-cwd": "^3.0.0"
+ },
+ "bin": {
+ "import-local-fixture": "fixtures/cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/imurmurhash": {
+ "version": "0.1.4",
+ "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
+ "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.8.19"
+ }
+ },
+ "node_modules/inflight": {
+ "version": "1.0.6",
+ "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
+ "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
+ "deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
+ "license": "ISC",
+ "dependencies": {
+ "once": "^1.3.0",
+ "wrappy": "1"
+ }
+ },
+ "node_modules/inherits": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
+ "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
+ "license": "ISC"
+ },
+ "node_modules/is-arrayish": {
+ "version": "0.2.1",
+ "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz",
+ "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==",
+ "license": "MIT"
+ },
+ "node_modules/is-binary-path": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
+ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "binary-extensions": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-core-module": {
+ "version": "2.16.1",
+ "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.16.1.tgz",
+ "integrity": "sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w==",
+ "license": "MIT",
+ "dependencies": {
+ "hasown": "^2.0.2"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/is-extglob": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
+ "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-fullwidth-code-point": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
+ "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/is-generator-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz",
+ "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/is-glob": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
+ "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "is-extglob": "^2.1.1"
+ },
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/is-number": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
+ "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.12.0"
+ }
+ },
+ "node_modules/is-stream": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz",
+ "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/isexe": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/isexe/-/isexe-3.1.1.tgz",
+ "integrity": "sha512-LpB/54B+/2J5hqQ7imZHfdU31OlgQqx7ZicVlkm9kzg9/w8GKLEcFfJl/t7DCEDueOyBAD6zCCwTO6Fzs0NoEQ==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16"
+ }
+ },
+ "node_modules/istanbul-lib-coverage": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.2.tgz",
+ "integrity": "sha512-O8dpsF+r0WV/8MNRKfnmrtCWhuKjxrq2w+jpzBL5UZKTi2LeVWnWOmWRxFlesJONmc+wLAGvKQZEOanko0LFTg==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/istanbul-lib-instrument": {
+ "version": "6.0.3",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-6.0.3.tgz",
+ "integrity": "sha512-Vtgk7L/R2JHyyGW07spoFlB8/lpjiOLTjMdms6AFMraYt3BaJauod/NGrfnVG/y4Ix1JEuMRPDPEj2ua+zz1/Q==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@babel/core": "^7.23.9",
+ "@babel/parser": "^7.23.9",
+ "@istanbuljs/schema": "^0.1.3",
+ "istanbul-lib-coverage": "^3.2.0",
+ "semver": "^7.5.4"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-report": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.1.tgz",
+ "integrity": "sha512-GCfE1mtsHGOELCU8e/Z7YWzpmybrx/+dSTfLrvY8qRmaY6zXTKWn6WQIjaAFw069icm6GVMNkgu0NzI4iPZUNw==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "istanbul-lib-coverage": "^3.0.0",
+ "make-dir": "^4.0.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-lib-source-maps": {
+ "version": "5.0.6",
+ "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-5.0.6.tgz",
+ "integrity": "sha512-yg2d+Em4KizZC5niWhQaIomgf5WlL4vOOjZ5xGCmF8SnPE/mDWWXgvRExdcpCgh9lLRRa1/fSYp2ymmbJ1pI+A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.23",
+ "debug": "^4.1.1",
+ "istanbul-lib-coverage": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/istanbul-reports": {
+ "version": "3.2.0",
+ "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.2.0.tgz",
+ "integrity": "sha512-HGYWWS/ehqTV3xN10i23tkPkpH46MLCIMFNCaaKNavAXTF1RkqxawEPtnjnGZ6XKSInBKkiOA5BKS+aZiY3AvA==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "html-escaper": "^2.0.0",
+ "istanbul-lib-report": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/jackspeak": {
+ "version": "4.1.1",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-4.1.1.tgz",
+ "integrity": "sha512-zptv57P3GpL+O0I7VdMJNBZCu+BPHVQUk55Ft8/QCJjTVxrnJHuVuX/0Bl2A6/+2oyR/ZMEuFKwmzqqZ/U5nPQ==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest/-/jest-29.7.0.tgz",
+ "integrity": "sha512-NIy3oAFp9shda19hy4HK0HRTWKtPJmGdnvywu01nOqNC2vZg+Z+fvJDxpMQA88eb2I9EcafcdjYgsDthnYTvGw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "import-local": "^3.0.2",
+ "jest-cli": "^29.7.0"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-changed-files": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-29.7.0.tgz",
+ "integrity": "sha512-fEArFiwf1BpQ+4bXSprcDc3/x4HSzL4al2tozwVpDFpsxALjLYdyiIK4e5Vz66GQJIbXJ82+35PtysofptNX2w==",
+ "license": "MIT",
+ "dependencies": {
+ "execa": "^5.0.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-circus/-/jest-circus-29.7.0.tgz",
+ "integrity": "sha512-3E1nCMgipcTkCocFwM90XXQab9bS+GMsjdpmPrlelaxwD93Ad8iVEjX/vvHPdLPnFf+L40u+5+iutRdA1N9myw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/expect": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "co": "^4.6.0",
+ "dedent": "^1.0.0",
+ "is-generator-fn": "^2.0.0",
+ "jest-each": "^29.7.0",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "pretty-format": "^29.7.0",
+ "pure-rand": "^6.0.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-circus/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-circus/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-cli": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-29.7.0.tgz",
+ "integrity": "sha512-OVVobw2IubN/GSYsxETi+gOe7Ka59EFMR/twOU3Jb2GnKKeMGJB5SGUUrEz3SFVmJASUdZUzy83sLNNQ2gZslg==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/core": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "create-jest": "^29.7.0",
+ "exit": "^0.1.2",
+ "import-local": "^3.0.2",
+ "jest-config": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "yargs": "^17.3.1"
+ },
+ "bin": {
+ "jest": "bin/jest.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "^8.0.1 || ^9.0.0 || ^10.0.0"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-cli/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-cli/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-config": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-29.7.0.tgz",
+ "integrity": "sha512-uXbpfeQ7R6TZBqI3/TxCU4q4ttk3u0PJeC+E0zbfSoSjq6bJ7buBPxzQPL0ifrkY4DNu4JUdk0ImlBUYi840eQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@jest/test-sequencer": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-jest": "^29.7.0",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "deepmerge": "^4.2.2",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-circus": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-runner": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "parse-json": "^5.2.0",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-json-comments": "^3.1.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "peerDependencies": {
+ "@types/node": "*",
+ "ts-node": ">=9.0.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "ts-node": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-config/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-config/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-config/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-config/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-diff": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-29.7.0.tgz",
+ "integrity": "sha512-LMIgiIrhigmPrs03JHpxUh2yISK3vLFPkAodPeo0+BuF7wA2FoQbkEg1u8gBYBThncu7e1oEDUfIXVuTqLRUjw==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "diff-sequences": "^29.6.3",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-diff/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-diff/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-docblock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-29.7.0.tgz",
+ "integrity": "sha512-q617Auw3A612guyaFgsbFeYpNP5t2aoUNLwBUbc/0kD1R4t9ixDbyFTHd1nok4epoVFpr7PmeWHrhvuV3XaJ4g==",
+ "license": "MIT",
+ "dependencies": {
+ "detect-newline": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-29.7.0.tgz",
+ "integrity": "sha512-gns+Er14+ZrEoC5fhOfYCY1LOHHr0TI+rQUHZS8Ttw2l7gl+80eHc/gFf2Ktkw0+SIACDTeWvpFcv3B04VembQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-each/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-each/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-environment-node": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-29.7.0.tgz",
+ "integrity": "sha512-DOSwCRqXirTOyheM+4d5YZOrWcdu0LNZ87ewUoywbcb2XR4wKgqiG8vNeYwhjFMbEkfju7wx2GYH0P2gevGvFw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-mock": "^29.7.0",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-get-type": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-29.6.3.tgz",
+ "integrity": "sha512-zrteXnqYxfQh7l5FHyL38jL39di8H8rHoecLH3JNxH3BwOrBsNeabdap5e0I23lD4HHI8W5VFBZqG4Eaq5LNcw==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-haste-map": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-29.7.0.tgz",
+ "integrity": "sha512-fP8u2pyfqx0K1rGn1R9pyE0/KTn+G7PxktWidOBTqFPLYX0b9ksaMFkhK5vrS3DVun09pckLdlx90QthlW7AmA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/graceful-fs": "^4.1.3",
+ "@types/node": "*",
+ "anymatch": "^3.0.3",
+ "fb-watchman": "^2.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-regex-util": "^29.6.3",
+ "jest-util": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "micromatch": "^4.0.4",
+ "walker": "^1.0.8"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ },
+ "optionalDependencies": {
+ "fsevents": "^2.3.2"
+ }
+ },
+ "node_modules/jest-leak-detector": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-29.7.0.tgz",
+ "integrity": "sha512-kYA8IJcSYtST2BY9I+SMC32nDpBT3J2NvWJx8+JCuCdl/CR1I4EKUJROiP8XtCcxqgTTBGJNdbB1A8XRKbTetw==",
+ "license": "MIT",
+ "dependencies": {
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-29.7.0.tgz",
+ "integrity": "sha512-sBkD+Xi9DtcChsI3L3u0+N0opgPYnCRPtGcQYrgXmR+hmt/fYfWAL0xRXYU8eWOdfuLgBe0YCW3AFtnRLagq/g==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-matcher-utils/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-message-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-29.7.0.tgz",
+ "integrity": "sha512-GBEV4GRADeP+qtB2+6u61stea8mGcOT4mCtrYISZwfu9/ISHFJ/5zOMXYbpBE9RsS5+Gb63DW4FgmnKJ79Kf6w==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.12.13",
+ "@jest/types": "^29.6.3",
+ "@types/stack-utils": "^2.0.0",
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "micromatch": "^4.0.4",
+ "pretty-format": "^29.7.0",
+ "slash": "^3.0.0",
+ "stack-utils": "^2.0.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-message-util/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-message-util/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-mock": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-29.7.0.tgz",
+ "integrity": "sha512-ITOMZn+UkYS4ZFh83xYAOzWStloNzJFO2s8DWrE4lhtGD+AorgnbkiKERe4wQVBydIGPx059g6riW5Btp6Llnw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "jest-util": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-pnp-resolver": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.3.tgz",
+ "integrity": "sha512-+3NpwQEnRoIBtx4fyhblQDPgJI0H1IEIkX7ShLUjPGA7TtUTvI1oiKi3SR4oBR0hQhQR80l4WAe5RrXBwWMA8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ },
+ "peerDependencies": {
+ "jest-resolve": "*"
+ },
+ "peerDependenciesMeta": {
+ "jest-resolve": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/jest-regex-util": {
+ "version": "29.6.3",
+ "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-29.6.3.tgz",
+ "integrity": "sha512-KJJBsRCyyLNWCNBOvZyRDnAIfUiRJ8v+hOBQYGn8gDyF3UegwiP4gwRR3/SDa42g1YbVycTidUF3rKjyLFDWbg==",
+ "license": "MIT",
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-29.7.0.tgz",
+ "integrity": "sha512-IOVhZSrg+UvVAshDSDtHyFCCBUl/Q3AAJv8iZ6ZjnZ74xzvwuzLXid9IIIPgTnY62SJjfuupMKZsZQRsCvxEgA==",
+ "license": "MIT",
+ "dependencies": {
+ "chalk": "^4.0.0",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-pnp-resolver": "^1.2.2",
+ "jest-util": "^29.7.0",
+ "jest-validate": "^29.7.0",
+ "resolve": "^1.20.0",
+ "resolve.exports": "^2.0.0",
+ "slash": "^3.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve-dependencies": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-29.7.0.tgz",
+ "integrity": "sha512-un0zD/6qxJ+S0et7WxeI3H5XSe9lTBBR7bOHCHXkKR6luG5mwDDlIzVQ0V5cZCuoTgEdcdwzTghYkTWfubi+nA==",
+ "license": "MIT",
+ "dependencies": {
+ "jest-regex-util": "^29.6.3",
+ "jest-snapshot": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-resolve/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-runner": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-29.7.0.tgz",
+ "integrity": "sha512-fsc4N6cPCAahybGBfTRcq5wFR6fpLznMg47sY5aDpsoejOcVYFb07AHuSnR0liMcPTgBsA3ZJL6kFOjPdoNipQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/console": "^29.7.0",
+ "@jest/environment": "^29.7.0",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "graceful-fs": "^4.2.9",
+ "jest-docblock": "^29.7.0",
+ "jest-environment-node": "^29.7.0",
+ "jest-haste-map": "^29.7.0",
+ "jest-leak-detector": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-resolve": "^29.7.0",
+ "jest-runtime": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "jest-watcher": "^29.7.0",
+ "jest-worker": "^29.7.0",
+ "p-limit": "^3.1.0",
+ "source-map-support": "0.5.13"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runner/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-runner/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-29.7.0.tgz",
+ "integrity": "sha512-gUnLjgwdGqW7B4LvOIkbKs9WGbn+QLqRQQ9juC6HndeDiezIwhDP+mhMwHWCEcfQ5RUXa6OPnFF8BJh5xegwwQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/environment": "^29.7.0",
+ "@jest/fake-timers": "^29.7.0",
+ "@jest/globals": "^29.7.0",
+ "@jest/source-map": "^29.6.3",
+ "@jest/test-result": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "cjs-module-lexer": "^1.0.0",
+ "collect-v8-coverage": "^1.0.0",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.2.9",
+ "jest-haste-map": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-mock": "^29.7.0",
+ "jest-regex-util": "^29.6.3",
+ "jest-resolve": "^29.7.0",
+ "jest-snapshot": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "slash": "^3.0.0",
+ "strip-bom": "^4.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/jest-runtime/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/jest-snapshot": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-29.7.0.tgz",
+ "integrity": "sha512-Rm0BMWtxBcioHr1/OX5YCP8Uov4riHvKPknOGs804Zg9JGZgmIBkbtlxJC/7Z4msKYVbIJtfU+tKb8xlYNfdkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/core": "^7.11.6",
+ "@babel/generator": "^7.7.2",
+ "@babel/plugin-syntax-jsx": "^7.7.2",
+ "@babel/plugin-syntax-typescript": "^7.7.2",
+ "@babel/types": "^7.3.3",
+ "@jest/expect-utils": "^29.7.0",
+ "@jest/transform": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "babel-preset-current-node-syntax": "^1.0.0",
+ "chalk": "^4.0.0",
+ "expect": "^29.7.0",
+ "graceful-fs": "^4.2.9",
+ "jest-diff": "^29.7.0",
+ "jest-get-type": "^29.6.3",
+ "jest-matcher-utils": "^29.7.0",
+ "jest-message-util": "^29.7.0",
+ "jest-util": "^29.7.0",
+ "natural-compare": "^1.4.0",
+ "pretty-format": "^29.7.0",
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-snapshot/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-util": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-29.7.0.tgz",
+ "integrity": "sha512-z6EbKajIpqGKU56y5KBUgy1dt1ihhQJgWzUlZHArA/+X2ad7Cb5iF+AK1EWVL/Bo7Rz9uurpqw6SiBCefUbCGA==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "chalk": "^4.0.0",
+ "ci-info": "^3.2.0",
+ "graceful-fs": "^4.2.9",
+ "picomatch": "^2.2.3"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-util/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-util/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-util/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/jest-validate": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-29.7.0.tgz",
+ "integrity": "sha512-ZB7wHqaRGVw/9hST/OuFUReG7M8vKeq0/J2egIGLdvjHCmYqGARhzXmtgi+gVeZ5uXFF219aOc3Ls2yLg27tkw==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/types": "^29.6.3",
+ "camelcase": "^6.2.0",
+ "chalk": "^4.0.0",
+ "jest-get-type": "^29.6.3",
+ "leven": "^3.1.0",
+ "pretty-format": "^29.7.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-validate/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-validate/node_modules/camelcase": {
+ "version": "6.3.0",
+ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz",
+ "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/jest-validate/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-watcher": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-29.7.0.tgz",
+ "integrity": "sha512-49Fg7WXkU3Vl2h6LbLtMQ/HyB6rXSIX7SqvBLQmssRBGN9I0PNvPmAmCWSOY6SOvrjhI/F7/bGAv9RtnsPA03g==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/test-result": "^29.7.0",
+ "@jest/types": "^29.6.3",
+ "@types/node": "*",
+ "ansi-escapes": "^4.2.1",
+ "chalk": "^4.0.0",
+ "emittery": "^0.13.1",
+ "jest-util": "^29.7.0",
+ "string-length": "^4.0.1"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/jest-watcher/node_modules/chalk": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
+ "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.1.0",
+ "supports-color": "^7.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/chalk?sponsor=1"
+ }
+ },
+ "node_modules/jest-worker": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-29.7.0.tgz",
+ "integrity": "sha512-eIz2msL/EzL9UFTFFx7jBTkeZfku0yUAyZZZmJ93H2TYEiroIx2PQjEXcwYtYl8zXCxb+PAmA2hLIt/6ZEkPHw==",
+ "license": "MIT",
+ "dependencies": {
+ "@types/node": "*",
+ "jest-util": "^29.7.0",
+ "merge-stream": "^2.0.0",
+ "supports-color": "^8.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/jest-worker/node_modules/supports-color": {
+ "version": "8.1.1",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz",
+ "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/supports-color?sponsor=1"
+ }
+ },
+ "node_modules/js-sha256": {
+ "version": "0.11.1",
+ "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.11.1.tgz",
+ "integrity": "sha512-o6WSo/LUvY2uC4j7mO50a2ms7E/EAdbP0swigLV+nzHKTTaYnaLIWJ02VdXrsJX0vGedDESQnLsOekr94ryfjg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-sha3": {
+ "version": "0.9.3",
+ "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.9.3.tgz",
+ "integrity": "sha512-BcJPCQeLg6WjEx3FE591wVAevlli8lxsxm9/FzV4HXkV49TmBH38Yvrpce6fjbADGMKFrBMGTqrVz3qPIZ88Gg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-sha512": {
+ "version": "0.9.0",
+ "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.9.0.tgz",
+ "integrity": "sha512-mirki9WS/SUahm+1TbAPkqvbCiCfOAAsyXeHxK1UkullnJVVqoJG2pL9ObvT05CN+tM7fxhfYm0NbXn+1hWoZg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/js-tokens": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
+ "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
+ "license": "MIT"
+ },
+ "node_modules/js-yaml": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz",
+ "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "argparse": "^2.0.1"
+ },
+ "bin": {
+ "js-yaml": "bin/js-yaml.js"
+ }
+ },
+ "node_modules/jsesc": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-3.1.0.tgz",
+ "integrity": "sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA==",
+ "license": "MIT",
+ "bin": {
+ "jsesc": "bin/jsesc"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/json-bigint": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz",
+ "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "bignumber.js": "^9.0.0"
+ }
+ },
+ "node_modules/json-buffer": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.1.tgz",
+ "integrity": "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-parse-even-better-errors": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz",
+ "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==",
+ "license": "MIT"
+ },
+ "node_modules/json-schema-traverse": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
+ "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json-stable-stringify-without-jsonify": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
+ "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/json5": {
+ "version": "2.2.3",
+ "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.3.tgz",
+ "integrity": "sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==",
+ "license": "MIT",
+ "bin": {
+ "json5": "lib/cli.js"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/jsonschema": {
+ "version": "1.5.0",
+ "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.5.0.tgz",
+ "integrity": "sha512-K+A9hhqbn0f3pJX17Q/7H6yQfD/5OXgdrR5UE12gMXCiN9D5Xq2o5mddV2QEcX/bjla99ASsAAQUyMCCRWAEhw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/keyv": {
+ "version": "4.5.4",
+ "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz",
+ "integrity": "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "json-buffer": "3.0.1"
+ }
+ },
+ "node_modules/kleur": {
+ "version": "3.0.3",
+ "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz",
+ "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/leven": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
+ "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/levn": {
+ "version": "0.4.1",
+ "resolved": "https://registry.npmjs.org/levn/-/levn-0.4.1.tgz",
+ "integrity": "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1",
+ "type-check": "~0.4.0"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/lines-and-columns": {
+ "version": "1.2.4",
+ "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz",
+ "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==",
+ "license": "MIT"
+ },
+ "node_modules/locate-path": {
+ "version": "6.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz",
+ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/lodash.get": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.get/-/lodash.get-4.4.2.tgz",
+ "integrity": "sha512-z+Uw/vLuy6gQe8cfaFWD7p0wVv8fJl3mbzXh33RS+0oW2wvUqiRXiQ69gLWSLpgB5/6sU+r6BlQR0MBILadqTQ==",
+ "deprecated": "This package is deprecated. Use the optional chaining (?.) operator instead.",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.memoize": {
+ "version": "4.1.2",
+ "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz",
+ "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==",
+ "license": "MIT"
+ },
+ "node_modules/lodash.merge": {
+ "version": "4.6.2",
+ "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz",
+ "integrity": "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lodash.truncate": {
+ "version": "4.4.2",
+ "resolved": "https://registry.npmjs.org/lodash.truncate/-/lodash.truncate-4.4.2.tgz",
+ "integrity": "sha512-jttmRe7bRse52OsWIMDLaXxWqRAmtIUccAQ3garviCqJjafXOfNMO0yMfNpdD6zbGaTU0P5Nz7e7gAT6cKmJRw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/loupe": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/loupe/-/loupe-3.2.1.tgz",
+ "integrity": "sha512-CdzqowRJCeLU72bHvWqwRBBlLcMEtIvGrlvef74kMnV2AolS9Y8xUv1I0U/MNAWMhBlKIoyuEgoJ0t/bbwHbLQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "license": "ISC",
+ "dependencies": {
+ "yallist": "^3.0.2"
+ }
+ },
+ "node_modules/magic-string": {
+ "version": "0.30.19",
+ "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.19.tgz",
+ "integrity": "sha512-2N21sPY9Ws53PZvsEpVtNuSW+ScYbQdp4b9qUaL+9QkHUrGFKo56Lg9Emg5s9V/qrtNBmiR01sYhUOwu3H+VOw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@jridgewell/sourcemap-codec": "^1.5.5"
+ }
+ },
+ "node_modules/magicast": {
+ "version": "0.3.5",
+ "resolved": "https://registry.npmjs.org/magicast/-/magicast-0.3.5.tgz",
+ "integrity": "sha512-L0WhttDl+2BOsybvEOLK7fW3UA0OQ0IQ2d6Zl2x/a6vVRs3bAY0ECOSHHeL5jD+SbOpOCUEi0y1DgHEn9Qn1AQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@babel/parser": "^7.25.4",
+ "@babel/types": "^7.25.4",
+ "source-map-js": "^1.2.0"
+ }
+ },
+ "node_modules/make-dir": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-4.0.0.tgz",
+ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==",
+ "license": "MIT",
+ "dependencies": {
+ "semver": "^7.5.3"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "license": "ISC"
+ },
+ "node_modules/makeerror": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.12.tgz",
+ "integrity": "sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==",
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "tmpl": "1.0.5"
+ }
+ },
+ "node_modules/merge-stream": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz",
+ "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==",
+ "license": "MIT"
+ },
+ "node_modules/merge2": {
+ "version": "1.4.1",
+ "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz",
+ "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 8"
+ }
+ },
+ "node_modules/micromatch": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz",
+ "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==",
+ "license": "MIT",
+ "dependencies": {
+ "braces": "^3.0.3",
+ "picomatch": "^2.3.1"
+ },
+ "engines": {
+ "node": ">=8.6"
+ }
+ },
+ "node_modules/micromatch/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/mimic-fn": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
+ "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/minimalistic-assert": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
+ "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/minimalistic-crypto-utils": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz",
+ "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/minimatch": {
+ "version": "10.0.3",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-10.0.3.tgz",
+ "integrity": "sha512-IPZ167aShDZZUMdRk66cyQAW3qr0WzbHkPdMYa8bzZhlHhO3jALbKdxcaak7W9FfT2rZNpQuUu4Od7ILEpXSaw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/brace-expansion": "^5.0.0"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/minimist": {
+ "version": "1.2.8",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz",
+ "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==",
+ "license": "MIT",
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/minipass": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/minipass/-/minipass-7.1.2.tgz",
+ "integrity": "sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ }
+ },
+ "node_modules/minizlib": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-3.1.0.tgz",
+ "integrity": "sha512-KZxYo1BUkWD2TVFLr0MQoM8vUUigWD3LlD83a/75BqC+4qE0Hb1Vo5v1FgcfaNXvfXzr+5EhQ6ing/CaBijTlw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": ">= 18"
+ }
+ },
+ "node_modules/mkdirp": {
+ "version": "1.0.4",
+ "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
+ "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "mkdirp": "bin/cmd.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/ms": {
+ "version": "2.1.3",
+ "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz",
+ "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==",
+ "license": "MIT"
+ },
+ "node_modules/nanoid": {
+ "version": "3.3.11",
+ "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.11.tgz",
+ "integrity": "sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "bin": {
+ "nanoid": "bin/nanoid.cjs"
+ },
+ "engines": {
+ "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1"
+ }
+ },
+ "node_modules/natural-compare": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
+ "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
+ "license": "MIT"
+ },
+ "node_modules/neo-async": {
+ "version": "2.6.2",
+ "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
+ "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
+ "license": "MIT"
+ },
+ "node_modules/node-int64": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz",
+ "integrity": "sha512-O5lz91xSOeoXP6DulyHfllpq+Eg00MWitZIbtPfoSEvqIHdl5gfcY6hYzDWnj0qD5tz52PI08u9qUvSVeUBeHw==",
+ "license": "MIT"
+ },
+ "node_modules/node-releases": {
+ "version": "2.0.23",
+ "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.23.tgz",
+ "integrity": "sha512-cCmFDMSm26S6tQSDpBCg/NR8NENrVPhAJSf+XbxBG4rPFaaonlEoE9wHQmun+cls499TQGSb7ZyPBRlzgKfpeg==",
+ "license": "MIT"
+ },
+ "node_modules/normalize-path": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
+ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/npm-run-path": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz",
+ "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==",
+ "license": "MIT",
+ "dependencies": {
+ "path-key": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/once": {
+ "version": "1.4.0",
+ "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
+ "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
+ "license": "ISC",
+ "dependencies": {
+ "wrappy": "1"
+ }
+ },
+ "node_modules/onetime": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
+ "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
+ "license": "MIT",
+ "dependencies": {
+ "mimic-fn": "^2.1.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/optionator": {
+ "version": "0.9.4",
+ "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.9.4.tgz",
+ "integrity": "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "deep-is": "^0.1.3",
+ "fast-levenshtein": "^2.0.6",
+ "levn": "^0.4.1",
+ "prelude-ls": "^1.2.1",
+ "type-check": "^0.4.0",
+ "word-wrap": "^1.2.5"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/p-limit": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz",
+ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==",
+ "license": "MIT",
+ "dependencies": {
+ "yocto-queue": "^0.1.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-locate": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz",
+ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^3.0.2"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/p-try": {
+ "version": "2.2.0",
+ "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
+ "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/package-json-from-dist": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz",
+ "integrity": "sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0"
+ },
+ "node_modules/parent-module": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
+ "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "callsites": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/parse-json": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz",
+ "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==",
+ "license": "MIT",
+ "dependencies": {
+ "@babel/code-frame": "^7.0.0",
+ "error-ex": "^1.3.1",
+ "json-parse-even-better-errors": "^2.3.0",
+ "lines-and-columns": "^1.1.6"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/path-exists": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz",
+ "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-is-absolute": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
+ "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/path-key": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
+ "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/path-parse": {
+ "version": "1.0.7",
+ "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz",
+ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==",
+ "license": "MIT"
+ },
+ "node_modules/path-scurry": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-2.0.0.tgz",
+ "integrity": "sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^11.0.0",
+ "minipass": "^7.1.2"
+ },
+ "engines": {
+ "node": "20 || >=22"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/path-scurry/node_modules/lru-cache": {
+ "version": "11.2.2",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-11.2.2.tgz",
+ "integrity": "sha512-F9ODfyqML2coTIsQpSkRHnLSZMtkU8Q+mSfcaIyKwy58u+8k5nvAYeiNhsyMARvzNcXJ9QfWVrcPsC9e9rAxtg==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": "20 || >=22"
+ }
+ },
+ "node_modules/pathe": {
+ "version": "1.1.2",
+ "resolved": "https://registry.npmjs.org/pathe/-/pathe-1.1.2.tgz",
+ "integrity": "sha512-whLdWMYL2TwI08hn8/ZqAbrVemu0LNaNNJZX73O6qaIdCTfXutsLhMkjdENX0qhsQ9uIimo4/aQOmXkoon2nDQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/pathval": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/pathval/-/pathval-2.0.1.tgz",
+ "integrity": "sha512-//nshmD55c46FuFw26xV/xFAaB5HF9Xdap7HJBBnrKdAd6/GxDBaNA1870O79+9ueg61cZLSVc+OaFlfmObYVQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 14.16"
+ }
+ },
+ "node_modules/picocolors": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.1.1.tgz",
+ "integrity": "sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==",
+ "license": "ISC"
+ },
+ "node_modules/picomatch": {
+ "version": "4.0.3",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz",
+ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/pirates": {
+ "version": "4.0.7",
+ "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.7.tgz",
+ "integrity": "sha512-TfySrs/5nm8fQJDcBDuUng3VOUKsd7S+zqvbOTiGXHfxX4wK31ard+hoNuvkicM/2YFzlpDgABOevKSsB4G/FA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/pkg-dir": {
+ "version": "4.2.0",
+ "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz",
+ "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==",
+ "license": "MIT",
+ "dependencies": {
+ "find-up": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/find-up": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz",
+ "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==",
+ "license": "MIT",
+ "dependencies": {
+ "locate-path": "^5.0.0",
+ "path-exists": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/locate-path": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
+ "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==",
+ "license": "MIT",
+ "dependencies": {
+ "p-locate": "^4.1.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-limit": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz",
+ "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==",
+ "license": "MIT",
+ "dependencies": {
+ "p-try": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/pkg-dir/node_modules/p-locate": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz",
+ "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==",
+ "license": "MIT",
+ "dependencies": {
+ "p-limit": "^2.2.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/polytype": {
+ "version": "0.17.0",
+ "resolved": "https://registry.npmjs.org/polytype/-/polytype-0.17.0.tgz",
+ "integrity": "sha512-Q1y07MZqHPlGRJs8qI8bnxrQs+W3r24v25cmhbQV/lC9VNNtd+smi/2m3CUHNBDTfLtl+6SpA0EsL/J1oVsEag==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=16.0.0"
+ }
+ },
+ "node_modules/postcss": {
+ "version": "8.5.6",
+ "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.5.6.tgz",
+ "integrity": "sha512-3Ybi1tAuwAP9s0r1UQ2J4n5Y0G05bJkpUIO0/bI9MhwmD70S5aTWbXGBwxHrelT+XM1k6dM0pk+SwNkpTRN7Pg==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/postcss/"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/postcss"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "nanoid": "^3.3.11",
+ "picocolors": "^1.1.1",
+ "source-map-js": "^1.2.1"
+ },
+ "engines": {
+ "node": "^10 || ^12 || >=14"
+ }
+ },
+ "node_modules/prelude-ls": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
+ "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/prettier": {
+ "version": "3.6.2",
+ "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.6.2.tgz",
+ "integrity": "sha512-I7AIg5boAr5R0FFtJ6rCfD+LFsWHp81dolrFD8S79U9tb8Az2nGrJncnMSnys+bpQJfRUzqs9hnA81OAA3hCuQ==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "prettier": "bin/prettier.cjs"
+ },
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/prettier/prettier?sponsor=1"
+ }
+ },
+ "node_modules/pretty-format": {
+ "version": "29.7.0",
+ "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-29.7.0.tgz",
+ "integrity": "sha512-Pdlw/oPxN+aXdmM9R00JVC9WVFoCLTKJvDVLgmJ+qAffBMxsV85l/Lu7sNx4zSzPyoL2euImuEwHhOXdEgNFZQ==",
+ "license": "MIT",
+ "dependencies": {
+ "@jest/schemas": "^29.6.3",
+ "ansi-styles": "^5.0.0",
+ "react-is": "^18.0.0"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || >=18.0.0"
+ }
+ },
+ "node_modules/prompts": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.2.tgz",
+ "integrity": "sha512-NxNv/kLguCA7p3jE8oL2aEBsrJWgAakBpgmgK6lpPWV+WuOmY6r2/zbAVnP+T8bQlA0nzHXSJSJW0Hq7ylaD2Q==",
+ "license": "MIT",
+ "dependencies": {
+ "kleur": "^3.0.3",
+ "sisteransi": "^1.0.5"
+ },
+ "engines": {
+ "node": ">= 6"
+ }
+ },
+ "node_modules/punycode": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.1.tgz",
+ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/pure-rand": {
+ "version": "6.1.0",
+ "resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-6.1.0.tgz",
+ "integrity": "sha512-bVWawvoZoBYpp6yIoQtQXHZjmz35RSVHnUOTefl8Vcjr8snTPY1wnpSPMWekcFwbxI6gtmT7rSYPFvz71ldiOA==",
+ "funding": [
+ {
+ "type": "individual",
+ "url": "https://github.com/sponsors/dubzzz"
+ },
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/fast-check"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/queue-microtask": {
+ "version": "1.2.3",
+ "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz",
+ "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT"
+ },
+ "node_modules/react-is": {
+ "version": "18.3.1",
+ "resolved": "https://registry.npmjs.org/react-is/-/react-is-18.3.1.tgz",
+ "integrity": "sha512-/LLMVyas0ljjAtoYiPqYiL8VWXzUUdThrmU5+n20DZv+a+ClRoevUzw5JxU+Ieh5/c87ytoTBV9G1FiKfNJdmg==",
+ "license": "MIT"
+ },
+ "node_modules/readdirp": {
+ "version": "3.6.0",
+ "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz",
+ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "picomatch": "^2.2.1"
+ },
+ "engines": {
+ "node": ">=8.10.0"
+ }
+ },
+ "node_modules/readdirp/node_modules/picomatch": {
+ "version": "2.3.1",
+ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz",
+ "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8.6"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/jonschlinkert"
+ }
+ },
+ "node_modules/require-directory": {
+ "version": "2.1.1",
+ "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
+ "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/require-from-string": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz",
+ "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/resolve": {
+ "version": "1.22.10",
+ "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.10.tgz",
+ "integrity": "sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w==",
+ "license": "MIT",
+ "dependencies": {
+ "is-core-module": "^2.16.0",
+ "path-parse": "^1.0.7",
+ "supports-preserve-symlinks-flag": "^1.0.0"
+ },
+ "bin": {
+ "resolve": "bin/resolve"
+ },
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/resolve-cwd": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz",
+ "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==",
+ "license": "MIT",
+ "dependencies": {
+ "resolve-from": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-cwd/node_modules/resolve-from": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz",
+ "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/resolve-from": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
+ "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/resolve.exports": {
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/resolve.exports/-/resolve.exports-2.0.3.tgz",
+ "integrity": "sha512-OcXjMsGdhL4XnbShKpAcSqPMzQoYkYyhbEaeSko47MjRP9NfEQMhZkXL1DoFlt9LWQn4YttrdnV6X2OiyzBi+A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/reusify": {
+ "version": "1.1.0",
+ "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.1.0.tgz",
+ "integrity": "sha512-g6QUff04oZpHs0eG5p83rFLhHeV00ug/Yf9nZM6fLeUrPguBTkTQOdpAWWspMh55TZfVQDPaN3NQJfbVRAxdIw==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "iojs": ">=1.0.0",
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/rimraf": {
+ "version": "2.7.1",
+ "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
+ "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
+ "deprecated": "Rimraf versions prior to v4 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "glob": "^7.1.3"
+ },
+ "bin": {
+ "rimraf": "bin.js"
+ }
+ },
+ "node_modules/rimraf/node_modules/glob": {
+ "version": "7.2.3",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
+ "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
+ "deprecated": "Glob versions prior to v9 are no longer supported",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "fs.realpath": "^1.0.0",
+ "inflight": "^1.0.4",
+ "inherits": "2",
+ "minimatch": "^3.1.1",
+ "once": "^1.3.0",
+ "path-is-absolute": "^1.0.0"
+ },
+ "engines": {
+ "node": "*"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/rimraf/node_modules/minimatch": {
+ "version": "3.1.2",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
+ "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^1.1.7"
+ },
+ "engines": {
+ "node": "*"
+ }
+ },
+ "node_modules/rollup": {
+ "version": "4.52.4",
+ "resolved": "https://registry.npmjs.org/rollup/-/rollup-4.52.4.tgz",
+ "integrity": "sha512-CLEVl+MnPAiKh5pl4dEWSyMTpuflgNQiLGhMv8ezD5W/qP8AKvmYpCOKRRNOh7oRKnauBZ4SyeYkMS+1VSyKwQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/estree": "1.0.8"
+ },
+ "bin": {
+ "rollup": "dist/bin/rollup"
+ },
+ "engines": {
+ "node": ">=18.0.0",
+ "npm": ">=8.0.0"
+ },
+ "optionalDependencies": {
+ "@rollup/rollup-android-arm-eabi": "4.52.4",
+ "@rollup/rollup-android-arm64": "4.52.4",
+ "@rollup/rollup-darwin-arm64": "4.52.4",
+ "@rollup/rollup-darwin-x64": "4.52.4",
+ "@rollup/rollup-freebsd-arm64": "4.52.4",
+ "@rollup/rollup-freebsd-x64": "4.52.4",
+ "@rollup/rollup-linux-arm-gnueabihf": "4.52.4",
+ "@rollup/rollup-linux-arm-musleabihf": "4.52.4",
+ "@rollup/rollup-linux-arm64-gnu": "4.52.4",
+ "@rollup/rollup-linux-arm64-musl": "4.52.4",
+ "@rollup/rollup-linux-loong64-gnu": "4.52.4",
+ "@rollup/rollup-linux-ppc64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-gnu": "4.52.4",
+ "@rollup/rollup-linux-riscv64-musl": "4.52.4",
+ "@rollup/rollup-linux-s390x-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-gnu": "4.52.4",
+ "@rollup/rollup-linux-x64-musl": "4.52.4",
+ "@rollup/rollup-openharmony-arm64": "4.52.4",
+ "@rollup/rollup-win32-arm64-msvc": "4.52.4",
+ "@rollup/rollup-win32-ia32-msvc": "4.52.4",
+ "@rollup/rollup-win32-x64-gnu": "4.52.4",
+ "@rollup/rollup-win32-x64-msvc": "4.52.4",
+ "fsevents": "~2.3.2"
+ }
+ },
+ "node_modules/run-parallel": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz",
+ "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==",
+ "dev": true,
+ "funding": [
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/feross"
+ },
+ {
+ "type": "patreon",
+ "url": "https://www.patreon.com/feross"
+ },
+ {
+ "type": "consulting",
+ "url": "https://feross.org/support"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "queue-microtask": "^1.2.2"
+ }
+ },
+ "node_modules/semver": {
+ "version": "7.7.3",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.7.3.tgz",
+ "integrity": "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==",
+ "license": "ISC",
+ "bin": {
+ "semver": "bin/semver.js"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/shebang-command": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
+ "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
+ "license": "MIT",
+ "dependencies": {
+ "shebang-regex": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/shebang-regex": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
+ "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/siginfo": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/siginfo/-/siginfo-2.0.0.tgz",
+ "integrity": "sha512-ybx0WO1/8bSBLEWXZvEd7gMW3Sn3JFlW3TvX1nREbDLRNQNaeNN8WK0meBwPdAaOI7TtRRRJn/Es1zhrrCHu7g==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/signal-exit": {
+ "version": "4.1.0",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-4.1.0.tgz",
+ "integrity": "sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw==",
+ "dev": true,
+ "license": "ISC",
+ "engines": {
+ "node": ">=14"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/sisteransi": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz",
+ "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==",
+ "license": "MIT"
+ },
+ "node_modules/slash": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz",
+ "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/slice-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-4.0.0.tgz",
+ "integrity": "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "astral-regex": "^2.0.0",
+ "is-fullwidth-code-point": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/slice-ansi?sponsor=1"
+ }
+ },
+ "node_modules/slice-ansi/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/source-map": {
+ "version": "0.6.1",
+ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
+ "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-js": {
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.2.1.tgz",
+ "integrity": "sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/source-map-support": {
+ "version": "0.5.13",
+ "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz",
+ "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==",
+ "license": "MIT",
+ "dependencies": {
+ "buffer-from": "^1.0.0",
+ "source-map": "^0.6.0"
+ }
+ },
+ "node_modules/sprintf-js": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
+ "integrity": "sha512-D9cPgkvLlV3t3IzL0D0YLvGA9Ahk4PcvVwUbN0dSGr1aP0Nrt4AEnTUbuGvquEC0mA64Gqt1fzirlRs5ibXx8g==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/stack-utils": {
+ "version": "2.0.6",
+ "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.6.tgz",
+ "integrity": "sha512-XlkWvfIm6RmsWtNJx+uqtKLS8eqFbxUg0ZzLXqY0caEy9l7hruX8IpiDnjsLavoBgqCCR71TqWO8MaXYheJ3RQ==",
+ "license": "MIT",
+ "dependencies": {
+ "escape-string-regexp": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/stack-utils/node_modules/escape-string-regexp": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz",
+ "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/stackback": {
+ "version": "0.0.2",
+ "resolved": "https://registry.npmjs.org/stackback/-/stackback-0.0.2.tgz",
+ "integrity": "sha512-1XMJE5fQo1jGH6Y/7ebnwPOBEkIEnT4QF32d5R1+VXdXveM0IBMJt8zfaxX1P3QhVwrYe+576+jkANtSS2mBbw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/std-env": {
+ "version": "3.9.0",
+ "resolved": "https://registry.npmjs.org/std-env/-/std-env-3.9.0.tgz",
+ "integrity": "sha512-UGvjygr6F6tpH7o2qyqR6QYpwraIjKSdtzyBdyytFOHmPZY917kwdwLG0RbOjWOnKmnm3PeHjaoLLMie7kPLQw==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-length": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz",
+ "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==",
+ "license": "MIT",
+ "dependencies": {
+ "char-regex": "^1.0.2",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/string-length/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-length/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width": {
+ "version": "5.1.2",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-5.1.2.tgz",
+ "integrity": "sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "eastasianwidth": "^0.2.0",
+ "emoji-regex": "^9.2.2",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/string-width-cjs": {
+ "name": "string-width",
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/string-width-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/string-width-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi": {
+ "version": "7.1.2",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-7.1.2.tgz",
+ "integrity": "sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/strip-ansi?sponsor=1"
+ }
+ },
+ "node_modules/strip-ansi-cjs": {
+ "name": "strip-ansi",
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-bom": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz",
+ "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/strip-final-newline": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz",
+ "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/strip-json-comments": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
+ "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/supports-color": {
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
+ "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
+ "license": "MIT",
+ "dependencies": {
+ "has-flag": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/supports-preserve-symlinks-flag": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz",
+ "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==",
+ "license": "MIT",
+ "engines": {
+ "node": ">= 0.4"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/ljharb"
+ }
+ },
+ "node_modules/table": {
+ "version": "6.9.0",
+ "resolved": "https://registry.npmjs.org/table/-/table-6.9.0.tgz",
+ "integrity": "sha512-9kY+CygyYM6j02t5YFHbNz2FN5QmYGv9zAjVp4lCDjlCw7amdckXlEt/bjMhUIfj4ThGRE4gCUH5+yGnNuPo5A==",
+ "dev": true,
+ "license": "BSD-3-Clause",
+ "dependencies": {
+ "ajv": "^8.0.1",
+ "lodash.truncate": "^4.4.2",
+ "slice-ansi": "^4.0.0",
+ "string-width": "^4.2.3",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=10.0.0"
+ }
+ },
+ "node_modules/table/node_modules/ajv": {
+ "version": "8.17.1",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.17.1.tgz",
+ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "fast-deep-equal": "^3.1.3",
+ "fast-uri": "^3.0.1",
+ "json-schema-traverse": "^1.0.0",
+ "require-from-string": "^2.0.2"
+ },
+ "funding": {
+ "type": "github",
+ "url": "https://github.com/sponsors/epoberezkin"
+ }
+ },
+ "node_modules/table/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/table/node_modules/json-schema-traverse": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz",
+ "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/table/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/tar": {
+ "version": "7.5.1",
+ "resolved": "https://registry.npmjs.org/tar/-/tar-7.5.1.tgz",
+ "integrity": "sha512-nlGpxf+hv0v7GkWBK2V9spgactGOp0qvfWRxUMjqHyzrt3SgwE48DIv/FhqPHJYLHpgW1opq3nERbz5Anq7n1g==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@isaacs/fs-minipass": "^4.0.0",
+ "chownr": "^3.0.0",
+ "minipass": "^7.1.2",
+ "minizlib": "^3.1.0",
+ "yallist": "^5.0.0"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/tar/node_modules/yallist": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-5.0.0.tgz",
+ "integrity": "sha512-YgvUTfwqyc7UXVMrB+SImsVYSmTS8X/tSrtdNZMImM+n7+QTriRXyXim0mBrTXNeqzVF0KWGgHPeiyViFFrNDw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/test-exclude": {
+ "version": "7.0.1",
+ "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-7.0.1.tgz",
+ "integrity": "sha512-pFYqmTw68LXVjeWJMST4+borgQP2AyMNbg1BpZh9LbyhUeNkeaPF9gzfPGUAnSMV3qPYdWUwDIjjCLiSDOl7vg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "@istanbuljs/schema": "^0.1.2",
+ "glob": "^10.4.1",
+ "minimatch": "^9.0.4"
+ },
+ "engines": {
+ "node": ">=18"
+ }
+ },
+ "node_modules/test-exclude/node_modules/brace-expansion": {
+ "version": "2.0.2",
+ "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.2.tgz",
+ "integrity": "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "balanced-match": "^1.0.0"
+ }
+ },
+ "node_modules/test-exclude/node_modules/glob": {
+ "version": "10.4.5",
+ "resolved": "https://registry.npmjs.org/glob/-/glob-10.4.5.tgz",
+ "integrity": "sha512-7Bv8RF0k6xjo7d4A/PxYLbUCfb6c+Vpd2/mB2yRDlew7Jb5hEXiCD9ibfO7wpk8i4sevK6DFny9h7EYbM3/sHg==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "foreground-child": "^3.1.0",
+ "jackspeak": "^3.1.2",
+ "minimatch": "^9.0.4",
+ "minipass": "^7.1.2",
+ "package-json-from-dist": "^1.0.0",
+ "path-scurry": "^1.11.1"
+ },
+ "bin": {
+ "glob": "dist/esm/bin.mjs"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/test-exclude/node_modules/jackspeak": {
+ "version": "3.4.3",
+ "resolved": "https://registry.npmjs.org/jackspeak/-/jackspeak-3.4.3.tgz",
+ "integrity": "sha512-OGlZQpz2yfahA/Rd1Y8Cd9SIEsqvXkLVoSw/cgwhnhFMDbsQFeZYoJJ7bIZBS9BcamUW96asq/npPWugM+RQBw==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "@isaacs/cliui": "^8.0.2"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ },
+ "optionalDependencies": {
+ "@pkgjs/parseargs": "^0.11.0"
+ }
+ },
+ "node_modules/test-exclude/node_modules/lru-cache": {
+ "version": "10.4.3",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-10.4.3.tgz",
+ "integrity": "sha512-JNAzZcXrCt42VGLuYz0zfAzDfAvJWW6AfYlDBQyDV5DClI2m5sAmK+OIO7s59XfsRsWHp02jAJrRadPRGTt6SQ==",
+ "dev": true,
+ "license": "ISC"
+ },
+ "node_modules/test-exclude/node_modules/minimatch": {
+ "version": "9.0.5",
+ "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-9.0.5.tgz",
+ "integrity": "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "brace-expansion": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.17"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/test-exclude/node_modules/path-scurry": {
+ "version": "1.11.1",
+ "resolved": "https://registry.npmjs.org/path-scurry/-/path-scurry-1.11.1.tgz",
+ "integrity": "sha512-Xa4Nw17FS9ApQFJ9umLiJS4orGjm7ZzwUrwamcGQuHSzDyth9boKDaycYdDcZDuqYATXw4HFXgaqWTctW/v1HA==",
+ "dev": true,
+ "license": "BlueOak-1.0.0",
+ "dependencies": {
+ "lru-cache": "^10.2.0",
+ "minipass": "^5.0.0 || ^6.0.2 || ^7.0.0"
+ },
+ "engines": {
+ "node": ">=16 || 14 >=14.18"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/isaacs"
+ }
+ },
+ "node_modules/tinybench": {
+ "version": "2.9.0",
+ "resolved": "https://registry.npmjs.org/tinybench/-/tinybench-2.9.0.tgz",
+ "integrity": "sha512-0+DUvqWMValLmha6lr4kD8iAMK1HzV0/aKnCtWb9v9641TnP/MFb7Pc2bxoxQjTXAErryXVgUOfv2YqNllqGeg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinyexec": {
+ "version": "0.3.2",
+ "resolved": "https://registry.npmjs.org/tinyexec/-/tinyexec-0.3.2.tgz",
+ "integrity": "sha512-KQQR9yN7R5+OSwaK0XQoj22pwHoTlgYqmUscPYoknOoWCWfj/5/ABTMRi69FrKU5ffPVh5QcFikpWJI/P1ocHA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/tinypool": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/tinypool/-/tinypool-1.1.1.tgz",
+ "integrity": "sha512-Zba82s87IFq9A9XmjiX5uZA/ARWDrB03OHlq+Vw1fSdt0I+4/Kutwy8BP4Y/y/aORMo61FQ0vIb5j44vSo5Pkg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ }
+ },
+ "node_modules/tinyrainbow": {
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/tinyrainbow/-/tinyrainbow-1.2.0.tgz",
+ "integrity": "sha512-weEDEq7Z5eTHPDh4xjX789+fHfF+P8boiFB+0vbWzpbnbsEr/GRaohi/uMKxg8RZMXnl1ItAi/IUHWMsjDV7kQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tinyspy": {
+ "version": "3.0.2",
+ "resolved": "https://registry.npmjs.org/tinyspy/-/tinyspy-3.0.2.tgz",
+ "integrity": "sha512-n1cw8k1k0x4pgA2+9XrOkFydTerNcJ1zWCO5Nn9scWHTD+5tp8dghT2x1uduQePZTZgd3Tupf+x9BxJjeJi77Q==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/tmpl": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.5.tgz",
+ "integrity": "sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==",
+ "license": "BSD-3-Clause"
+ },
+ "node_modules/to-regex-range": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
+ "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
+ "license": "MIT",
+ "dependencies": {
+ "is-number": "^7.0.0"
+ },
+ "engines": {
+ "node": ">=8.0"
+ }
+ },
+ "node_modules/tree-kill": {
+ "version": "1.2.2",
+ "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz",
+ "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==",
+ "dev": true,
+ "license": "MIT",
+ "bin": {
+ "tree-kill": "cli.js"
+ }
+ },
+ "node_modules/ts-api-utils": {
+ "version": "2.1.0",
+ "resolved": "https://registry.npmjs.org/ts-api-utils/-/ts-api-utils-2.1.0.tgz",
+ "integrity": "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=18.12"
+ },
+ "peerDependencies": {
+ "typescript": ">=4.8.4"
+ }
+ },
+ "node_modules/ts-jest": {
+ "version": "29.4.5",
+ "resolved": "https://registry.npmjs.org/ts-jest/-/ts-jest-29.4.5.tgz",
+ "integrity": "sha512-HO3GyiWn2qvTQA4kTgjDcXiMwYQt68a1Y8+JuLRVpdIzm+UOLSHgl/XqR4c6nzJkq5rOkjc02O2I7P7l/Yof0Q==",
+ "license": "MIT",
+ "dependencies": {
+ "bs-logger": "^0.2.6",
+ "fast-json-stable-stringify": "^2.1.0",
+ "handlebars": "^4.7.8",
+ "json5": "^2.2.3",
+ "lodash.memoize": "^4.1.2",
+ "make-error": "^1.3.6",
+ "semver": "^7.7.3",
+ "type-fest": "^4.41.0",
+ "yargs-parser": "^21.1.1"
+ },
+ "bin": {
+ "ts-jest": "cli.js"
+ },
+ "engines": {
+ "node": "^14.15.0 || ^16.10.0 || ^18.0.0 || >=20.0.0"
+ },
+ "peerDependencies": {
+ "@babel/core": ">=7.0.0-beta.0 <8",
+ "@jest/transform": "^29.0.0 || ^30.0.0",
+ "@jest/types": "^29.0.0 || ^30.0.0",
+ "babel-jest": "^29.0.0 || ^30.0.0",
+ "jest": "^29.0.0 || ^30.0.0",
+ "jest-util": "^29.0.0 || ^30.0.0",
+ "typescript": ">=4.3 <6"
+ },
+ "peerDependenciesMeta": {
+ "@babel/core": {
+ "optional": true
+ },
+ "@jest/transform": {
+ "optional": true
+ },
+ "@jest/types": {
+ "optional": true
+ },
+ "babel-jest": {
+ "optional": true
+ },
+ "esbuild": {
+ "optional": true
+ },
+ "jest-util": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-jest/node_modules/type-fest": {
+ "version": "4.41.0",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-4.41.0.tgz",
+ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=16"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/ts-node": {
+ "version": "10.9.2",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.2.tgz",
+ "integrity": "sha512-f0FFpIdcHgn8zcPSbf1dRevwt047YMnaiJM3u2w2RewrB+fob/zePZcrOyQoLMMO7aBIddLcQIEK5dYjkLnGrQ==",
+ "devOptional": true,
+ "license": "MIT",
+ "dependencies": {
+ "@cspotcode/source-map-support": "^0.8.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.1",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-esm": "dist/bin-esm.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-node-dev": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/ts-node-dev/-/ts-node-dev-2.0.0.tgz",
+ "integrity": "sha512-ywMrhCfH6M75yftYvrvNarLEY+SUXtUvU8/0Z6llrHQVBx12GiFk5sStF8UdfE/yfzk9IAq7O5EEbTQsxlBI8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "chokidar": "^3.5.1",
+ "dynamic-dedupe": "^0.3.0",
+ "minimist": "^1.2.6",
+ "mkdirp": "^1.0.4",
+ "resolve": "^1.0.0",
+ "rimraf": "^2.6.1",
+ "source-map-support": "^0.5.12",
+ "tree-kill": "^1.2.2",
+ "ts-node": "^10.4.0",
+ "tsconfig": "^7.0.0"
+ },
+ "bin": {
+ "ts-node-dev": "lib/bin.js",
+ "tsnd": "lib/bin.js"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ },
+ "peerDependencies": {
+ "node-notifier": "*",
+ "typescript": "*"
+ },
+ "peerDependenciesMeta": {
+ "node-notifier": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/tsconfig": {
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/tsconfig/-/tsconfig-7.0.0.tgz",
+ "integrity": "sha512-vZXmzPrL+EmC4T/4rVlT2jNVMWCi/O4DIiSj3UHg1OE5kCKbk4mfrXc6dZksLgRM/TZlKnousKH9bbTazUWRRw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@types/strip-bom": "^3.0.0",
+ "@types/strip-json-comments": "0.0.30",
+ "strip-bom": "^3.0.0",
+ "strip-json-comments": "^2.0.0"
+ }
+ },
+ "node_modules/tsconfig/node_modules/strip-bom": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz",
+ "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/tsconfig/node_modules/strip-json-comments": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
+ "integrity": "sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/tslib": {
+ "version": "2.8.1",
+ "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.8.1.tgz",
+ "integrity": "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w==",
+ "license": "0BSD"
+ },
+ "node_modules/tweetnacl": {
+ "version": "1.0.3",
+ "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz",
+ "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==",
+ "dev": true,
+ "license": "Unlicense"
+ },
+ "node_modules/type-check": {
+ "version": "0.4.0",
+ "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
+ "integrity": "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "prelude-ls": "^1.2.1"
+ },
+ "engines": {
+ "node": ">= 0.8.0"
+ }
+ },
+ "node_modules/type-detect": {
+ "version": "4.0.8",
+ "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz",
+ "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/type-fest": {
+ "version": "0.21.3",
+ "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
+ "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
+ "license": "(MIT OR CC0-1.0)",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ },
+ "node_modules/typescript": {
+ "version": "5.9.3",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.9.3.tgz",
+ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==",
+ "license": "Apache-2.0",
+ "bin": {
+ "tsc": "bin/tsc",
+ "tsserver": "bin/tsserver"
+ },
+ "engines": {
+ "node": ">=14.17"
+ }
+ },
+ "node_modules/typescript-eslint": {
+ "version": "8.46.0",
+ "resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.46.0.tgz",
+ "integrity": "sha512-6+ZrB6y2bT2DX3K+Qd9vn7OFOJR+xSLDj+Aw/N3zBwUt27uTw2sw2TE2+UcY1RiyBZkaGbTkVg9SSdPNUG6aUw==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@typescript-eslint/eslint-plugin": "8.46.0",
+ "@typescript-eslint/parser": "8.46.0",
+ "@typescript-eslint/typescript-estree": "8.46.0",
+ "@typescript-eslint/utils": "8.46.0"
+ },
+ "engines": {
+ "node": "^18.18.0 || ^20.9.0 || >=21.1.0"
+ },
+ "funding": {
+ "type": "opencollective",
+ "url": "https://opencollective.com/typescript-eslint"
+ },
+ "peerDependencies": {
+ "eslint": "^8.57.0 || ^9.0.0",
+ "typescript": ">=4.8.4 <6.0.0"
+ }
+ },
+ "node_modules/uglify-js": {
+ "version": "3.19.3",
+ "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
+ "integrity": "sha512-v3Xu+yuwBXisp6QYTcH4UbH+xYJXqnq2m/LtQVWKWzYc1iehYnLixoQDN9FH6/j9/oybfd6W9Ghwkl8+UMKTKQ==",
+ "license": "BSD-2-Clause",
+ "optional": true,
+ "bin": {
+ "uglifyjs": "bin/uglifyjs"
+ },
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
+ "node_modules/undici-types": {
+ "version": "7.14.0",
+ "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-7.14.0.tgz",
+ "integrity": "sha512-QQiYxHuyZ9gQUIrmPo3IA+hUl4KYk8uSA7cHrcKd/l3p1OTpZcM0Tbp9x7FAtXdAYhlasd60ncPpgu6ihG6TOA==",
+ "license": "MIT"
+ },
+ "node_modules/upath": {
+ "version": "2.0.1",
+ "resolved": "https://registry.npmjs.org/upath/-/upath-2.0.1.tgz",
+ "integrity": "sha512-1uEe95xksV1O0CYKXo8vQvN1JEbtJp7lb7C5U9HMsIp6IVwntkH/oNUzyVNQSd4S1sYk2FpSSW44FqMc8qee5w==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=4",
+ "yarn": "*"
+ }
+ },
+ "node_modules/update-browserslist-db": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz",
+ "integrity": "sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw==",
+ "funding": [
+ {
+ "type": "opencollective",
+ "url": "https://opencollective.com/browserslist"
+ },
+ {
+ "type": "tidelift",
+ "url": "https://tidelift.com/funding/github/npm/browserslist"
+ },
+ {
+ "type": "github",
+ "url": "https://github.com/sponsors/ai"
+ }
+ ],
+ "license": "MIT",
+ "dependencies": {
+ "escalade": "^3.2.0",
+ "picocolors": "^1.1.1"
+ },
+ "bin": {
+ "update-browserslist-db": "cli.js"
+ },
+ "peerDependencies": {
+ "browserslist": ">= 4.21.0"
+ }
+ },
+ "node_modules/uri-js": {
+ "version": "4.4.1",
+ "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
+ "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
+ "dev": true,
+ "license": "BSD-2-Clause",
+ "dependencies": {
+ "punycode": "^2.1.0"
+ }
+ },
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.1",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz",
+ "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==",
+ "devOptional": true,
+ "license": "MIT"
+ },
+ "node_modules/v8-to-istanbul": {
+ "version": "9.3.0",
+ "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-9.3.0.tgz",
+ "integrity": "sha512-kiGUalWN+rgBJ/1OHZsBtU4rXZOfj/7rKQxULKlIzwzQSvMJUUNgPwJEEh7gU6xEVxC0ahoOBvN2YI8GH6FNgA==",
+ "license": "ISC",
+ "dependencies": {
+ "@jridgewell/trace-mapping": "^0.3.12",
+ "@types/istanbul-lib-coverage": "^2.0.1",
+ "convert-source-map": "^2.0.0"
+ },
+ "engines": {
+ "node": ">=10.12.0"
+ }
+ },
+ "node_modules/vite": {
+ "version": "5.4.20",
+ "resolved": "https://registry.npmjs.org/vite/-/vite-5.4.20.tgz",
+ "integrity": "sha512-j3lYzGC3P+B5Yfy/pfKNgVEg4+UtcIJcVRt2cDjIOmhLourAqPqf8P7acgxeiSgUB7E3p2P8/3gNIgDLpwzs4g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "esbuild": "^0.21.3",
+ "postcss": "^8.4.43",
+ "rollup": "^4.20.0"
+ },
+ "bin": {
+ "vite": "bin/vite.js"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://github.com/vitejs/vite?sponsor=1"
+ },
+ "optionalDependencies": {
+ "fsevents": "~2.3.3"
+ },
+ "peerDependencies": {
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "less": "*",
+ "lightningcss": "^1.21.0",
+ "sass": "*",
+ "sass-embedded": "*",
+ "stylus": "*",
+ "sugarss": "*",
+ "terser": "^5.4.0"
+ },
+ "peerDependenciesMeta": {
+ "@types/node": {
+ "optional": true
+ },
+ "less": {
+ "optional": true
+ },
+ "lightningcss": {
+ "optional": true
+ },
+ "sass": {
+ "optional": true
+ },
+ "sass-embedded": {
+ "optional": true
+ },
+ "stylus": {
+ "optional": true
+ },
+ "sugarss": {
+ "optional": true
+ },
+ "terser": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vite-node": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/vite-node/-/vite-node-2.1.9.tgz",
+ "integrity": "sha512-AM9aQ/IPrW/6ENLQg3AGY4K1N2TGZdR5e4gu/MmmR2xR3Ll1+dib+nook92g4TV3PXVyeyxdWwtaCAiUL0hMxA==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "cac": "^6.7.14",
+ "debug": "^4.3.7",
+ "es-module-lexer": "^1.5.4",
+ "pathe": "^1.1.2",
+ "vite": "^5.0.0"
+ },
+ "bin": {
+ "vite-node": "vite-node.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ }
+ },
+ "node_modules/vitest": {
+ "version": "2.1.9",
+ "resolved": "https://registry.npmjs.org/vitest/-/vitest-2.1.9.tgz",
+ "integrity": "sha512-MSmPM9REYqDGBI8439mA4mWhV5sKmDlBKWIYbA3lRb2PTHACE0mgKwA8yQ2xq9vxDTuk4iPrECBAEW2aoFXY0Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "@vitest/expect": "2.1.9",
+ "@vitest/mocker": "2.1.9",
+ "@vitest/pretty-format": "^2.1.9",
+ "@vitest/runner": "2.1.9",
+ "@vitest/snapshot": "2.1.9",
+ "@vitest/spy": "2.1.9",
+ "@vitest/utils": "2.1.9",
+ "chai": "^5.1.2",
+ "debug": "^4.3.7",
+ "expect-type": "^1.1.0",
+ "magic-string": "^0.30.12",
+ "pathe": "^1.1.2",
+ "std-env": "^3.8.0",
+ "tinybench": "^2.9.0",
+ "tinyexec": "^0.3.1",
+ "tinypool": "^1.0.1",
+ "tinyrainbow": "^1.2.0",
+ "vite": "^5.0.0",
+ "vite-node": "2.1.9",
+ "why-is-node-running": "^2.3.0"
+ },
+ "bin": {
+ "vitest": "vitest.mjs"
+ },
+ "engines": {
+ "node": "^18.0.0 || >=20.0.0"
+ },
+ "funding": {
+ "url": "https://opencollective.com/vitest"
+ },
+ "peerDependencies": {
+ "@edge-runtime/vm": "*",
+ "@types/node": "^18.0.0 || >=20.0.0",
+ "@vitest/browser": "2.1.9",
+ "@vitest/ui": "2.1.9",
+ "happy-dom": "*",
+ "jsdom": "*"
+ },
+ "peerDependenciesMeta": {
+ "@edge-runtime/vm": {
+ "optional": true
+ },
+ "@types/node": {
+ "optional": true
+ },
+ "@vitest/browser": {
+ "optional": true
+ },
+ "@vitest/ui": {
+ "optional": true
+ },
+ "happy-dom": {
+ "optional": true
+ },
+ "jsdom": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/vlq": {
+ "version": "2.0.4",
+ "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz",
+ "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-jsonrpc": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/vscode-jsonrpc/-/vscode-jsonrpc-8.2.0.tgz",
+ "integrity": "sha512-C+r0eKJUIfiDIfwJhria30+TYWPtuHJXHtI7J0YlOmKAo7ogxP20T0zxB7HZQIFhIyvoBPwWskjxrvAtfjyZfA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=14.0.0"
+ }
+ },
+ "node_modules/vscode-languageserver": {
+ "version": "9.0.1",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver/-/vscode-languageserver-9.0.1.tgz",
+ "integrity": "sha512-woByF3PDpkHFUreUa7Hos7+pUWdeWMXRd26+ZX2A8cFx6v/JPTtd4/uN0/jB6XQHYaOlHbio03NTHCqrgG5n7g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-languageserver-protocol": "3.17.5"
+ },
+ "bin": {
+ "installServerIntoExtension": "bin/installServerIntoExtension"
+ }
+ },
+ "node_modules/vscode-languageserver-protocol": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-protocol/-/vscode-languageserver-protocol-3.17.5.tgz",
+ "integrity": "sha512-mb1bvRJN8SVznADSGWM9u/b07H7Ecg0I3OgXDuLdn307rl/J3A9YD6/eYOssqhecL27hK1IPZAsaqh00i/Jljg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "vscode-jsonrpc": "8.2.0",
+ "vscode-languageserver-types": "3.17.5"
+ }
+ },
+ "node_modules/vscode-languageserver-textdocument": {
+ "version": "1.0.12",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-textdocument/-/vscode-languageserver-textdocument-1.0.12.tgz",
+ "integrity": "sha512-cxWNPesCnQCcMPeenjKKsOCKQZ/L6Tv19DTRIGuLWe32lyzWhihGVJ/rcckZXJxfdKCFvRLS3fpBIsV/ZGX4zA==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-languageserver-types": {
+ "version": "3.17.5",
+ "resolved": "https://registry.npmjs.org/vscode-languageserver-types/-/vscode-languageserver-types-3.17.5.tgz",
+ "integrity": "sha512-Ld1VelNuX9pdF39h2Hgaeb5hEZM2Z3jUrrMgWQAu82jMtZp7p3vJT3BzToKtZI7NgQssZje5o0zryOrhQvzQAg==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/vscode-uri": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/vscode-uri/-/vscode-uri-3.1.0.tgz",
+ "integrity": "sha512-/BpdSx+yCQGnCvecbyXdxHDkuk55/G3xwnC0GqY4gmQ3j+A+g8kzzgB4Nk/SINjqn6+waqw3EgbVF2QKExkRxQ==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/walker": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.8.tgz",
+ "integrity": "sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==",
+ "license": "Apache-2.0",
+ "dependencies": {
+ "makeerror": "1.0.12"
+ }
+ },
+ "node_modules/which": {
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/which/-/which-5.0.0.tgz",
+ "integrity": "sha512-JEdGzHwwkrbWoGOlIHqQ5gtprKGOenpDHpxE9zVR1bWbOtYRyPPHMe9FaP6x61CmNaTThSkb0DAJte5jD+DmzQ==",
+ "dev": true,
+ "license": "ISC",
+ "dependencies": {
+ "isexe": "^3.1.1"
+ },
+ "bin": {
+ "node-which": "bin/which.js"
+ },
+ "engines": {
+ "node": "^18.17.0 || >=20.5.0"
+ }
+ },
+ "node_modules/why-is-node-running": {
+ "version": "2.3.0",
+ "resolved": "https://registry.npmjs.org/why-is-node-running/-/why-is-node-running-2.3.0.tgz",
+ "integrity": "sha512-hUrmaWBdVDcxvYqnyh09zunKzROWjbZTiNy8dBEjkS7ehEDQibXJ7XvlmtbwuTclUiIyN+CyXQD4Vmko8fNm8w==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "siginfo": "^2.0.0",
+ "stackback": "0.0.2"
+ },
+ "bin": {
+ "why-is-node-running": "cli.js"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/word-wrap": {
+ "version": "1.2.5",
+ "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
+ "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.10.0"
+ }
+ },
+ "node_modules/wordwrap": {
+ "version": "1.0.0",
+ "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
+ "integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q==",
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi": {
+ "version": "8.1.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-8.1.0.tgz",
+ "integrity": "sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^6.1.0",
+ "string-width": "^5.0.1",
+ "strip-ansi": "^7.0.1"
+ },
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs": {
+ "name": "wrap-ansi",
+ "version": "7.0.0",
+ "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
+ "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-styles": "^4.0.0",
+ "string-width": "^4.1.0",
+ "strip-ansi": "^6.0.0"
+ },
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/wrap-ansi?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/ansi-styles": {
+ "version": "4.3.0",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
+ "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "color-convert": "^2.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "dev": true,
+ "license": "MIT"
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi-cjs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "dev": true,
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/wrap-ansi/node_modules/ansi-styles": {
+ "version": "6.2.3",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-6.2.3.tgz",
+ "integrity": "sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=12"
+ },
+ "funding": {
+ "url": "https://github.com/chalk/ansi-styles?sponsor=1"
+ }
+ },
+ "node_modules/wrappy": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
+ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
+ "license": "ISC"
+ },
+ "node_modules/write-file-atomic": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-4.0.2.tgz",
+ "integrity": "sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==",
+ "license": "ISC",
+ "dependencies": {
+ "imurmurhash": "^0.1.4",
+ "signal-exit": "^3.0.7"
+ },
+ "engines": {
+ "node": "^12.13.0 || ^14.15.0 || >=16.0.0"
+ }
+ },
+ "node_modules/write-file-atomic/node_modules/signal-exit": {
+ "version": "3.0.7",
+ "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
+ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
+ "license": "ISC"
+ },
+ "node_modules/xtend": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz",
+ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==",
+ "dev": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=0.4"
+ }
+ },
+ "node_modules/y18n": {
+ "version": "5.0.8",
+ "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz",
+ "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=10"
+ }
+ },
+ "node_modules/yallist": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
+ "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==",
+ "license": "ISC"
+ },
+ "node_modules/yargs": {
+ "version": "17.7.2",
+ "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz",
+ "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==",
+ "license": "MIT",
+ "dependencies": {
+ "cliui": "^8.0.1",
+ "escalade": "^3.1.1",
+ "get-caller-file": "^2.0.5",
+ "require-directory": "^2.1.1",
+ "string-width": "^4.2.3",
+ "y18n": "^5.0.5",
+ "yargs-parser": "^21.1.1"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs-parser": {
+ "version": "21.1.1",
+ "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.1.1.tgz",
+ "integrity": "sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw==",
+ "license": "ISC",
+ "engines": {
+ "node": ">=12"
+ }
+ },
+ "node_modules/yargs/node_modules/ansi-regex": {
+ "version": "5.0.1",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
+ "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/emoji-regex": {
+ "version": "8.0.0",
+ "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
+ "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
+ "license": "MIT"
+ },
+ "node_modules/yargs/node_modules/string-width": {
+ "version": "4.2.3",
+ "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
+ "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
+ "license": "MIT",
+ "dependencies": {
+ "emoji-regex": "^8.0.0",
+ "is-fullwidth-code-point": "^3.0.0",
+ "strip-ansi": "^6.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yargs/node_modules/strip-ansi": {
+ "version": "6.0.1",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
+ "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
+ "license": "MIT",
+ "dependencies": {
+ "ansi-regex": "^5.0.1"
+ },
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "devOptional": true,
+ "license": "MIT",
+ "engines": {
+ "node": ">=6"
+ }
+ },
+ "node_modules/yocto-queue": {
+ "version": "0.1.0",
+ "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
+ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==",
+ "license": "MIT",
+ "engines": {
+ "node": ">=10"
+ },
+ "funding": {
+ "url": "https://github.com/sponsors/sindresorhus"
+ }
+ }
+ }
+}
diff --git a/assets/arc-0058/projects/arc-0058/package.json b/assets/arc-0058/projects/arc-0058/package.json
new file mode 100644
index 000000000..02bbf138c
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/package.json
@@ -0,0 +1,52 @@
+{
+ "name": "smart_contracts",
+ "version": "1.0.0",
+ "description": "Smart contract deployer",
+ "main": "smart_contracts/index.ts",
+ "scripts": {
+ "build": "algokit compile ts smart_contracts --puya-path=puya --output-source-map --out-dir artifacts && algokit generate client smart_contracts/artifacts --output {app_spec_dir}/{contract_name}Client.ts",
+ "deploy": "ts-node-dev --transpile-only --watch .env -r dotenv/config smart_contracts/index.ts",
+ "deploy:ci": "ts-node --transpile-only -r dotenv/config smart_contracts/index.ts",
+ "lint": "eslint smart_contracts",
+ "lint:fix": "eslint smart_contracts --fix",
+ "audit": "better-npm-audit audit",
+ "format": "prettier --write .",
+ "test-vitest": "vitest run --coverage",
+ "test": "npm run build && jest",
+ "test:watch": "vitest watch",
+ "check-types": "tsc --noEmit"
+ },
+ "engines": {
+ "node": ">=22.0",
+ "npm": ">=9.0"
+ },
+ "dependencies": {
+ "@algorandfoundation/algorand-typescript": "^1.0.1",
+ "@jest/globals": "^29.7.0",
+ "jest": "^29.7.0",
+ "ts-jest": "^29.4.0"
+ },
+ "devDependencies": {
+ "@algorandfoundation/algokit-client-generator": "^6.0.1-beta.2",
+ "@algorandfoundation/algokit-utils": "^9.1.2",
+ "@algorandfoundation/algokit-utils-debug": "^1.0.4",
+ "@algorandfoundation/algorand-typescript-testing": "^1.0.1",
+ "@algorandfoundation/puya-ts": "^1.0.1",
+ "@eslint/js": "^9.18.0",
+ "@rollup/plugin-typescript": "^12.1.2",
+ "@tsconfig/node22": "^22.0.0",
+ "@vitest/coverage-v8": "^2.1.8",
+ "algosdk": "^3.4.0",
+ "better-npm-audit": "^3.11.0",
+ "dotenv": "^16.4.7",
+ "eslint": "^9.18.0",
+ "prettier": "^3.4.2",
+ "ts-node-dev": "^2.0.0",
+ "typescript": "^5.7.3",
+ "typescript-eslint": "^8.19.1",
+ "vitest": "^2.1.8"
+ },
+ "overrides": {
+ "esbuild": "0.25.0"
+ }
+}
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/constants.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/constants.ts
new file mode 100644
index 000000000..a59d6b187
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/constants.ts
@@ -0,0 +1,30 @@
+import { uint64 } from "@algorandfoundation/algorand-typescript"
+
+export const AbstractAccountGlobalStateKeysAdmin = 'admin'
+export const AbstractAccountGlobalStateKeysControlledAddress = 'controlled_address'
+export const AbstractAccountGlobalStateKeysLastUserInteraction = 'last_user_interaction'
+export const AbstractAccountGlobalStateKeysLastChange = 'last_change'
+export const AbstractAccountGlobalStateKeysEscrowFactory = 'escrow_factory'
+export const AbstractAccountGlobalStateKeysSpendingAddress = 'spending_address'
+export const AbstractAccountGlobalStateKeysCurrentPlugin = 'current_plugin'
+export const AbstractAccountGlobalStateKeysRekeyIndex = 'rekey_index'
+
+export const AbstractAccountBoxPrefixPlugins = 'p'
+export const AbstractAccountBoxPrefixNamedPlugins = 'n'
+export const AbstractAccountBoxPrefixEscrows = 'e'
+export const AbstractAccountBoxPrefixAllowances = 'a'
+export const AbstractAccountBoxPrefixExecutions = 'x'
+
+export const BoxCostPerBox: uint64 = 2_500
+export const BoxCostPerByte: uint64 = 400
+
+export const MethodRestrictionByteLength: uint64 = 20
+export const DynamicOffsetAndLength: uint64 = 4
+export const DynamicOffset: uint64 = 2
+export const DynamicLength: uint64 = 2
+
+export const MinPluginMBR: uint64 = 38_900
+export const MinNamedPluginMBR: uint64 = 21_700
+export const MinEscrowsMBR: uint64 = 6_500
+export const MinAllowanceMBR: uint64 = 27_700
+export const MinExecutionsMBR: uint64 = 20_500
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/contract.algo.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/contract.algo.ts
new file mode 100644
index 000000000..55ecfbdae
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/contract.algo.ts
@@ -0,0 +1,1244 @@
+import { Contract, GlobalState, BoxMap, assert, uint64, Account, TransactionType, Application, abimethod, gtxn, itxn, OnCompleteAction, Bytes, bytes, assertMatch, clone } from '@algorandfoundation/algorand-typescript'
+import { abiCall, Address, methodSelector, Uint8 } from '@algorandfoundation/algorand-typescript/arc4';
+import { btoi, Global, len, Txn } from '@algorandfoundation/algorand-typescript/op'
+import { ERR_ADMIN_ONLY, ERR_ADMIN_PLUGINS_CANNOT_USE_ESCROWS, ERR_ALLOWANCE_ALREADY_EXISTS, ERR_ALLOWANCE_DOES_NOT_EXIST, ERR_ALLOWANCE_EXCEEDED, ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY, ERR_ESCROW_ALREADY_EXISTS, ERR_ESCROW_DOES_NOT_EXIST, ERR_ESCROW_LOCKED, ERR_ESCROW_NAME_REQUIRED, ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT, ERR_EXECUTION_EXPIRED, ERR_EXECUTION_KEY_DOES_NOT_EXIST, ERR_EXECUTION_KEY_NOT_FOUND, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_FIRST_VALID, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_LAST_VALID, ERR_EXECUTION_NOT_READY, ERR_GROUP_NOT_FOUND, ERR_INVALID_METHOD_SIGNATURE_LENGTH, ERR_INVALID_ONCOMPLETE, ERR_INVALID_SENDER_ARG, ERR_INVALID_SENDER_VALUE, ERR_MALFORMED_OFFSETS, ERR_METHOD_ON_COOLDOWN, ERR_MISSING_REKEY_BACK, ERR_ONLY_ADMIN_CAN_CHANGE_ADMIN, ERR_PLUGIN_DOES_NOT_EXIST, ERR_PLUGIN_EXPIRED, ERR_PLUGIN_ON_COOLDOWN, ERR_SENDER_MUST_BE_ADMIN_OR_CONTROLLED_ADDRESS, ERR_SENDER_MUST_BE_ADMIN_PLUGIN, ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL, ERR_ZERO_ADDRESS_DELEGATION_TYPE } from './errors';
+import { AbstractAccountBoxMBRData, AddAllowanceInfo, AllowanceInfo, AllowanceKey, DelegationTypeSelf, EscrowInfo, EscrowReclaim, ExecutionInfo, FundsRequest, MethodInfo, MethodRestriction, MethodValidation, PluginInfo, PluginKey, PluginValidation, SpendAllowanceTypeDrip, SpendAllowanceTypeFlat, SpendAllowanceTypeWindow } from './types';
+import { EscrowFactory } from '../escrow/factory.algo';
+import { AbstractAccountBoxPrefixAllowances, AbstractAccountBoxPrefixEscrows, AbstractAccountBoxPrefixExecutions, AbstractAccountBoxPrefixNamedPlugins, AbstractAccountBoxPrefixPlugins, AbstractAccountGlobalStateKeysAdmin, AbstractAccountGlobalStateKeysControlledAddress, AbstractAccountGlobalStateKeysCurrentPlugin, AbstractAccountGlobalStateKeysEscrowFactory, AbstractAccountGlobalStateKeysLastChange, AbstractAccountGlobalStateKeysLastUserInteraction, AbstractAccountGlobalStateKeysRekeyIndex, AbstractAccountGlobalStateKeysSpendingAddress, BoxCostPerByte, MethodRestrictionByteLength, MinAllowanceMBR, MinEscrowsMBR, MinExecutionsMBR, MinNamedPluginMBR, MinPluginMBR } from './constants';
+import { ERR_INVALID_PAYMENT } from '../utils/errors';
+import { ERR_FORBIDDEN } from '../escrow/errors';
+import { ARC58WalletIDsByAccountsMbr, NewCostForARC58 } from '../escrow/constants';
+import { emptyAllowanceInfo, emptyEscrowInfo, emptyExecutionInfo, emptyPluginInfo } from './utils';
+
+export class AbstractedAccount extends Contract {
+
+ /** The admin of the abstracted account. This address can add plugins and initiate rekeys */
+ admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ /** The address this app controls */
+ controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ /** The last time the contract was interacted with in unix time */
+ lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ /** The last time state has changed on the abstracted account (not including lastCalled for cooldowns) in unix time */
+ lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ /** the escrow account factory to use for allowances */
+ escrowFactory = GlobalState({ key: AbstractAccountGlobalStateKeysEscrowFactory })
+ /** [TEMPORARY STATE FIELD] The spending address for the currently active plugin */
+ spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ /** [TEMPORARY STATE FIELD] The current plugin key being used */
+ currentPlugin = GlobalState({ key: AbstractAccountGlobalStateKeysCurrentPlugin })
+ /** [TEMPORARY STATE FIELD] The index of the transaction that created the rekey sandwich */
+ rekeyIndex = GlobalState({ initialValue: 0, key: AbstractAccountGlobalStateKeysRekeyIndex })
+
+ /** Plugins that add functionality to the controlledAddress and the account that has permission to use it. */
+ plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ /** Plugins that have been given a name for discoverability */
+ namedPlugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixNamedPlugins });
+ /** the escrows that this wallet has created for specific callers with allowances */
+ escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ /** The Allowances for plugins installed on the smart contract with useAllowance set to true */
+ allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ /** execution keys */
+ executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+
+ private updateLastUserInteraction() {
+ this.lastUserInteraction.value = Global.latestTimestamp
+ }
+
+ private updateLastChange() {
+ this.lastChange.value = Global.latestTimestamp
+ }
+
+ private pluginsMbr(escrow: string, methodCount: uint64): uint64 {
+ return MinPluginMBR + (
+ BoxCostPerByte * ((MethodRestrictionByteLength * methodCount) + Bytes(escrow).length)
+ );
+ }
+
+ private namedPluginsMbr(name: string): uint64 {
+ return MinNamedPluginMBR + (BoxCostPerByte * Bytes(name).length);
+ }
+
+ private escrowsMbr(escrow: string): uint64 {
+ return MinEscrowsMBR + (BoxCostPerByte * Bytes(escrow).length);
+ }
+
+ private allowancesMbr(escrow: string): uint64 {
+ return MinAllowanceMBR + (BoxCostPerByte * Bytes(escrow).length);
+ }
+
+ private executionsMbr(groups: uint64): uint64 {
+ return MinExecutionsMBR + (BoxCostPerByte * (groups * 32));
+ }
+
+ private maybeNewEscrow(escrow: string): uint64 {
+ if (escrow === '') {
+ return 0;
+ }
+
+ return this.escrows(escrow).exists
+ ? this.escrows(escrow).value.id
+ : this.newEscrow(escrow);
+ }
+
+ private newEscrow(escrow: string): uint64 {
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: Global.currentApplicationAddress,
+ amount: this.escrowsMbr(escrow)
+ })
+ .submit()
+ }
+
+ const id = abiCall({
+ sender: this.controlledAddress.value,
+ appId: this.escrowFactory.value,
+ args: [
+ itxn.payment({
+ sender: this.controlledAddress.value,
+ amount: NewCostForARC58 + Global.minBalance,
+ receiver: this.escrowFactory.value.address
+ }),
+ ]
+ }).returnValue
+
+ this.escrows(escrow).value = { id, locked: false }
+
+ return id;
+ }
+
+ private pluginCallAllowed(plugin: uint64, caller: Account, escrow: string, method: bytes<4>): boolean {
+ const key: PluginKey = { plugin, caller, escrow }
+
+ if (!this.plugins(key).exists) {
+ return false;
+ }
+
+ const { methods, useRounds, lastCalled, cooldown, useExecutionKey } = this.plugins(key).value as Readonly
+
+ if (useExecutionKey) {
+ return false
+ }
+
+ let methodAllowed = methods.length > 0 ? false : true;
+ for (let i: uint64 = 0; i < methods.length; i += 1) {
+ if (methods[i].selector === method) {
+ methodAllowed = true;
+ break;
+ }
+ }
+
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+
+ return (
+ lastCalled >= epochRef &&
+ (epochRef - lastCalled) >= cooldown &&
+ methodAllowed
+ )
+ }
+
+ private txnRekeysBack(txn: gtxn.Transaction): boolean {
+ // this check is for manual rekeyTo calls, it only ever uses the controlled address so its okay to hardcode it here
+ if (
+ txn.sender === this.controlledAddress.value &&
+ txn.rekeyTo === Global.currentApplicationAddress
+ ) {
+ return true;
+ }
+
+ return (
+ txn.type === TransactionType.ApplicationCall
+ && txn.appId === Global.currentApplicationId
+ && txn.numAppArgs === 1
+ && txn.onCompletion === OnCompleteAction.NoOp
+ && txn.appArgs(0) === methodSelector('arc58_verifyAuthAddress()void')
+ )
+ }
+
+ private assertRekeysBack(): void {
+ let rekeysBack = false;
+ for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ const txn = gtxn.Transaction(i)
+
+ if (this.txnRekeysBack(txn)) {
+ rekeysBack = true;
+ break;
+ }
+ }
+
+ assert(rekeysBack, ERR_MISSING_REKEY_BACK);
+ }
+
+ private pluginCheck(key: PluginKey): PluginValidation {
+
+ const exists = this.plugins(key).exists;
+ if (!exists) {
+ return {
+ exists: false,
+ expired: true,
+ onCooldown: true,
+ hasMethodRestrictions: false,
+ }
+ }
+
+ const { useRounds, lastValid, cooldown, lastCalled, methods } = this.plugins(key).value as Readonly
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+
+ return {
+ exists,
+ expired: epochRef > lastValid,
+ onCooldown: (epochRef - lastCalled) < cooldown,
+ hasMethodRestrictions: methods.length > 0,
+ }
+ }
+
+ /**
+ * Guarantee that our txn group is valid in a single loop over all txns in the group
+ *
+ * @param key the box key for the plugin were checking
+ * @param methodOffsets the indices of the methods being used in the group
+ */
+ private assertValidGroup(key: PluginKey, methodOffsets: uint64[]): void {
+
+ const { useRounds, useExecutionKey } = this.plugins(key).value
+
+ if (useExecutionKey && !(Txn.sender === this.admin.value)) {
+ assert(this.executions(Txn.lease).exists, ERR_EXECUTION_KEY_NOT_FOUND);
+ assert(this.executions(Txn.lease).value.firstValid <= Global.round, ERR_EXECUTION_NOT_READY);
+ assert(this.executions(Txn.lease).value.lastValid >= Global.round, ERR_EXECUTION_EXPIRED);
+
+ const groups = this.executions(Txn.lease).value.groups as Readonly[]>;
+
+ let foundGroup = false;
+ for (let i: uint64 = 0; i < groups.length; i += 1) {
+ if (groups[i] === Global.groupId) {
+ foundGroup = true;
+ }
+ }
+
+ assert(foundGroup, ERR_GROUP_NOT_FOUND);
+ this.executions(Txn.lease).delete();
+ }
+
+ const initialCheck = this.pluginCheck(key);
+
+ assert(initialCheck.exists, ERR_PLUGIN_DOES_NOT_EXIST);
+ assert(!initialCheck.expired, ERR_PLUGIN_EXPIRED);
+ assert(!initialCheck.onCooldown, ERR_PLUGIN_ON_COOLDOWN);
+
+ const epochRef = useRounds
+ ? Global.round
+ : Global.latestTimestamp;
+
+ let rekeysBack = false;
+ let methodIndex: uint64 = 0;
+
+ for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ const txn = gtxn.Transaction(i)
+
+ if (this.txnRekeysBack(txn)) {
+ rekeysBack = true;
+ break;
+ }
+
+ if (txn.type !== TransactionType.ApplicationCall) {
+ continue;
+ }
+
+ assert(txn.appId.id === key.plugin, ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY);
+ assert(txn.onCompletion === OnCompleteAction.NoOp, ERR_INVALID_ONCOMPLETE);
+ // ensure the first arg to a method call is the app id itself
+ // index 1 is used because arg[0] is the method selector
+ assert(txn.numAppArgs > 1, ERR_INVALID_SENDER_ARG);
+ assert(Application(btoi(txn.appArgs(1))) === Global.currentApplicationId, ERR_INVALID_SENDER_VALUE);
+
+ const { expired, onCooldown, hasMethodRestrictions } = this.pluginCheck(key);
+
+ assert(!expired, ERR_PLUGIN_EXPIRED);
+ assert(!onCooldown, ERR_PLUGIN_ON_COOLDOWN);
+
+ if (hasMethodRestrictions) {
+ assert(methodIndex < methodOffsets.length, ERR_MALFORMED_OFFSETS);
+ const { methodAllowed, methodOnCooldown } = this.methodCheck(key, txn, methodOffsets[methodIndex]);
+ assert(methodAllowed && !methodOnCooldown, ERR_METHOD_ON_COOLDOWN);
+ }
+
+ this.plugins(key).value.lastCalled = epochRef
+ methodIndex += 1;
+ }
+
+ assert(rekeysBack, ERR_MISSING_REKEY_BACK);
+ }
+
+ /**
+ * Checks if the method call is allowed
+ *
+ * @param key the box key for the plugin were checking
+ * @param caller the address that triggered the plugin or global address
+ * @param offset the index of the method being used
+ * @returns whether the method call is allowed
+ */
+ private methodCheck(key: PluginKey, txn: gtxn.ApplicationCallTxn, offset: uint64): MethodValidation {
+
+ assert(len(txn.appArgs(0)) === 4, ERR_INVALID_METHOD_SIGNATURE_LENGTH)
+ const selectorArg = txn.appArgs(0).toFixed({ length: 4 })
+
+ const { useRounds } = this.plugins(key).value
+ const { selector, cooldown, lastCalled } = this.plugins(key).value.methods[offset]
+
+ const hasCooldown = cooldown > 0
+
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp
+ const methodOnCooldown = (epochRef - lastCalled) < cooldown
+
+ if (selector === selectorArg && (!hasCooldown || !methodOnCooldown)) {
+ // update the last called round for the method
+ if (hasCooldown) {
+ const lastCalled = useRounds ? Global.round : Global.latestTimestamp;
+ this.plugins(key).value.methods[offset].lastCalled = lastCalled
+ }
+
+ return {
+ methodAllowed: true,
+ methodOnCooldown
+ }
+ }
+
+ return {
+ methodAllowed: false,
+ methodOnCooldown: true
+ }
+ }
+
+ private transferFunds(escrow: string, fundsRequests: FundsRequest[]): void {
+ const escrowID = this.escrows(escrow).value.id;
+ const escrowAddress = Application(escrowID).address;
+
+ for (let i: uint64 = 0; i < fundsRequests.length; i += 1) {
+
+ const allowanceKey: AllowanceKey = {
+ escrow,
+ asset: fundsRequests[i].asset
+ }
+
+ this.verifyAllowance(allowanceKey, fundsRequests[i]);
+
+ if (fundsRequests[i].asset !== 0) {
+ itxn
+ .assetTransfer({
+ sender: this.controlledAddress.value,
+ assetReceiver: escrowAddress,
+ assetAmount: fundsRequests[i].amount,
+ xferAsset: fundsRequests[i].asset
+ })
+ .submit();
+ } else {
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: escrowAddress,
+ amount: fundsRequests[i].amount
+ })
+ .submit();
+ }
+ }
+ }
+
+ private verifyAllowance(key: AllowanceKey, fundRequest: FundsRequest): void {
+ assert(this.allowances(key).exists, ERR_ALLOWANCE_DOES_NOT_EXIST);
+ const { type, spent, amount, last, max, interval, start, useRounds } = this.allowances(key).value
+ const newLast = useRounds ? Global.round : Global.latestTimestamp;
+
+ if (type === SpendAllowanceTypeFlat) {
+ const leftover: uint64 = amount - spent;
+ assert(leftover >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ this.allowances(key).value.spent += fundRequest.amount
+ } else if (type === SpendAllowanceTypeWindow) {
+ const currentWindowStart = this.getLatestWindowStart(useRounds, start, interval)
+
+ if (currentWindowStart > last) {
+ assert(amount >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ this.allowances(key).value.spent = fundRequest.amount
+ } else {
+ // calc the remaining amount available in the current window
+ const leftover: uint64 = amount - spent;
+ assert(leftover >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ this.allowances(key).value.spent += fundRequest.amount
+ }
+ } else if (type === SpendAllowanceTypeDrip) {
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ const passed: uint64 = epochRef - last
+ // in this context:
+ // amount represents our accrual rate
+ // spent represents the last leftover amount available
+ const accrued: uint64 = spent + ((passed / interval) * amount)
+ const available: uint64 = accrued > max ? max : accrued
+
+ assert(available >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ this.allowances(key).value.spent = (available - fundRequest.amount)
+ }
+ this.allowances(key).value.last = newLast
+ }
+
+ private getLatestWindowStart(useRounds: boolean, start: uint64, interval: uint64): uint64 {
+ if (useRounds) {
+ return Global.round - ((Global.round - start) % interval)
+ }
+ return Global.latestTimestamp - ((Global.latestTimestamp - start) % interval)
+ }
+
+ /**
+ * What the value of this.address.value.authAddr should be when this.controlledAddress
+ * is able to be controlled by this app. It will either be this.app.address or zeroAddress
+ */
+ private getAuthAddress(): Account {
+ return (
+ this.spendingAddress.value === this.controlledAddress.value
+ && this.controlledAddress.value === Global.currentApplicationAddress
+ ) ? Global.zeroAddress : Global.currentApplicationAddress
+ }
+
+ /**
+ * Create an abstracted account application.
+ * This is not part of ARC58 and implementation specific.
+ *
+ * @param controlledAddress The address of the abstracted account. If zeroAddress, then the address of the contract account will be used
+ * @param admin The admin for this app
+ */
+ @abimethod({ onCreate: 'require' })
+ createApplication(controlledAddress: Address, admin: Address, escrowFactory: Application): void {
+ assert(
+ Txn.sender === controlledAddress.native
+ || Txn.sender === admin.native,
+ ERR_SENDER_MUST_BE_ADMIN_OR_CONTROLLED_ADDRESS
+ );
+ assert(admin !== controlledAddress);
+
+ this.admin.value = admin.native;
+ this.controlledAddress.value = controlledAddress.native === Global.zeroAddress ? Global.currentApplicationAddress : controlledAddress.native;
+ this.escrowFactory.value = escrowFactory;
+ this.spendingAddress.value = Global.zeroAddress;
+ this.updateLastUserInteraction()
+ this.updateLastChange()
+ }
+
+ /**
+ * Register the abstracted account with the escrow factory.
+ * This allows apps to correlate the account with the app without needing
+ * it to be explicitly provided.
+ */
+ register(escrow: string): void {
+ let app: uint64 = 0
+ if (escrow !== '') {
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ app = this.escrows(escrow).value.id
+ }
+
+ abiCall({
+ appId: this.escrowFactory.value,
+ args: [
+ itxn.payment({
+ receiver: this.escrowFactory.value.address,
+ amount: ARC58WalletIDsByAccountsMbr
+ }),
+ app
+ ]
+ })
+ }
+
+ /**
+ * Attempt to change the admin for this app. Some implementations MAY not support this.
+ *
+ * @param newAdmin The new admin
+ */
+ arc58_changeAdmin(newAdmin: Address): void {
+ assert(Txn.sender === this.admin.value, ERR_ONLY_ADMIN_CAN_CHANGE_ADMIN);
+ this.admin.value = newAdmin.native;
+ this.updateLastUserInteraction()
+ this.updateLastChange()
+ }
+
+ /**
+ * Attempt to change the admin via plugin.
+ *
+ * @param plugin The app calling the plugin
+ * @param allowedCaller The address that triggered the plugin
+ * @param newAdmin The new admin
+ *
+ */
+ arc58_pluginChangeAdmin(newAdmin: Address): void {
+ const key = clone(this.currentPlugin.value)
+ const { plugin, escrow } = key
+
+ assert(escrow === '', ERR_ADMIN_PLUGINS_CANNOT_USE_ESCROWS);
+ assert(Txn.sender === Application(plugin).address, ERR_SENDER_MUST_BE_ADMIN_PLUGIN);
+ assert(
+ this.controlledAddress.value.authAddress === Application(plugin).address,
+ 'This plugin is not in control of the account'
+ );
+
+ assert(
+ this.plugins(key).exists && this.plugins(key).value.admin,
+ 'This plugin does not have admin privileges'
+ );
+
+ this.admin.value = newAdmin.native;
+ if (this.plugins(key).value.delegationType === DelegationTypeSelf) {
+ this.updateLastUserInteraction();
+ }
+ this.updateLastChange()
+ }
+
+ /**
+ * Get the admin of this app. This method SHOULD always be used rather than reading directly from state
+ * because different implementations may have different ways of determining the admin.
+ */
+ @abimethod({ readonly: true })
+ arc58_getAdmin(): Address {
+ return new Address(this.admin.value);
+ }
+
+ /**
+ * Verify the abstracted account is rekeyed to this app
+ */
+ arc58_verifyAuthAddress(): void {
+ assert(this.spendingAddress.value.authAddress === this.getAuthAddress());
+ this.spendingAddress.value = Global.zeroAddress
+ this.currentPlugin.value = { plugin: 0, caller: Global.currentApplicationAddress, escrow: '' }
+ this.rekeyIndex.value = 0
+ }
+
+ /**
+ * Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.
+ *
+ * @param address The address to rekey to
+ * @param flash Whether or not this should be a flash rekey. If true, the rekey back to the app address must done in the same txn group as this call
+ */
+ arc58_rekeyTo(address: Address, flash: boolean): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: address.native,
+ rekeyTo: address.native,
+ note: 'rekeying abstracted account'
+ })
+ .submit();
+
+ if (flash) this.assertRekeysBack();
+
+ this.updateLastUserInteraction();
+ }
+
+ /**
+ * check whether the plugin can be used
+ *
+ * @param plugin the plugin to be rekeyed to
+ * @param global whether this is callable globally
+ * @param address the address that will trigger the plugin
+ * @param method the method being called on the plugin, if applicable
+ * @returns whether the plugin can be called with these parameters
+ */
+ @abimethod({ readonly: true })
+ arc58_canCall(
+ plugin: uint64,
+ global: boolean,
+ address: Address,
+ escrow: string,
+ method: bytes<4>
+ ): boolean {
+ if (global) {
+ this.pluginCallAllowed(plugin, Global.zeroAddress, escrow, method);
+ }
+ return this.pluginCallAllowed(plugin, address.native, escrow, method);
+ }
+
+ /**
+ * Temporarily rekey to an approved plugin app address
+ *
+ * @param plugin The app to rekey to
+ * @param global Whether the plugin is callable globally
+ * @param methodOffsets The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group
+ * @param fundsRequest If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution
+ *
+ */
+ arc58_rekeyToPlugin(
+ plugin: uint64,
+ global: boolean,
+ escrow: string,
+ methodOffsets: uint64[],
+ fundsRequest: FundsRequest[]
+ ): void {
+ const pluginApp = Application(plugin)
+ const caller = global ? Global.zeroAddress : Txn.sender
+ const key: PluginKey = { plugin, caller, escrow }
+
+ assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+ this.currentPlugin.value = clone(key)
+
+ if (escrow !== '') {
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ const escrowID = this.escrows(escrow).value.id
+ const spendingApp = Application(escrowID)
+ this.spendingAddress.value = spendingApp.address
+ this.transferFunds(escrow, fundsRequest)
+ } else {
+ this.spendingAddress.value = this.controlledAddress.value
+ }
+
+ this.assertValidGroup(key, methodOffsets)
+
+ itxn
+ .payment({
+ sender: this.spendingAddress.value,
+ receiver: this.spendingAddress.value,
+ rekeyTo: pluginApp.address,
+ note: 'rekeying to plugin app'
+ })
+ .submit();
+
+ /** track the index of the transaction that triggered the rekey */
+ this.rekeyIndex.value = Txn.groupIndex
+
+ if (this.plugins(key).value.delegationType === DelegationTypeSelf) {
+ this.updateLastUserInteraction();
+ }
+ }
+
+ /**
+ * Temporarily rekey to a named plugin app address
+ *
+ * @param name The name of the plugin to rekey to
+ * @param global Whether the plugin is callable globally
+ * @param methodOffsets The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group
+ * @param fundsRequest If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution
+ *
+ */
+ arc58_rekeyToNamedPlugin(
+ name: string,
+ global: boolean,
+ escrow: string,
+ methodOffsets: uint64[],
+ fundsRequest: FundsRequest[]): void {
+ this.arc58_rekeyToPlugin(
+ this.namedPlugins(name).value.plugin,
+ global,
+ escrow,
+ methodOffsets,
+ fundsRequest
+ );
+ }
+
+ /**
+ * Add an app to the list of approved plugins
+ *
+ * @param app The app to add
+ * @param allowedCaller The address of that's allowed to call the app
+ * or the global zero address for any address
+ * @param admin Whether the plugin has permissions to change the admin account
+ * @param delegationType the ownership of the delegation for last_interval updates
+ * @param escrow The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created
+ * @param lastValid The timestamp or round when the permission expires
+ * @param cooldown The number of seconds or rounds that must pass before the plugin can be called again
+ * @param methods The methods that are allowed to be called for the plugin by the address
+ * @param useRounds Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp
+ */
+ arc58_addPlugin(
+ plugin: uint64,
+ caller: Address,
+ escrow: string,
+ admin: boolean,
+ delegationType: Uint8,
+ lastValid: uint64,
+ cooldown: uint64,
+ methods: MethodRestriction[],
+ useRounds: boolean,
+ useExecutionKey: boolean,
+ defaultToEscrow: boolean
+ ): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(
+ !(
+ delegationType === DelegationTypeSelf &&
+ caller.native === Global.zeroAddress
+ ),
+ ERR_ZERO_ADDRESS_DELEGATION_TYPE
+ )
+ assert(
+ !(
+ useExecutionKey &&
+ caller.native !== Global.zeroAddress
+ ),
+ ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL
+ )
+
+ let escrowKey: string = escrow
+ if (defaultToEscrow) {
+ assert(escrow !== '', ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT)
+ escrowKey = ''
+ }
+
+ const key: PluginKey = { plugin, caller: caller.native, escrow: escrowKey }
+
+ let methodInfos: MethodInfo[] = []
+ for (let i: uint64 = 0; i < methods.length; i += 1) {
+ methodInfos.push({ ...methods[i], lastCalled: 0 })
+ }
+
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: Global.currentApplicationAddress,
+ amount: this.pluginsMbr(escrowKey, methodInfos.length)
+ })
+ .submit()
+ }
+
+ const escrowID = this.maybeNewEscrow(escrow);
+
+ this.plugins(key).value = {
+ escrow: escrowID,
+ admin,
+ delegationType,
+ lastValid,
+ cooldown,
+ methods: clone(methodInfos),
+ useRounds,
+ useExecutionKey,
+ lastCalled: 0,
+ start: epochRef,
+ }
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+ }
+
+ /**
+ * Remove an app from the list of approved plugins
+ *
+ * @param app The app to remove
+ * @param allowedCaller The address that's allowed to call the app
+ */
+ arc58_removePlugin(plugin: uint64, caller: Address, escrow: string): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+
+ const key: PluginKey = { plugin, caller: caller.native, escrow }
+ assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+
+ const methodsLength: uint64 = this.plugins(key).value.methods.length
+
+ this.plugins(key).delete();
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ receiver: this.controlledAddress.value,
+ amount: this.pluginsMbr(escrow, methodsLength)
+ })
+ .submit()
+ }
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+ }
+
+ /**
+ * Add a named plugin
+ *
+ * @param name The plugin name
+ * @param app The app to add
+ * @param allowedCaller The address that's allowed to call the app
+ * or the global zero address for any address
+ * @param admin Whether the plugin has permissions to change the admin account
+ * @param delegationType the ownership of the delegation for last_interval updates
+ * @param escrow The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created
+ * @param lastValid The timestamp or round when the permission expires
+ * @param cooldown The number of seconds or rounds that must pass before the plugin can be called again
+ * @param methods The methods that are allowed to be called for the plugin by the address
+ * @param useRounds Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp
+ */
+ arc58_addNamedPlugin(
+ name: string,
+ plugin: uint64,
+ caller: Address,
+ escrow: string,
+ admin: boolean,
+ delegationType: Uint8,
+ lastValid: uint64,
+ cooldown: uint64,
+ methods: MethodRestriction[],
+ useRounds: boolean,
+ useExecutionKey: boolean,
+ defaultToEscrow: boolean
+ ): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(!this.namedPlugins(name).exists);
+ assert(
+ !(
+ delegationType === DelegationTypeSelf &&
+ caller.native === Global.zeroAddress
+ ),
+ ERR_ZERO_ADDRESS_DELEGATION_TYPE
+ )
+ assert(
+ !(
+ useExecutionKey &&
+ caller.native !== Global.zeroAddress
+ ),
+ ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL
+ )
+
+ let escrowKey: string = escrow
+ if (defaultToEscrow) {
+ assert(escrow !== '', ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT)
+ escrowKey = ''
+ }
+
+ const key: PluginKey = { plugin, caller: caller.native, escrow: escrowKey }
+ this.namedPlugins(name).value = clone(key)
+
+ let methodInfos: MethodInfo[] = []
+ for (let i: uint64 = 0; i < methods.length; i += 1) {
+ methodInfos.push({ ...methods[i], lastCalled: 0 })
+ }
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: Global.currentApplicationAddress,
+ amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ })
+ .submit()
+ }
+
+ const escrowID = this.maybeNewEscrow(escrow);
+
+ const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+
+ this.plugins(key).value = {
+ escrow: escrowID,
+ admin,
+ delegationType,
+ lastValid,
+ cooldown,
+ methods: clone(methodInfos),
+ useRounds,
+ useExecutionKey,
+ lastCalled: 0,
+ start: epochRef
+ }
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+ }
+
+ /**
+ * Remove a named plugin
+ *
+ * @param name The plugin name
+ */
+ arc58_removeNamedPlugin(name: string): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(this.namedPlugins(name).exists, ERR_PLUGIN_DOES_NOT_EXIST);
+ const app = clone(this.namedPlugins(name).value)
+ assert(this.plugins(app).exists, ERR_PLUGIN_DOES_NOT_EXIST);
+
+ const methodsLength: uint64 = this.plugins(app).value.methods.length
+
+ this.namedPlugins(name).delete();
+ this.plugins(app).delete();
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ receiver: this.controlledAddress.value,
+ amount: this.namedPluginsMbr(name) + this.pluginsMbr(app.escrow, methodsLength)
+ })
+ .submit()
+ }
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+ }
+
+ /**
+ * Create a new escrow for the controlled address
+ *
+ * @param escrow The name of the escrow to create
+ */
+ arc58_newEscrow(escrow: string): uint64 {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(!this.escrows(escrow).exists, ERR_ESCROW_ALREADY_EXISTS);
+ assert(escrow !== '', ERR_ESCROW_NAME_REQUIRED);
+ return this.newEscrow(escrow);
+ }
+
+ /**
+ * Lock or Unlock an escrow account
+ *
+ * @param escrow The escrow to lock or unlock
+ */
+ arc58_toggleEscrowLock(escrow: string): EscrowInfo {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+
+ this.escrows(escrow).value.locked = !this.escrows(escrow).value.locked;
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+
+ return this.escrows(escrow).value;
+ }
+
+ /**
+ * Transfer funds from an escrow back to the controlled address.
+ *
+ * @param escrow The escrow to reclaim funds from
+ * @param reclaims The list of reclaims to make from the escrow
+ */
+ arc58_reclaim(escrow: string, reclaims: EscrowReclaim[]): void {
+ assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ const sender = Application(this.escrows(escrow).value.id).address
+
+ for (let i: uint64 = 0; i < reclaims.length; i += 1) {
+ if (reclaims[i].asset === 0) {
+ const pmt = itxn.payment({
+ sender,
+ receiver: this.controlledAddress.value,
+ amount: reclaims[i].amount
+ })
+
+ if (reclaims[i].closeOut) {
+ pmt.set({ closeRemainderTo: this.controlledAddress.value });
+ }
+
+ pmt.submit();
+ } else {
+ const xfer = itxn.assetTransfer({
+ sender,
+ assetReceiver: this.controlledAddress.value,
+ assetAmount: reclaims[i].amount,
+ xferAsset: reclaims[i].asset
+ })
+
+ if (reclaims[i].closeOut) {
+ xfer.set({ assetCloseTo: this.controlledAddress.value });
+ }
+
+ xfer.submit();
+ }
+ }
+ }
+
+ /**
+ * Opt-in an escrow account to assets
+ *
+ * @param escrow The escrow to opt-in to
+ * @param assets The list of assets to opt-in to
+ */
+ arc58_optinEscrow(escrow: string, assets: uint64[]): void {
+ assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ const escrowID = this.escrows(escrow).value.id
+ const escrowAddress = Application(escrowID).address
+ assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED)
+
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: escrowAddress,
+ amount: Global.assetOptInMinBalance * assets.length
+ })
+ .submit();
+
+ for (let i: uint64 = 0; i < assets.length; i += 1) {
+ assert(
+ this.allowances({ escrow, asset: assets[i] }).exists,
+ ERR_ALLOWANCE_DOES_NOT_EXIST
+ );
+
+ itxn
+ .assetTransfer({
+ sender: escrowAddress,
+ assetReceiver: escrowAddress,
+ assetAmount: 0,
+ xferAsset: assets[i]
+ })
+ .submit();
+ }
+ }
+
+ /**
+ * Opt-in an escrow account to assets via a plugin / allowed caller
+ *
+ * @param app The app related to the escrow optin
+ * @param allowedCaller The address allowed to call the plugin related to the escrow optin
+ * @param assets The list of assets to opt-in to
+ * @param mbrPayment The payment txn that is used to pay for the asset opt-in
+ */
+ arc58_pluginOptinEscrow(
+ plugin: uint64,
+ caller: Address,
+ escrow: string,
+ assets: uint64[],
+ mbrPayment: gtxn.PaymentTxn
+ ): void {
+ const key: PluginKey = { plugin, caller: caller.native, escrow }
+
+ assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED)
+
+ const escrowID = this.escrows(escrow).value.id
+
+ assert(
+ Txn.sender === Application(plugin).address ||
+ Txn.sender === caller.native ||
+ caller.native === Global.zeroAddress,
+ ERR_FORBIDDEN
+ )
+
+ const escrowAddress = Application(escrowID).address
+
+ assertMatch(
+ mbrPayment,
+ {
+ receiver: this.controlledAddress.value,
+ amount: Global.assetOptInMinBalance * assets.length
+ },
+ ERR_INVALID_PAYMENT
+ )
+
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: escrowAddress,
+ amount: Global.assetOptInMinBalance * assets.length
+ })
+ .submit();
+
+ for (let i: uint64 = 0; i < assets.length; i += 1) {
+ assert(
+ this.allowances({ escrow, asset: assets[i] }).exists,
+ ERR_ALLOWANCE_DOES_NOT_EXIST
+ );
+
+ itxn
+ .assetTransfer({
+ sender: escrowAddress,
+ assetReceiver: escrowAddress,
+ assetAmount: 0,
+ xferAsset: assets[i]
+ })
+ .submit();
+ }
+ }
+
+ /**
+ * Add an allowance for an escrow account
+ *
+ * @param escrow The escrow to add the allowance for
+ * @param allowances The list of allowances to add
+ */
+ arc58_addAllowances(escrow: string, allowances: AddAllowanceInfo[]): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED);
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ sender: this.controlledAddress.value,
+ receiver: Global.currentApplicationAddress,
+ amount: this.allowancesMbr(escrow) * allowances.length
+ })
+ .submit()
+ }
+
+ for (let i: uint64 = 0; i < allowances.length; i += 1) {
+ const { asset, type, amount, max, interval, useRounds } = allowances[i];
+ const key: AllowanceKey = { escrow, asset }
+ assert(!this.allowances(key).exists, ERR_ALLOWANCE_ALREADY_EXISTS);
+ const start = useRounds ? Global.round : Global.latestTimestamp;
+
+ this.allowances(key).value = {
+ type,
+ spent: 0,
+ amount,
+ last: 0,
+ max,
+ interval,
+ start,
+ useRounds
+ }
+ }
+
+ this.updateLastUserInteraction();
+ this.updateLastChange();
+ }
+
+ /**
+ * Remove an allowances for an escrow account
+ *
+ * @param escrow The escrow to remove the allowance for
+ * @param assets The list of assets to remove the allowance for
+ */
+ arc58_removeAllowances(escrow: string, assets: uint64[]): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED);
+
+ if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ itxn
+ .payment({
+ receiver: this.controlledAddress.value,
+ amount: this.allowancesMbr(escrow) * assets.length
+ })
+ .submit()
+ }
+
+ for (let i: uint64 = 0; i < assets.length; i += 1) {
+ const key: AllowanceKey = {
+ escrow,
+ asset: assets[i]
+ }
+ assert(this.allowances(key).exists, ERR_ALLOWANCE_DOES_NOT_EXIST)
+ this.allowances(key).delete()
+ }
+
+ this.updateLastUserInteraction()
+ this.updateLastChange()
+ }
+
+ arc58_addExecutionKey(lease: bytes<32>, groups: bytes<32>[], firstValid: uint64, lastValid: uint64): void {
+ assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY)
+ if (!this.executions(lease).exists) {
+ this.executions(lease).value = {
+ groups: clone(groups),
+ firstValid,
+ lastValid
+ }
+ } else {
+ assert(this.executions(lease).value.firstValid === firstValid, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_FIRST_VALID)
+ assert(this.executions(lease).value.lastValid === lastValid, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_LAST_VALID)
+
+ this.executions(lease).value.groups = [...clone(this.executions(lease).value.groups), ...clone(groups)]
+ }
+
+ this.updateLastUserInteraction()
+ this.updateLastChange()
+ }
+
+ arc58_removeExecutionKey(lease: bytes<32>): void {
+ assert(this.executions(lease).exists, ERR_EXECUTION_KEY_DOES_NOT_EXIST)
+ assert(Txn.sender === this.admin.value || this.executions(lease).value.lastValid < Global.round, ERR_ADMIN_ONLY)
+
+ this.executions(lease).delete()
+
+ this.updateLastUserInteraction()
+ this.updateLastChange()
+ }
+
+ @abimethod({ readonly: true })
+ arc58_getPlugins(keys: PluginKey[]): PluginInfo[] {
+ let plugins: PluginInfo[] = []
+ for (let i: uint64 = 0; i < keys.length; i += 1) {
+ if (this.plugins(keys[i]).exists) {
+ plugins.push(this.plugins(keys[i]).value)
+ continue
+ }
+ plugins.push(emptyPluginInfo())
+ }
+ return plugins
+ }
+
+ @abimethod({ readonly: true })
+ arc58_getNamedPlugins(names: string[]): PluginInfo[] {
+ let plugins: PluginInfo[] = []
+ for (let i: uint64 = 0; i < names.length; i += 1) {
+ if (this.namedPlugins(names[i]).exists) {
+ const nameKey = clone(this.namedPlugins(names[i]).value)
+ if (this.plugins(nameKey).exists) {
+ plugins.push(this.plugins(nameKey).value)
+ continue
+ }
+ plugins.push(emptyPluginInfo())
+ continue
+ }
+ plugins.push(emptyPluginInfo())
+ }
+ return plugins
+ }
+
+ @abimethod({ readonly: true })
+ arc58_getEscrows(escrows: string[]): EscrowInfo[] {
+ let result: EscrowInfo[] = []
+ for (let i: uint64 = 0; i < escrows.length; i += 1) {
+ if (this.escrows(escrows[i]).exists) {
+ result.push(this.escrows(escrows[i]).value)
+ continue
+ }
+ result.push(emptyEscrowInfo())
+ }
+ return result
+ }
+
+ @abimethod({ readonly: true })
+ arc58_getAllowances(escrow: string, assets: uint64[]): AllowanceInfo[] {
+ let result: AllowanceInfo[] = []
+ for (let i: uint64 = 0; i < assets.length; i += 1) {
+ const key: AllowanceKey = { escrow, asset: assets[i] }
+ if (this.allowances(key).exists) {
+ result.push(this.allowances(key).value)
+ continue
+ }
+ result.push(emptyAllowanceInfo())
+ }
+ return result
+ }
+
+ @abimethod({ readonly: true })
+ arc58_getExecutions(leases: bytes<32>[]): ExecutionInfo[] {
+ let result: ExecutionInfo[] = []
+ for (let i: uint64 = 0; i < leases.length; i += 1) {
+ if (this.executions(leases[i]).exists) {
+ result.push(this.executions(leases[i]).value)
+ continue
+ }
+ result.push(emptyExecutionInfo())
+ }
+ return result
+ }
+
+ @abimethod({ readonly: true })
+ mbr(
+ escrow: string,
+ methodCount: uint64,
+ plugin: string,
+ groups: uint64,
+ ): AbstractAccountBoxMBRData {
+ const escrows = this.escrowsMbr(escrow)
+
+ return {
+ plugins: this.pluginsMbr(escrow, methodCount),
+ namedPlugins: this.namedPluginsMbr(plugin),
+ escrows,
+ allowances: this.allowancesMbr(escrow),
+ executions: this.executionsMbr(groups),
+ escrowExists: this.escrows(escrow).exists,
+ newEscrowMintCost: (
+ NewCostForARC58 +
+ Global.minBalance +
+ ARC58WalletIDsByAccountsMbr +
+ escrows
+ )
+ }
+ }
+}
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/errors.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/errors.ts
new file mode 100644
index 000000000..db0bf4164
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/errors.ts
@@ -0,0 +1,47 @@
+
+export const ERR_SENDER_MUST_BE_ADMIN_OR_CONTROLLED_ADDRESS = 'sender must be either controlledAddress or admin'
+export const ERR_ADMIN_ONLY = 'admin only'
+export const ERR_ADMIN_CANNOT_BE_CONTROLLED = 'admin and controlled address cannot be the same'
+export const ERR_ONLY_ADMIN_CAN_UPDATE = 'only an admin can update the application'
+export const ERR_ONLY_ADMIN_CAN_CHANGE_ADMIN = 'only admin can change the admin account'
+export const ERR_ONLY_ADMIN_CAN_REKEY = 'only admin can rekey the account'
+export const ERR_ONLY_ADMIN_CAN_ADD_PLUGIN = 'only admin can add a plugin'
+export const ERR_ONLY_ADMIN_CAN_ADD_METHOD_RESTRICTION = 'only admin can add a method restriction'
+export const ERR_NAMED_PLUGIN_ALREADY_EXISTS = 'plugin with this name already exists'
+export const ERR_ONLY_ADMIN_OR_REVOCATION_APP_CAN_REMOVE_PLUGIN = 'only admin can remove plugins'
+export const ERR_SENDER_NOT_ALLOWED_TO_CALL_PLUGIN = 'this sender is not allowed to trigger this plugin'
+export const ERR_PLUGIN_DOES_NOT_CONTROL_WALLET = 'this plugin is not in control of the account'
+export const ERR_PLUGIN_DOES_NOT_HAVE_ADMIN_PRIVILEGES = 'this plugin does not have admin privileges'
+export const ERR_PLUGIN_DOES_NOT_EXIST = 'plugin does not exist'
+export const ERR_NOT_USING_ALLOWANCE = 'not using allowance for this plugin'
+export const ERR_PLUGIN_EXPIRED = 'plugin expired'
+export const ERR_PLUGIN_ON_COOLDOWN = 'plugin on cooldown'
+export const ERR_INVALID_PLUGIN_CALL = 'invalid plugin call'
+export const ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY = 'cannot call other apps during rekey'
+export const ERR_INVALID_ONCOMPLETE = 'invalid oncomplete must be no op'
+export const ERR_INVALID_SENDER_ARG = 'invalid sender must be this app id'
+export const ERR_INVALID_SENDER_VALUE = 'invalid sender app id'
+export const ERR_METHOD_ON_COOLDOWN = 'method on cooldown'
+export const ERR_MISSING_REKEY_BACK = 'missing rekey back'
+export const ERR_MALFORMED_OFFSETS = 'malformed method offsets'
+export const ERR_INVALID_METHOD_SIGNATURE_LENGTH = 'invalid method signature length'
+export const ERR_SENDER_MUST_BE_ADMIN_PLUGIN = 'sender must be admin plugin'
+export const ERR_ZERO_ADDRESS_DELEGATION_TYPE = 'delegation type must not be self for global plugins'
+export const ERR_ALLOWANCE_ALREADY_EXISTS = 'allowance already exists'
+export const ERR_ALLOWANCE_DOES_NOT_EXIST = 'allowance does not exist'
+export const ERR_ALLOWANCE_EXCEEDED = 'allowance exceeded'
+export const ERR_ESCROW_DOES_NOT_EXIST = 'escrow does not exist'
+export const ERR_NOT_USING_ESCROW = 'not using escrow for this plugin'
+export const ERR_ESCROW_ALREADY_EXISTS = 'escrow already exists'
+export const ERR_EXECUTION_KEY_DOES_NOT_EXIST = 'execution key does not exist'
+export const ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_FIRST_VALID = 'execution key update must match first valid'
+export const ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_LAST_VALID = 'execution key update must match last valid'
+export const ERR_ESCROW_LOCKED = 'Escrow is locked'
+export const ERR_ESCROW_NAME_REQUIRED = 'Escrow name is required'
+export const ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT = 'escrow must be set if defaultToEscrow is true'
+export const ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL = 'using execution key requires global plugin'
+export const ERR_ADMIN_PLUGINS_CANNOT_USE_ESCROWS = 'admin plugins cannot use escrows'
+export const ERR_GROUP_NOT_FOUND = 'Group not found'
+export const ERR_EXECUTION_EXPIRED = 'Execution key expired'
+export const ERR_EXECUTION_NOT_READY = 'Execution key not ready'
+export const ERR_EXECUTION_KEY_NOT_FOUND = 'Execution key not found'
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/get_plugin_txns.test.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/get_plugin_txns.test.ts
new file mode 100644
index 000000000..953ddb843
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/get_plugin_txns.test.ts
@@ -0,0 +1,184 @@
+/* eslint-disable prefer-destructuring */
+import { describe, test, expect } from '@jest/globals';
+
+const BRANCHING_OPCODES = ['b', 'bz', 'bnz', 'callsub', 'retsub', 'match', 'switch'];
+const MAX_AVM_VERSION = 10;
+const STATIC_OPS = [
+ 'pushint',
+ 'pushbytes',
+ 'bytecblock',
+ 'intcblock',
+ 'bytec_0',
+ 'bytec_1',
+ 'bytec_2',
+ 'bytec_3',
+ 'intc_0',
+ 'intc_1',
+ 'intc_2',
+ 'intc_3',
+];
+
+function getPluginTxns(teal: string): Record[] {
+ const txns: Record[] = [];
+ let inTxn = false;
+ const ops: string[] = [];
+
+ const programVersion = parseInt(teal.match(/(?<=#pragma version) \d+/)![0], 10);
+
+ // Must check program version because newer AVM versions might have new branching or itxn opcodes
+ if (programVersion > MAX_AVM_VERSION) {
+ throw new Error(`Unsupported program version: ${programVersion}`);
+ }
+
+ // Get all of the lines of non comment code
+ // This should be the decompiled TEAL
+ const lines = teal
+ .split('\n')
+ .map((line) => line.trim())
+ .filter((line) => !line.startsWith('//') && line.length > 0);
+
+ let currentTxn: Record = {};
+
+ lines.forEach((line) => {
+ const opcode = line.split(' ')[0];
+ if (opcode === 'itxn_begin' || opcode === 'itxn_next' || opcode === 'itxn_submit') {
+ // Only push the txn if it has a sender
+ // In the future we could explicitly check if it's the abstracted account address or dynamic
+ if (Object.keys(currentTxn).length > 0 && currentTxn.Sender) {
+ txns.push(currentTxn);
+ }
+ if (opcode !== 'itxn_submit') inTxn = true;
+ ops.length = 0;
+ currentTxn = {};
+ return;
+ }
+
+ if (inTxn) {
+ // Do not allow branching because it will make it much harder to perform static analysis
+ if (BRANCHING_OPCODES.includes(opcode)) {
+ throw new Error(`Branching opcode ${opcode} found when composing inner transaction`);
+ }
+
+ if (opcode === 'itxn_field') {
+ const field = line.split(' ')[1];
+
+ const lastOpLine = ops.at(-1)!;
+ const lastOp = lastOpLine.split(' ')[0];
+ ops.length = 0;
+
+ if (!STATIC_OPS.includes(lastOp)) {
+ currentTxn[field] = 'dynamic';
+ return;
+ }
+
+ let value: string;
+
+ if (lastOp.startsWith('intc') || lastOp.startsWith('bytec')) {
+ value = lastOpLine.split(' // ')[1];
+ } else {
+ value = lastOpLine.split(' ')[1];
+ }
+
+ currentTxn[field] = lastOp.includes('int') ? parseInt(value, 10) : value;
+ } else {
+ ops.push(line);
+ }
+ }
+ });
+
+ return txns;
+}
+
+describe('getPluginTxns', () => {
+ test('pay', () => {
+ const teal = `
+ #pragma version 10
+
+ itxn_begin
+
+ pushbytes 0xdeadbeef
+ itxn_field Sender
+
+ pushint 0
+ itxn_field TypeEnum
+
+ pushint 1
+ itxn_field Amount
+
+ itxn_submit
+ `;
+
+ const txns = getPluginTxns(teal);
+ expect(txns.length).toBe(1);
+ expect(txns[0]).toEqual({ TypeEnum: 0, Sender: '0xdeadbeef', Amount: 1 });
+ });
+
+ test('dynamic pay', () => {
+ const teal = `
+ #pragma version 10
+
+ itxn_begin
+
+ bytecblock 4 // 0xdeadbeef
+ itxn_field Sender
+
+ intc_1 // 0
+ itxn_field TypeEnum
+
+ pushint 1
+ pushint 1
+ +
+ itxn_field Amount
+
+ itxn_submit
+ `;
+
+ const txns = getPluginTxns(teal);
+ expect(txns.length).toBe(1);
+ expect(txns[0]).toEqual({ TypeEnum: 0, Sender: '0xdeadbeef', Amount: 'dynamic' });
+ });
+
+ test('branch', () => {
+ const teal = `
+ #pragma version 10
+
+ itxn_begin
+
+ pushbytes 0xdeadbeef
+ itxn_field Sender
+
+ callsub malicious_subroutine
+
+ pushint 0
+ itxn_field TypeEnum
+
+ pushint 1
+ itxn_field Amount
+
+ itxn_submit
+ `;
+
+ expect(() => getPluginTxns(teal)).toThrowError('Branching opcode callsub found when composing inner transaction');
+ });
+
+ test('future TEAL', () => {
+ const teal = `
+ #pragma version 999
+
+ itxn_begin
+
+ pushbytes 0xdeadbeef
+ itxn_field Sender
+
+ pushint 0
+ itxn_field TypeEnum
+
+ pushint 1
+ itxn_field Amount
+
+ itxn_submit
+ `;
+
+ expect(() => getPluginTxns(teal)).toThrowError('Unsupported program version: 999');
+ });
+});
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/permissions.test.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/permissions.test.ts
new file mode 100644
index 000000000..abbff54a7
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/permissions.test.ts
@@ -0,0 +1,1554 @@
+import { describe, test, beforeAll, beforeEach, expect } from '@jest/globals';
+import { algorandFixture } from '@algorandfoundation/algokit-utils/testing';
+import * as algokit from '@algorandfoundation/algokit-utils';
+import algosdk, { makeBasicAccountTransactionSigner } from 'algosdk';
+import { ERR_ALLOWANCE_EXCEEDED, ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY, ERR_MALFORMED_OFFSETS, ERR_METHOD_ON_COOLDOWN, ERR_PLUGIN_DOES_NOT_EXIST, ERR_PLUGIN_EXPIRED, ERR_PLUGIN_ON_COOLDOWN } from './errors';
+import { AbstractedAccountClient, AbstractedAccountFactory, EscrowInfo } from '../artifacts/abstracted_account/AbstractedAccountClient';
+import { OptInPluginClient, OptInPluginFactory } from '../artifacts/plugins/optin/OptInPluginClient';
+import { EscrowFactoryFactory } from '../artifacts/escrow/EscrowFactoryClient';
+import { PayPluginClient, PayPluginFactory } from '../artifacts/plugins/pay/PayPluginClient';
+import { getABIEncodedValue } from '@algorandfoundation/algokit-utils/types/app-arc56';
+
+const ZERO_ADDRESS = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ';
+
+const PluginInfoAbiType = algosdk.ABIType.from('(bool,uint8,uint64,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,uint64,uint64)')
+type PluginInfoTuple = [boolean, bigint, bigint, bigint, bigint, [string, bigint, bigint][], boolean, boolean, number, number]
+
+const EscrowInfoAbiType = algosdk.ABIType.from('(uint64,bool)');
+
+const AllowanceInfoAbiType = algosdk.ABIType.from('(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)');
+type AllowanceInfoTuple = [bigint, bigint, bigint, bigint, bigint, bigint, bigint, boolean];
+
+
+algokit.Config.configure({ populateAppCallResources: true });
+
+describe('ARC58 Plugin Permissions', () => {
+ /** Alice's externally owned account (ie. a keypair account she has in Pera) */
+ let aliceEOA: algosdk.Account;
+ /** The client for Alice's abstracted account */
+ let abstractedAccountClient: AbstractedAccountClient;
+ /** The client for the dummy plugin */
+ let optInPluginClient: OptInPluginClient;
+ /** The client for the pay plugin */
+ let payPluginClient: PayPluginClient;
+ /** The account that will be calling the plugin */
+ let caller: algosdk.Account;
+ /** optin plugin app id */
+ let plugin: bigint;
+ /** pay plugin app id */
+ let payPlugin: bigint;
+ /** The suggested params for transactions */
+ let suggestedParams: algosdk.SuggestedParams;
+ /** The maximum uint64 value. Used to indicate a never-expiring plugin */
+ const MAX_UINT64 = BigInt('18446744073709551615');
+ /** a created asset id to use */
+ let asset: bigint;
+ /** the name of the escrow in use during this test */
+ let escrow: string = '';
+
+ const fixture = algorandFixture();
+
+ async function callPayPlugin(
+ caller: algosdk.Account,
+ payClient: PayPluginClient,
+ receiver: string,
+ asset: bigint,
+ amount: bigint,
+ offsets: number[] = [],
+ global: boolean = true,
+ ) {
+ const payPluginTxn = (
+ await (payClient
+ .createTransaction
+ .pay({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ wallet: abstractedAccountClient.appId,
+ rekeyBack: true,
+ receiver,
+ asset,
+ amount
+ },
+ extraFee: (1_000).microAlgos()
+ }))
+ ).transactions[0];
+
+ await abstractedAccountClient
+ .newGroup()
+ .arc58RekeyToPlugin({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ plugin: payPlugin,
+ global,
+ escrow,
+ methodOffsets: offsets,
+ fundsRequest: [[asset, amount]]
+ },
+ extraFee: (2000).microAlgos()
+ })
+ .addTransaction(payPluginTxn, makeBasicAccountTransactionSigner(caller))
+ .arc58VerifyAuthAddress({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {}
+ })
+ .send();
+ }
+
+ async function callOptinPlugin(
+ caller: algosdk.Account,
+ receiver: string,
+ suggestedParams: algosdk.SuggestedParams,
+ pluginClient: OptInPluginClient,
+ asset: bigint,
+ offsets: number[] = [],
+ global: boolean = true
+ ) {
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: caller.addr,
+ receiver,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ const optInGroup = (
+ await (pluginClient
+ .createTransaction
+ .optInToAsset({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ wallet: abstractedAccountClient.appId,
+ rekeyBack: true,
+ assets: [asset],
+ mbrPayment
+ },
+ extraFee: (1_000).microAlgos()
+ }))
+ ).transactions;
+
+ await abstractedAccountClient
+ .newGroup()
+ .arc58RekeyToPlugin({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ plugin,
+ global,
+ escrow,
+ methodOffsets: offsets,
+ fundsRequest: []
+ },
+ extraFee: (2000).microAlgos()
+ })
+ // Add the mbr payment
+ .addTransaction(optInGroup[0], makeBasicAccountTransactionSigner(caller)) // mbrPayment
+ // Add the opt-in plugin call
+ .addTransaction(optInGroup[1], makeBasicAccountTransactionSigner(caller)) // optInToAsset
+ .arc58VerifyAuthAddress({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {}
+ })
+ .send();
+ }
+
+ beforeEach(async () => {
+ await fixture.beforeEach();
+
+ const { algorand } = fixture.context;
+
+ const escrowFactory = new EscrowFactoryFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand
+ })
+
+ const escrowFactoryResults = await escrowFactory.send.create.bare()
+
+ await escrowFactoryResults.appClient.appClient.fundAppAccount({ amount: (100_000).microAlgos() });
+
+ const minter = new AbstractedAccountFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand
+ });
+
+ const results = await minter.send.create.createApplication({
+ args: {
+ admin: aliceEOA.addr.toString(),
+ controlledAddress: ZERO_ADDRESS,
+ escrowFactory: escrowFactoryResults.appClient.appId,
+ },
+ });
+ abstractedAccountClient = results.appClient;
+
+ await abstractedAccountClient.appClient.fundAppAccount({ amount: (100_000).microAlgos() });
+ });
+
+ beforeAll(async () => {
+ await fixture.beforeEach();
+ const { testAccount } = fixture.context;
+ const { algorand } = fixture;
+ aliceEOA = testAccount;
+ caller = algorand.account.random().account;
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ suggestedParams = await algorand.getSuggestedParams();
+
+ await algorand.account.ensureFunded(
+ aliceEOA.addr,
+ dispenser,
+ (100).algos(),
+ );
+
+ await algorand.account.ensureFunded(
+ caller.addr,
+ dispenser,
+ (100).algos(),
+ );
+
+ const optinPluginMinter = new OptInPluginFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand
+ });
+ const optInMintResults = await optinPluginMinter.send.create.bare();
+
+ optInPluginClient = optInMintResults.appClient;
+ plugin = optInPluginClient.appId;
+
+ // Create an asset
+ const txn = await algorand.send.assetCreate({
+ sender: aliceEOA.addr,
+ total: BigInt(1_000_000_000_000),
+ decimals: 6,
+ defaultFrozen: false,
+ });
+
+ asset = BigInt(txn.confirmation!.assetIndex!);
+
+ const payPluginMinter = new PayPluginFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand
+ });
+
+ const payMintResults = await payPluginMinter.send.create.bare();
+ payPluginClient = payMintResults.appClient;
+ payPlugin = payPluginClient.appId;
+ });
+
+ test('both are valid, global is used', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({ args: { methodCount: 0, plugin: '', escrow: '', groups: 0n } })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins * BigInt(2)}`)
+ const minFundingAmount = mbr.plugins * BigInt(2) // we install plugins twice here so double it
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, minFundingAmount.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ args: {
+ plugin,
+ caller: caller.addr.toString(),
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], true);
+
+ const globalPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin, caller: ZERO_ADDRESS, escrow })
+
+ const ts = (await algorand.client.algod.status().do())
+ const block = (await algorand.client.algod.block((ts.lastRound - 1n)).do());
+
+ expect(globalPluginBox?.lastCalled).toBe(BigInt(block.block.header.timestamp));
+ });
+
+ test('global valid, global is used', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], true);
+
+ const globalPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin, caller: ZERO_ADDRESS, escrow })
+
+ const ts = (await algorand.client.algod.status().do())
+ const block = (await algorand.client.algod.block(ts.lastRound - 1n).do());
+
+ expect(globalPluginBox?.lastCalled).toBe(BigInt(block.block.header.timestamp));
+ });
+
+ test('global does not exist, sender valid', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: caller.addr.toString(),
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], false);
+
+ const callerPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin, caller: caller.addr.toString(), escrow })
+
+ const ts = (await algorand.client.algod.status().do())
+ const block = (await algorand.client.algod.block(ts.lastRound - 1n).do());
+
+ expect(callerPluginBox?.lastCalled).toBe(BigInt(block.block.header.timestamp));
+ });
+
+ test('global does not exist, sender valid, method allowed', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 3,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ const optInToAssetSelector = optInPluginClient.appClient.getABIMethod('optInToAsset').getSelector();
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: caller.addr.toString(),
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [
+ [optInToAssetSelector, 0],
+ [Buffer.from('dddd'), 0],
+ [Buffer.from('aaaa'), 0]
+ ],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ console.log('optInToAssetSelector', new Uint8Array([...optInToAssetSelector]))
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [0], false);
+
+ const callerPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin, caller: caller.addr.toString(), escrow })
+
+ const ts = (await algorand.client.algod.status().do())
+ const block = (await algorand.client.algod.block(ts.lastRound - 1n).do());
+
+ expect(callerPluginBox?.lastCalled).toBe(BigInt(block.block.header.timestamp));
+ });
+
+ test('methods on cooldown', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 1,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ const optInToAssetSelector = optInPluginClient.appClient.getABIMethod('optInToAsset').getSelector();
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [
+ [optInToAssetSelector, 100]
+ ],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [0]);
+
+ const callerPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin, caller: ZERO_ADDRESS, escrow })
+
+ const ts = (await algorand.client.algod.status().do());
+ const block = (await algorand.client.algod.block(ts.lastRound - 1n).do());
+
+ expect(callerPluginBox?.methods[0][2]).toBe(BigInt(block.block.header.timestamp));
+
+ let error = 'no error';
+ try {
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [0]);
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_METHOD_ON_COOLDOWN)
+ });
+
+ test('methods on cooldown, single group', async () => {
+ const { algorand } = fixture;
+
+ const optInToAssetSelector = optInPluginClient.appClient.getABIMethod('optInToAsset').getSelector();
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 1,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [
+ [optInToAssetSelector, 1] // cooldown of 1 so we can call it at most once per round
+ ],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: caller.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ const optInGroup = (
+ await (optInPluginClient
+ .createTransaction
+ .optInToAsset({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ wallet: abstractedAccountClient.appId,
+ rekeyBack: false,
+ assets: [asset],
+ mbrPayment
+ },
+ extraFee: (1_000).microAlgos()
+ }))
+ ).transactions;
+
+ const mbrPaymentTwo = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: caller.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ note: new Uint8Array(Buffer.from('two'))
+ });
+
+ const optInGroupTwo = (
+ await (optInPluginClient
+ .createTransaction
+ .optInToAsset({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ wallet: abstractedAccountClient.appId,
+ rekeyBack: true,
+ assets: [asset],
+ mbrPayment: mbrPaymentTwo
+ },
+ extraFee: (1_000).microAlgos(),
+ note: 'two'
+ }))
+ ).transactions;
+
+ let error = 'no error';
+ try {
+ await abstractedAccountClient
+ .newGroup()
+ .arc58RekeyToPlugin({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ plugin,
+ global: true,
+ methodOffsets: [0, 0],
+ fundsRequest: [],
+ escrow: ''
+ },
+ extraFee: (1000).microAlgos()
+ })
+ // Add the mbr payment
+ .addTransaction(optInGroup[0], makeBasicAccountTransactionSigner(caller)) // mbrPayment
+ // Add the opt-in plugin call
+ .addTransaction(optInGroup[1], makeBasicAccountTransactionSigner(caller)) // optInToAsset
+ .addTransaction(optInGroupTwo[0], makeBasicAccountTransactionSigner(caller)) // mbrPayment
+ .addTransaction(optInGroupTwo[1], makeBasicAccountTransactionSigner(caller)) // optInToAsset
+ .arc58VerifyAuthAddress({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {}
+ })
+ .send();
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_METHOD_ON_COOLDOWN);
+ });
+
+ test('plugins on cooldown', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: caller.addr.toString(),
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 100,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], false);
+
+ let error = 'no error';
+ try {
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], false);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_PLUGIN_ON_COOLDOWN);
+ });
+
+ test('neither sender nor global plugin exists', async () => {
+ let error = 'no error';
+ try {
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_PLUGIN_DOES_NOT_EXIST);
+ });
+
+ test('expired', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: 1,
+ cooldown: 0,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ let error = 'no error';
+ try {
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset);
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_PLUGIN_EXPIRED);
+ });
+
+ test('erroneous app call in sandwich', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: caller.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ // create an extra app call that on its own would succeed
+ const erroneousAppCall = (
+ await abstractedAccountClient.createTransaction.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: caller.addr.toString(),
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+ ).transactions[0];
+
+ const optInGroup = (
+ await (optInPluginClient
+ .createTransaction
+ .optInToAsset({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ wallet: abstractedAccountClient.appId,
+ rekeyBack: true,
+ assets: [asset],
+ mbrPayment
+ },
+ extraFee: (1_000).microAlgos()
+ }))
+ ).transactions;
+
+ let error = 'no error';
+ try {
+ await abstractedAccountClient
+ .newGroup()
+ .arc58RekeyToPlugin({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {
+ plugin,
+ global: true,
+ escrow,
+ methodOffsets: [],
+ fundsRequest: []
+ },
+ extraFee: (1000).microAlgos()
+ })
+ // Add the mbr payment
+ .addTransaction(optInGroup[0], makeBasicAccountTransactionSigner(caller)) // mbrPayment
+ // Add the opt-in plugin call
+ .addTransaction(optInGroup[1], makeBasicAccountTransactionSigner(caller)) // optInToAsset
+ .addTransaction(erroneousAppCall, makeBasicAccountTransactionSigner(aliceEOA)) // erroneous app call
+ .arc58VerifyAuthAddress({
+ sender: caller.addr,
+ signer: makeBasicAccountTransactionSigner(caller),
+ args: {}
+ })
+ .send();
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY);
+ });
+
+ test('malformed methodOffsets', async () => {
+ const { algorand } = fixture;
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 1,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ await abstractedAccountClient.send.arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 0,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 0,
+ methods: [
+ [new Uint8Array(Buffer.from('dddd')), 0]
+ ],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ });
+
+ let error = 'no error';
+ try {
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, []);
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_MALFORMED_OFFSETS);
+ });
+
+ test('allowance - flat', async () => {
+ const { algorand } = fixture;
+ escrow = 'pay_plugin';
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ const randomAccount = algorand.account.random().account;
+
+ await algorand.account.ensureFunded(
+ randomAccount.addr,
+ dispenser,
+ (100).algos(),
+ );
+
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ await abstractedAccountClient.send
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const savedEscrow = escrow;
+ escrow = ''; // Plugin was added without escrow, so we need to call it without escrow
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], true);
+ escrow = savedEscrow; // Restore escrow for later use
+
+ const escrowCreationCost = BigInt(150_000 + 100_000) // NewCostForARC58 + Global.minBalance
+
+ // Recalculate MBR with the escrow name for the second plugin
+ const mbrWithEscrow = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow,
+ groups: 0n
+ }
+ })).return
+
+ if (mbrWithEscrow === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ const amount = mbrWithEscrow.plugins + mbrWithEscrow.allowances + mbrWithEscrow.escrows + escrowCreationCost
+
+ console.log(`Funding arc58 account with amount: ${amount}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, amount.microAlgo())
+
+ await abstractedAccountClient.newGroup()
+ .addTransaction(
+ algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: randomAccount.addr,
+ receiver: randomAccount.addr,
+ amount: 0,
+ assetIndex: asset,
+ suggestedParams
+ }),
+ makeBasicAccountTransactionSigner(randomAccount)
+ )
+ .addTransaction(
+ algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000_000,
+ assetIndex: asset,
+ suggestedParams
+ }),
+ makeBasicAccountTransactionSigner(aliceEOA)
+ )
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow,
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+ .arc58AddAllowances({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ escrow,
+ allowances: [[
+ asset,
+ 1, // type
+ 10_000_000, // allowed
+ 0, // max
+ 300, // interval
+ false, // useRounds
+ ]]
+ },
+ })
+ .arc58PluginOptinEscrow({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ escrow,
+ assets: [asset],
+ mbrPayment,
+ },
+ extraFee: (8000).microAlgos(),
+ })
+ .send()
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ // use the full amount
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 6_000_000n, [], true);
+
+ let allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(6_000_000n); // type 2 is window
+
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 2_000_000n, [], true);
+
+ allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(8_000_000n); // type 2 is window
+
+ // try to use more
+ let error = 'no error';
+ try {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 8_000_000n, [], true)
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_ALLOWANCE_EXCEEDED);
+ })
+
+ test('allowance - window', async () => {
+ const { algorand } = fixture;
+ escrow = 'pay_plugin_window'
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo())
+
+ const randomAccount = algorand.account.random().account;
+
+ await algorand.account.ensureFunded(
+ randomAccount.addr,
+ dispenser,
+ (100).algos(),
+ );
+
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ await abstractedAccountClient.send
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const savedEscrow = escrow;
+ escrow = ''; // Plugin was added without escrow, so we need to call it without escrow
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], true);
+ escrow = savedEscrow; // Restore escrow for later use
+
+ const escrowCreationCost = BigInt(150_000 + 100_000) // NewCostForARC58 + Global.minBalance
+
+ // Recalculate MBR with the escrow name for the second plugin
+ const mbrWithEscrow = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow,
+ groups: 0n
+ }
+ })).return
+
+ if (mbrWithEscrow === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ const amount = mbrWithEscrow.plugins + mbrWithEscrow.allowances + mbrWithEscrow.escrows + escrowCreationCost
+ console.log(`Funding arc58 account with amount: ${amount}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, amount.microAlgo())
+
+ await abstractedAccountClient.newGroup()
+ .addTransaction(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: randomAccount.addr,
+ receiver: randomAccount.addr,
+ amount: 0,
+ assetIndex: asset,
+ suggestedParams
+ }), makeBasicAccountTransactionSigner(randomAccount))
+ .addTransaction(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000_000,
+ assetIndex: asset,
+ suggestedParams
+ }), makeBasicAccountTransactionSigner(aliceEOA))
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow,
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+ .arc58AddAllowances({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ escrow,
+ allowances: [
+ [
+ asset,
+ 2, // type
+ 10_000_000, // allowed
+ 0, // max
+ 300, // interval
+ false, // useRounds
+ ]
+ ]
+ },
+ })
+ .arc58PluginOptinEscrow({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ escrow,
+ assets: [asset],
+ mbrPayment,
+ },
+ extraFee: (8000).microAlgos(),
+ })
+ .send()
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ // use the full amount
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 10_000_000n, [], true);
+
+ let allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(10_000_000n); // type 2 is window
+
+ let globalPluginBox = await abstractedAccountClient.state.box.plugins.value({ plugin: payPlugin, caller: ZERO_ADDRESS, escrow });
+
+ const spendingAddress = algosdk.getApplicationAddress(globalPluginBox?.escrow ?? 0n);
+
+ const spendingAddressInfo = await algorand.account.getInformation(spendingAddress.toString())
+
+ expect(spendingAddressInfo.authAddr?.toString()).toBe(abstractedAccountClient.appAddress.toString());
+
+ // try to use more
+ let error = 'no error';
+ try {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 1n, [], true)
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_ALLOWANCE_EXCEEDED);
+
+ // wait for the next window
+ for (let i = 0; i < 3; i++) {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 0n, [], true)
+ }
+
+ // use more
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 1_000_000n, [], true);
+
+ allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(1_000_000n); // type 2 is window
+
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 8_000_000n, [], true);
+
+ // try to use more
+ error = 'no error';
+ try {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 2_000_000n, [], true)
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_ALLOWANCE_EXCEEDED);
+ })
+
+ test('allowance - drip', async () => {
+ const { algorand } = fixture;
+ escrow = 'pay_plugin_drip';
+
+ const dispenser = await algorand.account.dispenserFromEnvironment();
+
+ let accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ let mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow: '',
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ console.log(`Funding arc58 account with amount: ${mbr.plugins}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, mbr.plugins.microAlgo());
+
+ const randomAccount = algorand.account.random().account;
+
+ await algorand.account.ensureFunded(
+ randomAccount.addr,
+ dispenser,
+ (100).algos(),
+ );
+
+ const mbrPayment = algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000,
+ suggestedParams,
+ });
+
+ await abstractedAccountClient.send
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow: '',
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: false,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+
+ accountInfo = await algorand.account.getInformation(abstractedAccountClient.appAddress)
+ expect(accountInfo.balance.microAlgos).toEqual(accountInfo.minBalance.microAlgos)
+
+ const savedEscrow = escrow;
+ escrow = ''; // Plugin was added without escrow, so we need to call it without escrow
+ await callOptinPlugin(caller, abstractedAccountClient.appAddress.toString(), suggestedParams, optInPluginClient, asset, [], true);
+ escrow = savedEscrow; // Restore escrow for later use
+
+ const escrowCreationCost = BigInt(150_000 + 100_000) // Global.minBalance
+ mbr = (await abstractedAccountClient.send.mbr({
+ args: {
+ methodCount: 0,
+ plugin: '',
+ escrow,
+ groups: 0n
+ }
+ })).return
+
+ if (mbr === undefined) {
+ throw new Error('MBR is undefined');
+ }
+
+ const amount = mbr.plugins + mbr.allowances + mbr.escrows + escrowCreationCost;
+ console.log(`Funding arc58 account with amount: ${amount}`)
+ await algorand.account.ensureFunded(abstractedAccountClient.appAddress, dispenser, amount.microAlgo());
+
+ await abstractedAccountClient.newGroup()
+ .addTransaction(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: randomAccount.addr,
+ receiver: randomAccount.addr,
+ amount: 0,
+ assetIndex: asset,
+ suggestedParams
+ }), makeBasicAccountTransactionSigner(randomAccount))
+ .addTransaction(algosdk.makeAssetTransferTxnWithSuggestedParamsFromObject({
+ sender: aliceEOA.addr,
+ receiver: abstractedAccountClient.appAddress,
+ amount: 100_000_000,
+ assetIndex: asset,
+ suggestedParams
+ }), makeBasicAccountTransactionSigner(aliceEOA))
+ .arc58AddPlugin({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ admin: false,
+ delegationType: 3,
+ escrow,
+ lastValid: MAX_UINT64,
+ cooldown: 1,
+ methods: [],
+ useRounds: true,
+ useExecutionKey: false,
+ defaultToEscrow: false
+ }
+ })
+ .arc58AddAllowances({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ escrow,
+ allowances: [
+ [
+ asset,
+ 3, // type
+ 1_000_000, // amount
+ 50_000_000, // max
+ 1, // interval
+ true, // useRounds
+ ]
+ ]
+ },
+ })
+ .arc58PluginOptinEscrow({
+ sender: aliceEOA.addr,
+ signer: makeBasicAccountTransactionSigner(aliceEOA),
+ args: {
+ plugin: payPlugin,
+ caller: ZERO_ADDRESS,
+ escrow,
+ assets: [asset],
+ mbrPayment
+ },
+ extraFee: (8000).microAlgos(),
+ })
+ .send()
+
+ // use the full amount
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 1_000_000n, [], true);
+
+ let allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(49_000_000n);
+
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 48_000_000n, [], true)
+
+ // try to use more
+ let error = 'no error';
+ try {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 5_000_000n, [], true)
+ } catch (e: any) {
+ error = e.message;
+ }
+
+ expect(error).toContain(ERR_ALLOWANCE_EXCEEDED);
+
+ // wait for the next window
+ for (let i = 0; i < 3; i++) {
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 0n, [], true)
+ }
+
+ await callPayPlugin(caller, payPluginClient, randomAccount.addr.toString(), asset, 0n, [], true);
+
+ allowanceBox = await abstractedAccountClient.state.box.allowances.value({ escrow, asset });
+
+ expect(allowanceBox?.spent).toBe(6_000_000n);
+ })
+});
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/rekeying.test.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/rekeying.test.ts
new file mode 100644
index 000000000..bbd493a1a
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/rekeying.test.ts
@@ -0,0 +1,87 @@
+import { describe, test, beforeAll, beforeEach, expect } from '@jest/globals';
+import { algorandFixture } from '@algorandfoundation/algokit-utils/testing';
+import algosdk, { makeBasicAccountTransactionSigner } from 'algosdk';
+import { microAlgos } from '@algorandfoundation/algokit-utils';
+import { EscrowFactoryFactory } from '../artifacts/escrow/EscrowFactoryClient';
+import { AbstractedAccountClient, AbstractedAccountFactory } from '../artifacts/abstracted_account/AbstractedAccountClient';
+
+
+const ZERO_ADDRESS = 'AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAY5HFKQ';
+const fixture = algorandFixture();
+
+describe('Rekeying Test', () => {
+ // let algod: Algodv2;
+ /** Alice's externally owned account (ie. a keypair account she has in Defly) */
+ let aliceEOA: algosdk.Account;
+ /** The address of Alice's new abstracted account. Sends app calls from aliceEOA unless otherwise specified */
+ let aliceAbstractedAccount: string;
+ /** The client for Alice's abstracted account */
+ let abstractedAccountClient: AbstractedAccountClient;
+ /** The suggested params for transactions */
+ let suggestedParams: algosdk.SuggestedParams;
+
+ beforeEach(fixture.beforeEach);
+
+ beforeAll(async () => {
+ await fixture.beforeEach();
+ const { algorand, algod } = fixture.context;
+ suggestedParams = await algorand.getSuggestedParams();
+ aliceEOA = await fixture.context.generateAccount({ initialFunds: microAlgos(100_000_000) });
+
+ await algod.setBlockOffsetTimestamp(60).do();
+
+ const escrowFactory = new EscrowFactoryFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand
+ })
+
+ const escrowFactoryResults = await escrowFactory.send.create.bare()
+
+ await escrowFactoryResults.appClient.appClient.fundAppAccount({ amount: (100_000).microAlgos() });
+
+ const minter = new AbstractedAccountFactory({
+ defaultSender: aliceEOA.addr,
+ defaultSigner: makeBasicAccountTransactionSigner(aliceEOA),
+ algorand,
+ });
+ const results = await minter.send.create.createApplication({
+ args: {
+ admin: aliceEOA.addr.toString(),
+ controlledAddress: ZERO_ADDRESS,
+ escrowFactory: escrowFactoryResults.appClient.appId,
+ },
+ });
+
+ abstractedAccountClient = results.appClient;
+ aliceAbstractedAccount = abstractedAccountClient.appAddress.toString();
+
+ // Fund the abstracted account with some ALGO to later spend
+ await abstractedAccountClient.appClient.fundAppAccount({ amount: (4).algos() });
+ });
+
+ test('Alice does not rekey back to the app', async () => {
+ await expect(
+ abstractedAccountClient
+ .newGroup()
+ // Step one: rekey abstracted account to Alice
+ .arc58RekeyTo({
+ sender: aliceEOA.addr,
+ extraFee: (1000).microAlgos(),
+ args: {
+ address: aliceEOA.addr.toString(),
+ flash: true,
+ }
+ })
+ // Step two: make payment from abstracted account
+ .addTransaction(algosdk.makePaymentTxnWithSuggestedParamsFromObject({
+ sender: aliceAbstractedAccount,
+ receiver: aliceAbstractedAccount,
+ amount: 0,
+ suggestedParams: { ...suggestedParams, fee: 1000, flatFee: true },
+ }),
+ // signer: makeBasicAccountTransactionSigner(aliceEOA),
+ ).send()
+ ).rejects.toThrowError();
+ });
+});
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/types.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/types.ts
new file mode 100644
index 000000000..46b9623ee
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/types.ts
@@ -0,0 +1,150 @@
+import { Account, bytes, uint64 } from "@algorandfoundation/algorand-typescript";
+import { Uint8 } from "@algorandfoundation/algorand-typescript/arc4";
+
+// 33 bytes for key
+// 16 bytes for first & last valid
+// 4 bytes for offset + length of groups
+export const ExecutionGroupMaxInASingleCall: uint64 = 62 // 4 bytes for selector + 16 bytes for first & last valid + 32 bytes for lease key
+// app calls required to fill: 16.5
+// if we force a 'start' of the add Execution method we could avoid providing the lease key more than once
+export const ExecutionGroupSubsequentMaxInASingleCall: uint64 = 63
+// app calls required to fill w/ lease key only provided once: 1007
+
+export const ExecutionGroupMaxLength: uint64 = 1023
+// 32,768
+
+export type ExecutionInfo = {
+ /** the group id of the execution */
+ groups: bytes<32>[];
+ /** the first round or timestamp the execution is allowed */
+ firstValid: uint64;
+ /** the last round or timestamp the execution is allowed */
+ lastValid: uint64;
+}
+
+export type EscrowInfo = {
+ /** the app id of the escrow account */
+ id: uint64;
+ /** whether the escrow is locked, eg plugins & allowance changes are allowed */
+ locked: boolean;
+}
+
+export type AllowanceKey = {
+ /** the id of the escrow account to apply the allowance to */
+ escrow: string;
+ /** the asset id the allowance pertains to */
+ asset: uint64;
+}
+
+export type SpendAllowanceType = Uint8
+
+export const SpendAllowanceTypeFlat: SpendAllowanceType = new Uint8(1)
+export const SpendAllowanceTypeWindow: SpendAllowanceType = new Uint8(2)
+export const SpendAllowanceTypeDrip: SpendAllowanceType = new Uint8(3)
+
+export type AllowanceInfo = {
+ /** the type of allowance to use */
+ type: SpendAllowanceType
+ /** the maximum size of the bucket if using drip */
+ max: uint64
+ /** the amount of the asset the plugin is allowed to access or per window */
+ amount: uint64
+ /** the amount spent during the current or last interacted window */
+ spent: uint64
+ /** the rate the allowance should be expanded */
+ interval: uint64
+ /** the amount leftover when the bucket was last accessed */
+ last: uint64
+ /** the timestamp or round the allowance was added */
+ start: uint64
+ /** whether to use round number or unix timestamp when evaluating this allowance */
+ useRounds: boolean
+}
+
+export type AddAllowanceInfo = {
+ asset: uint64;
+ type: SpendAllowanceType;
+ amount: uint64;
+ max: uint64;
+ interval: uint64;
+ useRounds: boolean;
+}
+
+export type FundsRequest = {
+ asset: uint64;
+ amount: uint64;
+}
+
+export type PluginKey = {
+ /** the app id of the plugin */
+ plugin: uint64;
+ /** the allowed caller of the plugin */
+ caller: Account;
+ /** the escrow to be used during the */
+ escrow: string;
+}
+
+export const DelegationTypeOther = new Uint8(0)
+export const DelegationTypeSelf = new Uint8(1)
+export const DelegationTypeAgent = new Uint8(2)
+
+export type PluginInfo = {
+ escrow: uint64;
+ delegationType: Uint8;
+ lastValid: uint64;
+ cooldown: uint64;
+ methods: MethodInfo[];
+ admin: boolean;
+ useRounds: boolean;
+ useExecutionKey: boolean;
+ lastCalled: uint64;
+ start: uint64;
+}
+
+export type MethodRestriction = {
+ selector: bytes<4>;
+ cooldown: uint64;
+}
+
+export type MethodInfo = {
+ selector: bytes<4>;
+ cooldown: uint64;
+ lastCalled: uint64;
+}
+
+export type PluginValidation = {
+ exists: boolean;
+ expired: boolean;
+ onCooldown: boolean;
+ hasMethodRestrictions: boolean;
+}
+
+export type MethodValidation = {
+ methodAllowed: boolean;
+ methodOnCooldown: boolean;
+}
+
+export type FullPluginValidation = {
+ exists: boolean
+ expired: boolean
+ onCooldown: boolean
+ hasMethodRestrictions: boolean
+ methodAllowed: boolean
+ methodOnCooldown: boolean
+}
+
+export type EscrowReclaim = {
+ asset: uint64;
+ amount: uint64;
+ closeOut: boolean;
+}
+
+export type AbstractAccountBoxMBRData = {
+ plugins: uint64;
+ namedPlugins: uint64;
+ escrows: uint64;
+ allowances: uint64;
+ executions: uint64;
+ escrowExists: boolean;
+ newEscrowMintCost: uint64
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/utils.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/utils.ts
new file mode 100644
index 000000000..eb691aa96
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/abstracted_account/utils.ts
@@ -0,0 +1,45 @@
+import { Uint8 } from "@algorandfoundation/algorand-typescript/arc4";
+import { AllowanceInfo, EscrowInfo, ExecutionInfo, PluginInfo } from "./types";
+
+export function emptyPluginInfo(): PluginInfo {
+ return {
+ escrow: 0,
+ delegationType: new Uint8(0),
+ lastValid: 0,
+ cooldown: 0,
+ methods: [],
+ admin: false,
+ useRounds: false,
+ useExecutionKey: false,
+ lastCalled: 0,
+ start: 0,
+ };
+}
+
+export function emptyEscrowInfo(): EscrowInfo {
+ return {
+ id: 0,
+ locked: false
+ };
+}
+
+export function emptyAllowanceInfo(): AllowanceInfo {
+ return {
+ type: new Uint8(0),
+ max: 0,
+ amount: 0,
+ spent: 0,
+ interval: 0,
+ last: 0,
+ start: 0,
+ useRounds: false
+ };
+}
+
+export function emptyExecutionInfo(): ExecutionInfo {
+ return {
+ groups: [],
+ firstValid: 0,
+ lastValid: 0
+ };
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.puya.map b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.puya.map
new file mode 100644
index 000000000..b2d727a80
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.puya.map
@@ -0,0 +1,86463 @@
+{
+ "version": 3,
+ "sources": [
+ "../../abstracted_account/contract.algo.ts",
+ "../../abstracted_account/utils.ts"
+ ],
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6Be;;AAAoC;AAAjD;AAjBF;;AAAA;AAAA;AAAA;;AAAA;;;AAAA;;;;;;;;;;;;;;;;;;;;;;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;;;;;;AAAA;;;AAAA;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4YG;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAGG;;AAAA;AAAA;;;AACG;;AAAA;;AAAA;AADH;;;;AADF;AAKO;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAP;AAhZM;AAkZN;AAAA;AAC4D;;AAA7B;AAAA;;;AAAkD;;AAjZ/D;AAiZlB;AAAA;AA3Yc;;AA4Yd;;AAAA;AA1YgB;;AA2Ya;;AAA7B;AAjZoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAyWD;AAAA;;;;;;;;;;AAsBD;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AACoB;AAAd;AACW;AAAX;AAAJ;;;AA5YQ;;AAAA;;AAAA;AA6YC;AAAA;AAAA;;AAAP;AACM;AAAA;AAAA;AAAA;AAAA;;AAGR;AAIgB;AAlaF;;AAkaE;AAAA;AAAA;AAAA;;AAAA;AACF;;;;;;;AAFV;;;AAAA;;;AAHJ;AAOI;;AAAA;AAPJ;;;;;;;;;;;;AAAA;;;;AAAA;;;AAAA;AAPF;AAAA;AAwBA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AACS;;AAAe;AAxbhB;AAwbgB;AAAA;AAAf;AAAP;AAxbM;AAybN;AAAA;AArboB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAuZF;AAAA;AAeA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AACoB;AA3bJ;;AA2bI;AAAA;AACS;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;;;AAET;AAAX;AAAP;AACO;;AAAe;;AAAA;;AAAA;AAAf;AAAP;AAEE;AA3cgB;AA2chB;AAAA;AAAA;;AAAA;AAA6C;AAAA;;AAAA;AAA7C;AADF;AA3bQ;;AAAA;AAAA;AAAA;AAicN;AAAA;;AAAA;;;AAA4B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAA5B;;;;AADF;AAjdM;AAsdN;;AAAA;AACI;AAAA;AAAA;AAAA;AAA2C;;AAA3C;AAAJ;;;AAndoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAsaF;AAAA;;;;;AA6BqB;AAneb;AAmea;AAAA;AAFpB;;AAAA;AAAA;AAAA;AAAA;AAAA;AASQ;AAheS;;AAgeT;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AA7G0B;AA3Xf;AA2Xe;AAAA;AAA/B;AAAA;;;AACG;AA5Xa;AA4Xb;AAAA;AAAiC;;AAAjC;AADH;;;AAEE;;AA2GG;;AAAA;AAAP;AAhegB;;AAiea;;AAA7B;AACgD;;AAAX;AAAV;AAAA;AAAA;AAAA;;;;;;AAAA;AAheb;;AAged;AAAA;AA9dW;;AA+da;AAAxB;AAJF;AAAA;AA1G2B;;;;;;;AAuH3B;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACS;;AAAe;AAvfhB;AAufgB;AAAA;AAAf;AAAP;AAEA;AAEY;AAzfM;AAyfN;AAAA;AAGF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AALV;;;AAAA;;;AAAA;AASA;;;AAlXiB;AAAb;;AACkB;;AAAiB;AAAjB;AAAA;;AAAqB;;AAAI;;AAAJ;AAA3C;;;AAGM;;AAAA;;;AAAJ;;;AACe;AAAb;;AAKJ;AAAA;AAtJoB;AAwBa;;AAAjC;AA0dF;AAAA;AArWmE;;AAAK;AAAL;AAAA;;;;;AA+XlE;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAQC;;;AACE;;AAA+B;;AAA/B;;AAAA;;AAAA;;;;AAEK;;AAAA;;AAAA;;AAAA;;AAAA;;;AAXR;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAuBD;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAoDA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAxkBe;;AAAA;;AAAA;AA+kBX;AAAA;AAAA;AAAA;AADF;;AAAA;;;AAAA;;AANF;AAAA;;;;;;AA6BA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAaS;;AAAe;AAroBhB;AAqoBgB;AAAA;AAAf;AAAP;AAGuB;;AAAnB;AAAA;;;AACA;;AAAkB;;AAAlB;AADA;;;;AADF;AADF;AASI;;AAAA;;;AACA;;AAAkB;;AAAlB;AADA;;;;AADF;AADF;AASA;AAAA;;;;;;;AAKuB;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAES;AAAA;AAAA;;AAAA;;AAAA;;AACX;AAAZ;;AAAe;;AAAA;;AAAA;AAAxB;;;AACqB;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAF;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAjB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAD+C;AAAL;AAAA;;;;;AAI3B;;AAAA;;;AAAY;;;;AAEzB;AAlqBc;AAkqBd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEY;AArqBI;AAqqBJ;AAAA;AACE;;AACyB;;AAAA;AAAA;AAA3B;;AAAA;AAAA;;;;;;;;;AAJZ;;;AAAA;;;AAAA;AASe;;AAAA;;;AAES;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AA/pBlB;;AAAA;;AAAA;AA+pBR;AAAA;;AAAA;AAAA;AA5qBoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAwlBF;AAAA;AA0C8C;;;;;;;AAXnC;;AAAW;AAAX;AAAP;AACY;AAAZ;;;;;;;;;;;;;AA+CJ;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AACS;;AAAe;AAxsBhB;AAwsBgB;AAAA;AAAf;AAAP;AAEuB;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAzrBf;;AAAA;AAAA;AA0rBD;AAAA;AAAA;;AAAP;AAE8B;AAAA;;AAAA;AAAA;AAAA;AAAA;AAE9B;;AAEI;AA/sBc;AA+sBd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEc;AAltBE;AAktBF;AAAA;AACF;;AAAA;;AAAA;;;;;;;AAHZ;;;AAAA;;;AAAA;AA9sBkB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAuqBF;AAAA;;;;;;AAsCA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAcS;;AAAe;AA3vBhB;AA2vBgB;AAAA;AAAf;AAAP;AAxuBa;;AAAA;;AAAA;AAAA;AAAA;;AAyuBL;AAAA;;AAAD;AAAP;AAGuB;;AAAnB;AAAA;;;AACA;;AAAkB;;AAAlB;AADA;;;;AADF;AADF;AASI;;AAAA;;;AACA;;AAAkB;;AAAlB;AADA;;;;AADF;AADF;AASA;;AAAA;;;;;;;AAKuB;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACvB;;AAAA;AAAA;;AAAA;AAAA;AAEgC;AAAA;AAAA;;AAAA;;AAAA;;AACX;AAAZ;;AAAe;;AAAA;;AAAA;AAAxB;;;AACqB;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAF;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAjB;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAD+C;AAAL;AAAA;;;;;AAIxC;AAxxBc;AAwxBd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEY;AA3xBI;AA2xBJ;AAAA;AACE;;AACyB;;AAAA;AAAA;AAA3B;;AAAA;AAAA;;;AArvB+B;;AAAA;AAAjB;;AAAA;AAArB;;AAAA;AAqvBO;;;;;;;AAJZ;;;AAAA;;;AAAA;AASe;;AAAA;;;AAAA;;AAEA;;AAAA;;;AAAY;;AAEH;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAvxBlB;;AAAA;;AAAA;AAuxBR;AAAA;;AAAA;AAAA;AApyBoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AA6sBF;AAAA;AAyD8C;;;;;AAxBnC;;AAAW;AAAX;AAAP;AACY;AAAZ;;;;;;;;;;;;;AA+CJ;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AACS;;AAAe;AA/zBhB;AA+zBgB;AAAA;AAAf;AAAP;AA5yBa;;AAAA;AAAA;AA6yBN;AAAA;AAAA;;AAAP;AACkB;AAAA;AAAA;AAAA;AAAA;;AAhzBV;;AAAA;AAAA;AAizBD;AAAA;AAAA;;AAAP;AAE8B;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAE9B;AAAA;;AACA;;AAEI;AAv0Bc;AAu0Bd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEc;AA10BE;AA00BF;AAAA;AAlyB6B;;AAAA;AAAjB;;AAAA;AAArB;;AAAA;AAmyBoD;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAhB;;AAAA;;;AAA7B;;;;;AAHZ;;;AAAA;;;AAAA;AAt0BkB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AA8xBF;AAAA;AA6BA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AACS;;AAAe;AA51BhB;AA41BgB;AAAA;AAAf;AAAP;AAv0BQ;;AAAA;;AAAA;AAw0BA;AAAA;;AAAD;AAAP;AACO;AAAW;AAAX;AAAP;AACO;;;AAJT;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAYA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AACS;;AAAe;AAx2BhB;AAw2BgB;AAAA;AAAf;AAAP;AAn1BQ;;AAAA;AAAA;AAo1BD;AAAA;AAAA;;AAAP;AAEqC;AAAA;AAAA;AAAA;;AAAA;AAAD;AAApC;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAv2BoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAg1BO;AAAA;AATT;;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;;AAkBA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;;;AACS;;AAAe;AA13BhB;AA03BgB;AAAA;AAAf;AAAP;AAr2BQ;;AAAA;AAAA;AAs2BD;AAAA;AAAA;;AAAP;AAC2B;AAAA;AAAA;AAAA;AAAZ;;AAAA;AAEM;AAAG;AAAA;;AAAA;AAAxB;;;AACM;;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAJ;;;AAGc;AAh4BE;AAg4BF;AAAA;AAAA;;AAAA;AACF;AAAA;AAAA;AAAA;;AAHJ;AAAA;;AAMF;;;AAAA;AAAJ;;;AAC8B;AAr4BhB;AAq4BgB;AAAA;AAAA;AAAA;;;;AAG9B;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;AAVY;;;AAAA;;;AAUZ;AAZyC;AAAK;AAAL;AAAA;;;;;AAgBxB;AA54BH;AA44BG;AAAA;AAAA;;AAAA;AACF;AAAA;AAAA;AAAA;;AAHT;AAAA;;AAOF;;;AAAA;AAAJ;;;AAC2B;AAl5Bb;AAk5Ba;AAAA;AAAA;AAAA;;;;AAG3B;AAAA;;AAAA;;;;;;;;;;;;;;;;;;;;;;;AAXa;;;;AAAA;;;AAWb;;;;AA9BN;AAAA;AAyCA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AACS;;AAAe;AAn6BhB;AAm6BgB;AAAA;AAAf;AAAP;AA94BQ;;AAAA;;AAAA;AA+4BD;AAAA;AAAA;;AAAP;AACiB;AAAA;AAAA;AAAA;AAAA;AACK;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AACd;;AAAA;AAAD;AAAP;AAEA;AAEY;AAz6BM;AAy6BN;AAAA;AAEA;;AAAA;;AAAA;;;;;;;AAJZ;;;AAAA;;;AAAA;AAQqB;AAAG;AAAA;;AAAA;AAAxB;;;AAEqC;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAjB;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AA55BT;;AAAA;AAAA;AA45BP;AAAA;;AADF;AAKA;;;AAIiB;;;;;;;;;;AAJjB;;;;AAAA;;;AAAA;AAN8C;AAAL;AAAA;;;;;AAf7C;AAAA;;;AAwCA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAOyB;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAh8Bf;;AAAA;AAAA;AAk8BD;AAAA;;AAAP;AA97BQ;;AAAA;AAAA;AA+7BD;AAAA;AAAA;;AAAP;AACQ;AAAA;AAAA;AAAA;;AAAA;AAAD;AAAP;AAEiB;AAAA;AAAA;AAGf;;AAAe;AAAA;;AAAA;AAAf;AAAA;;;AACA;;AAAA;;AAAA;AADA;;;AAEA;;AAAkB;;AAAlB;AAFA;;;;AADF;AAOsB;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAEtB;;AAAA;AAAA;;AAGc;AAn+BI;AAm+BJ;AAAA;AAHd;AAAA;;AAAA;AAAA;;AAAA;;AAIY;;AAAA;;AAAA;AAAA;;AAAA;AAJZ;AAAA;AAAA;AASA;AAIY;;AAAA;;;;;;;AAJZ;;;AAAA;;;AAAA;AAQqB;AAAZ;;AAAe;;AAAA;;AAAA;AAAxB;;;AAEqC;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAjB;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AA99BT;;AAAA;AAAA;AA89BP;AAAA;;AADF;AAKA;;;AAIiB;;;;;;;;;;AAJjB;;;;AAAA;;;AAAA;AAN8C;AAAL;AAAA;;;;;AAzC7C;AAAA;;;;;;;;;;AAgEA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACS;;AAAe;AA3gChB;AA2gCgB;AAAA;AAAf;AAAP;AAt/BQ;;AAAA;AAAA;AAu/BD;AAAA;AAAA;;AAAP;AACQ;AAAA;AAAA;;AAAA;AAAD;AAAP;AAEI;AA7gCc;AA6gCd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEY;AAhhCI;AAghCJ;AAAA;AACE;;AAj+B2B;;AAAA;AAAjB;;AAAA;AAAnB;;AAAA;AAk+BO;;AAAA;;;;;;;AAJZ;;;AAAA;;;AAAA;AASmB;AAAZ;;AAAe;;AAAA;;AAAA;AAAxB;;;AAC4D;;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;;AAAA;;AAAA;;AAAA;;;AAAA;;AAAA;;AAAA;;;AAAA;;AAAA;;AAAA;;;AAAA;;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;;AAChC;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AApgCjB;;AAAA;AAAA;AAAA;AAAA;;AAqgCD;AAAA;;AAAD;AAAP;AACc;;;AAAY;;AAEG;;AAAA;;AAAA;AAAA;;AAAA;AAEpB;AAFoB;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAA7B;;AAAA;AAAA;AAN6C;;AAAK;AAAL;AAAA;;;;;AAIJ;;;;;AAzhCvB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AA0+BF;AAAA;;AA2CA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACS;;AAAe;AAtjChB;AAsjCgB;AAAA;AAAf;AAAP;AAjiCQ;;AAAA;AAAA;AAkiCD;AAAA;AAAA;;AAAP;AACQ;AAAA;AAAA;;AAAA;AAAD;AAAP;AAEI;AAxjCc;AAwjCd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEc;AA3jCE;AA2jCF;AAAA;AA3gC2B;;AAAA;AAAjB;;AAAA;AAAnB;;AAAA;AA4gCO;;AAAA;;;;;AAHZ;;;AAAA;;;AAAA;AAQmB;AAAZ;;AAAe;;AAAA;;AAAA;AAAxB;;;AAGW;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAFiB;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AA7iCjB;;AAAA;AAAA;AAijCF;AAAA;AAAA;;AAAP;AACA;;AAN8C;AAAL;AAAA;;;;;AA/jCvB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAqhCF;AAAA;AA2BA;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACS;;AAAe;AAjlChB;AAilCgB;AAAA;AAAf;AAAP;AAxjCW;;AAAA;AAAA;AAAA;AAAA;;AAyjCN;AAAA;;AAAD;;;AAC6B;;AAAA;AAAA;;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAA/B;;AAAA;AAAA;;AAAA;AAAA;AA/kCkB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAgjCF;AAAA;AASW;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAP;AACO;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAP;AAEgD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAV;;AAAA;;;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAtC;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;;;AAOJ;;;AAAA;AAAA;AAAA;;AAAA;AAAA;AA1kCa;;AAAA;AAAA;AAAA;AA2kCJ;AAAA;;AAAP;AACO;;AAAe;AArmChB;AAqmCgB;AAAA;AAAf;AAAA;;;AAAmC;AAAA;;AAAA;AAAA;AAAA;AAAyC;;AAAzC;AAAnC;;;;AAAP;AAEA;AAAA;;AAnmCoB;AAwBa;;AAAjC;AAtBW;;AA0Ba;;AAAxB;AAmkCF;AAAA;;;;;;;AAUC;;;AAE6B;;AACP;AAAO;;AAAA;AAAA;AAAA;AAAA;;AAAJ;;AAAA;AAAxB;;;AACmB;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAhmCX;;AAAA;AAAA;AAAA;AAAA;;AAgmCF;AAAA;;AAAJ;;;AACe;;AAAA;AAAA;AAAb;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;;AAAA;;AACA;;;AAEF;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;;;AAAA;;;;;AARH;;AAAA;;AAAA;AAAA;AAAA;AAAA;;;;AAaA;;;AAE6B;;AACP;AAAO;;AAAA;AAAA;AAAJ;;AAAA;AAAA;AAAA;;AAAxB;;;AACwB;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AA3mCX;;AAAA;AAAA;AAAA;AAAA;;AA2mCP;AAAA;;AAAJ;;;AACwB;;AAAA;AAAA;AA9mClB;;AAAA;AAAA;AAAA;AAAA;;AA+mCA;AAAA;;AAAJ;;;AACe;;AAAA;AAAA;AAAb;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;;AAAA;;AAJoC;AAAK;AAAL;AAAA;;;;;AAOtC;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;;;AAAA;;AACA;;;AAEF;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;AAAA;;;AAAA;;;;;AAbH;;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAkBA;;;AAE4B;;AACN;AAAO;;AAAA;AAAA;AAAJ;;AAAA;AAAA;AAAA;;AAAxB;;;AACmB;;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AA3nCX;;AAAA;AAAA;AAAA;AAAA;;AA2nCF;AAAA;;AAAJ;;;AACc;;AAAA;AAAA;AAAZ;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAFwC;AAAK;AAAL;AAAA;;;;;AAK1C;;AAAA;AChpCG;;;;;;;;;;;ADgpCH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;;;;AARH;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAaA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE+B;;AACT;AAAG;AAAA;;AAAA;AAAxB;;;AAC6C;;AAAA;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAjB;;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAtoCjB;;AAAA;AAAA;AAAA;AAAA;;AAuoCL;AAAA;;AAAJ;;;AACc;;AAAA;AAAA;AAAZ;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAHuC;AAAK;AAAL;AAAA;;;;;AAMzC;;AAAA;ACvpCG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ADupCH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;;;;AATH;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAcA;;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAE+B;;AACT;AAAG;AAAA;;AAAA;AAAxB;;;AACsB;;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAlpCX;;AAAA;AAAA;AAAA;AAAA;;AAkpCL;AAAA;;AAAJ;;;AACc;;AAAA;AAAA;AAAZ;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;;AAAA;;AAFuC;AAAK;AAAL;AAAA;;;;;AAKzC;;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;AAAA;;;;;AARH;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAaA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAtoC0C;;AAAA;AAAjB;;AAAA;AAAjB;;;AAAA;;AAAA;AAgpCI;;AAAA;;AAAA;;;AAppCkC;;AAAA;AAAjB;;AAAA;AAArB;;AAAA;AAQA;;AAAA;;AAAA;AAIoB;;AAAA;;;AAAA;AAApB;;;;AAAA;AAjCC;;AAAA;;AAAA;AA8qCQ;AAAA;;AAAA;AAGZ;;AADA;;;;AAAA;AAAA;;AAAA;AARG;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AATR;;AAAA;AAAA;AAAA;AAAA;AAAA;AAjpCD;;;AAEuB;;AAAA;;AAAA;AAA6C;;AAAA;AAA9C;AAAlB;;AAAA;AADK;;;;AAAA;AAAP;AAqBF;;;;AACM;;AAAW;AAAX;AAAJ;;;AACS;AAAP;AAAA;AAtCM;;AAAA;;AAAA;AAAA;AAAA;;AAyCD;AAAA;;AAAA;;;AACH;;AAAA;AAAA;AAAA;AAAA;AADJ;AAAA;AAEI;;AAAA;;;;;;AAGN;;;AACM;AAlEc;AAkEd;AAAA;AAAiC;;AAAjC;AAAJ;;;AACE;AAEY;AArEI;AAqEJ;AAAA;AACE;;AA1ByB;;AAAA;AAAjB;;AAAA;AAAjB;;;AAAA;;;;;;;AAuBL;;;AAAA;;;AAAA;AASS;AAKG;AAjFI;AAiFJ;AAAA;AACA;;;;AAAkB;;AAAlB;AACE;AA7EF;;AA6EE;AAAA;AAAA;AAAA;;AAAA;;;;;;;;;;AAHZ;;;AAAA;;;AAJO;AAAA;;;;;;;;;;;;AAAA;;;;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAYkB;AAAA;AAAA;;AAAA;AArErB;;AAAA;;AAAA;AAqER;AAAA;AAEA;AAGF;;;;;;AACyB;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AA/Ef;;AAAA;AAAA;AAAA;AAiFH;AAAA;;AAAD;;;AACK;AAAP;;AAAA;AAGoE;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAEtE;;;AACS;AAAP;;AAAA;AAGkB;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AACC;AAAZ;;AAAmB;;AAAA;;AAAA;AAAA;AAAA;AAAJ;;AAAA;AAAxB;;;AACM;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;;AAAA;;AAAA;AAAJ;;;AACkB;AAAhB;;AAKa;;AAAA;;;AAAY;;;;AAG3B;;AAAA;;AAAA;AAAA;;;AACC;;AAAA;;AAAA;AAAD;;AAAA;AADA;;;;AAAA;;AAAA;AADF;;AAAA;;;;;AAF4C;;;;;;;AAPA;;AAAK;AAAL;AAAA;;;;;AAgB9C;;;AAGI;;AAAA;;AAAe;AA9HC;AA8HD;AAAA;AAAf;AAAA;;;AACA;;AAAA;;AAAgB;;AAAhB;AADA;;;AAGO;AAAP;AAIA;;AAAA;;AAAa;;AAAb;AAAA;;;AACG;;AAAA;;AAAc;;AAAd;AADH;;;AAEG;;AAAA;;AAAmB;AAAnB;AAFH;;;AAGG;;AAAA;;AAHH;;;AAIG;;AAAY;AAAZ;;AAAmB;;AAAnB;AAJH;;;;AADF;;AAAA;AAuBF;;;;;;AA5IU;;AAAA;;AAAA;AAAA;AA8IO;AAAA;AAAA;;AAAA;AACX;;;AACK;;;AAAP;;AAAA;;AAAA;;AAAA;AAQ8D;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAC/C;;;AAAY;;AAIlB;AAAA;;AAAA;AACI;AAAA;;AAAA;AAAD;;AAAA;AACW;;AAAA;;AAAA;AAAA;AAAA;AAAiB;AAAjB;AAJlB;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAP;;AAAA;;AAAA;;AAAA;AAF4C;;;;;AA6X9C;;;;;;;;;AAQiB;;AAAA;;;AAAS;;AACD;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;;AA/hBf;;AAAA;;AAAA;AAAA;AAAA;;AAiiBD;AAAA;;AAAP;AAtiBc;;AAuiBd;AAAA;AAEI;;AAAW;AAAX;AAAJ;;;AAhiBQ;;AAAA;;AAAA;AAiiBC;AAAA;AAAA;;AAAP;AACiB;AAAA;AAAA;AAAA;AAEY;AAAA;;AAAA;AA/iBf;;AA+iBd;AAAA;AA7QoB;;AAAA;AAAA;;AAAA;AAED;AAAZ;;AAAmB;;AAAA;AAAA;AAAJ;;AAAA;AAAxB;;;AAIW;;AAAA;;;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAF0B;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAzR1B;;AAAA;AAAA;AAAA;AAAA;;AAsTJ;AAAA;AAAA;;AAAP;AACuE;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;;AAAA;AAAA;AAAA;;AACvD;;;AAAY;;;;AAExB;;AAAS;;AAAT;AAAJ;;;AAC2B;;AAAA;;AAAA;AACN;;AAAA;AAAA;AAAZ;AAAA;;AAAA;AAAP;AACA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAyBF;;AAAA;AAAA;;AAAA;;AAAA;;AAAA;AAtDE;;AAAA;;;AACE;AAEY;AAxTE;AAwTF;AAAA;AAEK;;AAAA;AAAA;;;;;;;;;;;;;AAJjB;;;;AAAA;;;AAAA;AAV8C;;AAAK;AAAL;AAAA;;;;;AAmB9C;AAEY;AAjUE;AAiUF;AAAA;AAEA;;AAAA;AAAA;;;;;;;;;AAJZ;;;AAAA;;;AAAA;;;;AAoBO;;AAAS;;;AAAT;AAAJ;;;AA4BP;;AAAA;;;AACS;;AAAiB;AAAA;;AAAA;AAAD;;AAAA;AAAhB;AA1BH;;AAAA;AAAJ;;;AACmB;;AAAA;AAAA;;;AAAA;AAAA;AAAA;AAAV;;AAAA;AAAP;AACA;;AAAA;;AAAA;;AAAA;;;;AAGyB;;AAAA;;AAAA;AACN;;AAAA;AAAA;AAAZ;AAAA;;AAAA;AAAP;AACA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;;;;AAqBG;;AAA2B;AAAA;;AAAA;AAAD;;AAAA;AAA1B;AA9BsB;;;AAWlB;;AAAS;;;AAAT;AAAJ;;;AACY;;AAAA;;;AAAY;;;;AACN;;AAAA;;AAAA;AAIW;;AAAA;AAAD;;AAAA;AAAT;;AAAA;AACE;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;AAEN;;AAAA;AAAA;AAAb;AAAA;AAAP;AACoC;AAApC;AAAA;;AAAA;;AAAA;;AAAA;;;;AAT4C;;;;;;;AAnBH;;;;;;;AAnJJ;;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAEnC;;;AAAqB;;AAAe;AA9LlC;AA8LkC;AAAA;AAAf;AAAF;;;AArKZ;;AAsKc;;AAtKd;AAsKF;AAAA;;AAAP;AAtKS;;AAuKc;;AAvKd;AAuKF;AAAA;AAAA;AAAA;AAA+C;;AAA/C;AAAP;AAvKS;;AAwKc;;AAxKd;AAwKF;;AAAA;AAAA;AAAA;AAA8C;;AAA9C;AAAP;AAxKS;;AA0KsB;;AA1KtB;AAAA;;AA4KQ;AAAb;;AACiB;AAAZ;;AAAmB;;AAAA;;AAAA;AAAA;AAAA;AAAJ;;AAAA;AAAxB;;;AACM;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAAc;;AAAd;AAAJ;;;AACe;AAAb;;AAFuC;;AAAK;AAAL;AAAA;;;;;AAM3C;;AAAA;AAnLS;;AAoLO;;AApLP;AAoLT;;AAGmB;;AAAA;;;AAAA;;AAEd;AAAA;AAAA;AAAP;AACQ;AAAA;AAAA;AAAD;AAAP;AACQ;AAAA;AAAD;AAAP;AAEiB;;AAAA;;;AACb;;;;AAGa;AAAb;;AACsB;AAAtB;;AAEkB;;AAAiB;AAAjB;AAAA;;;;;;AAAqB;;AAAI;;AAAJ;AAA3C;;;AAGM;;AAAA;;;AAAJ;;;AACe;AAAb;;AA8BJ;;AAAA;AAkUA;AAEY;AAzjBI;;AAyjBJ;AAAA;AAEC;;AAAA;;AAAA;AACH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AALV;;;AAAA;;;AAAA;AAnjBW;;AA6jBa;;AAAxB;AA1jBQ;;AAAA;;AAAA;AA4jBJ;AAAA;AAAA;AAA2C;;AAA3C;AAAJ;;;AAzkBoB;AAwBa;;AAAjC;;;;;;;;;;AAyMM;;AAAA;;AAAa;;AAAb;AAAJ;;;;;AAR+D;;AAAK;AAAL;AAAA;;;;;;;AAYxD;;AAAA;AAAA;;AAAiB;;AAAA;AAAA;;AAAA;AAAA;AAAjB;AAAP;AACO;AAAA;;AAAA;AAAP;AAGO;AAAA;;AAAiB;AAAjB;AAAP;AACoC;AAAZ;;AAAL;AAA0B;;AAAtC;AAAP;AAEuD;;;AAAA;;AAAA;AAAA;AAAA;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAEhD;;AAAA;AAAP;AACO;AAAA;AAAP;AAEA;;;AACuB;;AAAA;AAAA;AAAd;;AAAA;AAAA;;AAAA;AAAP;AACuE;;AAAA;;;AAAA;AAAA;AAAA;AAAA;AAqBhE;;AAAY;AAAZ;;AAAA;AAAA;;AAAJ;AAAwB;;AAAxB;AAAP;AA3PQ;;AAAA;;AAAA;AAAA;AAAA;;AA8Pc;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AAAA;;AACqB;;AAAA;;AAAA;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;AAAA;;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;;AAAA;AAAA;;AAI1B;;;AAAY;;AACH;;AAAA;AAAD;;AAAA;AAAA;;AAErB;;AAAA;;AAAA;AAAA;;;AAA6B;;AAAA;;;AAAgB;;AAAA;;;AAE/C;;AAAA;;;AACqB;;AAAA;;;AAAY;;AAC/B;AAAA;;AAAA;;AAAA;AAAA;;AAAA;AAAA;;AAAA;AAGK;;;AAAA;AAAA;;AAAA;AAvCuC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;AACrC;;;AAAiB;;AAAA;;;;AAAxB;AAvOI;;AAAA;;AAAA;AAAA;;AAAA;AA0ON;;AAAA;AAAA;;AAAA;AAAA;AACA;;AAAe;AAAf;AAAA;;;;;;;;;AA8BgD;;;;;AAU3C;;;AA7CyC;;;AA6BJ;;;;;AA5DxC;;;;;;;AAoW2B;AA1jBb;AA0jBa;AAAA;AAljBf;;AAkjBd;AAAA;;;;AAb2C;;",
+ "op_pc_offset": 0,
+ "pc_events": {
+ "1": {
+ "subroutine": "@algorandfoundation/algorand-typescript/arc4/index.d.ts::Contract.approvalProgram",
+ "params": {},
+ "block": "main",
+ "stack_in": [],
+ "op": "intcblock 0 1 2 8 400 21700 27700"
+ },
+ "15": {
+ "op": "bytecblock \"controlled_address\" \"\" \"admin\" \"last_user_interaction\" \"p\" \"e\" \"last_change\" 0x151f7c75 \"x\" 0x00 0x0000 \"spending_address\" 0x002a 0x000a \"a\" 0x01 \"n\" \"rekey_index\" \"escrow_factory\" \"current_plugin\" 0x0002 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000 0x6cc3f606 0x002c"
+ },
+ "224": {
+ "op": "txn ApplicationID",
+ "defined_out": [
+ "reinterpret_bool%0#0"
+ ],
+ "stack_out": [
+ "reinterpret_bool%0#0"
+ ]
+ },
+ "226": {
+ "op": "bnz main_after_if_else@2",
+ "stack_out": []
+ },
+ "229": {
+ "op": "bytec 17 // \"rekey_index\"",
+ "defined_out": [
+ "\"rekey_index\""
+ ],
+ "stack_out": [
+ "\"rekey_index\""
+ ]
+ },
+ "231": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "\"rekey_index\"",
+ "0"
+ ],
+ "stack_out": [
+ "\"rekey_index\"",
+ "0"
+ ]
+ },
+ "232": {
+ "op": "app_global_put",
+ "stack_out": []
+ },
+ "233": {
+ "block": "main_after_if_else@2",
+ "stack_in": [],
+ "op": "txn OnCompletion",
+ "defined_out": [
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "tmp%0#1"
+ ]
+ },
+ "235": {
+ "op": "!",
+ "defined_out": [
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0"
+ ]
+ },
+ "236": {
+ "error": "OnCompletion must be NoOp",
+ "op": "assert // OnCompletion must be NoOp",
+ "stack_out": []
+ },
+ "237": {
+ "op": "txn ApplicationID",
+ "defined_out": [
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%2#0"
+ ]
+ },
+ "239": {
+ "op": "bz main_create_NoOp@34",
+ "stack_out": []
+ },
+ "242": {
+ "op": "pushbytess 0xbd6099e5 0xd24b7556 0x147b6cd6 0x13bc44e4 // method \"register(string)void\", method \"arc58_changeAdmin(address)void\", method \"arc58_pluginChangeAdmin(address)void\", method \"arc58_getAdmin()address\"",
+ "defined_out": [
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(register(string)void)"
+ ],
+ "stack_out": [
+ "Method(register(string)void)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)"
+ ]
+ },
+ "264": {
+ "op": "bytec 22 // method \"arc58_verifyAuthAddress()void\"",
+ "defined_out": [
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_verifyAuthAddress()void)",
+ "Method(register(string)void)"
+ ],
+ "stack_out": [
+ "Method(register(string)void)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_verifyAuthAddress()void)"
+ ]
+ },
+ "266": {
+ "op": "pushbytess 0xc95a5d3d 0x4727af21 0x582ff382 0xdefd5cd2 0xb3c80df9 0xeef448fd 0x38f591ea 0xe350b9d4 0x0a8cb2c2 0x25b713ca 0xebaf14a0 0x1fda3b4f 0x9d3f8918 0xbf4d7c57 0xd5dd382b 0x5cebed43 0xd58685af 0x7c37156e 0xaffaa4e8 0xa2403ddf 0x02fe4515 0x41bdc680 0x50f3e35c // method \"arc58_rekeyTo(address,bool)void\", method \"arc58_canCall(uint64,bool,address,string,byte[4])bool\", method \"arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void\", method \"arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void\", method \"arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void\", method \"arc58_removePlugin(uint64,address,string)void\", method \"arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void\", method \"arc58_removeNamedPlugin(string)void\", method \"arc58_newEscrow(string)uint64\", method \"arc58_toggleEscrowLock(string)(uint64,bool)\", method \"arc58_reclaim(string,(uint64,uint64,bool)[])void\", method \"arc58_optinEscrow(string,uint64[])void\", method \"arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void\", method \"arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void\", method \"arc58_removeAllowances(string,uint64[])void\", method \"arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void\", method \"arc58_removeExecutionKey(byte[32])void\", method \"arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]\", method \"arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]\", method \"arc58_getEscrows(string[])(uint64,bool)[]\", method \"arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]\", method \"arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]\", method \"mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)\"",
+ "defined_out": [
+ "Method(arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void)",
+ "Method(arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void)",
+ "Method(arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_canCall(uint64,bool,address,string,byte[4])bool)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[])",
+ "Method(arc58_getEscrows(string[])(uint64,bool)[])",
+ "Method(arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[])",
+ "Method(arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_newEscrow(string)uint64)",
+ "Method(arc58_optinEscrow(string,uint64[])void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void)",
+ "Method(arc58_reclaim(string,(uint64,uint64,bool)[])void)",
+ "Method(arc58_rekeyTo(address,bool)void)",
+ "Method(arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_removeAllowances(string,uint64[])void)",
+ "Method(arc58_removeExecutionKey(byte[32])void)",
+ "Method(arc58_removeNamedPlugin(string)void)",
+ "Method(arc58_removePlugin(uint64,address,string)void)",
+ "Method(arc58_toggleEscrowLock(string)(uint64,bool))",
+ "Method(arc58_verifyAuthAddress()void)",
+ "Method(mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64))",
+ "Method(register(string)void)"
+ ],
+ "stack_out": [
+ "Method(register(string)void)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_verifyAuthAddress()void)",
+ "Method(arc58_rekeyTo(address,bool)void)",
+ "Method(arc58_canCall(uint64,bool,address,string,byte[4])bool)",
+ "Method(arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_removePlugin(uint64,address,string)void)",
+ "Method(arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_removeNamedPlugin(string)void)",
+ "Method(arc58_newEscrow(string)uint64)",
+ "Method(arc58_toggleEscrowLock(string)(uint64,bool))",
+ "Method(arc58_reclaim(string,(uint64,uint64,bool)[])void)",
+ "Method(arc58_optinEscrow(string,uint64[])void)",
+ "Method(arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void)",
+ "Method(arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void)",
+ "Method(arc58_removeAllowances(string,uint64[])void)",
+ "Method(arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void)",
+ "Method(arc58_removeExecutionKey(byte[32])void)",
+ "Method(arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getEscrows(string[])(uint64,bool)[])",
+ "Method(arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[])",
+ "Method(arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[])",
+ "Method(mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64))"
+ ]
+ },
+ "383": {
+ "op": "txna ApplicationArgs 0",
+ "defined_out": [
+ "Method(arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void)",
+ "Method(arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void)",
+ "Method(arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_canCall(uint64,bool,address,string,byte[4])bool)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[])",
+ "Method(arc58_getEscrows(string[])(uint64,bool)[])",
+ "Method(arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[])",
+ "Method(arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_newEscrow(string)uint64)",
+ "Method(arc58_optinEscrow(string,uint64[])void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void)",
+ "Method(arc58_reclaim(string,(uint64,uint64,bool)[])void)",
+ "Method(arc58_rekeyTo(address,bool)void)",
+ "Method(arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_removeAllowances(string,uint64[])void)",
+ "Method(arc58_removeExecutionKey(byte[32])void)",
+ "Method(arc58_removeNamedPlugin(string)void)",
+ "Method(arc58_removePlugin(uint64,address,string)void)",
+ "Method(arc58_toggleEscrowLock(string)(uint64,bool))",
+ "Method(arc58_verifyAuthAddress()void)",
+ "Method(mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64))",
+ "Method(register(string)void)",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "Method(register(string)void)",
+ "Method(arc58_changeAdmin(address)void)",
+ "Method(arc58_pluginChangeAdmin(address)void)",
+ "Method(arc58_getAdmin()address)",
+ "Method(arc58_verifyAuthAddress()void)",
+ "Method(arc58_rekeyTo(address,bool)void)",
+ "Method(arc58_canCall(uint64,bool,address,string,byte[4])bool)",
+ "Method(arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void)",
+ "Method(arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_removePlugin(uint64,address,string)void)",
+ "Method(arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void)",
+ "Method(arc58_removeNamedPlugin(string)void)",
+ "Method(arc58_newEscrow(string)uint64)",
+ "Method(arc58_toggleEscrowLock(string)(uint64,bool))",
+ "Method(arc58_reclaim(string,(uint64,uint64,bool)[])void)",
+ "Method(arc58_optinEscrow(string,uint64[])void)",
+ "Method(arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void)",
+ "Method(arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void)",
+ "Method(arc58_removeAllowances(string,uint64[])void)",
+ "Method(arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void)",
+ "Method(arc58_removeExecutionKey(byte[32])void)",
+ "Method(arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[])",
+ "Method(arc58_getEscrows(string[])(uint64,bool)[])",
+ "Method(arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[])",
+ "Method(arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[])",
+ "Method(mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64))",
+ "tmp%4#0"
+ ]
+ },
+ "386": {
+ "op": "match register arc58_changeAdmin arc58_pluginChangeAdmin arc58_getAdmin arc58_verifyAuthAddress arc58_rekeyTo arc58_canCall arc58_rekeyToPlugin arc58_rekeyToNamedPlugin arc58_addPlugin arc58_removePlugin arc58_addNamedPlugin arc58_removeNamedPlugin arc58_newEscrow arc58_toggleEscrowLock arc58_reclaim arc58_optinEscrow arc58_pluginOptinEscrow arc58_addAllowances arc58_removeAllowances arc58_addExecutionKey arc58_removeExecutionKey arc58_getPlugins arc58_getNamedPlugins arc58_getEscrows arc58_getAllowances arc58_getExecutions mbr",
+ "stack_out": []
+ },
+ "444": {
+ "op": "err"
+ },
+ "445": {
+ "block": "main_create_NoOp@34",
+ "stack_in": [],
+ "op": "pushbytes 0xe18362e2 // method \"createApplication(address,address,uint64)void\"",
+ "defined_out": [
+ "Method(createApplication(address,address,uint64)void)"
+ ],
+ "stack_out": [
+ "Method(createApplication(address,address,uint64)void)"
+ ]
+ },
+ "451": {
+ "op": "txna ApplicationArgs 0",
+ "defined_out": [
+ "Method(createApplication(address,address,uint64)void)",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "Method(createApplication(address,address,uint64)void)",
+ "tmp%5#0"
+ ]
+ },
+ "454": {
+ "op": "match createApplication",
+ "stack_out": []
+ },
+ "458": {
+ "op": "err"
+ },
+ "459": {
+ "subroutine": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "params": {
+ "array_items_count#0": "uint64",
+ "array_head_and_tail#0": "bytes",
+ "new_items_count#0": "uint64",
+ "new_head_and_tail#0": "bytes"
+ },
+ "block": "dynamic_array_concat_dynamic_element",
+ "stack_in": [],
+ "op": "proto 4 1"
+ },
+ "462": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "head_and_tail_length#0"
+ ]
+ },
+ "463": {
+ "op": "dup"
+ },
+ "464": {
+ "op": "frame_dig -2"
+ },
+ "466": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "new_head#0",
+ "new_items_count#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "new_items_count#0 (copy)",
+ "2"
+ ]
+ },
+ "467": {
+ "op": "*",
+ "defined_out": [
+ "item_offset_adjustment#0",
+ "new_head#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0"
+ ]
+ },
+ "468": {
+ "op": "frame_dig -4",
+ "defined_out": [
+ "array_items_count#0 (copy)",
+ "item_offset_adjustment#0",
+ "new_head#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "array_items_count#0 (copy)"
+ ]
+ },
+ "470": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "array_items_count#0 (copy)",
+ "2"
+ ]
+ },
+ "471": {
+ "op": "*",
+ "defined_out": [
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0"
+ ]
+ },
+ "472": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "473": {
+ "block": "dynamic_array_concat_dynamic_element_for_header@1",
+ "stack_in": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ],
+ "op": "frame_dig 4",
+ "defined_out": [
+ "head_offset#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "475": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "head_offset#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%1#0"
+ ]
+ },
+ "477": {
+ "op": "<",
+ "defined_out": [
+ "continue_looping%0#0",
+ "head_offset#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "continue_looping%0#0"
+ ]
+ },
+ "478": {
+ "op": "bz dynamic_array_concat_dynamic_element_after_for@4",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "481": {
+ "op": "frame_dig -3",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)",
+ "head_offset#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_head_and_tail#0 (copy)"
+ ]
+ },
+ "483": {
+ "op": "frame_dig 4",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_head_and_tail#0 (copy)",
+ "head_offset#0"
+ ]
+ },
+ "485": {
+ "op": "dup",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)",
+ "head_offset#0",
+ "head_offset#0 (copy)",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_head_and_tail#0 (copy)",
+ "head_offset#0 (copy)",
+ "head_offset#0 (copy)"
+ ]
+ },
+ "486": {
+ "op": "cover 2",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "array_head_and_tail#0 (copy)",
+ "head_offset#0 (copy)"
+ ]
+ },
+ "488": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "item_offset#0"
+ ]
+ },
+ "489": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "item_offset#0",
+ "item_offset_adjustment#0"
+ ]
+ },
+ "491": {
+ "op": "+",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%3#0"
+ ]
+ },
+ "492": {
+ "op": "itob",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%4#0"
+ ]
+ },
+ "493": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%5#0"
+ ]
+ },
+ "496": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%5#0",
+ "new_head#0"
+ ]
+ },
+ "498": {
+ "op": "swap",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "new_head#0",
+ "tmp%5#0"
+ ]
+ },
+ "499": {
+ "op": "concat",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "new_head#0"
+ ]
+ },
+ "500": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "502": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "2"
+ ]
+ },
+ "503": {
+ "op": "+",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "504": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "506": {
+ "op": "b dynamic_array_concat_dynamic_element_for_header@1"
+ },
+ "509": {
+ "block": "dynamic_array_concat_dynamic_element_after_for@4",
+ "stack_in": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ],
+ "op": "frame_dig -3",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_head_and_tail#0 (copy)"
+ ]
+ },
+ "511": {
+ "op": "len",
+ "defined_out": [
+ "head_and_tail_length#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_and_tail_length#0"
+ ]
+ },
+ "512": {
+ "op": "frame_bury 0",
+ "defined_out": [
+ "head_and_tail_length#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "514": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "515": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "517": {
+ "block": "dynamic_array_concat_dynamic_element_for_header@5",
+ "stack_in": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ],
+ "op": "frame_dig 4",
+ "defined_out": [
+ "head_offset#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "519": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "item_offset_adjustment#0"
+ ]
+ },
+ "521": {
+ "op": "<",
+ "defined_out": [
+ "continue_looping%1#0",
+ "head_offset#0",
+ "item_offset_adjustment#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "continue_looping%1#0"
+ ]
+ },
+ "522": {
+ "op": "bz dynamic_array_concat_dynamic_element_after_for@8",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "525": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head_and_tail#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "new_head_and_tail#0 (copy)"
+ ]
+ },
+ "527": {
+ "op": "frame_dig 4",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "new_head_and_tail#0 (copy)",
+ "head_offset#0"
+ ]
+ },
+ "529": {
+ "op": "dup",
+ "defined_out": [
+ "head_offset#0",
+ "head_offset#0 (copy)",
+ "item_offset_adjustment#0",
+ "new_head_and_tail#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "new_head_and_tail#0 (copy)",
+ "head_offset#0 (copy)",
+ "head_offset#0 (copy)"
+ ]
+ },
+ "530": {
+ "op": "cover 2",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "new_head_and_tail#0 (copy)",
+ "head_offset#0 (copy)"
+ ]
+ },
+ "532": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "head_offset#0",
+ "item_offset#0",
+ "item_offset_adjustment#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "item_offset#0"
+ ]
+ },
+ "533": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset#0",
+ "item_offset_adjustment#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "item_offset#0",
+ "head_and_tail_length#0"
+ ]
+ },
+ "535": {
+ "op": "+",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%10#0"
+ ]
+ },
+ "536": {
+ "op": "itob",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%11#0"
+ ]
+ },
+ "537": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%12#0"
+ ]
+ },
+ "540": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "tmp%12#0",
+ "new_head#0"
+ ]
+ },
+ "542": {
+ "op": "swap",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "new_head#0",
+ "tmp%12#0"
+ ]
+ },
+ "543": {
+ "op": "concat",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "new_head#0"
+ ]
+ },
+ "544": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "546": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0",
+ "2"
+ ]
+ },
+ "547": {
+ "op": "+",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "head_offset#0"
+ ]
+ },
+ "548": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "head_offset#0",
+ "item_offset_adjustment#0",
+ "new_head#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ]
+ },
+ "550": {
+ "op": "b dynamic_array_concat_dynamic_element_for_header@5"
+ },
+ "553": {
+ "block": "dynamic_array_concat_dynamic_element_after_for@8",
+ "stack_in": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0"
+ ],
+ "op": "frame_dig -4",
+ "defined_out": [
+ "array_items_count#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_items_count#0 (copy)"
+ ]
+ },
+ "555": {
+ "op": "frame_dig -2",
+ "defined_out": [
+ "array_items_count#0 (copy)",
+ "new_items_count#0 (copy)"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "array_items_count#0 (copy)",
+ "new_items_count#0 (copy)"
+ ]
+ },
+ "557": {
+ "op": "+",
+ "defined_out": [
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%14#0"
+ ]
+ },
+ "558": {
+ "op": "itob",
+ "defined_out": [
+ "tmp%15#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%15#0"
+ ]
+ },
+ "559": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "tmp%16#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%16#0"
+ ]
+ },
+ "562": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "new_head#0",
+ "tmp%16#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%16#0",
+ "new_head#0"
+ ]
+ },
+ "564": {
+ "op": "concat",
+ "defined_out": [
+ "new_head#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%17#0"
+ ]
+ },
+ "565": {
+ "op": "frame_dig -3",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)",
+ "new_head#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%17#0",
+ "array_head_and_tail#0 (copy)"
+ ]
+ },
+ "567": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%17#0",
+ "array_head_and_tail#0 (copy)",
+ "tmp%1#0"
+ ]
+ },
+ "569": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "array_head_and_tail#0 (copy)",
+ "head_and_tail_length#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%17#0",
+ "array_head_and_tail#0 (copy)",
+ "tmp%1#0",
+ "head_and_tail_length#0"
+ ]
+ },
+ "571": {
+ "op": "substring3",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%17#0",
+ "tmp%19#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%17#0",
+ "tmp%19#0"
+ ]
+ },
+ "572": {
+ "op": "concat",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%20#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0"
+ ]
+ },
+ "573": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "new_head_and_tail#0 (copy)",
+ "tmp%1#0",
+ "tmp%20#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "new_head_and_tail#0 (copy)"
+ ]
+ },
+ "575": {
+ "op": "len",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%20#0",
+ "tmp%22#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "tmp%22#0"
+ ]
+ },
+ "576": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "tmp%22#0",
+ "new_head_and_tail#0 (copy)"
+ ]
+ },
+ "578": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "new_head_and_tail#0 (copy)",
+ "tmp%1#0",
+ "tmp%20#0",
+ "tmp%22#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "tmp%22#0",
+ "new_head_and_tail#0 (copy)",
+ "item_offset_adjustment#0"
+ ]
+ },
+ "580": {
+ "op": "uncover 2",
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "new_head_and_tail#0 (copy)",
+ "item_offset_adjustment#0",
+ "tmp%22#0"
+ ]
+ },
+ "582": {
+ "op": "substring3",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%20#0",
+ "tmp%23#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%20#0",
+ "tmp%23#0"
+ ]
+ },
+ "583": {
+ "op": "concat",
+ "defined_out": [
+ "head_and_tail_length#0",
+ "item_offset_adjustment#0",
+ "new_head#0",
+ "tmp%1#0",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "head_and_tail_length#0",
+ "new_head#0",
+ "item_offset_adjustment#0",
+ "tmp%1#0",
+ "head_offset#0",
+ "tmp%24#0"
+ ]
+ },
+ "584": {
+ "op": "frame_bury 0"
+ },
+ "586": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "587": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.createApplication[routing]",
+ "params": {},
+ "block": "createApplication",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1"
+ },
+ "590": {
+ "op": "dupn 2",
+ "defined_out": [
+ "controlledAddress#0",
+ "controlledAddress#0 (copy)"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0",
+ "controlledAddress#0 (copy)"
+ ]
+ },
+ "592": {
+ "op": "len",
+ "defined_out": [
+ "controlledAddress#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0",
+ "len%0#0"
+ ]
+ },
+ "593": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "controlledAddress#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "595": {
+ "op": "==",
+ "defined_out": [
+ "controlledAddress#0",
+ "eq%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0",
+ "eq%0#0"
+ ]
+ },
+ "596": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0"
+ ]
+ },
+ "597": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "600": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "controlledAddress#0",
+ "admin#0",
+ "admin#0"
+ ]
+ },
+ "601": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "admin#0"
+ ]
+ },
+ "603": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "len%1#0"
+ ]
+ },
+ "604": {
+ "op": "pushint 32 // 32",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "len%1#0",
+ "32"
+ ]
+ },
+ "606": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "eq%1#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "eq%1#0"
+ ]
+ },
+ "607": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0"
+ ]
+ },
+ "608": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0"
+ ]
+ },
+ "611": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "612": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "len%2#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0",
+ "len%2#0"
+ ]
+ },
+ "613": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "admin#0",
+ "controlledAddress#0",
+ "len%2#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0",
+ "len%2#0",
+ "8"
+ ]
+ },
+ "614": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "eq%2#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0",
+ "eq%2#0"
+ ]
+ },
+ "615": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%2#0"
+ ]
+ },
+ "616": {
+ "op": "btoi",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0"
+ ]
+ },
+ "617": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0"
+ ]
+ },
+ "618": {
+ "op": "txn Sender",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "tmp%0#1"
+ ]
+ },
+ "620": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "tmp%2#1"
+ ]
+ },
+ "621": {
+ "op": "bnz createApplication_bool_true@3",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "624": {
+ "op": "txn Sender",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0",
+ "tmp%3#1"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "tmp%3#1"
+ ]
+ },
+ "626": {
+ "op": "dig 2",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "tmp%3#1",
+ "admin#0"
+ ]
+ },
+ "628": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "escrowFactory#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "tmp%5#0"
+ ]
+ },
+ "629": {
+ "op": "bz createApplication_bool_false@4",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "632": {
+ "block": "createApplication_bool_true@3",
+ "stack_in": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "or_result%0#0"
+ ]
+ },
+ "633": {
+ "error": "sender must be either controlledAddress or admin",
+ "block": "createApplication_bool_merge@5",
+ "stack_in": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "or_result%0#0"
+ ],
+ "op": "assert // sender must be either controlledAddress or admin",
+ "defined_out": [],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "634": {
+ "op": "dig 1",
+ "defined_out": [
+ "admin#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "admin#0"
+ ]
+ },
+ "636": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "admin#0 (copy)"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "admin#0",
+ "admin#0 (copy)"
+ ]
+ },
+ "637": {
+ "op": "dig 4",
+ "defined_out": [
+ "admin#0",
+ "admin#0 (copy)",
+ "controlledAddress#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "admin#0",
+ "admin#0 (copy)",
+ "controlledAddress#0"
+ ]
+ },
+ "639": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "admin#0 (copy)",
+ "controlledAddress#0",
+ "controlledAddress#0 (copy)"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "admin#0",
+ "admin#0 (copy)",
+ "controlledAddress#0 (copy)",
+ "controlledAddress#0 (copy)"
+ ]
+ },
+ "640": {
+ "op": "cover 3",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "admin#0",
+ "admin#0 (copy)",
+ "controlledAddress#0 (copy)"
+ ]
+ },
+ "642": {
+ "op": "!=",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "admin#0",
+ "tmp%6#0"
+ ]
+ },
+ "643": {
+ "op": "assert",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "admin#0"
+ ]
+ },
+ "644": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "admin#0",
+ "controlledAddress#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "admin#0",
+ "\"admin\""
+ ]
+ },
+ "645": {
+ "op": "swap",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "\"admin\"",
+ "admin#0"
+ ]
+ },
+ "646": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0"
+ ]
+ },
+ "647": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "controlledAddress#0",
+ "tmp%9#0"
+ ]
+ },
+ "649": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "tmp%10#0"
+ ]
+ },
+ "650": {
+ "op": "bz createApplication_ternary_false@7",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "653": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "admin#0",
+ "controlledAddress#0",
+ "ternary_result%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "ternary_result%0#0"
+ ]
+ },
+ "655": {
+ "block": "createApplication_ternary_merge@8",
+ "stack_in": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "ternary_result%0#0"
+ ],
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\""
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "ternary_result%0#0",
+ "\"controlled_address\""
+ ]
+ },
+ "656": {
+ "op": "swap",
+ "defined_out": [
+ "\"controlled_address\"",
+ "ternary_result%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"controlled_address\"",
+ "ternary_result%0#0"
+ ]
+ },
+ "657": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "658": {
+ "op": "bytec 18 // \"escrow_factory\"",
+ "defined_out": [
+ "\"escrow_factory\""
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"escrow_factory\""
+ ]
+ },
+ "660": {
+ "op": "dig 1",
+ "defined_out": [
+ "\"escrow_factory\"",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"escrow_factory\"",
+ "escrowFactory#0"
+ ]
+ },
+ "662": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "663": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"spending_address\""
+ ]
+ },
+ "665": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "\"spending_address\"",
+ "escrowFactory#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"spending_address\"",
+ "tmp%11#0"
+ ]
+ },
+ "667": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "668": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "669": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "escrowFactory#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "671": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "672": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\"",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"last_change\""
+ ]
+ },
+ "674": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "676": {
+ "op": "app_global_put",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "677": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "escrowFactory#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "1"
+ ]
+ },
+ "678": {
+ "op": "return",
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ]
+ },
+ "679": {
+ "block": "createApplication_ternary_false@7",
+ "stack_in": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "ternary_result%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "ternary_result%0#0"
+ ]
+ },
+ "681": {
+ "op": "b createApplication_ternary_merge@8"
+ },
+ "684": {
+ "block": "createApplication_bool_false@4",
+ "stack_in": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "controlledAddress#0",
+ "admin#0",
+ "escrowFactory#0",
+ "or_result%0#0"
+ ]
+ },
+ "685": {
+ "op": "b createApplication_bool_merge@5"
+ },
+ "688": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.register[routing]",
+ "params": {},
+ "block": "register",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "691": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "692": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "693": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "694": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "695": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "696": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "698": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "699": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "700": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "701": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "704": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0"
+ ]
+ },
+ "705": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "app#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "706": {
+ "op": "swap",
+ "defined_out": [
+ "app#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "escrow#0"
+ ]
+ },
+ "707": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "app#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "escrow#0",
+ "\"\""
+ ]
+ },
+ "708": {
+ "op": "!=",
+ "defined_out": [
+ "app#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "tmp%0#1"
+ ]
+ },
+ "709": {
+ "op": "bz register_after_if_else@3",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "712": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "app#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "\"e\""
+ ]
+ },
+ "714": {
+ "op": "dig 2",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "716": {
+ "op": "concat",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "717": {
+ "op": "dup",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "718": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "719": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "721": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "722": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "app#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "723": {
+ "op": "pop",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "724": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "725": {
+ "op": "extract_uint64",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "app#0"
+ ]
+ },
+ "726": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "728": {
+ "block": "register_after_if_else@3",
+ "stack_in": [
+ "escrow#0",
+ "app#0"
+ ],
+ "op": "itxn_begin"
+ },
+ "729": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "0"
+ ]
+ },
+ "730": {
+ "op": "bytec 18 // \"escrow_factory\"",
+ "defined_out": [
+ "\"escrow_factory\"",
+ "0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "0",
+ "\"escrow_factory\""
+ ]
+ },
+ "732": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%1#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "733": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "734": {
+ "op": "dup",
+ "defined_out": [
+ "maybe_value%0#0",
+ "maybe_value%0#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "maybe_value%0#0 (copy)"
+ ]
+ },
+ "735": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%0#0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "737": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ]
+ },
+ "738": {
+ "op": "pushint 12100 // 12100",
+ "defined_out": [
+ "12100",
+ "maybe_value%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "value%0#0",
+ "12100"
+ ]
+ },
+ "741": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ]
+ },
+ "743": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "745": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "1"
+ ]
+ },
+ "746": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "748": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "0"
+ ]
+ },
+ "749": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "751": {
+ "op": "itxn_next"
+ },
+ "752": {
+ "op": "dig 1",
+ "defined_out": [
+ "app#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "app#0"
+ ]
+ },
+ "754": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "app#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "755": {
+ "op": "pushbytes 0x607e7046 // method \"register(pay,uint64)void\"",
+ "defined_out": [
+ "Method(register(pay,uint64)void)",
+ "aggregate%val_as_bytes%0#0",
+ "app#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "Method(register(pay,uint64)void)"
+ ]
+ },
+ "761": {
+ "op": "itxn_field ApplicationArgs",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "763": {
+ "op": "itxn_field ApplicationArgs",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "765": {
+ "op": "itxn_field ApplicationID",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "767": {
+ "op": "pushint 6 // appl",
+ "defined_out": [
+ "app#0",
+ "appl"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "appl"
+ ]
+ },
+ "769": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "771": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "0"
+ ]
+ },
+ "772": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "774": {
+ "op": "itxn_submit"
+ },
+ "775": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "escrow#0",
+ "app#0",
+ "1"
+ ]
+ },
+ "776": {
+ "op": "return",
+ "stack_out": [
+ "escrow#0",
+ "app#0"
+ ]
+ },
+ "777": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_changeAdmin[routing]",
+ "params": {},
+ "block": "arc58_changeAdmin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0"
+ ]
+ },
+ "780": {
+ "op": "dup",
+ "defined_out": [
+ "newAdmin#0",
+ "newAdmin#0 (copy)"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "newAdmin#0 (copy)"
+ ]
+ },
+ "781": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "len%0#0"
+ ]
+ },
+ "782": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "len%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "784": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "eq%0#0"
+ ]
+ },
+ "785": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "newAdmin#0"
+ ]
+ },
+ "786": {
+ "op": "txn Sender",
+ "defined_out": [
+ "newAdmin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%0#1"
+ ]
+ },
+ "788": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "newAdmin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "789": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "newAdmin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "790": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "newAdmin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "791": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "792": {
+ "op": "==",
+ "defined_out": [
+ "newAdmin#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "tmp%1#0"
+ ]
+ },
+ "793": {
+ "error": "only admin can change the admin account",
+ "op": "assert // only admin can change the admin account",
+ "stack_out": [
+ "newAdmin#0"
+ ]
+ },
+ "794": {
+ "op": "bytec_2 // \"admin\"",
+ "stack_out": [
+ "newAdmin#0",
+ "\"admin\""
+ ]
+ },
+ "795": {
+ "op": "swap",
+ "stack_out": [
+ "\"admin\"",
+ "newAdmin#0"
+ ]
+ },
+ "796": {
+ "op": "app_global_put",
+ "stack_out": []
+ },
+ "797": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "\"last_user_interaction\""
+ ]
+ },
+ "798": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "800": {
+ "op": "app_global_put",
+ "stack_out": []
+ },
+ "801": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "\"last_change\""
+ ]
+ },
+ "803": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "805": {
+ "op": "app_global_put",
+ "stack_out": []
+ },
+ "806": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "807": {
+ "op": "return",
+ "stack_out": []
+ },
+ "808": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_pluginChangeAdmin[routing]",
+ "params": {},
+ "block": "arc58_pluginChangeAdmin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1"
+ },
+ "811": {
+ "op": "dup",
+ "defined_out": [
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "newAdmin#0"
+ ]
+ },
+ "812": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "len%0#0"
+ ]
+ },
+ "813": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "len%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "815": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "eq%0#0"
+ ]
+ },
+ "816": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "newAdmin#0"
+ ]
+ },
+ "817": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "newAdmin#0",
+ "0"
+ ]
+ },
+ "818": {
+ "op": "bytec 19 // \"current_plugin\"",
+ "defined_out": [
+ "\"current_plugin\"",
+ "0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "0",
+ "\"current_plugin\""
+ ]
+ },
+ "820": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "key#0",
+ "maybe_exists%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "821": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0"
+ ]
+ },
+ "822": {
+ "op": "dup",
+ "defined_out": [
+ "key#0",
+ "key#0 (copy)",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "key#0 (copy)"
+ ]
+ },
+ "823": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "key#0 (copy)",
+ "0"
+ ]
+ },
+ "824": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0"
+ ]
+ },
+ "825": {
+ "op": "dig 1",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "key#0 (copy)"
+ ]
+ },
+ "827": {
+ "op": "pushint 40 // 40",
+ "defined_out": [
+ "40",
+ "key#0",
+ "key#0 (copy)",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "key#0 (copy)",
+ "40"
+ ]
+ },
+ "829": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%extract_uint16%0#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "aggregate%extract_uint16%0#0"
+ ]
+ },
+ "830": {
+ "op": "dig 2",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "aggregate%extract_uint16%0#0",
+ "key#0 (copy)"
+ ]
+ },
+ "832": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0"
+ ]
+ },
+ "833": {
+ "op": "dig 3",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "key#0 (copy)"
+ ]
+ },
+ "835": {
+ "op": "cover 2",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "key#0 (copy)",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0"
+ ]
+ },
+ "837": {
+ "op": "substring3",
+ "defined_out": [
+ "aggregate%substring3%0#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "aggregate%substring3%0#0"
+ ]
+ },
+ "838": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "escrow#0"
+ ]
+ },
+ "841": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "escrow#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "escrow#0",
+ "\"\""
+ ]
+ },
+ "842": {
+ "op": "==",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%0#1"
+ ]
+ },
+ "843": {
+ "error": "admin plugins cannot use escrows",
+ "op": "assert // admin plugins cannot use escrows",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0"
+ ]
+ },
+ "844": {
+ "op": "txn Sender",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%1#0"
+ ]
+ },
+ "846": {
+ "op": "dig 1",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "plugin#0 (copy)",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%1#0",
+ "plugin#0 (copy)"
+ ]
+ },
+ "848": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%0#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "tmp%1#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%1#0",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "850": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%1#0",
+ "value%0#0"
+ ]
+ },
+ "851": {
+ "op": "==",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "tmp%2#0"
+ ]
+ },
+ "852": {
+ "error": "sender must be admin plugin",
+ "op": "assert // sender must be admin plugin",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0"
+ ]
+ },
+ "853": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "0"
+ ]
+ },
+ "854": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "855": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "key#0",
+ "maybe_exists%1#0",
+ "maybe_value%1#0",
+ "newAdmin#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "856": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "857": {
+ "op": "acct_params_get AcctAuthAddr",
+ "defined_out": [
+ "check%1#0",
+ "key#0",
+ "newAdmin#0",
+ "plugin#0",
+ "value%1#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "value%1#0",
+ "check%1#0"
+ ]
+ },
+ "859": {
+ "error": "account funded",
+ "op": "assert // account funded",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "plugin#0",
+ "value%1#0"
+ ]
+ },
+ "860": {
+ "op": "swap",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "value%1#0",
+ "plugin#0"
+ ]
+ },
+ "861": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%2#0",
+ "key#0",
+ "newAdmin#0",
+ "value%1#0",
+ "value%2#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "value%1#0",
+ "value%2#0",
+ "check%2#0"
+ ]
+ },
+ "863": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "value%1#0",
+ "value%2#0"
+ ]
+ },
+ "864": {
+ "op": "==",
+ "defined_out": [
+ "key#0",
+ "newAdmin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "tmp%3#0"
+ ]
+ },
+ "865": {
+ "error": "This plugin is not in control of the account",
+ "op": "assert // This plugin is not in control of the account",
+ "stack_out": [
+ "newAdmin#0",
+ "key#0"
+ ]
+ },
+ "866": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "key#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "key#0",
+ "\"p\""
+ ]
+ },
+ "868": {
+ "op": "swap",
+ "stack_out": [
+ "newAdmin#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "869": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "870": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "871": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%2#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "872": {
+ "op": "bury 1",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "874": {
+ "op": "bz arc58_pluginChangeAdmin_bool_false@4",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "877": {
+ "op": "dup",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "878": {
+ "op": "pushint 27 // 27",
+ "defined_out": [
+ "27",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "27"
+ ]
+ },
+ "880": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "27",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "27",
+ "1"
+ ]
+ },
+ "881": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "882": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0",
+ "0"
+ ]
+ },
+ "883": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "884": {
+ "op": "bz arc58_pluginChangeAdmin_bool_false@4",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "887": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%0#0",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "888": {
+ "error": "This plugin does not have admin privileges",
+ "block": "arc58_pluginChangeAdmin_bool_merge@5",
+ "stack_in": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ],
+ "op": "assert // This plugin does not have admin privileges",
+ "defined_out": [],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "889": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\""
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"admin\""
+ ]
+ },
+ "890": {
+ "op": "dig 2",
+ "defined_out": [
+ "\"admin\"",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"admin\"",
+ "newAdmin#0"
+ ]
+ },
+ "892": {
+ "op": "app_global_put",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "893": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "894": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "8"
+ ]
+ },
+ "895": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "8",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "8",
+ "1"
+ ]
+ },
+ "896": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0"
+ ]
+ },
+ "897": {
+ "op": "bytec 15 // 0x01",
+ "defined_out": [
+ "0x01",
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0",
+ "0x01"
+ ]
+ },
+ "899": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "newAdmin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "tmp%5#0"
+ ]
+ },
+ "900": {
+ "op": "bz arc58_pluginChangeAdmin_after_if_else@7",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "903": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0",
+ "newAdmin#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "904": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0",
+ "newAdmin#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "906": {
+ "op": "app_global_put",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "907": {
+ "block": "arc58_pluginChangeAdmin_after_if_else@7",
+ "stack_in": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\""
+ ]
+ },
+ "909": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_change\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "911": {
+ "op": "app_global_put",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "912": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "1"
+ ]
+ },
+ "913": {
+ "op": "return",
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "914": {
+ "block": "arc58_pluginChangeAdmin_bool_false@4",
+ "stack_in": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "newAdmin#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "915": {
+ "op": "b arc58_pluginChangeAdmin_bool_merge@5"
+ },
+ "918": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getAdmin[routing]",
+ "params": {},
+ "block": "arc58_getAdmin",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "0"
+ ]
+ },
+ "919": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0"
+ ],
+ "stack_out": [
+ "0",
+ "\"admin\""
+ ]
+ },
+ "920": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "921": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%0#0"
+ ]
+ },
+ "922": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "0x151f7c75"
+ ]
+ },
+ "924": {
+ "op": "swap",
+ "stack_out": [
+ "0x151f7c75",
+ "maybe_value%0#0"
+ ]
+ },
+ "925": {
+ "op": "concat",
+ "defined_out": [
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0"
+ ]
+ },
+ "926": {
+ "op": "log",
+ "stack_out": []
+ },
+ "927": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "928": {
+ "op": "return",
+ "stack_out": []
+ },
+ "929": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_verifyAuthAddress[routing]",
+ "params": {},
+ "block": "arc58_verifyAuthAddress",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "0"
+ ]
+ },
+ "930": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "0",
+ "\"spending_address\""
+ ]
+ },
+ "932": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "933": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%0#0"
+ ]
+ },
+ "934": {
+ "op": "dup",
+ "defined_out": [
+ "maybe_value%0#0",
+ "maybe_value%0#0 (copy)"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "maybe_value%0#0 (copy)"
+ ]
+ },
+ "935": {
+ "op": "acct_params_get AcctAuthAddr",
+ "defined_out": [
+ "check%0#0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "937": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%0#0",
+ "check%0#0",
+ "value%0#0"
+ ]
+ },
+ "938": {
+ "op": "cover 2",
+ "defined_out": [
+ "check%0#0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0",
+ "check%0#0"
+ ]
+ },
+ "940": {
+ "error": "account funded",
+ "op": "assert // account funded",
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "941": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0",
+ "0"
+ ]
+ },
+ "942": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "maybe_value%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "943": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%1#0",
+ "maybe_value%0#0",
+ "maybe_value%1#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0",
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "944": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%0#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "945": {
+ "op": "==",
+ "defined_out": [
+ "tmp%0#1",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%0#1"
+ ]
+ },
+ "946": {
+ "op": "bz arc58_verifyAuthAddress_ternary_false@4",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "949": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "value%0#0",
+ "0"
+ ]
+ },
+ "950": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "value%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "951": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%2#0",
+ "maybe_value%2#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%2#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "952": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "953": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "maybe_value%2#0",
+ "tmp%1#1",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "maybe_value%2#0",
+ "tmp%1#1"
+ ]
+ },
+ "955": {
+ "op": "==",
+ "defined_out": [
+ "tmp%2#1",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%2#1"
+ ]
+ },
+ "956": {
+ "op": "bz arc58_verifyAuthAddress_ternary_false@4",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "959": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "ternary_result%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "ternary_result%0#0"
+ ]
+ },
+ "961": {
+ "block": "arc58_verifyAuthAddress_ternary_merge@5",
+ "stack_in": [
+ "value%0#0",
+ "ternary_result%0#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "ternary_result%0#0",
+ "value%0#0"
+ ]
+ },
+ "963": {
+ "op": "==",
+ "defined_out": [
+ "tmp%1#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%1#0"
+ ]
+ },
+ "964": {
+ "op": "assert",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "965": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "\"spending_address\""
+ ]
+ },
+ "967": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "\"spending_address\"",
+ "tmp%2#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "\"spending_address\"",
+ "tmp%2#0"
+ ]
+ },
+ "969": {
+ "op": "app_global_put",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "970": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "tmp%3#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%3#0"
+ ]
+ },
+ "972": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%3#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%3#0",
+ "0"
+ ]
+ },
+ "973": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "tmp%3#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "tmp%3#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "974": {
+ "op": "swap",
+ "stack_out": [
+ "value%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "tmp%3#0"
+ ]
+ },
+ "975": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "976": {
+ "op": "pushbytes 0x002a0000",
+ "defined_out": [
+ "0x002a0000",
+ "aggregate%head%1#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "aggregate%head%1#0",
+ "0x002a0000"
+ ]
+ },
+ "982": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%concat%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "983": {
+ "op": "bytec 19 // \"current_plugin\"",
+ "defined_out": [
+ "\"current_plugin\"",
+ "aggregate%concat%0#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "aggregate%concat%0#0",
+ "\"current_plugin\""
+ ]
+ },
+ "985": {
+ "op": "swap",
+ "stack_out": [
+ "value%0#0",
+ "\"current_plugin\"",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "986": {
+ "op": "app_global_put",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "987": {
+ "op": "bytec 17 // \"rekey_index\"",
+ "defined_out": [
+ "\"rekey_index\"",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "\"rekey_index\""
+ ]
+ },
+ "989": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "value%0#0",
+ "\"rekey_index\"",
+ "0"
+ ]
+ },
+ "990": {
+ "op": "app_global_put",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "991": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "1"
+ ]
+ },
+ "992": {
+ "op": "return",
+ "stack_out": [
+ "value%0#0"
+ ]
+ },
+ "993": {
+ "block": "arc58_verifyAuthAddress_ternary_false@4",
+ "stack_in": [
+ "value%0#0"
+ ],
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "ternary_result%0#0"
+ ],
+ "stack_out": [
+ "value%0#0",
+ "ternary_result%0#0"
+ ]
+ },
+ "995": {
+ "op": "b arc58_verifyAuthAddress_ternary_merge@5"
+ },
+ "998": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyTo[routing]",
+ "params": {},
+ "block": "arc58_rekeyTo",
+ "stack_in": [],
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "i#0"
+ ]
+ },
+ "999": {
+ "op": "dup",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1000": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "address#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0"
+ ]
+ },
+ "1003": {
+ "op": "dup",
+ "defined_out": [
+ "address#0",
+ "address#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "address#0 (copy)"
+ ]
+ },
+ "1004": {
+ "op": "len",
+ "defined_out": [
+ "address#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "len%0#0"
+ ]
+ },
+ "1005": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "address#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "1007": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "eq%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "eq%0#0"
+ ]
+ },
+ "1008": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0"
+ ]
+ },
+ "1009": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "address#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0"
+ ]
+ },
+ "1012": {
+ "op": "dup",
+ "defined_out": [
+ "address#0",
+ "tmp%1#0",
+ "tmp%1#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0",
+ "tmp%1#0 (copy)"
+ ]
+ },
+ "1013": {
+ "op": "len",
+ "defined_out": [
+ "address#0",
+ "len%1#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0",
+ "len%1#0"
+ ]
+ },
+ "1014": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "address#0",
+ "len%1#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0",
+ "len%1#0",
+ "1"
+ ]
+ },
+ "1015": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "eq%1#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0",
+ "eq%1#0"
+ ]
+ },
+ "1016": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0"
+ ]
+ },
+ "1017": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "address#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "tmp%1#0",
+ "0"
+ ]
+ },
+ "1018": {
+ "op": "getbit",
+ "defined_out": [
+ "address#0",
+ "flash#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0"
+ ]
+ },
+ "1019": {
+ "op": "txn Sender",
+ "defined_out": [
+ "address#0",
+ "flash#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1"
+ ]
+ },
+ "1021": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "1022": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "1023": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "address#0",
+ "flash#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "1024": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "1025": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "flash#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "tmp%1#1"
+ ]
+ },
+ "1026": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0"
+ ]
+ },
+ "1027": {
+ "op": "itxn_begin"
+ },
+ "1028": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "0"
+ ]
+ },
+ "1029": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "address#0",
+ "flash#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "1030": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "address#0",
+ "flash#0",
+ "maybe_exists%1#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "1031": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1032": {
+ "op": "pushbytes \"rekeying abstracted account\"",
+ "defined_out": [
+ "\"rekeying abstracted account\"",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0",
+ "\"rekeying abstracted account\""
+ ]
+ },
+ "1061": {
+ "op": "itxn_field Note",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1063": {
+ "op": "dig 2",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0",
+ "address#0 (copy)"
+ ]
+ },
+ "1065": {
+ "op": "itxn_field RekeyTo",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "address#0",
+ "flash#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1067": {
+ "op": "uncover 2",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0",
+ "maybe_value%1#0",
+ "address#0"
+ ]
+ },
+ "1069": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1071": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0"
+ ]
+ },
+ "1073": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0",
+ "1"
+ ]
+ },
+ "1074": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0"
+ ]
+ },
+ "1076": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0",
+ "0"
+ ]
+ },
+ "1077": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "flash#0"
+ ]
+ },
+ "1079": {
+ "op": "itxn_submit"
+ },
+ "1080": {
+ "op": "bz arc58_rekeyTo_after_if_else@4",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1083": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1084": {
+ "op": "bury 1",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1086": {
+ "op": "txn GroupIndex",
+ "defined_out": [
+ "rekeysBack#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "tmp%0#2"
+ ]
+ },
+ "1088": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "tmp%0#2",
+ "1"
+ ]
+ },
+ "1089": {
+ "op": "+",
+ "defined_out": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0"
+ ]
+ },
+ "1090": {
+ "op": "bury 2",
+ "defined_out": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1092": {
+ "block": "arc58_rekeyTo_while_top@6",
+ "stack_in": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0"
+ ]
+ },
+ "1094": {
+ "op": "global GroupSize",
+ "defined_out": [
+ "i#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0",
+ "tmp%2#0"
+ ]
+ },
+ "1096": {
+ "op": "<",
+ "defined_out": [
+ "i#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "tmp%3#0"
+ ]
+ },
+ "1097": {
+ "op": "bz arc58_rekeyTo_block@11",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1100": {
+ "op": "dig 1",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0"
+ ]
+ },
+ "1102": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.txnRekeysBack",
+ "op": "callsub txnRekeysBack",
+ "defined_out": [
+ "i#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "tmp%4#0"
+ ]
+ },
+ "1105": {
+ "op": "bz arc58_rekeyTo_after_if_else@9",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1108": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1109": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1111": {
+ "block": "arc58_rekeyTo_block@11",
+ "stack_in": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1112": {
+ "error": "missing rekey back",
+ "op": "assert // missing rekey back",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1113": {
+ "block": "arc58_rekeyTo_after_if_else@4",
+ "stack_in": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "1114": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "1116": {
+ "op": "app_global_put",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1117": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "1"
+ ]
+ },
+ "1118": {
+ "op": "return",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1119": {
+ "block": "arc58_rekeyTo_after_if_else@9",
+ "stack_in": [
+ "i#0",
+ "rekeysBack#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0"
+ ]
+ },
+ "1121": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "1122": {
+ "op": "+",
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0",
+ "i#0"
+ ]
+ },
+ "1123": {
+ "op": "bury 2",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "rekeysBack#0"
+ ]
+ },
+ "1125": {
+ "op": "b arc58_rekeyTo_while_top@6"
+ },
+ "1128": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_canCall[routing]",
+ "params": {},
+ "block": "arc58_canCall",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1131": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1132": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0"
+ ]
+ },
+ "1133": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "1134": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1135": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1136": {
+ "op": "btoi",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0"
+ ]
+ },
+ "1137": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "plugin#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0"
+ ]
+ },
+ "1140": {
+ "op": "dup",
+ "defined_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "1141": {
+ "op": "len",
+ "defined_out": [
+ "len%1#0",
+ "plugin#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "len%1#0"
+ ]
+ },
+ "1142": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "len%1#0",
+ "plugin#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "len%1#0",
+ "1"
+ ]
+ },
+ "1143": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "plugin#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "eq%1#0"
+ ]
+ },
+ "1144": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0"
+ ]
+ },
+ "1145": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "plugin#0",
+ "tmp%2#0",
+ "0"
+ ]
+ },
+ "1146": {
+ "op": "getbit",
+ "defined_out": [
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "global#0"
+ ]
+ },
+ "1147": {
+ "op": "txna ApplicationArgs 3"
+ },
+ "1150": {
+ "op": "dup",
+ "defined_out": [
+ "address#0",
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "global#0",
+ "address#0",
+ "address#0"
+ ]
+ },
+ "1151": {
+ "op": "cover 2",
+ "defined_out": [
+ "address#0",
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "address#0"
+ ]
+ },
+ "1153": {
+ "op": "len",
+ "defined_out": [
+ "address#0",
+ "global#0",
+ "len%2#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "len%2#0"
+ ]
+ },
+ "1154": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "address#0",
+ "global#0",
+ "len%2#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "len%2#0",
+ "32"
+ ]
+ },
+ "1156": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "eq%2#0",
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "eq%2#0"
+ ]
+ },
+ "1157": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0"
+ ]
+ },
+ "1158": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "address#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0"
+ ]
+ },
+ "1161": {
+ "op": "dup",
+ "defined_out": [
+ "address#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "1162": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)",
+ "0"
+ ]
+ },
+ "1163": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "address#0",
+ "aggregate%array_length%0#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1164": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "address#0",
+ "aggregate%array_length%0#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1165": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "address#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "add%0#0"
+ ]
+ },
+ "1166": {
+ "op": "dig 1",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "add%0#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "1168": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "address#0",
+ "global#0",
+ "len%3#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "add%0#0",
+ "len%3#0"
+ ]
+ },
+ "1169": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "eq%3#0",
+ "global#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0",
+ "eq%3#0"
+ ]
+ },
+ "1170": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "tmp%5#0"
+ ]
+ },
+ "1171": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "global#0",
+ "escrow#0"
+ ]
+ },
+ "1174": {
+ "op": "swap",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "global#0"
+ ]
+ },
+ "1175": {
+ "op": "txna ApplicationArgs 5"
+ },
+ "1178": {
+ "op": "dup",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "method#0",
+ "method#0"
+ ]
+ },
+ "1179": {
+ "op": "cover 2",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "global#0",
+ "method#0"
+ ]
+ },
+ "1181": {
+ "op": "len",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "len%4#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "global#0",
+ "len%4#0"
+ ]
+ },
+ "1182": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "address#0",
+ "escrow#0",
+ "global#0",
+ "len%4#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "global#0",
+ "len%4#0",
+ "4"
+ ]
+ },
+ "1184": {
+ "op": "==",
+ "defined_out": [
+ "address#0",
+ "eq%4#0",
+ "escrow#0",
+ "global#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "global#0",
+ "eq%4#0"
+ ]
+ },
+ "1185": {
+ "error": "invalid number of bytes for uint8[4]",
+ "op": "assert // invalid number of bytes for uint8[4]",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "global#0"
+ ]
+ },
+ "1186": {
+ "op": "bz arc58_canCall_after_if_else@3",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1189": {
+ "op": "dig 3",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ]
+ },
+ "1191": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%0#1"
+ ]
+ },
+ "1193": {
+ "op": "dig 3",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%0#1",
+ "escrow#0"
+ ]
+ },
+ "1195": {
+ "op": "dig 3",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%0#1",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1197": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCallAllowed",
+ "op": "callsub pluginCallAllowed",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "{pluginCallAllowed}"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "{pluginCallAllowed}"
+ ]
+ },
+ "1200": {
+ "op": "pop",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1201": {
+ "block": "arc58_canCall_after_if_else@3",
+ "stack_in": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ],
+ "op": "dig 3",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ]
+ },
+ "1203": {
+ "op": "dig 3",
+ "defined_out": [
+ "address#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "address#0"
+ ]
+ },
+ "1205": {
+ "op": "dig 3",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "address#0",
+ "escrow#0"
+ ]
+ },
+ "1207": {
+ "op": "dig 3",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1209": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCallAllowed",
+ "op": "callsub pluginCallAllowed",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "tmp%2#1"
+ ]
+ },
+ "1212": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "tmp%2#1",
+ "0x00"
+ ]
+ },
+ "1214": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "0x00",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "tmp%2#1",
+ "0x00",
+ "0"
+ ]
+ },
+ "1215": {
+ "op": "uncover 2",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "0x00",
+ "0",
+ "tmp%2#1"
+ ]
+ },
+ "1217": {
+ "op": "setbit",
+ "defined_out": [
+ "address#0",
+ "aggregate%encoded_bool%0#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "1218": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "address#0",
+ "aggregate%encoded_bool%0#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "aggregate%encoded_bool%0#0",
+ "0x151f7c75"
+ ]
+ },
+ "1220": {
+ "op": "swap",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "0x151f7c75",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "1221": {
+ "op": "concat",
+ "defined_out": [
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "tmp%11#0"
+ ]
+ },
+ "1222": {
+ "op": "log",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1223": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0",
+ "1"
+ ]
+ },
+ "1224": {
+ "op": "return",
+ "stack_out": [
+ "plugin#0",
+ "address#0",
+ "escrow#0",
+ "method#0"
+ ]
+ },
+ "1225": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin[routing]",
+ "params": {},
+ "block": "arc58_rekeyToPlugin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1228": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1229": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0"
+ ]
+ },
+ "1230": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "1231": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1232": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1233": {
+ "op": "btoi",
+ "defined_out": [
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0"
+ ]
+ },
+ "1234": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0"
+ ]
+ },
+ "1237": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "1238": {
+ "op": "len",
+ "defined_out": [
+ "len%1#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "len%1#0"
+ ]
+ },
+ "1239": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "len%1#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "len%1#0",
+ "1"
+ ]
+ },
+ "1240": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "eq%1#0"
+ ]
+ },
+ "1241": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0"
+ ]
+ },
+ "1242": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "tmp%2#0",
+ "0"
+ ]
+ },
+ "1243": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "1244": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0"
+ ]
+ },
+ "1247": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "1248": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)",
+ "0"
+ ]
+ },
+ "1249": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1250": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1251": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "add%0#0"
+ ]
+ },
+ "1252": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "add%0#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "1254": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%get_bit%0#0",
+ "len%2#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "add%0#0",
+ "len%2#0"
+ ]
+ },
+ "1255": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "eq%2#0",
+ "tmp%1#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0",
+ "eq%2#0"
+ ]
+ },
+ "1256": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%4#0"
+ ]
+ },
+ "1257": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0"
+ ]
+ },
+ "1260": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ]
+ },
+ "1263": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%6#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%6#0 (copy)"
+ ]
+ },
+ "1264": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%6#0 (copy)",
+ "0"
+ ]
+ },
+ "1265": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1266": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "aggregate%array_length%1#0",
+ "8"
+ ]
+ },
+ "1267": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "mul%1#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "mul%1#0"
+ ]
+ },
+ "1268": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "1269": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "add%1#0"
+ ]
+ },
+ "1270": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "add%1#0",
+ "tmp%6#0 (copy)"
+ ]
+ },
+ "1272": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%get_bit%0#0",
+ "len%3#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "add%1#0",
+ "len%3#0"
+ ]
+ },
+ "1273": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "eq%3#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "eq%3#0"
+ ]
+ },
+ "1274": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0"
+ ]
+ },
+ "1275": {
+ "op": "txna ApplicationArgs 5",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ]
+ },
+ "1278": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "tmp%7#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "tmp%7#0 (copy)"
+ ]
+ },
+ "1279": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "tmp%7#0 (copy)",
+ "0"
+ ]
+ },
+ "1280": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "1281": {
+ "op": "pushint 16 // 16",
+ "defined_out": [
+ "16",
+ "aggregate%array_length%2#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "aggregate%array_length%2#0",
+ "16"
+ ]
+ },
+ "1283": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "mul%2#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "mul%2#0"
+ ]
+ },
+ "1284": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "mul%2#0",
+ "2"
+ ]
+ },
+ "1285": {
+ "op": "+",
+ "defined_out": [
+ "add%2#0",
+ "aggregate%get_bit%0#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "add%2#0"
+ ]
+ },
+ "1286": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "add%2#0",
+ "tmp%7#0 (copy)"
+ ]
+ },
+ "1288": {
+ "op": "len",
+ "defined_out": [
+ "add%2#0",
+ "aggregate%get_bit%0#0",
+ "len%4#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "add%2#0",
+ "len%4#0"
+ ]
+ },
+ "1289": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "eq%4#0",
+ "tmp%1#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0",
+ "eq%4#0"
+ ]
+ },
+ "1290": {
+ "error": "invalid number of bytes for (len+(uint64,uint64)[])",
+ "op": "assert // invalid number of bytes for (len+(uint64,uint64)[])",
+ "stack_out": [
+ "tmp%1#0",
+ "aggregate%get_bit%0#0",
+ "tmp%5#0",
+ "tmp%6#0",
+ "tmp%7#0"
+ ]
+ },
+ "1291": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "op": "callsub smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "defined_out": [
+ "arc58_rekeyToPlugin%0#0",
+ "arc58_rekeyToPlugin%1#0"
+ ],
+ "stack_out": [
+ "arc58_rekeyToPlugin%0#0",
+ "arc58_rekeyToPlugin%1#0"
+ ]
+ },
+ "1294": {
+ "op": "popn 2",
+ "stack_out": []
+ },
+ "1296": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "1"
+ ]
+ },
+ "1297": {
+ "op": "return",
+ "stack_out": []
+ },
+ "1298": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToNamedPlugin[routing]",
+ "params": {},
+ "block": "arc58_rekeyToNamedPlugin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1301": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1302": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "1303": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1304": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1305": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "1306": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1308": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "1309": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1310": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1311": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0"
+ ]
+ },
+ "1314": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "tmp%2#0"
+ ]
+ },
+ "1317": {
+ "op": "dup",
+ "defined_out": [
+ "name#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "name#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "1318": {
+ "op": "len",
+ "defined_out": [
+ "len%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "tmp%2#0",
+ "len%1#0"
+ ]
+ },
+ "1319": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "len%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "tmp%2#0",
+ "len%1#0",
+ "1"
+ ]
+ },
+ "1320": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "tmp%2#0",
+ "eq%1#0"
+ ]
+ },
+ "1321": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "name#0",
+ "tmp%2#0"
+ ]
+ },
+ "1322": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "tmp%2#0",
+ "0"
+ ]
+ },
+ "1323": {
+ "op": "getbit",
+ "defined_out": [
+ "global#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0"
+ ]
+ },
+ "1324": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "global#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0"
+ ]
+ },
+ "1327": {
+ "op": "dup",
+ "defined_out": [
+ "global#0",
+ "name#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "1328": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)",
+ "0"
+ ]
+ },
+ "1329": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "global#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1330": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "aggregate%array_length%1#0",
+ "2"
+ ]
+ },
+ "1331": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "global#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "add%1#0"
+ ]
+ },
+ "1332": {
+ "op": "dig 1",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "add%1#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "1334": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "global#0",
+ "len%2#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "add%1#0",
+ "len%2#0"
+ ]
+ },
+ "1335": {
+ "op": "==",
+ "defined_out": [
+ "eq%2#0",
+ "global#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0",
+ "eq%2#0"
+ ]
+ },
+ "1336": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "tmp%4#0"
+ ]
+ },
+ "1337": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0",
+ "global#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0"
+ ]
+ },
+ "1340": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0"
+ ]
+ },
+ "1343": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "methodOffsets#0 (copy)",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "methodOffsets#0 (copy)"
+ ]
+ },
+ "1344": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "methodOffsets#0 (copy)",
+ "0"
+ ]
+ },
+ "1345": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "1346": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%2#0",
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "aggregate%array_length%2#0",
+ "8"
+ ]
+ },
+ "1347": {
+ "op": "*",
+ "defined_out": [
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "mul%2#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "mul%2#0"
+ ]
+ },
+ "1348": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "mul%2#0",
+ "2"
+ ]
+ },
+ "1349": {
+ "op": "+",
+ "defined_out": [
+ "add%2#0",
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "add%2#0"
+ ]
+ },
+ "1350": {
+ "op": "dig 1",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "add%2#0",
+ "methodOffsets#0 (copy)"
+ ]
+ },
+ "1352": {
+ "op": "len",
+ "defined_out": [
+ "add%2#0",
+ "escrow#0",
+ "global#0",
+ "len%3#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "add%2#0",
+ "len%3#0"
+ ]
+ },
+ "1353": {
+ "op": "==",
+ "defined_out": [
+ "eq%3#0",
+ "escrow#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "eq%3#0"
+ ]
+ },
+ "1354": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0"
+ ]
+ },
+ "1355": {
+ "op": "txna ApplicationArgs 5",
+ "defined_out": [
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0"
+ ]
+ },
+ "1358": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "fundsRequest#0",
+ "fundsRequest#0 (copy)",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "fundsRequest#0 (copy)"
+ ]
+ },
+ "1359": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "fundsRequest#0 (copy)",
+ "0"
+ ]
+ },
+ "1360": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%3#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "aggregate%array_length%3#0"
+ ]
+ },
+ "1361": {
+ "op": "pushint 16 // 16",
+ "defined_out": [
+ "16",
+ "aggregate%array_length%3#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "aggregate%array_length%3#0",
+ "16"
+ ]
+ },
+ "1363": {
+ "op": "*",
+ "defined_out": [
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "mul%3#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "mul%3#0"
+ ]
+ },
+ "1364": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "mul%3#0",
+ "2"
+ ]
+ },
+ "1365": {
+ "op": "+",
+ "defined_out": [
+ "add%3#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "add%3#0"
+ ]
+ },
+ "1366": {
+ "op": "dig 1",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "add%3#0",
+ "fundsRequest#0 (copy)"
+ ]
+ },
+ "1368": {
+ "op": "len",
+ "defined_out": [
+ "add%3#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "len%4#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "add%3#0",
+ "len%4#0"
+ ]
+ },
+ "1369": {
+ "op": "==",
+ "defined_out": [
+ "eq%4#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "eq%4#0"
+ ]
+ },
+ "1370": {
+ "error": "invalid number of bytes for (len+(uint64,uint64)[])",
+ "op": "assert // invalid number of bytes for (len+(uint64,uint64)[])",
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0"
+ ]
+ },
+ "1371": {
+ "op": "bytec 16 // \"n\"",
+ "defined_out": [
+ "\"n\"",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "\"n\""
+ ]
+ },
+ "1373": {
+ "op": "uncover 5",
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "\"n\"",
+ "name#0"
+ ]
+ },
+ "1375": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0"
+ ],
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1376": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "1377": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "box_prefixed_key%0#0",
+ "0",
+ "8"
+ ]
+ },
+ "1378": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0"
+ ],
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "1379": {
+ "op": "btoi",
+ "defined_out": [
+ "escrow#0",
+ "fundsRequest#0",
+ "global#0",
+ "methodOffsets#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0",
+ "values%0#0"
+ ]
+ },
+ "1380": {
+ "op": "cover 4",
+ "stack_out": [
+ "values%0#0",
+ "global#0",
+ "escrow#0",
+ "methodOffsets#0",
+ "fundsRequest#0"
+ ]
+ },
+ "1382": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "op": "callsub smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "stack_out": [
+ "methodOffsets#0",
+ "fundsRequest#0"
+ ]
+ },
+ "1385": {
+ "op": "popn 2",
+ "stack_out": []
+ },
+ "1387": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "1"
+ ]
+ },
+ "1388": {
+ "op": "return",
+ "stack_out": []
+ },
+ "1389": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addPlugin[routing]",
+ "params": {},
+ "block": "arc58_addPlugin",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "1390": {
+ "op": "dupn 3",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0"
+ ]
+ },
+ "1392": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0"
+ ]
+ },
+ "1393": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0"
+ ]
+ },
+ "1394": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "1397": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1398": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0",
+ "len%0#0"
+ ]
+ },
+ "1399": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "1400": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1401": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "1402": {
+ "op": "btoi",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0"
+ ]
+ },
+ "1403": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "1406": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "caller#0"
+ ]
+ },
+ "1407": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "len%1#0"
+ ]
+ },
+ "1408": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "len%1#0",
+ "32"
+ ]
+ },
+ "1410": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "eq%1#0"
+ ]
+ },
+ "1411": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0"
+ ]
+ },
+ "1412": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "1415": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "1416": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)",
+ "0"
+ ]
+ },
+ "1417": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1418": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1419": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0"
+ ]
+ },
+ "1420": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "1422": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "len%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "len%2#0"
+ ]
+ },
+ "1423": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "eq%2#0"
+ ]
+ },
+ "1424": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "1425": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "1428": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0"
+ ]
+ },
+ "1431": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "1432": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "len%3#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0",
+ "len%3#0"
+ ]
+ },
+ "1433": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "caller#0",
+ "escrow#0",
+ "len%3#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0",
+ "len%3#0",
+ "1"
+ ]
+ },
+ "1434": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%3#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0",
+ "eq%3#0"
+ ]
+ },
+ "1435": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0"
+ ]
+ },
+ "1436": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%5#0",
+ "0"
+ ]
+ },
+ "1437": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0"
+ ]
+ },
+ "1438": {
+ "op": "txna ApplicationArgs 5"
+ },
+ "1441": {
+ "op": "dupn 2",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "delegationType#0 (copy)",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "delegationType#0 (copy)"
+ ]
+ },
+ "1443": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "len%4#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "len%4#0"
+ ]
+ },
+ "1444": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "len%4#0",
+ "1"
+ ]
+ },
+ "1445": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%4#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "eq%4#0"
+ ]
+ },
+ "1446": {
+ "error": "invalid number of bytes for uint8",
+ "op": "assert // invalid number of bytes for uint8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0"
+ ]
+ },
+ "1447": {
+ "op": "txna ApplicationArgs 6",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0"
+ ]
+ },
+ "1450": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%8#0",
+ "tmp%8#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0",
+ "tmp%8#0 (copy)"
+ ]
+ },
+ "1451": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "len%5#0",
+ "plugin#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0",
+ "len%5#0"
+ ]
+ },
+ "1452": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0",
+ "len%5#0",
+ "8"
+ ]
+ },
+ "1453": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%5#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0",
+ "eq%5#0"
+ ]
+ },
+ "1454": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "tmp%8#0"
+ ]
+ },
+ "1455": {
+ "op": "btoi",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "delegationType#0",
+ "lastValid#0"
+ ]
+ },
+ "1456": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0"
+ ]
+ },
+ "1457": {
+ "op": "txna ApplicationArgs 7",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0"
+ ]
+ },
+ "1460": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0",
+ "tmp%10#0",
+ "tmp%10#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "tmp%10#0 (copy)"
+ ]
+ },
+ "1461": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%6#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "len%6#0"
+ ]
+ },
+ "1462": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "len%6#0",
+ "8"
+ ]
+ },
+ "1463": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%6#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "eq%6#0"
+ ]
+ },
+ "1464": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "tmp%10#0"
+ ]
+ },
+ "1465": {
+ "op": "btoi",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "delegationType#0",
+ "cooldown#0"
+ ]
+ },
+ "1466": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "delegationType#0"
+ ]
+ },
+ "1467": {
+ "op": "txna ApplicationArgs 8"
+ },
+ "1470": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0"
+ ]
+ },
+ "1471": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "delegationType#0",
+ "methods#0"
+ ]
+ },
+ "1473": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "methods#0 (copy)",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0 (copy)"
+ ]
+ },
+ "1474": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0 (copy)",
+ "0"
+ ]
+ },
+ "1475": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1476": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1477": {
+ "op": "cover 3",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1479": {
+ "op": "pushint 12 // 12",
+ "defined_out": [
+ "12",
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "12"
+ ]
+ },
+ "1481": {
+ "op": "*",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "mul%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "methods#0",
+ "mul%1#0"
+ ]
+ },
+ "1482": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "methods#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "1483": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "methods#0",
+ "add%1#0"
+ ]
+ },
+ "1484": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "add%1#0",
+ "methods#0"
+ ]
+ },
+ "1485": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%7#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "add%1#0",
+ "len%7#0"
+ ]
+ },
+ "1486": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%7#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "eq%7#0"
+ ]
+ },
+ "1487": {
+ "error": "invalid number of bytes for (len+(uint8[4],uint64)[])",
+ "op": "assert // invalid number of bytes for (len+(uint8[4],uint64)[])",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0"
+ ]
+ },
+ "1488": {
+ "op": "txna ApplicationArgs 9",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%13#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0"
+ ]
+ },
+ "1491": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%13#0",
+ "tmp%13#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0",
+ "tmp%13#0 (copy)"
+ ]
+ },
+ "1492": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%8#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%13#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0",
+ "len%8#0"
+ ]
+ },
+ "1493": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0",
+ "len%8#0",
+ "1"
+ ]
+ },
+ "1494": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%8#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%13#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0",
+ "eq%8#0"
+ ]
+ },
+ "1495": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0"
+ ]
+ },
+ "1496": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "tmp%13#0",
+ "0"
+ ]
+ },
+ "1497": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "delegationType#0",
+ "useRounds#0"
+ ]
+ },
+ "1498": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0"
+ ]
+ },
+ "1499": {
+ "op": "txna ApplicationArgs 10",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%15#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0"
+ ]
+ },
+ "1502": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%15#0",
+ "tmp%15#0 (copy)",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "tmp%15#0 (copy)"
+ ]
+ },
+ "1503": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%9#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%15#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "len%9#0"
+ ]
+ },
+ "1504": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "len%9#0",
+ "1"
+ ]
+ },
+ "1505": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%9#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%15#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "eq%9#0"
+ ]
+ },
+ "1506": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0"
+ ]
+ },
+ "1507": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "0"
+ ]
+ },
+ "1508": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "delegationType#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "1509": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0"
+ ]
+ },
+ "1510": {
+ "op": "txna ApplicationArgs 11",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0"
+ ]
+ },
+ "1513": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%17#0",
+ "tmp%17#0 (copy)",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "tmp%17#0 (copy)"
+ ]
+ },
+ "1514": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%10#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "len%10#0"
+ ]
+ },
+ "1515": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "len%10#0",
+ "1"
+ ]
+ },
+ "1516": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%10#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "eq%10#0"
+ ]
+ },
+ "1517": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0"
+ ]
+ },
+ "1518": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "0"
+ ]
+ },
+ "1519": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "delegationType#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1520": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0"
+ ]
+ },
+ "1521": {
+ "op": "txn Sender",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%0#1"
+ ]
+ },
+ "1523": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "1524": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "1525": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "1526": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "1527": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%1#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "tmp%1#1"
+ ]
+ },
+ "1528": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0"
+ ]
+ },
+ "1529": {
+ "op": "bytec 15 // 0x01",
+ "defined_out": [
+ "0x01",
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "0x01"
+ ]
+ },
+ "1531": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%2#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%2#1"
+ ]
+ },
+ "1532": {
+ "op": "bz arc58_addPlugin_bool_false@4",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1535": {
+ "op": "dig 10",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "caller#0"
+ ]
+ },
+ "1537": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%4#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "caller#0",
+ "tmp%4#1"
+ ]
+ },
+ "1539": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "tmp%5#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%5#1"
+ ]
+ },
+ "1540": {
+ "op": "bz arc58_addPlugin_bool_false@4",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1543": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%1#0",
+ "and_result%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%0#0"
+ ]
+ },
+ "1544": {
+ "block": "arc58_addPlugin_bool_merge@5",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%0#0"
+ ],
+ "op": "!",
+ "defined_out": [
+ "tmp%6#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%6#1"
+ ]
+ },
+ "1545": {
+ "error": "delegation type must not be self for global plugins",
+ "op": "assert // delegation type must not be self for global plugins",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1546": {
+ "op": "dig 1",
+ "defined_out": [
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "1548": {
+ "op": "bz arc58_addPlugin_bool_false@8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1551": {
+ "op": "dig 10",
+ "defined_out": [
+ "caller#0",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "caller#0"
+ ]
+ },
+ "1553": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "caller#0",
+ "tmp%8#1",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "caller#0",
+ "tmp%8#1"
+ ]
+ },
+ "1555": {
+ "op": "!=",
+ "defined_out": [
+ "caller#0",
+ "tmp%9#1",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%9#1"
+ ]
+ },
+ "1556": {
+ "op": "bz arc58_addPlugin_bool_false@8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1559": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%1#0",
+ "caller#0",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%1#0"
+ ]
+ },
+ "1560": {
+ "block": "arc58_addPlugin_bool_merge@9",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%1#0"
+ ],
+ "op": "!",
+ "defined_out": [
+ "tmp%10#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%10#1"
+ ]
+ },
+ "1561": {
+ "error": "using execution key requires global plugin",
+ "op": "assert // using execution key requires global plugin",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1562": {
+ "op": "dup",
+ "defined_out": [
+ "defaultToEscrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1563": {
+ "op": "bnz arc58_addPlugin_if_body@10",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1566": {
+ "op": "dig 9",
+ "defined_out": [
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ]
+ },
+ "1568": {
+ "op": "bury 17",
+ "defined_out": [
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1570": {
+ "block": "arc58_addPlugin_after_if_else@11",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "dig 11",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "plugin#0"
+ ]
+ },
+ "1572": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "1573": {
+ "op": "dig 11",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ]
+ },
+ "1575": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "1576": {
+ "op": "dig 17",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "escrowKey#1"
+ ]
+ },
+ "1578": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "escrowKey#1 (copy)",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "escrowKey#1 (copy)"
+ ]
+ },
+ "1579": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%length%0#0"
+ ]
+ },
+ "1580": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "1581": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "1584": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrowKey#1"
+ ]
+ },
+ "1585": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "1586": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "1587": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "1589": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "1590": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "1591": {
+ "op": "concat",
+ "defined_out": [
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "key#0"
+ ]
+ },
+ "1592": {
+ "op": "bury 16",
+ "defined_out": [
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1594": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0"
+ ]
+ },
+ "1595": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "1596": {
+ "op": "bury 18",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1598": {
+ "op": "bytec 10 // 0x0000",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "methodInfos#0"
+ ]
+ },
+ "1600": {
+ "op": "bury 15",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1602": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "i#0",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0"
+ ]
+ },
+ "1603": {
+ "op": "bury 13",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "i#0",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1605": {
+ "block": "arc58_addPlugin_while_top@12",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "dig 12",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0"
+ ]
+ },
+ "1607": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1609": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%15#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%15#1"
+ ]
+ },
+ "1610": {
+ "op": "bz arc58_addPlugin_after_while@14",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1613": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "methods#0"
+ ]
+ },
+ "1615": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "1618": {
+ "op": "dig 13",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "1620": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "1621": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "1623": {
+ "op": "pushint 12 // 12",
+ "defined_out": [
+ "12",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "12"
+ ]
+ },
+ "1625": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "1626": {
+ "op": "pushint 12 // 12",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "12"
+ ]
+ },
+ "1628": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "1629": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "1630": {
+ "op": "extract 0 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "1633": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "1634": {
+ "op": "extract 4 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0"
+ ]
+ },
+ "1637": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%0#0 (copy)",
+ "aggregate%extract%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%extract%0#0 (copy)"
+ ]
+ },
+ "1639": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0"
+ ]
+ },
+ "1640": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "4"
+ ]
+ },
+ "1642": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%lengths_equal%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%lengths_equal%0#0"
+ ]
+ },
+ "1643": {
+ "error": "invalid size",
+ "op": "assert // invalid size",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0"
+ ]
+ },
+ "1644": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "1645": {
+ "op": "dig 19",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%head%4#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "1647": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%head%5#0"
+ ]
+ },
+ "1648": {
+ "op": "dig 16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "aggregate%head%5#0",
+ "methodInfos#0"
+ ]
+ },
+ "1650": {
+ "op": "dup"
+ },
+ "1651": {
+ "op": "uncover 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methodInfos#0",
+ "methodInfos#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "methodInfos#0",
+ "methodInfos#0 (copy)",
+ "aggregate%head%5#0"
+ ]
+ },
+ "1653": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "methodInfos#0",
+ "concat%0#0"
+ ]
+ },
+ "1654": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "methodInfos#0"
+ ]
+ },
+ "1655": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "methodInfos#0",
+ "0"
+ ]
+ },
+ "1656": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "1657": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "1"
+ ]
+ },
+ "1658": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "add%0#0"
+ ]
+ },
+ "1659": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "as_bytes%0#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "as_bytes%0#0"
+ ]
+ },
+ "1660": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "as_u16_bytes%0#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "concat%0#0",
+ "as_u16_bytes%0#0"
+ ]
+ },
+ "1663": {
+ "op": "replace2 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "methodInfos#0"
+ ]
+ },
+ "1665": {
+ "op": "bury 16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0"
+ ]
+ },
+ "1667": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "1668": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "i#0"
+ ]
+ },
+ "1669": {
+ "op": "bury 13",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%2#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1671": {
+ "op": "b arc58_addPlugin_while_top@12"
+ },
+ "1674": {
+ "block": "arc58_addPlugin_after_while@14",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "useRounds#0"
+ ]
+ },
+ "1676": {
+ "op": "bz arc58_addPlugin_ternary_false@16",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1679": {
+ "op": "global Round",
+ "defined_out": [
+ "epochRef#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "epochRef#0"
+ ]
+ },
+ "1681": {
+ "op": "bury 14",
+ "defined_out": [
+ "epochRef#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1683": {
+ "block": "arc58_addPlugin_ternary_merge@17",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0"
+ ]
+ },
+ "1684": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "1685": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%1#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "1686": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1687": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "maybe_value%1#0",
+ "tmp%20#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%1#0",
+ "tmp%20#0"
+ ]
+ },
+ "1689": {
+ "op": "!=",
+ "defined_out": [
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%21#0"
+ ]
+ },
+ "1690": {
+ "op": "bz arc58_addPlugin_after_if_else@20",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1693": {
+ "op": "itxn_begin"
+ },
+ "1694": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0"
+ ]
+ },
+ "1695": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "1696": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%2#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "1697": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "1698": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "1700": {
+ "op": "dig 16",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "methodInfos#0"
+ ]
+ },
+ "1702": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "methodInfos#0",
+ "0"
+ ]
+ },
+ "1703": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%3#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "aggregate%array_length%3#0"
+ ]
+ },
+ "1704": {
+ "op": "dig 19",
+ "defined_out": [
+ "aggregate%array_length%3#0",
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "aggregate%array_length%3#0",
+ "escrowKey#1"
+ ]
+ },
+ "1706": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "escrowKey#1",
+ "aggregate%array_length%3#0"
+ ]
+ },
+ "1707": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "op": "callsub pluginsMbr",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "1710": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "1712": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "1714": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1716": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "escrowKey#1",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "1"
+ ]
+ },
+ "1717": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1719": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "0"
+ ]
+ },
+ "1720": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1722": {
+ "op": "itxn_submit"
+ },
+ "1723": {
+ "block": "arc58_addPlugin_after_if_else@20",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "dig 9",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrow#0"
+ ]
+ },
+ "1725": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.maybeNewEscrow",
+ "op": "callsub maybeNewEscrow",
+ "defined_out": [
+ "escrow#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrowID#0"
+ ]
+ },
+ "1728": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%3#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "1729": {
+ "op": "dig 8",
+ "defined_out": [
+ "aggregate%val_as_bytes%3#0",
+ "delegationType#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%val_as_bytes%3#0",
+ "delegationType#0"
+ ]
+ },
+ "1731": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "delegationType#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%8#0"
+ ]
+ },
+ "1732": {
+ "op": "dig 7",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%8#0",
+ "lastValid#0"
+ ]
+ },
+ "1734": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "aggregate%val_as_bytes%4#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%8#0",
+ "aggregate%val_as_bytes%4#0"
+ ]
+ },
+ "1735": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%9#0"
+ ]
+ },
+ "1736": {
+ "op": "dig 6",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%9#0",
+ "cooldown#0"
+ ]
+ },
+ "1738": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "aggregate%val_as_bytes%5#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%9#0",
+ "aggregate%val_as_bytes%5#0"
+ ]
+ },
+ "1739": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%10#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%10#0"
+ ]
+ },
+ "1740": {
+ "op": "bytec 23 // 0x002c",
+ "defined_out": [
+ "0x002c",
+ "aggregate%head%10#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%10#0",
+ "0x002c"
+ ]
+ },
+ "1742": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0"
+ ]
+ },
+ "1743": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "0x00"
+ ]
+ },
+ "1745": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "0x00",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "0x00",
+ "0"
+ ]
+ },
+ "1746": {
+ "op": "dig 11",
+ "defined_out": [
+ "0",
+ "0x00",
+ "admin#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "0x00",
+ "0",
+ "admin#0"
+ ]
+ },
+ "1748": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "1749": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0",
+ "1"
+ ]
+ },
+ "1750": {
+ "op": "dig 5",
+ "defined_out": [
+ "1",
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0",
+ "1",
+ "useRounds#0"
+ ]
+ },
+ "1752": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0"
+ ]
+ },
+ "1753": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "2"
+ ]
+ },
+ "1754": {
+ "op": "dig 4",
+ "defined_out": [
+ "2",
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "2",
+ "useExecutionKey#0"
+ ]
+ },
+ "1756": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%1#0"
+ ]
+ },
+ "1757": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%12#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%12#0"
+ ]
+ },
+ "1758": {
+ "op": "dig 18",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%12#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%12#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "1760": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%13#0"
+ ]
+ },
+ "1761": {
+ "op": "dig 14",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%13#0",
+ "epochRef#0"
+ ]
+ },
+ "1763": {
+ "op": "itob",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "aggregate%val_as_bytes%7#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%13#0",
+ "aggregate%val_as_bytes%7#0"
+ ]
+ },
+ "1764": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%14#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%14#0"
+ ]
+ },
+ "1765": {
+ "op": "dig 15",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%14#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%head%14#0",
+ "methodInfos#0"
+ ]
+ },
+ "1767": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "1768": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "\"p\""
+ ]
+ },
+ "1770": {
+ "op": "dig 17",
+ "defined_out": [
+ "\"p\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "1772": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1773": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "1774": {
+ "op": "box_del",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0",
+ "{box_del}"
+ ]
+ },
+ "1775": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1776": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "1777": {
+ "op": "box_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1778": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "1779": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "tmp%0#2",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "1781": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1782": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrow#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "\"last_change\""
+ ]
+ },
+ "1784": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "1786": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1787": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "1"
+ ]
+ },
+ "1788": {
+ "op": "return",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1789": {
+ "block": "arc58_addPlugin_ternary_false@16",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "epochRef#0"
+ ]
+ },
+ "1791": {
+ "op": "bury 14",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1793": {
+ "op": "b arc58_addPlugin_ternary_merge@17"
+ },
+ "1796": {
+ "block": "arc58_addPlugin_if_body@10",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "dig 9",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrow#0"
+ ]
+ },
+ "1798": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrow#0",
+ "\"\""
+ ]
+ },
+ "1799": {
+ "op": "!=",
+ "defined_out": [
+ "escrow#0",
+ "tmp%11#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "tmp%11#1"
+ ]
+ },
+ "1800": {
+ "error": "escrow must be set if defaultToEscrow is true",
+ "op": "assert // escrow must be set if defaultToEscrow is true",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1801": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "escrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ]
+ },
+ "1802": {
+ "op": "bury 17",
+ "defined_out": [
+ "escrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "1804": {
+ "op": "b arc58_addPlugin_after_if_else@11"
+ },
+ "1807": {
+ "block": "arc58_addPlugin_bool_false@8",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%1#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%1#0"
+ ]
+ },
+ "1808": {
+ "op": "b arc58_addPlugin_bool_merge@9"
+ },
+ "1811": {
+ "block": "arc58_addPlugin_bool_false@4",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "epochRef#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "and_result%0#0"
+ ]
+ },
+ "1812": {
+ "op": "b arc58_addPlugin_bool_merge@5"
+ },
+ "1815": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removePlugin[routing]",
+ "params": {},
+ "block": "arc58_removePlugin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1818": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1819": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0"
+ ]
+ },
+ "1820": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "1821": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1822": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "1823": {
+ "op": "btoi",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0"
+ ]
+ },
+ "1824": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0"
+ ]
+ },
+ "1827": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "caller#0 (copy)",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "caller#0 (copy)"
+ ]
+ },
+ "1828": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "len%1#0"
+ ]
+ },
+ "1829": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "len%1#0",
+ "32"
+ ]
+ },
+ "1831": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "eq%1#0"
+ ]
+ },
+ "1832": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "plugin#0",
+ "caller#0"
+ ]
+ },
+ "1833": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "1836": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "1837": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)",
+ "0"
+ ]
+ },
+ "1838": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1839": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1840": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0"
+ ]
+ },
+ "1841": {
+ "op": "dig 1",
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "1843": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "len%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "len%2#0"
+ ]
+ },
+ "1844": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "eq%2#0"
+ ]
+ },
+ "1845": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "1846": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "1849": {
+ "op": "dup",
+ "stack_out": [
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "escrow#0"
+ ]
+ },
+ "1850": {
+ "op": "cover 3",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "1852": {
+ "op": "txn Sender",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "1854": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "1855": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "1856": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "1857": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "1858": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "1859": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "1860": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrow#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ]
+ },
+ "1862": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "caller#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "caller#0",
+ "escrow#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "1863": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ]
+ },
+ "1865": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "1866": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "1868": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "1869": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "1870": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "1873": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ]
+ },
+ "1875": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "1876": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "1877": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "1879": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "1880": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "1881": {
+ "op": "concat",
+ "defined_out": [
+ "escrow#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "key#0"
+ ]
+ },
+ "1882": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "escrow#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "key#0",
+ "\"p\""
+ ]
+ },
+ "1884": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "1885": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1886": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "1887": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "1888": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "1890": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1891": {
+ "op": "dup",
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "1892": {
+ "op": "pushint 44 // 44",
+ "defined_out": [
+ "44",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "44"
+ ]
+ },
+ "1894": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "44",
+ "2"
+ ]
+ },
+ "1895": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "1896": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0",
+ "methodsLength#0"
+ ]
+ },
+ "1897": {
+ "op": "swap",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "1898": {
+ "op": "box_del",
+ "defined_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "{box_del}"
+ ]
+ },
+ "1899": {
+ "op": "pop",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1900": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "1901": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "escrow#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "1902": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "escrow#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "1903": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "1904": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "escrow#0",
+ "maybe_value%1#0",
+ "methodsLength#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%1#0",
+ "tmp%5#0"
+ ]
+ },
+ "1906": {
+ "op": "!=",
+ "defined_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "tmp%6#0"
+ ]
+ },
+ "1907": {
+ "op": "bz arc58_removePlugin_after_if_else@4",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1910": {
+ "op": "itxn_begin"
+ },
+ "1911": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "1912": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "1913": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "escrow#0",
+ "maybe_exists%3#0",
+ "maybe_value%2#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "1914": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "1915": {
+ "op": "dig 2",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "escrow#0"
+ ]
+ },
+ "1917": {
+ "op": "dig 2",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1919": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "op": "callsub pluginsMbr",
+ "defined_out": [
+ "escrow#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "maybe_value%2#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "1922": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "1924": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1926": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "escrow#0",
+ "methodsLength#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "1"
+ ]
+ },
+ "1927": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1929": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "1930": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1932": {
+ "op": "itxn_submit"
+ },
+ "1933": {
+ "block": "arc58_removePlugin_after_if_else@4",
+ "stack_in": [
+ "escrow#0",
+ "methodsLength#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "1934": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "1936": {
+ "op": "app_global_put",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1937": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "\"last_change\""
+ ]
+ },
+ "1939": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "1941": {
+ "op": "app_global_put",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1942": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0",
+ "1"
+ ]
+ },
+ "1943": {
+ "op": "return",
+ "stack_out": [
+ "escrow#0",
+ "methodsLength#0"
+ ]
+ },
+ "1944": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addNamedPlugin[routing]",
+ "params": {},
+ "block": "arc58_addNamedPlugin",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "1945": {
+ "op": "dupn 3",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0"
+ ]
+ },
+ "1947": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0"
+ ]
+ },
+ "1948": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "1949": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "1952": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1953": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "1954": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "1955": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "1956": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "1957": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "1959": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "1960": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "1961": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "1962": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "name#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0"
+ ]
+ },
+ "1965": {
+ "op": "dup",
+ "defined_out": [
+ "name#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0"
+ ]
+ },
+ "1966": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0"
+ ]
+ },
+ "1969": {
+ "op": "dup",
+ "defined_out": [
+ "name#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "1970": {
+ "op": "len",
+ "defined_out": [
+ "len%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0",
+ "len%1#0"
+ ]
+ },
+ "1971": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0",
+ "len%1#0",
+ "8"
+ ]
+ },
+ "1972": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0",
+ "eq%1#0"
+ ]
+ },
+ "1973": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "tmp%2#0"
+ ]
+ },
+ "1974": {
+ "op": "btoi",
+ "defined_out": [
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "name#0",
+ "plugin#0"
+ ]
+ },
+ "1975": {
+ "op": "swap",
+ "defined_out": [
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "name#0"
+ ]
+ },
+ "1976": {
+ "op": "txna ApplicationArgs 3"
+ },
+ "1979": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "name#0",
+ "caller#0",
+ "caller#0"
+ ]
+ },
+ "1980": {
+ "op": "cover 2",
+ "defined_out": [
+ "caller#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "caller#0"
+ ]
+ },
+ "1982": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "len%2#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "len%2#0"
+ ]
+ },
+ "1983": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "caller#0",
+ "len%2#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "len%2#0",
+ "32"
+ ]
+ },
+ "1985": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%2#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "eq%2#0"
+ ]
+ },
+ "1986": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0"
+ ]
+ },
+ "1987": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "caller#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0"
+ ]
+ },
+ "1990": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "1991": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)",
+ "0"
+ ]
+ },
+ "1992": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "caller#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "1993": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "aggregate%array_length%1#0",
+ "2"
+ ]
+ },
+ "1994": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "caller#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "add%1#0"
+ ]
+ },
+ "1995": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "add%1#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "1997": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "caller#0",
+ "len%3#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "add%1#0",
+ "len%3#0"
+ ]
+ },
+ "1998": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%3#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0",
+ "eq%3#0"
+ ]
+ },
+ "1999": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "tmp%5#0"
+ ]
+ },
+ "2000": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "name#0",
+ "escrow#0"
+ ]
+ },
+ "2003": {
+ "op": "swap",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0"
+ ]
+ },
+ "2004": {
+ "op": "txna ApplicationArgs 5",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0"
+ ]
+ },
+ "2007": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%7#0",
+ "tmp%7#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0",
+ "tmp%7#0 (copy)"
+ ]
+ },
+ "2008": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "len%4#0",
+ "name#0",
+ "plugin#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0",
+ "len%4#0"
+ ]
+ },
+ "2009": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "caller#0",
+ "escrow#0",
+ "len%4#0",
+ "name#0",
+ "plugin#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0",
+ "len%4#0",
+ "1"
+ ]
+ },
+ "2010": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%4#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0",
+ "eq%4#0"
+ ]
+ },
+ "2011": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0"
+ ]
+ },
+ "2012": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "tmp%7#0",
+ "0"
+ ]
+ },
+ "2013": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "admin#0"
+ ]
+ },
+ "2014": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "name#0"
+ ]
+ },
+ "2015": {
+ "op": "txna ApplicationArgs 6"
+ },
+ "2018": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "name#0",
+ "delegationType#0",
+ "delegationType#0"
+ ]
+ },
+ "2019": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2021": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "delegationType#0 (copy)",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "delegationType#0 (copy)"
+ ]
+ },
+ "2022": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "len%5#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "len%5#0"
+ ]
+ },
+ "2023": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "len%5#0",
+ "1"
+ ]
+ },
+ "2024": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%5#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "eq%5#0"
+ ]
+ },
+ "2025": {
+ "error": "invalid number of bytes for uint8",
+ "op": "assert // invalid number of bytes for uint8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2026": {
+ "op": "txna ApplicationArgs 7",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0"
+ ]
+ },
+ "2029": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%10#0",
+ "tmp%10#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "tmp%10#0 (copy)"
+ ]
+ },
+ "2030": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "len%6#0",
+ "name#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "len%6#0"
+ ]
+ },
+ "2031": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "len%6#0",
+ "8"
+ ]
+ },
+ "2032": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%6#0",
+ "escrow#0",
+ "name#0",
+ "plugin#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0",
+ "eq%6#0"
+ ]
+ },
+ "2033": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%10#0"
+ ]
+ },
+ "2034": {
+ "op": "btoi",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "name#0",
+ "delegationType#0",
+ "lastValid#0"
+ ]
+ },
+ "2035": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2037": {
+ "op": "txna ApplicationArgs 8",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0"
+ ]
+ },
+ "2040": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0",
+ "tmp%12#0",
+ "tmp%12#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0",
+ "tmp%12#0 (copy)"
+ ]
+ },
+ "2041": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%7#0",
+ "name#0",
+ "plugin#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0",
+ "len%7#0"
+ ]
+ },
+ "2042": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0",
+ "len%7#0",
+ "8"
+ ]
+ },
+ "2043": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "delegationType#0",
+ "eq%7#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0",
+ "eq%7#0"
+ ]
+ },
+ "2044": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%12#0"
+ ]
+ },
+ "2045": {
+ "op": "btoi",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "name#0",
+ "delegationType#0",
+ "cooldown#0"
+ ]
+ },
+ "2046": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2048": {
+ "op": "txna ApplicationArgs 9"
+ },
+ "2051": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0"
+ ]
+ },
+ "2052": {
+ "op": "cover 3",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0"
+ ]
+ },
+ "2054": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "methods#0 (copy)",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0 (copy)"
+ ]
+ },
+ "2055": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "methods#0 (copy)",
+ "0"
+ ]
+ },
+ "2056": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "2057": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "2058": {
+ "op": "cover 4",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "2060": {
+ "op": "pushint 12 // 12",
+ "defined_out": [
+ "12",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "12"
+ ]
+ },
+ "2062": {
+ "op": "*",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "mul%2#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "mul%2#0"
+ ]
+ },
+ "2063": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "mul%2#0",
+ "2"
+ ]
+ },
+ "2064": {
+ "op": "+",
+ "defined_out": [
+ "add%2#0",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "methods#0",
+ "add%2#0"
+ ]
+ },
+ "2065": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "add%2#0",
+ "methods#0"
+ ]
+ },
+ "2066": {
+ "op": "len",
+ "defined_out": [
+ "add%2#0",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%8#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "add%2#0",
+ "len%8#0"
+ ]
+ },
+ "2067": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%8#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "eq%8#0"
+ ]
+ },
+ "2068": {
+ "error": "invalid number of bytes for (len+(uint8[4],uint64)[])",
+ "op": "assert // invalid number of bytes for (len+(uint8[4],uint64)[])",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2069": {
+ "op": "txna ApplicationArgs 10",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%15#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0"
+ ]
+ },
+ "2072": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%15#0",
+ "tmp%15#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "tmp%15#0 (copy)"
+ ]
+ },
+ "2073": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%9#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%15#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "len%9#0"
+ ]
+ },
+ "2074": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "len%9#0",
+ "1"
+ ]
+ },
+ "2075": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%9#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%15#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "eq%9#0"
+ ]
+ },
+ "2076": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0"
+ ]
+ },
+ "2077": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%15#0",
+ "0"
+ ]
+ },
+ "2078": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "name#0",
+ "delegationType#0",
+ "useRounds#0"
+ ]
+ },
+ "2079": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2081": {
+ "op": "txna ApplicationArgs 11",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0"
+ ]
+ },
+ "2084": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%17#0",
+ "tmp%17#0 (copy)",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "tmp%17#0 (copy)"
+ ]
+ },
+ "2085": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%10#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "len%10#0"
+ ]
+ },
+ "2086": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "len%10#0",
+ "1"
+ ]
+ },
+ "2087": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%10#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%17#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "eq%10#0"
+ ]
+ },
+ "2088": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0"
+ ]
+ },
+ "2089": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%17#0",
+ "0"
+ ]
+ },
+ "2090": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "name#0",
+ "delegationType#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "2091": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2093": {
+ "op": "txna ApplicationArgs 12",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%19#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0"
+ ]
+ },
+ "2096": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%19#0",
+ "tmp%19#0 (copy)",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0",
+ "tmp%19#0 (copy)"
+ ]
+ },
+ "2097": {
+ "op": "len",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "len%11#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%19#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0",
+ "len%11#0"
+ ]
+ },
+ "2098": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0",
+ "len%11#0",
+ "1"
+ ]
+ },
+ "2099": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "delegationType#0",
+ "eq%11#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%19#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0",
+ "eq%11#0"
+ ]
+ },
+ "2100": {
+ "error": "invalid number of bytes for bool8",
+ "op": "assert // invalid number of bytes for bool8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0"
+ ]
+ },
+ "2101": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%19#0",
+ "0"
+ ]
+ },
+ "2102": {
+ "op": "getbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "name#0",
+ "delegationType#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "2103": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2105": {
+ "op": "txn Sender",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%0#1"
+ ]
+ },
+ "2107": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2108": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2109": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%0#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2110": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2111": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%1#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "tmp%1#1"
+ ]
+ },
+ "2112": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0"
+ ]
+ },
+ "2113": {
+ "op": "bytec 16 // \"n\"",
+ "defined_out": [
+ "\"n\"",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "name#0",
+ "delegationType#0",
+ "\"n\""
+ ]
+ },
+ "2115": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "\"n\"",
+ "name#0"
+ ]
+ },
+ "2117": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2118": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2119": {
+ "op": "cover 2",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2121": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "maybe_exists%1#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2122": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2124": {
+ "op": "!",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%2#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0",
+ "tmp%2#1"
+ ]
+ },
+ "2125": {
+ "op": "assert",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0"
+ ]
+ },
+ "2126": {
+ "op": "bytec 15 // 0x01",
+ "defined_out": [
+ "0x01",
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "delegationType#0",
+ "0x01"
+ ]
+ },
+ "2128": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%3#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%3#1"
+ ]
+ },
+ "2129": {
+ "op": "bz arc58_addNamedPlugin_bool_false@4",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2132": {
+ "op": "dig 11",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "caller#0"
+ ]
+ },
+ "2134": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%5#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "tmp%5#1"
+ ]
+ },
+ "2136": {
+ "op": "==",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "tmp%6#1",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%6#1"
+ ]
+ },
+ "2137": {
+ "op": "bz arc58_addNamedPlugin_bool_false@4",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2140": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "admin#0",
+ "aggregate%array_length%2#0",
+ "and_result%0#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "cooldown#0",
+ "defaultToEscrow#0",
+ "delegationType#0",
+ "escrow#0",
+ "lastValid#0",
+ "methods#0",
+ "name#0",
+ "plugin#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "2141": {
+ "block": "arc58_addNamedPlugin_bool_merge@5",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ],
+ "op": "!",
+ "defined_out": [
+ "tmp%7#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%7#1"
+ ]
+ },
+ "2142": {
+ "error": "delegation type must not be self for global plugins",
+ "op": "assert // delegation type must not be self for global plugins",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2143": {
+ "op": "dig 2",
+ "defined_out": [
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "2145": {
+ "op": "bz arc58_addNamedPlugin_bool_false@8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2148": {
+ "op": "dig 11",
+ "defined_out": [
+ "caller#0",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "caller#0"
+ ]
+ },
+ "2150": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "caller#0",
+ "tmp%9#1",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "tmp%9#1"
+ ]
+ },
+ "2152": {
+ "op": "!=",
+ "defined_out": [
+ "caller#0",
+ "tmp%10#1",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%10#1"
+ ]
+ },
+ "2153": {
+ "op": "bz arc58_addNamedPlugin_bool_false@8",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2156": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%1#0",
+ "caller#0",
+ "useExecutionKey#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%1#0"
+ ]
+ },
+ "2157": {
+ "block": "arc58_addNamedPlugin_bool_merge@9",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%1#0"
+ ],
+ "op": "!",
+ "defined_out": [
+ "tmp%11#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%11#1"
+ ]
+ },
+ "2158": {
+ "error": "using execution key requires global plugin",
+ "op": "assert // using execution key requires global plugin",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2159": {
+ "op": "dig 1",
+ "defined_out": [
+ "defaultToEscrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "defaultToEscrow#0"
+ ]
+ },
+ "2161": {
+ "op": "bnz arc58_addNamedPlugin_if_body@10",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2164": {
+ "op": "dig 10",
+ "defined_out": [
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrowKey#1"
+ ]
+ },
+ "2166": {
+ "op": "bury 19",
+ "defined_out": [
+ "defaultToEscrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2168": {
+ "block": "arc58_addNamedPlugin_after_if_else@11",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "dig 12",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "plugin#0"
+ ]
+ },
+ "2170": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "2171": {
+ "op": "dig 12",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ]
+ },
+ "2173": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "2174": {
+ "op": "dig 19",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "escrowKey#1"
+ ]
+ },
+ "2176": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "escrowKey#1 (copy)",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "escrowKey#1 (copy)"
+ ]
+ },
+ "2177": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%length%0#0"
+ ]
+ },
+ "2178": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "2179": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "escrowKey#1",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "2182": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrowKey#1"
+ ]
+ },
+ "2183": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "2184": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "2185": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "2187": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0",
+ "caller#0",
+ "escrowKey#1",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "2188": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "2189": {
+ "op": "concat",
+ "defined_out": [
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ]
+ },
+ "2190": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "key#0"
+ ]
+ },
+ "2191": {
+ "op": "bury 19",
+ "defined_out": [
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ]
+ },
+ "2193": {
+ "op": "dig 1",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2195": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2196": {
+ "op": "box_del",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "box_prefixed_key%0#0",
+ "{box_del}"
+ ]
+ },
+ "2197": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2198": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ]
+ },
+ "2199": {
+ "op": "box_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2200": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "2201": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "2202": {
+ "op": "bury 20",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2204": {
+ "op": "bytec 10 // 0x0000",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "methodInfos#0"
+ ]
+ },
+ "2206": {
+ "op": "bury 17",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2208": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "i#0",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "2209": {
+ "op": "bury 15",
+ "defined_out": [
+ "aggregate%as_bytes%2#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrowKey#1",
+ "i#0",
+ "key#0",
+ "methodInfos#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2211": {
+ "block": "arc58_addNamedPlugin_while_top@12",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "dig 14",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "2213": {
+ "op": "dig 5",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%array_length%2#0"
+ ]
+ },
+ "2215": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "i#0",
+ "tmp%16#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%16#1"
+ ]
+ },
+ "2216": {
+ "op": "bz arc58_addNamedPlugin_after_while@14",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2219": {
+ "op": "dig 5",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "methods#0"
+ ]
+ },
+ "2221": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "2224": {
+ "op": "dig 15",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "2226": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "2227": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "2229": {
+ "op": "pushint 12 // 12",
+ "defined_out": [
+ "12",
+ "aggregate%array_length%2#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "12"
+ ]
+ },
+ "2231": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "2232": {
+ "op": "pushint 12 // 12",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "12"
+ ]
+ },
+ "2234": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2235": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "2236": {
+ "op": "extract 0 4",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "2239": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2240": {
+ "op": "extract 4 8",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0"
+ ]
+ },
+ "2243": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%0#0 (copy)",
+ "aggregate%extract%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%extract%0#0 (copy)"
+ ]
+ },
+ "2245": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0"
+ ]
+ },
+ "2246": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "aggregate%array_length%2#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%length%1#0",
+ "4"
+ ]
+ },
+ "2248": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%lengths_equal%0#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0",
+ "aggregate%lengths_equal%0#0"
+ ]
+ },
+ "2249": {
+ "error": "invalid size",
+ "op": "assert // invalid size",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%1#0"
+ ]
+ },
+ "2250": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "2251": {
+ "op": "dig 21",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%head%4#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "2253": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%head%5#0"
+ ]
+ },
+ "2254": {
+ "op": "dig 18",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "aggregate%head%5#0",
+ "methodInfos#0"
+ ]
+ },
+ "2256": {
+ "op": "dup"
+ },
+ "2257": {
+ "op": "uncover 2",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%5#0",
+ "i#0",
+ "methodInfos#0",
+ "methodInfos#0 (copy)",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methodInfos#0 (copy)",
+ "aggregate%head%5#0"
+ ]
+ },
+ "2259": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodInfos#0",
+ "concat%0#0"
+ ]
+ },
+ "2260": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "methodInfos#0"
+ ]
+ },
+ "2261": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "methodInfos#0",
+ "0"
+ ]
+ },
+ "2262": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "2263": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "1"
+ ]
+ },
+ "2264": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "add%0#0"
+ ]
+ },
+ "2265": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "as_bytes%0#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "as_bytes%0#0"
+ ]
+ },
+ "2266": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "as_u16_bytes%0#0",
+ "concat%0#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "concat%0#0",
+ "as_u16_bytes%0#0"
+ ]
+ },
+ "2269": {
+ "op": "replace2 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodInfos#0"
+ ]
+ },
+ "2271": {
+ "op": "bury 18",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "2273": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "2274": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "2275": {
+ "op": "bury 15",
+ "defined_out": [
+ "aggregate%array_length%2#0",
+ "aggregate%as_bytes%2#0",
+ "i#0",
+ "methodInfos#0",
+ "methods#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2277": {
+ "op": "b arc58_addNamedPlugin_while_top@12"
+ },
+ "2280": {
+ "block": "arc58_addNamedPlugin_after_while@14",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "2281": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2282": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%2#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2283": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "2284": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "maybe_value%1#0",
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%1#0",
+ "tmp%21#0"
+ ]
+ },
+ "2286": {
+ "op": "!=",
+ "defined_out": [
+ "tmp%22#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%22#0"
+ ]
+ },
+ "2287": {
+ "op": "bz arc58_addNamedPlugin_after_if_else@17",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2290": {
+ "op": "itxn_begin"
+ },
+ "2291": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "2292": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2293": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%3#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "2294": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "2295": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "2297": {
+ "op": "dig 18",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "methodInfos#0"
+ ]
+ },
+ "2299": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "methodInfos#0",
+ "0"
+ ]
+ },
+ "2300": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%4#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "aggregate%array_length%4#0"
+ ]
+ },
+ "2301": {
+ "op": "dig 21",
+ "defined_out": [
+ "aggregate%array_length%4#0",
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "aggregate%array_length%4#0",
+ "escrowKey#1"
+ ]
+ },
+ "2303": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "escrowKey#1",
+ "aggregate%array_length%4#0"
+ ]
+ },
+ "2304": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "op": "callsub pluginsMbr",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0"
+ ]
+ },
+ "2307": {
+ "op": "dig 16",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "name#0"
+ ]
+ },
+ "2309": {
+ "op": "len",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%0#2",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "tmp%0#2"
+ ]
+ },
+ "2310": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%0#2",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "tmp%0#2",
+ "400"
+ ]
+ },
+ "2312": {
+ "op": "*",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%1#2",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "tmp%1#2"
+ ]
+ },
+ "2313": {
+ "op": "intc 5 // 21700",
+ "defined_out": [
+ "21700",
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%1#2",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "tmp%1#2",
+ "21700"
+ ]
+ },
+ "2315": {
+ "op": "+",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0",
+ "tmp%2#2",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%24#0",
+ "tmp%2#2"
+ ]
+ },
+ "2316": {
+ "op": "+",
+ "defined_out": [
+ "escrowKey#1",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "methodInfos#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "2317": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "2319": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "2321": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2323": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "escrowKey#1",
+ "methodInfos#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "1"
+ ]
+ },
+ "2324": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2326": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "2327": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2329": {
+ "op": "itxn_submit"
+ },
+ "2330": {
+ "block": "arc58_addNamedPlugin_after_if_else@17",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "dig 10",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ]
+ },
+ "2332": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.maybeNewEscrow",
+ "op": "callsub maybeNewEscrow",
+ "defined_out": [
+ "escrow#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrowID#0"
+ ]
+ },
+ "2335": {
+ "op": "bury 16",
+ "defined_out": [
+ "escrow#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2337": {
+ "op": "dig 3",
+ "defined_out": [
+ "escrow#0",
+ "escrowID#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ]
+ },
+ "2339": {
+ "op": "bz arc58_addNamedPlugin_ternary_false@19",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2342": {
+ "op": "global Round",
+ "defined_out": [
+ "epochRef#0",
+ "escrow#0",
+ "escrowID#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ]
+ },
+ "2344": {
+ "block": "arc58_addNamedPlugin_ternary_merge@20",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ],
+ "op": "dig 16",
+ "defined_out": [
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "escrowID#0"
+ ]
+ },
+ "2346": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%3#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "2347": {
+ "op": "dig 10",
+ "defined_out": [
+ "aggregate%val_as_bytes%3#0",
+ "delegationType#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%val_as_bytes%3#0",
+ "delegationType#0"
+ ]
+ },
+ "2349": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "delegationType#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%8#0"
+ ]
+ },
+ "2350": {
+ "op": "dig 9",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%8#0",
+ "lastValid#0"
+ ]
+ },
+ "2352": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%8#0",
+ "aggregate%val_as_bytes%4#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%8#0",
+ "aggregate%val_as_bytes%4#0"
+ ]
+ },
+ "2353": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%9#0"
+ ]
+ },
+ "2354": {
+ "op": "dig 8",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%9#0",
+ "cooldown#0"
+ ]
+ },
+ "2356": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%9#0",
+ "aggregate%val_as_bytes%5#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%9#0",
+ "aggregate%val_as_bytes%5#0"
+ ]
+ },
+ "2357": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%10#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%10#0"
+ ]
+ },
+ "2358": {
+ "op": "bytec 23 // 0x002c",
+ "defined_out": [
+ "0x002c",
+ "aggregate%head%10#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%10#0",
+ "0x002c"
+ ]
+ },
+ "2360": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0"
+ ]
+ },
+ "2361": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "0x00"
+ ]
+ },
+ "2363": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "0x00",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "0x00",
+ "0"
+ ]
+ },
+ "2364": {
+ "op": "dig 13",
+ "defined_out": [
+ "0",
+ "0x00",
+ "admin#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "0x00",
+ "0",
+ "admin#0"
+ ]
+ },
+ "2366": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "2367": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0",
+ "1"
+ ]
+ },
+ "2368": {
+ "op": "dig 7",
+ "defined_out": [
+ "1",
+ "admin#0",
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%11#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%encoded_bool%0#0",
+ "1",
+ "useRounds#0"
+ ]
+ },
+ "2370": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0"
+ ]
+ },
+ "2371": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "2"
+ ]
+ },
+ "2372": {
+ "op": "dig 6",
+ "defined_out": [
+ "2",
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%0#0",
+ "2",
+ "useExecutionKey#0"
+ ]
+ },
+ "2374": {
+ "op": "setbit",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%11#0",
+ "aggregate%set_bit%1#0"
+ ]
+ },
+ "2375": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%head%12#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%12#0"
+ ]
+ },
+ "2376": {
+ "op": "dig 21",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%12#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%12#0",
+ "aggregate%as_bytes%2#0"
+ ]
+ },
+ "2378": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "aggregate%head%13#0"
+ ]
+ },
+ "2379": {
+ "op": "swap",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "cooldown#0",
+ "delegationType#0",
+ "epochRef#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%13#0",
+ "epochRef#0"
+ ]
+ },
+ "2380": {
+ "op": "itob",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%13#0",
+ "aggregate%val_as_bytes%7#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%13#0",
+ "aggregate%val_as_bytes%7#0"
+ ]
+ },
+ "2381": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%14#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%14#0"
+ ]
+ },
+ "2382": {
+ "op": "dig 17",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%head%14#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%14#0",
+ "methodInfos#0"
+ ]
+ },
+ "2384": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "2385": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "\"p\""
+ ]
+ },
+ "2387": {
+ "op": "dig 19",
+ "defined_out": [
+ "\"p\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "2389": {
+ "op": "concat",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2390": {
+ "op": "dup",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)"
+ ]
+ },
+ "2391": {
+ "op": "box_del",
+ "defined_out": [
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0",
+ "{box_del}"
+ ]
+ },
+ "2392": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%1#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2393": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "2394": {
+ "op": "box_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2395": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "2396": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "tmp%0#2",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "2398": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2399": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\"",
+ "admin#0",
+ "aggregate%as_bytes%2#0",
+ "cooldown#0",
+ "delegationType#0",
+ "escrowID#0",
+ "key#0",
+ "lastValid#0",
+ "methodInfos#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\""
+ ]
+ },
+ "2401": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "2403": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2404": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "1"
+ ]
+ },
+ "2405": {
+ "op": "return",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2406": {
+ "block": "arc58_addNamedPlugin_ternary_false@19",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ]
+ },
+ "2408": {
+ "op": "b arc58_addNamedPlugin_ternary_merge@20"
+ },
+ "2411": {
+ "block": "arc58_addNamedPlugin_if_body@10",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "dig 10",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ]
+ },
+ "2413": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "\"\""
+ ]
+ },
+ "2414": {
+ "op": "!=",
+ "defined_out": [
+ "escrow#0",
+ "tmp%12#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "tmp%12#1"
+ ]
+ },
+ "2415": {
+ "error": "escrow must be set if defaultToEscrow is true",
+ "op": "assert // escrow must be set if defaultToEscrow is true",
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2416": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "escrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "escrowKey#1"
+ ]
+ },
+ "2417": {
+ "op": "bury 19",
+ "defined_out": [
+ "escrow#0",
+ "escrowKey#1"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2419": {
+ "op": "b arc58_addNamedPlugin_after_if_else@11"
+ },
+ "2422": {
+ "block": "arc58_addNamedPlugin_bool_false@8",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%1#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%1#0"
+ ]
+ },
+ "2423": {
+ "op": "b arc58_addNamedPlugin_bool_merge@9"
+ },
+ "2426": {
+ "block": "arc58_addNamedPlugin_bool_false@4",
+ "stack_in": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "aggregate%as_bytes%2#0",
+ "escrowKey#1",
+ "key#0",
+ "methodInfos#0",
+ "escrowID#0",
+ "i#0",
+ "name#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "admin#0",
+ "delegationType#0",
+ "lastValid#0",
+ "cooldown#0",
+ "methods#0",
+ "aggregate%array_length%2#0",
+ "useRounds#0",
+ "useExecutionKey#0",
+ "defaultToEscrow#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "2427": {
+ "op": "b arc58_addNamedPlugin_bool_merge@5"
+ },
+ "2430": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeNamedPlugin[routing]",
+ "params": {},
+ "block": "arc58_removeNamedPlugin",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2433": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2434": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2435": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "2436": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "2437": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "2438": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2440": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "2441": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "2442": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2443": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0"
+ ]
+ },
+ "2446": {
+ "op": "dup",
+ "defined_out": [
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0"
+ ]
+ },
+ "2447": {
+ "op": "txn Sender",
+ "defined_out": [
+ "name#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%0#1"
+ ]
+ },
+ "2449": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2450": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "name#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2451": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "name#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2452": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2453": {
+ "op": "==",
+ "defined_out": [
+ "name#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "tmp%1#1"
+ ]
+ },
+ "2454": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "name#0",
+ "name#0"
+ ]
+ },
+ "2455": {
+ "op": "bytec 16 // \"n\"",
+ "defined_out": [
+ "\"n\"",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "name#0",
+ "\"n\""
+ ]
+ },
+ "2457": {
+ "op": "swap",
+ "stack_out": [
+ "name#0",
+ "\"n\"",
+ "name#0"
+ ]
+ },
+ "2458": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2459": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2460": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2461": {
+ "op": "bury 1",
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2463": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2464": {
+ "op": "dup",
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2465": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%1#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "app#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "2466": {
+ "op": "pop",
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "app#0"
+ ]
+ },
+ "2467": {
+ "op": "dup",
+ "stack_out": [
+ "name#0",
+ "box_prefixed_key%0#0",
+ "app#0",
+ "app#0"
+ ]
+ },
+ "2468": {
+ "op": "cover 2",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "app#0"
+ ]
+ },
+ "2470": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "app#0",
+ "\"p\""
+ ]
+ },
+ "2472": {
+ "op": "swap",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "\"p\"",
+ "app#0"
+ ]
+ },
+ "2473": {
+ "op": "concat",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2474": {
+ "op": "dup",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)"
+ ]
+ },
+ "2475": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "maybe_exists%2#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "_%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2476": {
+ "op": "bury 1",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2478": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2479": {
+ "op": "dup",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)"
+ ]
+ },
+ "2480": {
+ "op": "pushint 44 // 44",
+ "defined_out": [
+ "44",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "44"
+ ]
+ },
+ "2482": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "44",
+ "2"
+ ]
+ },
+ "2483": {
+ "op": "box_extract",
+ "defined_out": [
+ "app#0",
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "2484": {
+ "op": "btoi",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "methodsLength#0"
+ ]
+ },
+ "2485": {
+ "op": "cover 2",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2487": {
+ "op": "swap",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2488": {
+ "op": "box_del",
+ "defined_out": [
+ "app#0",
+ "box_prefixed_key%2#0",
+ "methodsLength#0",
+ "name#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "box_prefixed_key%2#0",
+ "{box_del}"
+ ]
+ },
+ "2489": {
+ "op": "pop",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "2490": {
+ "op": "box_del",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "{box_del}"
+ ]
+ },
+ "2491": {
+ "op": "pop",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2492": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "2493": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "app#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2494": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "app#0",
+ "maybe_exists%3#0",
+ "maybe_value%1#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%1#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "2495": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "2496": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "app#0",
+ "maybe_value%1#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "2498": {
+ "op": "!=",
+ "defined_out": [
+ "app#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "tmp%4#0"
+ ]
+ },
+ "2499": {
+ "op": "bz arc58_removeNamedPlugin_after_if_else@4",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2502": {
+ "op": "itxn_begin"
+ },
+ "2503": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "2504": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2505": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "app#0",
+ "maybe_exists%4#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "2506": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "2507": {
+ "op": "dig 3",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "name#0"
+ ]
+ },
+ "2509": {
+ "op": "len",
+ "defined_out": [
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ]
+ },
+ "2510": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%0#2",
+ "400"
+ ]
+ },
+ "2512": {
+ "op": "*",
+ "defined_out": [
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ]
+ },
+ "2513": {
+ "op": "intc 5 // 21700",
+ "defined_out": [
+ "21700",
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%1#2",
+ "21700"
+ ]
+ },
+ "2515": {
+ "op": "+",
+ "defined_out": [
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0"
+ ]
+ },
+ "2516": {
+ "op": "dig 3",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0"
+ ]
+ },
+ "2518": {
+ "op": "dup",
+ "defined_out": [
+ "app#0",
+ "app#0 (copy)",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0",
+ "app#0 (copy)"
+ ]
+ },
+ "2519": {
+ "op": "pushint 40 // 40",
+ "defined_out": [
+ "40",
+ "app#0",
+ "app#0 (copy)",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0",
+ "app#0 (copy)",
+ "40"
+ ]
+ },
+ "2521": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%extract_uint16%0#0",
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0",
+ "aggregate%extract_uint16%0#0"
+ ]
+ },
+ "2522": {
+ "op": "dig 1",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0",
+ "aggregate%extract_uint16%0#0",
+ "app#0 (copy)"
+ ]
+ },
+ "2524": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "app#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0"
+ ]
+ },
+ "2525": {
+ "op": "substring3",
+ "defined_out": [
+ "aggregate%substring3%0#0",
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "aggregate%substring3%0#0"
+ ]
+ },
+ "2526": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "values%0#0"
+ ]
+ },
+ "2529": {
+ "op": "dig 3",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "values%0#0",
+ "methodsLength#0"
+ ]
+ },
+ "2531": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "op": "callsub pluginsMbr",
+ "defined_out": [
+ "app#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0",
+ "tmp%2#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "tmp%2#0",
+ "tmp%6#0"
+ ]
+ },
+ "2534": {
+ "op": "+",
+ "defined_out": [
+ "app#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "maybe_value%2#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "2535": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "2537": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2539": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "app#0",
+ "methodsLength#0",
+ "name#0"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "1"
+ ]
+ },
+ "2540": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2542": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "0"
+ ]
+ },
+ "2543": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2545": {
+ "op": "itxn_submit"
+ },
+ "2546": {
+ "block": "arc58_removeNamedPlugin_after_if_else@4",
+ "stack_in": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "2547": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "2549": {
+ "op": "app_global_put",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2550": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "\"last_change\""
+ ]
+ },
+ "2552": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "2554": {
+ "op": "app_global_put",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2555": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0",
+ "1"
+ ]
+ },
+ "2556": {
+ "op": "return",
+ "stack_out": [
+ "name#0",
+ "app#0",
+ "methodsLength#0"
+ ]
+ },
+ "2557": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_newEscrow[routing]",
+ "params": {},
+ "block": "arc58_newEscrow",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2560": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2561": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2562": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "2563": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "2564": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "2565": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2567": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "2568": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "2569": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2570": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2573": {
+ "op": "txn Sender",
+ "defined_out": [
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "2575": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2576": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2577": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2578": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2579": {
+ "op": "==",
+ "defined_out": [
+ "escrow#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "2580": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2581": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "2583": {
+ "op": "dig 1",
+ "defined_out": [
+ "\"e\"",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "\"e\"",
+ "escrow#0 (copy)"
+ ]
+ },
+ "2585": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2586": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "escrow#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2587": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2589": {
+ "op": "!",
+ "defined_out": [
+ "escrow#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#1"
+ ]
+ },
+ "2590": {
+ "error": "escrow already exists",
+ "op": "assert // escrow already exists",
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2591": {
+ "op": "dup",
+ "stack_out": [
+ "escrow#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "2592": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0 (copy)",
+ "\"\""
+ ]
+ },
+ "2593": {
+ "op": "!=",
+ "defined_out": [
+ "escrow#0",
+ "tmp%3#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%3#1"
+ ]
+ },
+ "2594": {
+ "error": "Escrow name is required",
+ "op": "assert // Escrow name is required",
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2595": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.newEscrow",
+ "op": "callsub newEscrow",
+ "defined_out": [
+ "tmp%4#1"
+ ],
+ "stack_out": [
+ "tmp%4#1"
+ ]
+ },
+ "2598": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0"
+ ],
+ "stack_out": [
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "2599": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "aggregate%val_as_bytes%0#0"
+ ],
+ "stack_out": [
+ "aggregate%val_as_bytes%0#0",
+ "0x151f7c75"
+ ]
+ },
+ "2601": {
+ "op": "swap",
+ "stack_out": [
+ "0x151f7c75",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "2602": {
+ "op": "concat",
+ "defined_out": [
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%4#0"
+ ]
+ },
+ "2603": {
+ "op": "log",
+ "stack_out": []
+ },
+ "2604": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "2605": {
+ "op": "return",
+ "stack_out": []
+ },
+ "2606": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_toggleEscrowLock[routing]",
+ "params": {},
+ "block": "arc58_toggleEscrowLock",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2609": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2610": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2611": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "2612": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "2613": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "2614": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2616": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "2617": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "2618": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2619": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2622": {
+ "op": "txn Sender",
+ "defined_out": [
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "2624": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2625": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2626": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2627": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2628": {
+ "op": "==",
+ "defined_out": [
+ "escrow#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "2629": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2630": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "2632": {
+ "op": "swap",
+ "stack_out": [
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "2633": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2634": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2635": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2636": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2638": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2639": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2640": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "2641": {
+ "op": "pop",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "2642": {
+ "op": "pushint 64 // 64",
+ "defined_out": [
+ "64",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "64"
+ ]
+ },
+ "2644": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "2645": {
+ "op": "!",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1"
+ ]
+ },
+ "2646": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2648": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1",
+ "box_prefixed_key%0#0 (copy)",
+ "8"
+ ]
+ },
+ "2649": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "8",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1",
+ "box_prefixed_key%0#0 (copy)",
+ "8",
+ "1"
+ ]
+ },
+ "2650": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1",
+ "box%box_extract%0#0"
+ ]
+ },
+ "2651": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#1",
+ "box%box_extract%0#0",
+ "0"
+ ]
+ },
+ "2652": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0",
+ "0",
+ "tmp%2#1"
+ ]
+ },
+ "2654": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%updated_target%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%updated_target%0#0"
+ ]
+ },
+ "2655": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%updated_target%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2657": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%updated_target%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "8"
+ ]
+ },
+ "2658": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "8",
+ "aggregate%updated_target%0#0"
+ ]
+ },
+ "2660": {
+ "op": "box_replace",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2661": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "2662": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "2664": {
+ "op": "app_global_put",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2665": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\"",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_change\""
+ ]
+ },
+ "2667": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "2669": {
+ "op": "app_global_put",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2670": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "aggregate%box_get%3#0"
+ ],
+ "stack_out": [
+ "aggregate%box_get%2#0",
+ "aggregate%box_get%3#0"
+ ]
+ },
+ "2671": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%box_get%2#0"
+ ]
+ },
+ "2672": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "aggregate%box_get%2#0"
+ ],
+ "stack_out": [
+ "aggregate%box_get%2#0",
+ "0x151f7c75"
+ ]
+ },
+ "2674": {
+ "op": "swap",
+ "stack_out": [
+ "0x151f7c75",
+ "aggregate%box_get%2#0"
+ ]
+ },
+ "2675": {
+ "op": "concat",
+ "defined_out": [
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0"
+ ]
+ },
+ "2676": {
+ "op": "log",
+ "stack_out": []
+ },
+ "2677": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "1"
+ ]
+ },
+ "2678": {
+ "op": "return",
+ "stack_out": []
+ },
+ "2679": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_reclaim[routing]",
+ "params": {},
+ "block": "arc58_reclaim",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0"
+ ]
+ },
+ "2680": {
+ "op": "dup",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "2681": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0"
+ ]
+ },
+ "2682": {
+ "op": "dupn 4",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ]
+ },
+ "2684": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0"
+ ]
+ },
+ "2687": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2688": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2689": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "2690": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "2691": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "2692": {
+ "op": "dig 1",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2694": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "2695": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "2696": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "tmp%0#0"
+ ]
+ },
+ "2697": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "escrow#0"
+ ]
+ },
+ "2700": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "2703": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "escrow#0",
+ "reclaims#0",
+ "reclaims#0"
+ ]
+ },
+ "2704": {
+ "op": "cover 2",
+ "defined_out": [
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "escrow#0",
+ "reclaims#0"
+ ]
+ },
+ "2706": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "reclaims#0",
+ "reclaims#0 (copy)"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "escrow#0",
+ "reclaims#0",
+ "reclaims#0 (copy)"
+ ]
+ },
+ "2707": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "escrow#0",
+ "reclaims#0",
+ "reclaims#0 (copy)",
+ "0"
+ ]
+ },
+ "2708": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "escrow#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2709": {
+ "op": "dup",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "escrow#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2710": {
+ "op": "cover 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2712": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "17"
+ ]
+ },
+ "2714": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "mul%1#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "mul%1#0"
+ ]
+ },
+ "2715": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "2716": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "add%1#0"
+ ]
+ },
+ "2717": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "reclaims#0"
+ ]
+ },
+ "2718": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "len%1#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "len%1#0"
+ ]
+ },
+ "2719": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "eq%1#0",
+ "escrow#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "eq%1#0"
+ ]
+ },
+ "2720": {
+ "error": "invalid number of bytes for (len+(uint64,uint64,bool1)[])",
+ "op": "assert // invalid number of bytes for (len+(uint64,uint64,bool1)[])",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0"
+ ]
+ },
+ "2721": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ]
+ },
+ "2722": {
+ "op": "swap",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "escrow#0"
+ ]
+ },
+ "2723": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1"
+ ]
+ },
+ "2724": {
+ "op": "swap",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0"
+ ]
+ },
+ "2725": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "tmp%0#1",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "2727": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2728": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "tmp%0#1",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2729": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "tmp%0#1",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2730": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2731": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "tmp%1#1",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "2732": {
+ "error": "forbidden",
+ "op": "assert // forbidden",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0"
+ ]
+ },
+ "2733": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "2735": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "2736": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2737": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2738": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2739": {
+ "op": "bury 1",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2741": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2742": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "2743": {
+ "op": "pop",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "2744": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "2745": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "values%0#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "values%0#0"
+ ]
+ },
+ "2746": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "check%0#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "sender#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "check%0#0"
+ ]
+ },
+ "2748": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0"
+ ]
+ },
+ "2749": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "sender#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2750": {
+ "block": "arc58_reclaim_while_top@2",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "2751": {
+ "op": "dig 5",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2753": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "tmp%3#0"
+ ]
+ },
+ "2754": {
+ "op": "bz arc58_reclaim_after_while@17",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2757": {
+ "op": "dig 5",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "reclaims#0"
+ ]
+ },
+ "2759": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "2762": {
+ "op": "dig 1",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "2764": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "17"
+ ]
+ },
+ "2766": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "2767": {
+ "op": "pushint 17 // 17",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "17"
+ ]
+ },
+ "2769": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2770": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "reclaims#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2771": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0",
+ "0"
+ ]
+ },
+ "2772": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "values%1#0"
+ ]
+ },
+ "2773": {
+ "op": "dup",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "values%1#0",
+ "values%1#0"
+ ]
+ },
+ "2774": {
+ "op": "bury 12",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "values%1#0"
+ ]
+ },
+ "2776": {
+ "op": "bnz arc58_reclaim_else_body@10",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2779": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "0"
+ ]
+ },
+ "2780": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2781": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2782": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "2783": {
+ "op": "bury 15",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2785": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2786": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "i#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "2787": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "i#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "8"
+ ]
+ },
+ "2788": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "values%2#0"
+ ]
+ },
+ "2789": {
+ "op": "bury 10",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2791": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "pmt%%CloseRemainderTo_length#0"
+ ]
+ },
+ "2792": {
+ "op": "bury 12",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2794": {
+ "op": "pushint 128 // 128",
+ "defined_out": [
+ "128",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "128"
+ ]
+ },
+ "2797": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "2798": {
+ "op": "bz arc58_reclaim_after_if_else@6",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2801": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "2802": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2803": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "maybe_exists%3#0",
+ "maybe_value%1#0",
+ "maybe_value%2#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "2804": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "2805": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%2#0",
+ "pmt%%CloseRemainderTo_length#0"
+ ]
+ },
+ "2806": {
+ "op": "bury 12",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1"
+ ]
+ },
+ "2808": {
+ "op": "bury 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "maybe_value%1#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "reclaims#0",
+ "values%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2810": {
+ "block": "arc58_reclaim_after_if_else@6",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "itxn_begin"
+ },
+ "2811": {
+ "op": "dig 10",
+ "defined_out": [
+ "pmt%%CloseRemainderTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "pmt%%CloseRemainderTo_length#0"
+ ]
+ },
+ "2813": {
+ "op": "bz arc58_reclaim_next_field@8",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2816": {
+ "op": "dig 2",
+ "defined_out": [
+ "pmt%%CloseRemainderTo_length#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "pmt%%param_CloseRemainderTo_idx_0#1"
+ ]
+ },
+ "2818": {
+ "op": "itxn_field CloseRemainderTo",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2820": {
+ "block": "arc58_reclaim_next_field@8",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "dig 8",
+ "defined_out": [
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "values%2#0"
+ ]
+ },
+ "2822": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2824": {
+ "op": "dig 12",
+ "defined_out": [
+ "maybe_value%1#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "2826": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2828": {
+ "op": "dig 1",
+ "defined_out": [
+ "maybe_value%1#0",
+ "sender#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "sender#0"
+ ]
+ },
+ "2830": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2832": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "maybe_value%1#0",
+ "sender#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "2833": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2835": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "maybe_value%1#0",
+ "sender#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "2836": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2838": {
+ "op": "itxn_submit"
+ },
+ "2839": {
+ "block": "arc58_reclaim_after_if_else@16",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "2840": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "2841": {
+ "op": "+",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "2842": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2844": {
+ "op": "b arc58_reclaim_while_top@2"
+ },
+ "2847": {
+ "block": "arc58_reclaim_else_body@10",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "0"
+ ]
+ },
+ "2848": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2849": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%4#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "2850": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_exists%4#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "2851": {
+ "op": "bury 14",
+ "defined_out": [
+ "maybe_exists%4#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "2853": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2854": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "2855": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "8"
+ ]
+ },
+ "2856": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "values%4#0"
+ ]
+ },
+ "2857": {
+ "op": "bury 9",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2859": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "xfer%%AssetCloseTo_length#0"
+ ]
+ },
+ "2860": {
+ "op": "bury 8",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "2862": {
+ "op": "pushint 128 // 128",
+ "defined_out": [
+ "128",
+ "aggregate%encoded_element%0#0",
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "128"
+ ]
+ },
+ "2865": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%1#0",
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "aggregate%get_bit%1#0"
+ ]
+ },
+ "2866": {
+ "op": "bz arc58_reclaim_after_if_else@12",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2869": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "2870": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2871": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%5#0",
+ "maybe_value%3#0",
+ "maybe_value%4#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%4#0",
+ "maybe_exists%5#0"
+ ]
+ },
+ "2872": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%4#0"
+ ]
+ },
+ "2873": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%4#0",
+ "xfer%%AssetCloseTo_length#0"
+ ]
+ },
+ "2874": {
+ "op": "bury 8",
+ "defined_out": [
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ]
+ },
+ "2876": {
+ "op": "bury 4",
+ "defined_out": [
+ "maybe_value%3#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2878": {
+ "block": "arc58_reclaim_after_if_else@12",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "itxn_begin"
+ },
+ "2879": {
+ "op": "dig 6",
+ "defined_out": [
+ "xfer%%AssetCloseTo_length#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "xfer%%AssetCloseTo_length#0"
+ ]
+ },
+ "2881": {
+ "op": "bz arc58_reclaim_next_field@14",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2884": {
+ "op": "dig 3",
+ "defined_out": [
+ "xfer%%AssetCloseTo_length#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "xfer%%param_AssetCloseTo_idx_0#1"
+ ]
+ },
+ "2886": {
+ "op": "itxn_field AssetCloseTo",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2888": {
+ "block": "arc58_reclaim_next_field@14",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "dig 9",
+ "defined_out": [
+ "values%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "values%1#0"
+ ]
+ },
+ "2890": {
+ "op": "itxn_field XferAsset",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2892": {
+ "op": "dig 7",
+ "defined_out": [
+ "values%1#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "values%4#0"
+ ]
+ },
+ "2894": {
+ "op": "itxn_field AssetAmount",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2896": {
+ "op": "dig 11",
+ "defined_out": [
+ "maybe_value%3#0",
+ "values%1#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "2898": {
+ "op": "itxn_field AssetReceiver",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2900": {
+ "op": "dig 1",
+ "defined_out": [
+ "maybe_value%3#0",
+ "sender#0",
+ "values%1#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "sender#0"
+ ]
+ },
+ "2902": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2904": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "maybe_value%3#0",
+ "sender#0",
+ "values%1#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "4"
+ ]
+ },
+ "2906": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2908": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "maybe_value%3#0",
+ "sender#0",
+ "values%1#0",
+ "values%4#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "2909": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2911": {
+ "op": "itxn_submit"
+ },
+ "2912": {
+ "op": "b arc58_reclaim_after_if_else@16"
+ },
+ "2915": {
+ "block": "arc58_reclaim_after_while@17",
+ "stack_in": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "2916": {
+ "op": "return",
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_value%3#0",
+ "pmt%%CloseRemainderTo_length#0",
+ "values%1#0",
+ "values%2#0",
+ "values%4#0",
+ "xfer%%AssetCloseTo_length#0",
+ "reclaims#0",
+ "aggregate%array_length%1#0",
+ "xfer%%param_AssetCloseTo_idx_0#1",
+ "pmt%%param_CloseRemainderTo_idx_0#1",
+ "sender#0",
+ "i#0"
+ ]
+ },
+ "2917": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_optinEscrow[routing]",
+ "params": {},
+ "block": "arc58_optinEscrow",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2920": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2921": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2922": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "2923": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "2924": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "2925": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "2927": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "2928": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "2929": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "2930": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "2933": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0"
+ ]
+ },
+ "2934": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "2937": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0"
+ ]
+ },
+ "2938": {
+ "op": "cover 2",
+ "defined_out": [
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0"
+ ]
+ },
+ "2940": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "assets#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)"
+ ]
+ },
+ "2941": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)",
+ "0"
+ ]
+ },
+ "2942": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2943": {
+ "op": "dup",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2944": {
+ "op": "cover 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2946": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0 (copy)",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0 (copy)"
+ ]
+ },
+ "2947": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0 (copy)",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0 (copy)",
+ "8"
+ ]
+ },
+ "2948": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "mul%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mul%1#0"
+ ]
+ },
+ "2949": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "2950": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "add%1#0"
+ ]
+ },
+ "2951": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "add%1#0",
+ "assets#0"
+ ]
+ },
+ "2953": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "add%1#0",
+ "len%1#0"
+ ]
+ },
+ "2954": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "eq%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "eq%1#0"
+ ]
+ },
+ "2955": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2956": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%0#1"
+ ]
+ },
+ "2958": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "2959": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "2960": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "2961": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "2962": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "tmp%1#1"
+ ]
+ },
+ "2963": {
+ "error": "forbidden",
+ "op": "assert // forbidden",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "2964": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "aggregate%array_length%1#0",
+ "\"e\""
+ ]
+ },
+ "2966": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "2968": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2969": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "2970": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2971": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "2973": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "2974": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "2975": {
+ "op": "pop",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "2976": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)"
+ ]
+ },
+ "2977": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "0"
+ ]
+ },
+ "2978": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "escrow#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "escrowID#0"
+ ]
+ },
+ "2979": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "check%0#0",
+ "escrow#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "escrowAddress#0",
+ "check%0#0"
+ ]
+ },
+ "2981": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "check%0#0",
+ "escrowAddress#0"
+ ]
+ },
+ "2982": {
+ "op": "dup",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "check%0#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)"
+ ]
+ },
+ "2983": {
+ "op": "cover 3",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%box_get%0#0",
+ "check%0#0",
+ "escrowAddress#0"
+ ]
+ },
+ "2985": {
+ "op": "cover 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "check%0#0",
+ "escrow#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%box_get%0#0",
+ "check%0#0"
+ ]
+ },
+ "2987": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "2988": {
+ "op": "pushint 64 // 64",
+ "defined_out": [
+ "64",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%box_get%0#0",
+ "64"
+ ]
+ },
+ "2990": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "2991": {
+ "op": "!",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "tmp%2#1"
+ ]
+ },
+ "2992": {
+ "error": "Escrow is locked",
+ "op": "assert // Escrow is locked",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "2993": {
+ "op": "itxn_begin"
+ },
+ "2994": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "0"
+ ]
+ },
+ "2995": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "2996": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "2997": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "2998": {
+ "op": "global AssetOptInMinBalance",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "3000": {
+ "op": "uncover 3",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowAddress#0",
+ "maybe_value%1#0",
+ "tmp%3#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3002": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowAddress#0",
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "3003": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowAddress#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "3005": {
+ "op": "itxn_field Sender"
+ },
+ "3007": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3009": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "1"
+ ]
+ },
+ "3010": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3012": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "0"
+ ]
+ },
+ "3013": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3015": {
+ "op": "itxn_submit"
+ },
+ "3016": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ]
+ },
+ "3017": {
+ "block": "arc58_optinEscrow_while_top@3",
+ "stack_in": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3018": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3020": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "tmp%6#0"
+ ]
+ },
+ "3021": {
+ "op": "bz arc58_optinEscrow_after_while@6",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ]
+ },
+ "3024": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "assets#0"
+ ]
+ },
+ "3026": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "3029": {
+ "op": "dig 1",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "3031": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "3032": {
+ "op": "cover 2",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "3034": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "8"
+ ]
+ },
+ "3035": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "3036": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0"
+ ]
+ },
+ "3037": {
+ "op": "dig 6",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "escrow#0"
+ ]
+ },
+ "3039": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrow#0 (copy)",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "3040": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%length%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "escrow#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "3041": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "escrow#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "3042": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%length_uint16%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "escrow#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "3045": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ]
+ },
+ "3046": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3047": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0",
+ "values%2#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0",
+ "values%2#0 (copy)"
+ ]
+ },
+ "3049": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "3050": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%val_as_bytes%0#0",
+ "0x000a"
+ ]
+ },
+ "3052": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "3053": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3054": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3055": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%concat%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "3056": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%array_length%1#0",
+ "aggregate%concat%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%concat%0#0",
+ "\"a\""
+ ]
+ },
+ "3058": {
+ "op": "swap",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "\"a\"",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "3059": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%3#0",
+ "escrow#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "box_prefixed_key%3#0"
+ ]
+ },
+ "3060": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "maybe_exists%3#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "_%1#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "3061": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "3063": {
+ "error": "allowance does not exist",
+ "op": "assert // allowance does not exist",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "values%2#0"
+ ]
+ },
+ "3064": {
+ "op": "itxn_begin"
+ },
+ "3065": {
+ "op": "itxn_field XferAsset",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3067": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "3068": {
+ "op": "itxn_field AssetAmount",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3070": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3072": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)"
+ ]
+ },
+ "3073": {
+ "op": "itxn_field AssetReceiver",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3075": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3077": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "4"
+ ]
+ },
+ "3079": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3081": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "3082": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3084": {
+ "op": "itxn_submit"
+ },
+ "3085": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "3086": {
+ "op": "+",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "3087": {
+ "op": "bury 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ]
+ },
+ "3089": {
+ "op": "b arc58_optinEscrow_while_top@3"
+ },
+ "3092": {
+ "block": "arc58_optinEscrow_after_while@6",
+ "stack_in": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "3093": {
+ "op": "return",
+ "stack_out": [
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "i#0"
+ ]
+ },
+ "3094": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_pluginOptinEscrow[routing]",
+ "params": {},
+ "block": "arc58_pluginOptinEscrow",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0"
+ ]
+ },
+ "3095": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0"
+ ]
+ },
+ "3096": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "3099": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "3100": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0",
+ "len%0#0"
+ ]
+ },
+ "3101": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "3102": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "3103": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "3104": {
+ "op": "btoi",
+ "defined_out": [
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "plugin#0"
+ ]
+ },
+ "3105": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "3108": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "plugin#0",
+ "caller#0",
+ "caller#0"
+ ]
+ },
+ "3109": {
+ "op": "cover 2",
+ "defined_out": [
+ "caller#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0"
+ ]
+ },
+ "3111": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "caller#0 (copy)",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "caller#0 (copy)"
+ ]
+ },
+ "3112": {
+ "op": "len",
+ "defined_out": [
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "len%1#0"
+ ]
+ },
+ "3113": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "caller#0",
+ "len%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "len%1#0",
+ "32"
+ ]
+ },
+ "3115": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "eq%1#0"
+ ]
+ },
+ "3116": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0"
+ ]
+ },
+ "3117": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "3120": {
+ "op": "dup",
+ "defined_out": [
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "3121": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)",
+ "0"
+ ]
+ },
+ "3122": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "3123": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "3124": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0"
+ ]
+ },
+ "3125": {
+ "op": "dig 1",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "3127": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "caller#0",
+ "len%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "add%0#0",
+ "len%2#0"
+ ]
+ },
+ "3128": {
+ "op": "==",
+ "defined_out": [
+ "caller#0",
+ "eq%2#0",
+ "plugin#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0",
+ "eq%2#0"
+ ]
+ },
+ "3129": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "tmp%3#0"
+ ]
+ },
+ "3130": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "3133": {
+ "op": "txna ApplicationArgs 4"
+ },
+ "3136": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0"
+ ]
+ },
+ "3137": {
+ "op": "cover 4",
+ "defined_out": [
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0"
+ ]
+ },
+ "3139": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "assets#0 (copy)",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)"
+ ]
+ },
+ "3140": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)",
+ "0"
+ ]
+ },
+ "3141": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3142": {
+ "op": "dup",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3143": {
+ "op": "cover 5",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3145": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "8"
+ ]
+ },
+ "3146": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mul%1#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "mul%1#0"
+ ]
+ },
+ "3147": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "3148": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "assets#0",
+ "add%1#0"
+ ]
+ },
+ "3149": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "add%1#0",
+ "assets#0"
+ ]
+ },
+ "3150": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "len%3#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "add%1#0",
+ "len%3#0"
+ ]
+ },
+ "3151": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "eq%3#0",
+ "escrow#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "eq%3#0"
+ ]
+ },
+ "3152": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "3153": {
+ "op": "txn GroupIndex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%6#0"
+ ]
+ },
+ "3155": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "tmp%6#0",
+ "1"
+ ]
+ },
+ "3156": {
+ "op": "-",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0"
+ ]
+ },
+ "3157": {
+ "op": "dup",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "mbrPayment#0"
+ ]
+ },
+ "3158": {
+ "op": "cover 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0"
+ ]
+ },
+ "3160": {
+ "op": "gtxns TypeEnum",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type%0#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type%0#0"
+ ]
+ },
+ "3162": {
+ "op": "intc_1 // pay",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type%0#0",
+ "mbrPayment#0",
+ "pay",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type%0#0",
+ "pay"
+ ]
+ },
+ "3163": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type_matches%0#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "gtxn_type_matches%0#0"
+ ]
+ },
+ "3164": {
+ "error": "transaction type is pay",
+ "op": "assert // transaction type is pay",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0"
+ ]
+ },
+ "3165": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "plugin#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "plugin#0 (copy)"
+ ]
+ },
+ "3167": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%val_as_bytes%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "caller#0",
+ "escrow#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "3168": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ]
+ },
+ "3170": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3171": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "escrow#0 (copy)",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "3173": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%1#0",
+ "aggregate%length%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "3174": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "3175": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "3178": {
+ "op": "dig 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "3180": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3181": {
+ "op": "dup",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3182": {
+ "op": "cover 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3184": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3185": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "3187": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "3188": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3189": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "key#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "key#0"
+ ]
+ },
+ "3190": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "key#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "key#0",
+ "\"p\""
+ ]
+ },
+ "3192": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "3193": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3194": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "3195": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "3197": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0"
+ ]
+ },
+ "3198": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrow#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "3200": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "3201": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "box_prefixed_key%1#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "box_prefixed_key%1#0"
+ ]
+ },
+ "3202": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "box_prefixed_key%1#0",
+ "box_prefixed_key%1#0 (copy)",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "box_prefixed_key%1#0",
+ "box_prefixed_key%1#0 (copy)"
+ ]
+ },
+ "3203": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "box_prefixed_key%1#0",
+ "caller#0",
+ "maybe_exists%1#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "box_prefixed_key%1#0",
+ "_%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3204": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "box_prefixed_key%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3206": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "box_prefixed_key%1#0"
+ ]
+ },
+ "3207": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "3208": {
+ "op": "pop",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3209": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)"
+ ]
+ },
+ "3210": {
+ "op": "pushint 64 // 64",
+ "defined_out": [
+ "64",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "64"
+ ]
+ },
+ "3212": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%get_bit%0#0",
+ "assets#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "3213": {
+ "op": "!",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "tmp%2#1"
+ ]
+ },
+ "3214": {
+ "error": "Escrow is locked",
+ "op": "assert // Escrow is locked",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3215": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "3216": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "plugin#0",
+ "escrowID#0"
+ ]
+ },
+ "3217": {
+ "op": "swap",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "plugin#0"
+ ]
+ },
+ "3218": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "plugin#0",
+ "tmp%3#1"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "plugin#0",
+ "tmp%3#1"
+ ]
+ },
+ "3220": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%3#1",
+ "plugin#0"
+ ]
+ },
+ "3221": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "check%0#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%3#1",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%3#1",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "3223": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%3#1",
+ "value%0#0"
+ ]
+ },
+ "3224": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%4#1"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%4#1"
+ ]
+ },
+ "3225": {
+ "op": "bnz arc58_pluginOptinEscrow_bool_true@4",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3228": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%5#1"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%5#1"
+ ]
+ },
+ "3230": {
+ "op": "dig 6",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%5#1",
+ "caller#0"
+ ]
+ },
+ "3232": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%7#0"
+ ]
+ },
+ "3233": {
+ "op": "bnz arc58_pluginOptinEscrow_bool_true@4",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3236": {
+ "op": "dig 5",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "caller#0"
+ ]
+ },
+ "3238": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "caller#0",
+ "tmp%9#0"
+ ]
+ },
+ "3240": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "caller#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%10#0"
+ ]
+ },
+ "3241": {
+ "op": "bz arc58_pluginOptinEscrow_bool_false@5",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3244": {
+ "block": "arc58_pluginOptinEscrow_bool_true@4",
+ "stack_in": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "or_result%0#0"
+ ]
+ },
+ "3245": {
+ "error": "forbidden",
+ "block": "arc58_pluginOptinEscrow_bool_merge@6",
+ "stack_in": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "or_result%0#0"
+ ],
+ "op": "assert // forbidden",
+ "defined_out": [],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3246": {
+ "op": "dup",
+ "defined_out": [
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowID#0"
+ ]
+ },
+ "3247": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%1#0",
+ "escrowAddress#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "check%1#0"
+ ]
+ },
+ "3249": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "check%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3250": {
+ "op": "dup",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "check%1#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)"
+ ]
+ },
+ "3251": {
+ "op": "cover 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "check%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3253": {
+ "op": "bury 10",
+ "defined_out": [
+ "check%1#0",
+ "escrowAddress#0",
+ "escrowID#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "check%1#0"
+ ]
+ },
+ "3255": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3256": {
+ "op": "dig 3",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "mbrPayment#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0"
+ ]
+ },
+ "3258": {
+ "op": "dup",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "mbrPayment#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "mbrPayment#0 (copy)"
+ ]
+ },
+ "3259": {
+ "op": "gtxns Receiver",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "tmp%11#0"
+ ]
+ },
+ "3261": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "tmp%11#0",
+ "0"
+ ]
+ },
+ "3262": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "mbrPayment#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "tmp%11#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "3263": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_exists%2#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "tmp%11#0",
+ "maybe_value%0#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "3264": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "tmp%11#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "3265": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "maybe_value%0#0",
+ "tmp%11#0"
+ ]
+ },
+ "3266": {
+ "op": "dig 1",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "maybe_value%0#0 (copy)",
+ "mbrPayment#0",
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "maybe_value%0#0",
+ "tmp%11#0",
+ "maybe_value%0#0 (copy)"
+ ]
+ },
+ "3268": {
+ "op": "==",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "mbrPayment#0",
+ "maybe_value%0#0",
+ "tmp%12#0"
+ ]
+ },
+ "3269": {
+ "op": "uncover 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "tmp%12#0",
+ "mbrPayment#0"
+ ]
+ },
+ "3271": {
+ "op": "gtxns Amount",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%13#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "tmp%12#0",
+ "tmp%13#0"
+ ]
+ },
+ "3273": {
+ "op": "global AssetOptInMinBalance",
+ "defined_out": [
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0"
+ ]
+ },
+ "3275": {
+ "op": "dig 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3277": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0 (copy)",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0",
+ "aggregate%array_length%1#0 (copy)",
+ "aggregate%array_length%1#0 (copy)"
+ ]
+ },
+ "3278": {
+ "op": "cover 4",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%14#0",
+ "aggregate%array_length%1#0 (copy)"
+ ]
+ },
+ "3280": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%16#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0",
+ "tmp%12#0",
+ "tmp%13#0",
+ "tmp%16#0"
+ ]
+ },
+ "3281": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%12#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0",
+ "tmp%12#0",
+ "tmp%17#0"
+ ]
+ },
+ "3282": {
+ "op": "&&",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%18#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0",
+ "tmp%18#0"
+ ]
+ },
+ "3283": {
+ "error": "invalid payment",
+ "op": "assert // invalid payment",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3284": {
+ "op": "itxn_begin"
+ },
+ "3285": {
+ "op": "global AssetOptInMinBalance",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "maybe_value%0#0",
+ "mbrPayment#0",
+ "tmp%19#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "aggregate%array_length%1#0",
+ "tmp%19#0"
+ ]
+ },
+ "3287": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "maybe_value%0#0",
+ "mbrPayment#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "3288": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "escrowAddress#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "3290": {
+ "op": "itxn_field Sender"
+ },
+ "3292": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3294": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "mbrPayment#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "1"
+ ]
+ },
+ "3295": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3297": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "0"
+ ]
+ },
+ "3298": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3300": {
+ "op": "itxn_submit"
+ },
+ "3301": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "i#0",
+ "mbrPayment#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3302": {
+ "op": "bury 7",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrowAddress#0",
+ "escrowID#0",
+ "i#0",
+ "mbrPayment#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3304": {
+ "block": "arc58_pluginOptinEscrow_while_top@8",
+ "stack_in": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ],
+ "op": "dig 6",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3306": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3308": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%22#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "tmp%22#0"
+ ]
+ },
+ "3309": {
+ "op": "bz arc58_pluginOptinEscrow_after_while@11",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3312": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "assets#0"
+ ]
+ },
+ "3314": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "3317": {
+ "op": "dig 7",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "3319": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "3320": {
+ "op": "cover 2",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "3322": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "8"
+ ]
+ },
+ "3323": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "3324": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0"
+ ]
+ },
+ "3325": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0",
+ "values%2#0",
+ "values%2#0 (copy)"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "values%2#0 (copy)"
+ ]
+ },
+ "3326": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%val_as_bytes%1#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "3327": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%array_length%1#0",
+ "aggregate%val_as_bytes%1#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%val_as_bytes%1#0",
+ "0x000a"
+ ]
+ },
+ "3329": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "0x000a",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "3330": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%head%4#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "3331": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%4#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%head%4#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3333": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%concat%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "3334": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%array_length%1#0",
+ "aggregate%concat%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "aggregate%concat%1#0",
+ "\"a\""
+ ]
+ },
+ "3336": {
+ "op": "swap",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "\"a\"",
+ "aggregate%concat%1#0"
+ ]
+ },
+ "3337": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "box_prefixed_key%4#0",
+ "i#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "box_prefixed_key%4#0"
+ ]
+ },
+ "3338": {
+ "op": "box_len",
+ "defined_out": [
+ "_%2#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "i#0",
+ "maybe_exists%4#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "_%2#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3339": {
+ "op": "bury 1",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3341": {
+ "error": "allowance does not exist",
+ "op": "assert // allowance does not exist",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "values%2#0"
+ ]
+ },
+ "3342": {
+ "op": "itxn_begin"
+ },
+ "3343": {
+ "op": "itxn_field XferAsset",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3345": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "3346": {
+ "op": "itxn_field AssetAmount",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3348": {
+ "op": "dig 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3350": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "escrowAddress#0",
+ "escrowAddress#0 (copy)"
+ ]
+ },
+ "3351": {
+ "op": "itxn_field AssetReceiver",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "escrowAddress#0"
+ ]
+ },
+ "3353": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3355": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "4"
+ ]
+ },
+ "3357": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3359": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "0"
+ ]
+ },
+ "3360": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3362": {
+ "op": "itxn_submit"
+ },
+ "3363": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "3364": {
+ "op": "+",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "i#0"
+ ]
+ },
+ "3365": {
+ "op": "bury 7",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrowAddress#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3367": {
+ "op": "b arc58_pluginOptinEscrow_while_top@8"
+ },
+ "3370": {
+ "block": "arc58_pluginOptinEscrow_after_while@11",
+ "stack_in": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "1"
+ ]
+ },
+ "3371": {
+ "op": "return",
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ]
+ },
+ "3372": {
+ "block": "arc58_pluginOptinEscrow_bool_false@5",
+ "stack_in": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "escrowAddress#0",
+ "i#0",
+ "caller#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "mbrPayment#0",
+ "aggregate%encoded_value%0#0",
+ "escrowID#0",
+ "or_result%0#0"
+ ]
+ },
+ "3373": {
+ "op": "b arc58_pluginOptinEscrow_bool_merge@6"
+ },
+ "3376": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addAllowances[routing]",
+ "params": {},
+ "block": "arc58_addAllowances",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0"
+ ]
+ },
+ "3377": {
+ "op": "dupn 4",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0"
+ ]
+ },
+ "3379": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0"
+ ]
+ },
+ "3380": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0"
+ ]
+ },
+ "3381": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0"
+ ]
+ },
+ "3384": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "3385": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "3386": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "3387": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "3388": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "3389": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "3391": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "3392": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "3393": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "tmp%0#0"
+ ]
+ },
+ "3394": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0"
+ ]
+ },
+ "3397": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "escrow#0"
+ ]
+ },
+ "3398": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "3401": {
+ "op": "dup",
+ "defined_out": [
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "escrow#0",
+ "allowances#0",
+ "allowances#0"
+ ]
+ },
+ "3402": {
+ "op": "cover 2",
+ "defined_out": [
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "escrow#0",
+ "allowances#0"
+ ]
+ },
+ "3404": {
+ "op": "dup",
+ "defined_out": [
+ "allowances#0",
+ "allowances#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "escrow#0",
+ "allowances#0",
+ "allowances#0 (copy)"
+ ]
+ },
+ "3405": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "escrow#0",
+ "allowances#0",
+ "allowances#0 (copy)",
+ "0"
+ ]
+ },
+ "3406": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3407": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3408": {
+ "op": "cover 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3410": {
+ "op": "pushint 34 // 34",
+ "defined_out": [
+ "34",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "34"
+ ]
+ },
+ "3412": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "mul%1#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "allowances#0",
+ "mul%1#0"
+ ]
+ },
+ "3413": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "allowances#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "3414": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "allowances#0",
+ "add%1#0"
+ ]
+ },
+ "3415": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "allowances#0"
+ ]
+ },
+ "3416": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "len%1#0"
+ ]
+ },
+ "3417": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "eq%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "eq%1#0"
+ ]
+ },
+ "3418": {
+ "error": "invalid number of bytes for (len+(uint64,uint8,uint64,uint64,uint64,bool1)[])",
+ "op": "assert // invalid number of bytes for (len+(uint64,uint8,uint64,uint64,uint64,bool1)[])",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0"
+ ]
+ },
+ "3419": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "3421": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "3422": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "3423": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "3424": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "3425": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "3426": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0"
+ ]
+ },
+ "3427": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "3429": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "3430": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3431": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3432": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3433": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3435": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3436": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "3437": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3438": {
+ "op": "pushint 64 // 64",
+ "defined_out": [
+ "64",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "64"
+ ]
+ },
+ "3440": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "3441": {
+ "op": "!",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "tmp%2#1"
+ ]
+ },
+ "3442": {
+ "error": "Escrow is locked",
+ "op": "assert // Escrow is locked",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3443": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3444": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "3445": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "3446": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "3447": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "3449": {
+ "op": "!=",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "tmp%4#0"
+ ]
+ },
+ "3450": {
+ "op": "bz arc58_addAllowances_after_if_else@4",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3453": {
+ "op": "itxn_begin"
+ },
+ "3454": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3455": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "3456": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "maybe_exists%3#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "3457": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "3458": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "3460": {
+ "op": "dig 4",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "escrow#0"
+ ]
+ },
+ "3462": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%0#2"
+ ]
+ },
+ "3463": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%0#2",
+ "400"
+ ]
+ },
+ "3465": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%1#2"
+ ]
+ },
+ "3466": {
+ "op": "intc 6 // 27700",
+ "defined_out": [
+ "27700",
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%1#2",
+ "27700"
+ ]
+ },
+ "3468": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0",
+ "tmp%2#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%2#2"
+ ]
+ },
+ "3469": {
+ "op": "dig 3",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%2#2",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3471": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "3472": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "3474": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "3476": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3478": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "1"
+ ]
+ },
+ "3479": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3481": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3482": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3484": {
+ "op": "itxn_submit"
+ },
+ "3485": {
+ "block": "arc58_addAllowances_after_if_else@4",
+ "stack_in": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3486": {
+ "op": "bury 5",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3488": {
+ "block": "arc58_addAllowances_while_top@5",
+ "stack_in": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "dig 4",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3490": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3492": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "tmp%8#0"
+ ]
+ },
+ "3493": {
+ "op": "bz arc58_addAllowances_after_while@10",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3496": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "allowances#0"
+ ]
+ },
+ "3498": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "3501": {
+ "op": "dig 5",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "3503": {
+ "op": "pushint 34 // 34",
+ "defined_out": [
+ "34",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "34"
+ ]
+ },
+ "3505": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "3506": {
+ "op": "pushint 34 // 34",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "34"
+ ]
+ },
+ "3508": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "3509": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "3510": {
+ "op": "extract 0 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "allowances#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3513": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "3515": {
+ "op": "extract 8 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "type#0"
+ ]
+ },
+ "3518": {
+ "op": "bury 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3520": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "3522": {
+ "op": "extract 9 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0"
+ ]
+ },
+ "3525": {
+ "op": "bury 12",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3527": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "3529": {
+ "op": "extract 17 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%3#0"
+ ]
+ },
+ "3532": {
+ "op": "bury 11",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3534": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "3536": {
+ "op": "extract 25 8",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%4#0"
+ ]
+ },
+ "3539": {
+ "op": "bury 10",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3541": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "3542": {
+ "op": "pushint 264 // 264",
+ "defined_out": [
+ "264",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "i#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_element%0#0",
+ "264"
+ ]
+ },
+ "3545": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "useRounds#0"
+ ]
+ },
+ "3546": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "useRounds#0",
+ "useRounds#0 (copy)"
+ ]
+ },
+ "3547": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "useRounds#0"
+ ]
+ },
+ "3549": {
+ "op": "bury 6",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3551": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "escrow#0"
+ ]
+ },
+ "3553": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "escrow#0 (copy)",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "3554": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%length%0#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "escrow#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "3555": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "escrow#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "3556": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%length_uint16%0#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "escrow#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "3559": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ]
+ },
+ "3560": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3561": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%extract%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%extract%0#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a"
+ ]
+ },
+ "3563": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "3565": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%1#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3566": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3567": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "key#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "key#0"
+ ]
+ },
+ "3568": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "escrow#0",
+ "i#0",
+ "key#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "key#0",
+ "\"a\""
+ ]
+ },
+ "3570": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "\"a\"",
+ "key#0"
+ ]
+ },
+ "3571": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3572": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3573": {
+ "op": "bury 9",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3575": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "maybe_exists%4#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "_%1#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3576": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3578": {
+ "op": "!",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "tmp%10#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0",
+ "tmp%10#0"
+ ]
+ },
+ "3579": {
+ "error": "allowance already exists",
+ "op": "assert // allowance already exists",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "useRounds#0"
+ ]
+ },
+ "3580": {
+ "op": "bz arc58_addAllowances_ternary_false@8",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3583": {
+ "op": "global Round",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "allowances#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "start#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0"
+ ]
+ },
+ "3585": {
+ "block": "arc58_addAllowances_ternary_merge@9",
+ "stack_in": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0"
+ ],
+ "op": "dig 6",
+ "defined_out": [
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "type#0"
+ ]
+ },
+ "3587": {
+ "op": "dig 10",
+ "defined_out": [
+ "aggregate%extract%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "type#0",
+ "aggregate%extract%3#0"
+ ]
+ },
+ "3589": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%3#0",
+ "aggregate%head%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%3#0"
+ ]
+ },
+ "3590": {
+ "op": "dig 11",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%3#0",
+ "aggregate%extract%2#0"
+ ]
+ },
+ "3592": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%4#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "3593": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%4#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%4#0",
+ "0"
+ ]
+ },
+ "3594": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%4#0",
+ "aggregate%val_as_bytes%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%4#0",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "3595": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "3596": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%4#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%val_as_bytes%3#0 (copy)",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%head%4#0",
+ "aggregate%val_as_bytes%3#0 (copy)"
+ ]
+ },
+ "3598": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%head%5#0",
+ "aggregate%val_as_bytes%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%head%5#0"
+ ]
+ },
+ "3599": {
+ "op": "dig 10",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%5#0",
+ "aggregate%val_as_bytes%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%head%5#0",
+ "aggregate%extract%4#0"
+ ]
+ },
+ "3601": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%6#0",
+ "aggregate%val_as_bytes%3#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%val_as_bytes%3#0",
+ "aggregate%head%6#0"
+ ]
+ },
+ "3602": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%6#0",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "3603": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%7#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0",
+ "aggregate%head%7#0"
+ ]
+ },
+ "3604": {
+ "op": "swap",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%7#0",
+ "start#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%7#0",
+ "start#0"
+ ]
+ },
+ "3605": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%7#0",
+ "aggregate%val_as_bytes%6#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%7#0",
+ "aggregate%val_as_bytes%6#0"
+ ]
+ },
+ "3606": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%8#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%8#0"
+ ]
+ },
+ "3607": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%8#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%8#0",
+ "0x00"
+ ]
+ },
+ "3609": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%8#0",
+ "0x00",
+ "0"
+ ]
+ },
+ "3610": {
+ "op": "dig 6",
+ "defined_out": [
+ "0",
+ "0x00",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%8#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%8#0",
+ "0x00",
+ "0",
+ "useRounds#0"
+ ]
+ },
+ "3612": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%encoded_bool%0#0",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%8#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%8#0",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "3613": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%9#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%9#0"
+ ]
+ },
+ "3614": {
+ "op": "dig 7",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "aggregate%head%9#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "aggregate%head%9#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3616": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%2#0",
+ "aggregate%head%9#0"
+ ]
+ },
+ "3617": {
+ "op": "box_put",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3618": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3620": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "3621": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3622": {
+ "op": "bury 5",
+ "defined_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3624": {
+ "op": "b arc58_addAllowances_while_top@5"
+ },
+ "3627": {
+ "block": "arc58_addAllowances_ternary_false@8",
+ "stack_in": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "start#0"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "start#0"
+ ]
+ },
+ "3629": {
+ "op": "b arc58_addAllowances_ternary_merge@9"
+ },
+ "3632": {
+ "block": "arc58_addAllowances_after_while@10",
+ "stack_in": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "3633": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "3635": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3636": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "\"last_change\""
+ ]
+ },
+ "3638": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "3640": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3641": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0",
+ "1"
+ ]
+ },
+ "3642": {
+ "op": "return",
+ "stack_out": [
+ "aggregate%extract%2#0",
+ "aggregate%extract%3#0",
+ "aggregate%extract%4#0",
+ "box_prefixed_key%2#0",
+ "type#0",
+ "i#0",
+ "useRounds#0",
+ "escrow#0",
+ "allowances#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3643": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeAllowances[routing]",
+ "params": {},
+ "block": "arc58_removeAllowances",
+ "stack_in": [],
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "i#0"
+ ]
+ },
+ "3644": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "3647": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "3648": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "3649": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "3650": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "3651": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "3652": {
+ "op": "dig 1",
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "3654": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "3655": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "3656": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "i#0",
+ "tmp%0#0"
+ ]
+ },
+ "3657": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0"
+ ]
+ },
+ "3660": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "escrow#0"
+ ]
+ },
+ "3661": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "3664": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0"
+ ]
+ },
+ "3665": {
+ "op": "cover 2",
+ "defined_out": [
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0"
+ ]
+ },
+ "3667": {
+ "op": "dup",
+ "defined_out": [
+ "assets#0",
+ "assets#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)"
+ ]
+ },
+ "3668": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0 (copy)",
+ "0"
+ ]
+ },
+ "3669": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3670": {
+ "op": "dup",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3671": {
+ "op": "cover 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3673": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "8"
+ ]
+ },
+ "3674": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "mul%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "mul%1#0"
+ ]
+ },
+ "3675": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "3676": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "assets#0",
+ "add%1#0"
+ ]
+ },
+ "3677": {
+ "op": "swap",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "assets#0"
+ ]
+ },
+ "3678": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "add%1#0",
+ "len%1#0"
+ ]
+ },
+ "3679": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "eq%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "eq%1#0"
+ ]
+ },
+ "3680": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0"
+ ]
+ },
+ "3681": {
+ "op": "txn Sender",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1"
+ ]
+ },
+ "3683": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "3684": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "3685": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "3686": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "3687": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "tmp%1#1"
+ ]
+ },
+ "3688": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0"
+ ]
+ },
+ "3689": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "\"e\""
+ ]
+ },
+ "3691": {
+ "op": "swap",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "3692": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3693": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3694": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3695": {
+ "op": "bury 1",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3697": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3698": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "3699": {
+ "op": "pop",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3700": {
+ "op": "pushint 64 // 64",
+ "defined_out": [
+ "64",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "64"
+ ]
+ },
+ "3702": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%get_bit%0#0"
+ ]
+ },
+ "3703": {
+ "op": "!",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%2#1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "tmp%2#1"
+ ]
+ },
+ "3704": {
+ "error": "Escrow is locked",
+ "op": "assert // Escrow is locked",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3705": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3706": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "3707": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_exists%2#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "3708": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "3709": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "3711": {
+ "op": "!=",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "tmp%4#0"
+ ]
+ },
+ "3712": {
+ "op": "bz arc58_removeAllowances_after_if_else@4",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3715": {
+ "op": "itxn_begin"
+ },
+ "3716": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3717": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "3718": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_exists%3#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "3719": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "3720": {
+ "op": "dig 3",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "escrow#0"
+ ]
+ },
+ "3722": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ]
+ },
+ "3723": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%2#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%0#2",
+ "400"
+ ]
+ },
+ "3725": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ]
+ },
+ "3726": {
+ "op": "intc 6 // 27700",
+ "defined_out": [
+ "27700",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%2#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%1#2",
+ "27700"
+ ]
+ },
+ "3728": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "maybe_value%2#0",
+ "tmp%2#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%2#2"
+ ]
+ },
+ "3729": {
+ "op": "dig 2",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "tmp%2#2",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3731": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0",
+ "inner_txn_params%0%%param_Amount_idx_0#0"
+ ]
+ },
+ "3732": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "maybe_value%2#0"
+ ]
+ },
+ "3734": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3736": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "1"
+ ]
+ },
+ "3737": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3739": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "0"
+ ]
+ },
+ "3740": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3742": {
+ "op": "itxn_submit"
+ },
+ "3743": {
+ "block": "arc58_removeAllowances_after_if_else@4",
+ "stack_in": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3744": {
+ "op": "bury 4",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3746": {
+ "block": "arc58_removeAllowances_while_top@5",
+ "stack_in": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "dig 3",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3748": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3750": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "tmp%8#0"
+ ]
+ },
+ "3751": {
+ "op": "bz arc58_removeAllowances_after_while@7",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3754": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0"
+ ]
+ },
+ "3756": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "3759": {
+ "op": "dig 4",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "3761": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "3762": {
+ "op": "cover 2",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "3764": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0",
+ "i#0 (copy)"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0 (copy)",
+ "8"
+ ]
+ },
+ "3765": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "3766": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "8"
+ ]
+ },
+ "3767": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "3768": {
+ "op": "dig 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0"
+ ]
+ },
+ "3770": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "escrow#0 (copy)",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "3771": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "3772": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%0#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "3773": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length_uint16%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "3776": {
+ "op": "swap",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ]
+ },
+ "3777": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3778": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a"
+ ]
+ },
+ "3780": {
+ "op": "uncover 2",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "3782": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3783": {
+ "op": "swap",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "3784": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "key#0"
+ ]
+ },
+ "3785": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "key#0",
+ "\"a\""
+ ]
+ },
+ "3787": {
+ "op": "swap",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "\"a\"",
+ "key#0"
+ ]
+ },
+ "3788": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3789": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0 (copy)"
+ ]
+ },
+ "3790": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%2#0",
+ "escrow#0",
+ "i#0",
+ "maybe_exists%4#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "box_prefixed_key%2#0",
+ "_%1#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3791": {
+ "op": "bury 1",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "box_prefixed_key%2#0",
+ "maybe_exists%4#0"
+ ]
+ },
+ "3793": {
+ "error": "allowance does not exist",
+ "op": "assert // allowance does not exist",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "3794": {
+ "op": "box_del",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "{box_del}"
+ ]
+ },
+ "3795": {
+ "op": "pop",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3796": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "3797": {
+ "op": "+",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "3798": {
+ "op": "bury 4",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3800": {
+ "op": "b arc58_removeAllowances_while_top@5"
+ },
+ "3803": {
+ "block": "arc58_removeAllowances_after_while@7",
+ "stack_in": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "3804": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "3806": {
+ "op": "app_global_put",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3807": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "\"last_change\""
+ ]
+ },
+ "3809": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "3811": {
+ "op": "app_global_put",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3812": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "1"
+ ]
+ },
+ "3813": {
+ "op": "return",
+ "stack_out": [
+ "i#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "3814": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addExecutionKey[routing]",
+ "params": {},
+ "block": "arc58_addExecutionKey",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0"
+ ]
+ },
+ "3817": {
+ "op": "dup",
+ "defined_out": [
+ "lease#0",
+ "lease#0 (copy)"
+ ],
+ "stack_out": [
+ "lease#0",
+ "lease#0 (copy)"
+ ]
+ },
+ "3818": {
+ "op": "len",
+ "defined_out": [
+ "lease#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "len%0#0"
+ ]
+ },
+ "3819": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "lease#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "3821": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "eq%0#0"
+ ]
+ },
+ "3822": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "lease#0"
+ ]
+ },
+ "3823": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "3826": {
+ "op": "dup",
+ "defined_out": [
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "groups#0",
+ "groups#0"
+ ]
+ },
+ "3827": {
+ "op": "cover 2",
+ "defined_out": [
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0"
+ ]
+ },
+ "3829": {
+ "op": "dup",
+ "defined_out": [
+ "groups#0",
+ "groups#0 (copy)",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "groups#0 (copy)"
+ ]
+ },
+ "3830": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "groups#0 (copy)",
+ "0"
+ ]
+ },
+ "3831": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "3832": {
+ "op": "pushint 32 // 32",
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "aggregate%array_length%0#0",
+ "32"
+ ]
+ },
+ "3834": {
+ "op": "*",
+ "defined_out": [
+ "groups#0",
+ "lease#0",
+ "mul%0#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "mul%0#0"
+ ]
+ },
+ "3835": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "groups#0",
+ "lease#0",
+ "mul%0#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "mul%0#0",
+ "2"
+ ]
+ },
+ "3836": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "groups#0",
+ "add%0#0"
+ ]
+ },
+ "3837": {
+ "op": "swap",
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "add%0#0",
+ "groups#0"
+ ]
+ },
+ "3838": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "groups#0",
+ "lease#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "add%0#0",
+ "len%1#0"
+ ]
+ },
+ "3839": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "eq%1#0"
+ ]
+ },
+ "3840": {
+ "error": "invalid number of bytes for (len+uint8[32][])",
+ "op": "assert // invalid number of bytes for (len+uint8[32][])",
+ "stack_out": [
+ "groups#0",
+ "lease#0"
+ ]
+ },
+ "3841": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0"
+ ]
+ },
+ "3844": {
+ "op": "dup",
+ "defined_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "3845": {
+ "op": "len",
+ "defined_out": [
+ "groups#0",
+ "lease#0",
+ "len%2#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0",
+ "len%2#0"
+ ]
+ },
+ "3846": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "groups#0",
+ "lease#0",
+ "len%2#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0",
+ "len%2#0",
+ "8"
+ ]
+ },
+ "3847": {
+ "op": "==",
+ "defined_out": [
+ "eq%2#0",
+ "groups#0",
+ "lease#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0",
+ "eq%2#0"
+ ]
+ },
+ "3848": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "tmp%3#0"
+ ]
+ },
+ "3849": {
+ "op": "btoi",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "groups#0",
+ "lease#0",
+ "firstValid#0"
+ ]
+ },
+ "3850": {
+ "op": "cover 2",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0"
+ ]
+ },
+ "3852": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0"
+ ]
+ },
+ "3855": {
+ "op": "dup",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0",
+ "tmp%5#0 (copy)"
+ ]
+ },
+ "3856": {
+ "op": "len",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "len%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0",
+ "len%3#0"
+ ]
+ },
+ "3857": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0",
+ "len%3#0",
+ "8"
+ ]
+ },
+ "3858": {
+ "op": "==",
+ "defined_out": [
+ "eq%3#0",
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0",
+ "eq%3#0"
+ ]
+ },
+ "3859": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%5#0"
+ ]
+ },
+ "3860": {
+ "op": "btoi",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "groups#0",
+ "lease#0",
+ "lastValid#0"
+ ]
+ },
+ "3861": {
+ "op": "cover 2",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0"
+ ]
+ },
+ "3863": {
+ "op": "txn Sender",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%0#1"
+ ]
+ },
+ "3865": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "3866": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "3867": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "3868": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "3869": {
+ "op": "==",
+ "defined_out": [
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "tmp%1#1"
+ ]
+ },
+ "3870": {
+ "error": "admin only",
+ "op": "assert // admin only",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0"
+ ]
+ },
+ "3871": {
+ "op": "bytec 8 // \"x\"",
+ "defined_out": [
+ "\"x\"",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "lease#0",
+ "\"x\""
+ ]
+ },
+ "3873": {
+ "op": "swap",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "\"x\"",
+ "lease#0"
+ ]
+ },
+ "3874": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3875": {
+ "op": "dup",
+ "stack_out": [
+ "firstValid#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3876": {
+ "op": "cover 3",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3878": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3879": {
+ "op": "bury 1",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "3881": {
+ "op": "bnz arc58_addExecutionKey_else_body@3",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0"
+ ]
+ },
+ "3884": {
+ "op": "dig 3",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "firstValid#0"
+ ]
+ },
+ "3886": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "3887": {
+ "op": "pushbytes 0x0012",
+ "defined_out": [
+ "0x0012",
+ "aggregate%val_as_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "aggregate%val_as_bytes%0#0",
+ "0x0012"
+ ]
+ },
+ "3891": {
+ "op": "swap",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "0x0012",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "3892": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "3893": {
+ "op": "uncover 2",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "aggregate%head%1#0",
+ "lastValid#0"
+ ]
+ },
+ "3895": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%val_as_bytes%1#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "aggregate%head%1#0",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "3896": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%2#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "3897": {
+ "op": "swap",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%2#0",
+ "groups#0"
+ ]
+ },
+ "3898": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "3899": {
+ "op": "dig 1",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3901": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3902": {
+ "op": "box_del",
+ "defined_out": [
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "{box_del}"
+ ]
+ },
+ "3903": {
+ "op": "pop",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3904": {
+ "op": "swap",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "3905": {
+ "op": "box_put",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3906": {
+ "block": "arc58_addExecutionKey_after_if_else@4",
+ "stack_in": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\""
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "3907": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "3909": {
+ "op": "app_global_put",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3910": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\""
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\""
+ ]
+ },
+ "3912": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "3914": {
+ "op": "app_global_put",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3915": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "1"
+ ]
+ },
+ "3916": {
+ "op": "return",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3917": {
+ "block": "arc58_addExecutionKey_else_body@3",
+ "stack_in": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3919": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3920": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "2"
+ ]
+ },
+ "3921": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "2",
+ "8",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "2",
+ "8"
+ ]
+ },
+ "3922": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "3923": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "values%0#0"
+ ]
+ },
+ "3924": {
+ "op": "dig 5",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "values%0#0",
+ "firstValid#0"
+ ]
+ },
+ "3926": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "tmp%3#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "tmp%3#1"
+ ]
+ },
+ "3927": {
+ "error": "execution key update must match first valid",
+ "op": "assert // execution key update must match first valid",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3928": {
+ "op": "dup",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3929": {
+ "op": "pushint 10 // 10",
+ "defined_out": [
+ "10",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "10"
+ ]
+ },
+ "3931": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "10",
+ "8"
+ ]
+ },
+ "3932": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0"
+ ]
+ },
+ "3933": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "values%1#0"
+ ]
+ },
+ "3934": {
+ "op": "uncover 3",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "lastValid#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "values%1#0",
+ "lastValid#0"
+ ]
+ },
+ "3936": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "tmp%4#1"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "tmp%4#1"
+ ]
+ },
+ "3937": {
+ "error": "execution key update must match last valid",
+ "op": "assert // execution key update must match last valid",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3938": {
+ "op": "dup",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3939": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "3940": {
+ "op": "pop",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3941": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)"
+ ]
+ },
+ "3942": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "0"
+ ]
+ },
+ "3943": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0"
+ ]
+ },
+ "3944": {
+ "op": "dig 1",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%box_get%0#0 (copy)"
+ ]
+ },
+ "3946": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0"
+ ]
+ },
+ "3947": {
+ "op": "dig 2",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "aggregate%box_get%0#0 (copy)"
+ ]
+ },
+ "3949": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%extract_uint16%0#0 (copy)",
+ "aggregate%len%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%len%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "aggregate%extract_uint16%0#0 (copy)"
+ ]
+ },
+ "3951": {
+ "op": "uncover 2",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%box_get%0#0 (copy)",
+ "aggregate%extract_uint16%0#0 (copy)",
+ "aggregate%len%0#0"
+ ]
+ },
+ "3953": {
+ "op": "substring3",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "groups#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0"
+ ]
+ },
+ "3954": {
+ "op": "uncover 4",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "groups#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0",
+ "groups#0"
+ ]
+ },
+ "3956": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "aggregate%substring3%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "3959": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0"
+ ]
+ },
+ "3960": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "concat%0#0 (copy)",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "concat%0#0 (copy)"
+ ]
+ },
+ "3961": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "extract_to_end%1#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "extract_to_end%1#0"
+ ]
+ },
+ "3964": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "firstValid#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "len%0#0"
+ ]
+ },
+ "3965": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "firstValid#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "3967": {
+ "op": "/",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "div_floor%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "div_floor%0#0"
+ ]
+ },
+ "3968": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "as_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "as_bytes%0#0"
+ ]
+ },
+ "3969": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "as_u16_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "concat%0#0",
+ "as_u16_bytes%0#0"
+ ]
+ },
+ "3972": {
+ "op": "replace2 0",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "replace%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%extract_uint16%0#0",
+ "replace%0#0"
+ ]
+ },
+ "3974": {
+ "op": "uncover 2",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%extract_uint16%0#0",
+ "replace%0#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "3976": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%extract_uint16%0#0",
+ "replace%0#0",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "3977": {
+ "op": "uncover 3",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "replace%0#0",
+ "aggregate%box_get%0#0",
+ "0",
+ "aggregate%extract_uint16%0#0"
+ ]
+ },
+ "3979": {
+ "op": "extract3",
+ "defined_out": [
+ "aggregate%data_up_to_item%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "replace%0#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "replace%0#0",
+ "aggregate%data_up_to_item%0#0"
+ ]
+ },
+ "3980": {
+ "op": "swap",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%data_up_to_item%0#0",
+ "replace%0#0"
+ ]
+ },
+ "3981": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%updated_data%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%updated_data%0#0"
+ ]
+ },
+ "3982": {
+ "op": "dig 1",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%updated_data%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "3984": {
+ "op": "box_del",
+ "defined_out": [
+ "aggregate%updated_data%0#0",
+ "box_prefixed_key%0#0",
+ "firstValid#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%updated_data%0#0",
+ "{box_del}"
+ ]
+ },
+ "3985": {
+ "op": "pop",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "aggregate%updated_data%0#0"
+ ]
+ },
+ "3986": {
+ "op": "box_put",
+ "stack_out": [
+ "firstValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "3987": {
+ "op": "b arc58_addExecutionKey_after_if_else@4"
+ },
+ "3990": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeExecutionKey[routing]",
+ "params": {},
+ "block": "arc58_removeExecutionKey",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0"
+ ]
+ },
+ "3993": {
+ "op": "dup",
+ "defined_out": [
+ "lease#0",
+ "lease#0 (copy)"
+ ],
+ "stack_out": [
+ "lease#0",
+ "lease#0 (copy)"
+ ]
+ },
+ "3994": {
+ "op": "len",
+ "defined_out": [
+ "lease#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "len%0#0"
+ ]
+ },
+ "3995": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "lease#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "len%0#0",
+ "32"
+ ]
+ },
+ "3997": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "eq%0#0"
+ ]
+ },
+ "3998": {
+ "error": "invalid number of bytes for uint8[32]",
+ "op": "assert // invalid number of bytes for uint8[32]",
+ "stack_out": [
+ "lease#0"
+ ]
+ },
+ "3999": {
+ "op": "bytec 8 // \"x\"",
+ "defined_out": [
+ "\"x\"",
+ "lease#0"
+ ],
+ "stack_out": [
+ "lease#0",
+ "\"x\""
+ ]
+ },
+ "4001": {
+ "op": "swap",
+ "stack_out": [
+ "\"x\"",
+ "lease#0"
+ ]
+ },
+ "4002": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4003": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4004": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4005": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4007": {
+ "error": "execution key does not exist",
+ "op": "assert // execution key does not exist",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4008": {
+ "op": "txn Sender",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1"
+ ]
+ },
+ "4010": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "4011": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "box_prefixed_key%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "4012": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0",
+ "maybe_value%0#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "4013": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "4014": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1"
+ ]
+ },
+ "4015": {
+ "op": "bnz arc58_removeExecutionKey_bool_true@3",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4018": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4019": {
+ "op": "pushint 10 // 10",
+ "defined_out": [
+ "10",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "10"
+ ]
+ },
+ "4021": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "10",
+ "8",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "10",
+ "8"
+ ]
+ },
+ "4022": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "4023": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "values%0#0"
+ ]
+ },
+ "4024": {
+ "op": "global Round",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#0",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "values%0#0",
+ "tmp%2#0"
+ ]
+ },
+ "4026": {
+ "op": "<",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%3#0"
+ ]
+ },
+ "4027": {
+ "op": "bz arc58_removeExecutionKey_bool_false@4",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4030": {
+ "block": "arc58_removeExecutionKey_bool_true@3",
+ "stack_in": [
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "or_result%0#0"
+ ]
+ },
+ "4031": {
+ "error": "admin only",
+ "block": "arc58_removeExecutionKey_bool_merge@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "or_result%0#0"
+ ],
+ "op": "assert // admin only",
+ "defined_out": [],
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4032": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4033": {
+ "op": "box_del",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "{box_del}"
+ ]
+ },
+ "4034": {
+ "op": "pop",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4035": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "4036": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "box_prefixed_key%0#0",
+ "tmp%0#2"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_user_interaction\"",
+ "tmp%0#2"
+ ]
+ },
+ "4038": {
+ "op": "app_global_put",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4039": {
+ "op": "bytec 6 // \"last_change\"",
+ "defined_out": [
+ "\"last_change\"",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_change\""
+ ]
+ },
+ "4041": {
+ "op": "global LatestTimestamp",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"last_change\"",
+ "tmp%0#2"
+ ]
+ },
+ "4043": {
+ "op": "app_global_put",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4044": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "1"
+ ]
+ },
+ "4045": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4046": {
+ "block": "arc58_removeExecutionKey_bool_false@4",
+ "stack_in": [
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "or_result%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "or_result%0#0"
+ ]
+ },
+ "4047": {
+ "op": "b arc58_removeExecutionKey_bool_merge@5"
+ },
+ "4050": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getPlugins[routing]",
+ "params": {},
+ "block": "arc58_getPlugins",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4051": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4052": {
+ "op": "txna ApplicationArgs 1"
+ },
+ "4055": {
+ "op": "bytec 10 // 0x0000"
+ },
+ "4057": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4058": {
+ "block": "arc58_getPlugins_while_top@2",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "keys#0"
+ ]
+ },
+ "4060": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "keys#0",
+ "0"
+ ]
+ },
+ "4061": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4062": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4063": {
+ "op": "bury 5",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4065": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0",
+ "i#0"
+ ]
+ },
+ "4067": {
+ "op": ">",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "keys#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4068": {
+ "op": "bz arc58_getPlugins_after_while@7",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4071": {
+ "op": "dig 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "keys#0"
+ ]
+ },
+ "4073": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0"
+ ]
+ },
+ "4076": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0"
+ ]
+ },
+ "4078": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0 (copy)",
+ "i#0 (copy)"
+ ]
+ },
+ "4079": {
+ "op": "cover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "4081": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "i#0",
+ "i#0 (copy)",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0 (copy)",
+ "2"
+ ]
+ },
+ "4082": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4083": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%array_length%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)"
+ ]
+ },
+ "4085": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4086": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0"
+ ]
+ },
+ "4087": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0"
+ ]
+ },
+ "4089": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4090": {
+ "op": "+",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0"
+ ]
+ },
+ "4091": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4092": {
+ "op": "bury 4",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0"
+ ]
+ },
+ "4094": {
+ "op": "dig 6",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4096": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "aggregate%array_length%0#0",
+ "i#0 (copy)"
+ ]
+ },
+ "4098": {
+ "error": "index access is out of bounds",
+ "op": "- // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "aggregate%has_next%0#0"
+ ]
+ },
+ "4099": {
+ "op": "dig 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "aggregate%has_next%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)"
+ ]
+ },
+ "4101": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0"
+ ]
+ },
+ "4102": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "i#0"
+ ]
+ },
+ "4104": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "i#0",
+ "2"
+ ]
+ },
+ "4105": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%next_item_offset_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%next_item_offset_offset%0#0"
+ ]
+ },
+ "4106": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%next_item_offset_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)"
+ ]
+ },
+ "4108": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%next_item_offset_offset%0#0"
+ ]
+ },
+ "4109": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%next_item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%has_next%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%next_item_offset%0#0"
+ ]
+ },
+ "4110": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%end_of_array%0#0",
+ "aggregate%next_item_offset%0#0",
+ "aggregate%has_next%0#0"
+ ]
+ },
+ "4112": {
+ "op": "select",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_length%0#0",
+ "aggregate%end_offset%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%end_offset%0#0"
+ ]
+ },
+ "4113": {
+ "op": "substring3",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%substring3%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%substring3%0#0"
+ ]
+ },
+ "4114": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "aggregate%array_length%0#0",
+ "aggregate%substring3%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%substring3%0#0",
+ "\"p\""
+ ]
+ },
+ "4116": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "\"p\"",
+ "aggregate%substring3%0#0"
+ ]
+ },
+ "4117": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4118": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4119": {
+ "op": "bury 6",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4121": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4122": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4124": {
+ "op": "bz arc58_getPlugins_after_if_else@5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4127": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4129": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "4130": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4131": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "plugins#0"
+ ]
+ },
+ "4133": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ]
+ },
+ "4134": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "0"
+ ]
+ },
+ "4135": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "plugins#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "4136": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "plugins#0"
+ ]
+ },
+ "4137": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4140": {
+ "op": "bytec 20 // 0x0002",
+ "defined_out": [
+ "0x0002",
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002"
+ ]
+ },
+ "4142": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4144": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4145": {
+ "op": "cover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4147": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1"
+ ]
+ },
+ "4148": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4150": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4153": {
+ "op": "bury 2",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "keys#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4155": {
+ "op": "b arc58_getPlugins_while_top@2"
+ },
+ "4158": {
+ "block": "arc58_getPlugins_after_if_else@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4160": {
+ "op": "dup",
+ "defined_out": [
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ]
+ },
+ "4161": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "0"
+ ]
+ },
+ "4162": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "extract_uint16%1#0"
+ ]
+ },
+ "4163": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ]
+ },
+ "4164": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0"
+ ]
+ },
+ "4167": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1"
+ ]
+ },
+ "4168": {
+ "op": "bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "defined_out": [
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1",
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000"
+ ]
+ },
+ "4170": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4173": {
+ "op": "bury 2",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4175": {
+ "op": "b arc58_getPlugins_while_top@2"
+ },
+ "4178": {
+ "block": "arc58_getPlugins_after_while@7",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "0x151f7c75"
+ ]
+ },
+ "4180": {
+ "op": "dig 2",
+ "defined_out": [
+ "0x151f7c75",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "0x151f7c75",
+ "plugins#0"
+ ]
+ },
+ "4182": {
+ "op": "concat",
+ "defined_out": [
+ "plugins#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "tmp%2#0"
+ ]
+ },
+ "4183": {
+ "op": "log",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4184": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4185": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%array_length%0#0",
+ "keys#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4186": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getNamedPlugins[routing]",
+ "params": {},
+ "block": "arc58_getNamedPlugins",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4187": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "4188": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1"
+ ]
+ },
+ "4189": {
+ "op": "txna ApplicationArgs 1"
+ },
+ "4192": {
+ "op": "bytec 10 // 0x0000"
+ },
+ "4194": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "i#0",
+ "names#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4195": {
+ "block": "arc58_getNamedPlugins_while_top@2",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "names#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "names#0"
+ ]
+ },
+ "4197": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "names#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "names#0",
+ "0"
+ ]
+ },
+ "4198": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "names#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4199": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "names#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_length%0#0",
+ "i#0"
+ ]
+ },
+ "4201": {
+ "op": ">",
+ "defined_out": [
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4202": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "tmp%1#1",
+ "tmp%1#1"
+ ]
+ },
+ "4203": {
+ "op": "bury 5",
+ "defined_out": [
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4205": {
+ "op": "bz arc58_getNamedPlugins_after_while@9",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4208": {
+ "op": "dig 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "names#0"
+ ]
+ },
+ "4210": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0"
+ ]
+ },
+ "4213": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "tmp%1#1"
+ ]
+ },
+ "4215": {
+ "error": "index access is out of bounds",
+ "op": "assert // index access is out of bounds",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0"
+ ]
+ },
+ "4216": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0"
+ ]
+ },
+ "4218": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0",
+ "2"
+ ]
+ },
+ "4219": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4220": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset_offset%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)"
+ ]
+ },
+ "4222": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4223": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0"
+ ]
+ },
+ "4224": {
+ "op": "dup2",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_offset%0#0 (copy)",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset%0#0 (copy)"
+ ]
+ },
+ "4225": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_length%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_length%0#0"
+ ]
+ },
+ "4226": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_length%0#0",
+ "2"
+ ]
+ },
+ "4227": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_head_tail_length%0#0",
+ "aggregate%item_offset%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_head_tail_length%0#0"
+ ]
+ },
+ "4228": {
+ "op": "extract3",
+ "defined_out": [
+ "aggregate%item%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%item%0#0"
+ ]
+ },
+ "4229": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "i#0",
+ "names#0",
+ "tmp%1#1",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "values%0#0"
+ ]
+ },
+ "4232": {
+ "op": "bytec 16 // \"n\"",
+ "defined_out": [
+ "\"n\"",
+ "i#0",
+ "names#0",
+ "tmp%1#1",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "values%0#0",
+ "\"n\""
+ ]
+ },
+ "4234": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "\"n\"",
+ "values%0#0"
+ ]
+ },
+ "4235": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4236": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4237": {
+ "op": "bury 7",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4239": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "maybe_exists%0#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4240": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4242": {
+ "op": "bz arc58_getNamedPlugins_after_if_else@7",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4245": {
+ "op": "dig 5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4247": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "nameKey#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "nameKey#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "4248": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "nameKey#0"
+ ]
+ },
+ "4249": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "nameKey#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "nameKey#0",
+ "\"p\""
+ ]
+ },
+ "4251": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "\"p\"",
+ "nameKey#0"
+ ]
+ },
+ "4252": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "4253": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%2#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "4254": {
+ "op": "bury 6",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "4256": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "maybe_exists%1#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "_%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "4257": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "4259": {
+ "op": "bz arc58_getNamedPlugins_after_if_else@6",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4262": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "box_prefixed_key%2#0"
+ ]
+ },
+ "4264": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "aggregate%box_get%3#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "names#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "aggregate%box_get%3#0"
+ ]
+ },
+ "4265": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0"
+ ]
+ },
+ "4266": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "plugins#0"
+ ]
+ },
+ "4268": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ]
+ },
+ "4269": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "0"
+ ]
+ },
+ "4270": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "plugins#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "4271": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "extract_uint16%0#0",
+ "plugins#0"
+ ]
+ },
+ "4272": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%box_get%2#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4275": {
+ "op": "bytec 20 // 0x0002",
+ "defined_out": [
+ "0x0002",
+ "aggregate%box_get%2#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%box_get%2#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002"
+ ]
+ },
+ "4277": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002",
+ "aggregate%box_get%2#0"
+ ]
+ },
+ "4279": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4280": {
+ "op": "cover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4282": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1"
+ ]
+ },
+ "4283": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4285": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4288": {
+ "op": "bury 2",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "i#0",
+ "names#0",
+ "plugins#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4290": {
+ "block": "arc58_getNamedPlugins_block@8",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4291": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4292": {
+ "op": "+",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4293": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4295": {
+ "op": "b arc58_getNamedPlugins_while_top@2"
+ },
+ "4298": {
+ "block": "arc58_getNamedPlugins_after_if_else@6",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4300": {
+ "op": "dup",
+ "defined_out": [
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ]
+ },
+ "4301": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "0"
+ ]
+ },
+ "4302": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "extract_uint16%1#0"
+ ]
+ },
+ "4303": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ]
+ },
+ "4304": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0"
+ ]
+ },
+ "4307": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1"
+ ]
+ },
+ "4308": {
+ "op": "bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "defined_out": [
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1",
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000"
+ ]
+ },
+ "4310": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4313": {
+ "op": "bury 2",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4315": {
+ "op": "b arc58_getNamedPlugins_block@8"
+ },
+ "4318": {
+ "block": "arc58_getNamedPlugins_after_if_else@7",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4320": {
+ "op": "dup",
+ "defined_out": [
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ]
+ },
+ "4321": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "plugins#0",
+ "plugins#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "plugins#0 (copy)",
+ "0"
+ ]
+ },
+ "4322": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "extract_uint16%2#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0",
+ "extract_uint16%2#0"
+ ]
+ },
+ "4323": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%2#0",
+ "plugins#0"
+ ]
+ },
+ "4324": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "extract_to_end%2#0",
+ "extract_uint16%2#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%2#0",
+ "extract_to_end%2#0"
+ ]
+ },
+ "4327": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "extract_to_end%2#0",
+ "extract_uint16%2#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%2#0",
+ "extract_to_end%2#0",
+ "1"
+ ]
+ },
+ "4328": {
+ "op": "bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "defined_out": [
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000",
+ "1",
+ "extract_to_end%2#0",
+ "extract_uint16%2#0",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "extract_uint16%2#0",
+ "extract_to_end%2#0",
+ "1",
+ "0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000"
+ ]
+ },
+ "4330": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "plugins#0"
+ ]
+ },
+ "4333": {
+ "op": "bury 2",
+ "defined_out": [
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4335": {
+ "op": "b arc58_getNamedPlugins_block@8"
+ },
+ "4338": {
+ "block": "arc58_getNamedPlugins_after_while@9",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ],
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "0x151f7c75"
+ ]
+ },
+ "4340": {
+ "op": "dig 2",
+ "defined_out": [
+ "0x151f7c75",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "0x151f7c75",
+ "plugins#0"
+ ]
+ },
+ "4342": {
+ "op": "concat",
+ "defined_out": [
+ "plugins#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "tmp%2#0"
+ ]
+ },
+ "4343": {
+ "op": "log",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4344": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "plugins#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4345": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#0",
+ "tmp%1#1",
+ "names#0",
+ "plugins#0",
+ "i#0"
+ ]
+ },
+ "4346": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getEscrows[routing]",
+ "params": {},
+ "block": "arc58_getEscrows",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4347": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1"
+ ]
+ },
+ "4348": {
+ "op": "txna ApplicationArgs 1"
+ },
+ "4351": {
+ "op": "bytec 10 // 0x0000"
+ },
+ "4353": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "escrows#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4354": {
+ "block": "arc58_getEscrows_while_top@2",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dig 2",
+ "defined_out": [
+ "escrows#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "escrows#0"
+ ]
+ },
+ "4356": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "escrows#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "escrows#0",
+ "0"
+ ]
+ },
+ "4357": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "escrows#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4358": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "escrows#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_length%0#0",
+ "i#0"
+ ]
+ },
+ "4360": {
+ "op": ">",
+ "defined_out": [
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4361": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "tmp%1#1",
+ "tmp%1#1"
+ ]
+ },
+ "4362": {
+ "op": "bury 5",
+ "defined_out": [
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4364": {
+ "op": "bz arc58_getEscrows_after_while@7",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4367": {
+ "op": "dig 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "escrows#0"
+ ]
+ },
+ "4369": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0"
+ ]
+ },
+ "4372": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "tmp%1#1"
+ ]
+ },
+ "4374": {
+ "error": "index access is out of bounds",
+ "op": "assert // index access is out of bounds",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0"
+ ]
+ },
+ "4375": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0"
+ ]
+ },
+ "4377": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_head_and_tail%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "i#0",
+ "2"
+ ]
+ },
+ "4378": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4379": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset_offset%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)"
+ ]
+ },
+ "4381": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset_offset%0#0"
+ ]
+ },
+ "4382": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0"
+ ]
+ },
+ "4383": {
+ "op": "dup2",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_offset%0#0 (copy)",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%array_head_and_tail%0#0 (copy)",
+ "aggregate%item_offset%0#0 (copy)"
+ ]
+ },
+ "4384": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_length%0#0",
+ "aggregate%item_offset%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_length%0#0"
+ ]
+ },
+ "4385": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_length%0#0",
+ "2"
+ ]
+ },
+ "4386": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_head_tail_length%0#0",
+ "aggregate%item_offset%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_head_and_tail%0#0",
+ "aggregate%item_offset%0#0",
+ "aggregate%item_head_tail_length%0#0"
+ ]
+ },
+ "4387": {
+ "op": "extract3",
+ "defined_out": [
+ "aggregate%item%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%item%0#0"
+ ]
+ },
+ "4388": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrows#0",
+ "i#0",
+ "tmp%1#1",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "values%0#0"
+ ]
+ },
+ "4391": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1",
+ "values%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "values%0#0",
+ "\"e\""
+ ]
+ },
+ "4393": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "\"e\"",
+ "values%0#0"
+ ]
+ },
+ "4394": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4395": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4396": {
+ "op": "bury 6",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4398": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "maybe_exists%0#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4399": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4401": {
+ "op": "bz arc58_getEscrows_after_if_else@5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4404": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4406": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "4407": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4408": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0"
+ ]
+ },
+ "4410": {
+ "op": "dup"
+ },
+ "4411": {
+ "op": "uncover 2",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4413": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "concat%0#0"
+ ]
+ },
+ "4414": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "result#0"
+ ]
+ },
+ "4415": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "result#0",
+ "0"
+ ]
+ },
+ "4416": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrows#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "4417": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "1"
+ ]
+ },
+ "4418": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "add%0#0"
+ ]
+ },
+ "4419": {
+ "op": "itob",
+ "defined_out": [
+ "as_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "as_bytes%0#0"
+ ]
+ },
+ "4420": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "as_u16_bytes%0#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "as_u16_bytes%0#0"
+ ]
+ },
+ "4423": {
+ "op": "replace2 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4425": {
+ "op": "bury 2",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "i#0",
+ "result#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4427": {
+ "block": "arc58_getEscrows_block@6",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4428": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4429": {
+ "op": "+",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4430": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4432": {
+ "op": "b arc58_getEscrows_while_top@2"
+ },
+ "4435": {
+ "block": "arc58_getEscrows_after_if_else@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4437": {
+ "op": "dup",
+ "defined_out": [
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)"
+ ]
+ },
+ "4438": {
+ "op": "pushbytes 0x000000000000000000",
+ "defined_out": [
+ "0x000000000000000000",
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "0x000000000000000000"
+ ]
+ },
+ "4449": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "concat%1#0"
+ ]
+ },
+ "4450": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "result#0"
+ ]
+ },
+ "4451": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "result#0",
+ "0"
+ ]
+ },
+ "4452": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "extract_uint16%1#0"
+ ]
+ },
+ "4453": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "1"
+ ]
+ },
+ "4454": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "add%1#0"
+ ]
+ },
+ "4455": {
+ "op": "itob",
+ "defined_out": [
+ "as_bytes%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "as_bytes%1#0"
+ ]
+ },
+ "4456": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "as_u16_bytes%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "as_u16_bytes%1#0"
+ ]
+ },
+ "4459": {
+ "op": "replace2 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4461": {
+ "op": "bury 2",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4463": {
+ "op": "b arc58_getEscrows_block@6"
+ },
+ "4466": {
+ "block": "arc58_getEscrows_after_while@7",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75"
+ ]
+ },
+ "4468": {
+ "op": "dig 2",
+ "defined_out": [
+ "0x151f7c75",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75",
+ "result#0"
+ ]
+ },
+ "4470": {
+ "op": "concat",
+ "defined_out": [
+ "result#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "tmp%2#0"
+ ]
+ },
+ "4471": {
+ "op": "log",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4472": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4473": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#1",
+ "escrows#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4474": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getAllowances[routing]",
+ "params": {},
+ "block": "arc58_getAllowances",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4475": {
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0"
+ ]
+ },
+ "4478": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "4479": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "4480": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4481": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "4482": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "4483": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "4485": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "4486": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "4487": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0"
+ ]
+ },
+ "4488": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0"
+ ]
+ },
+ "4491": {
+ "op": "txna ApplicationArgs 2"
+ },
+ "4494": {
+ "op": "dupn 2",
+ "defined_out": [
+ "assets#0",
+ "assets#0 (copy)",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0",
+ "assets#0 (copy)"
+ ]
+ },
+ "4496": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0",
+ "assets#0 (copy)",
+ "0"
+ ]
+ },
+ "4497": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4498": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4499": {
+ "op": "cover 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4501": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "8"
+ ]
+ },
+ "4502": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "mul%1#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "mul%1#0"
+ ]
+ },
+ "4503": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "mul%1#0",
+ "2"
+ ]
+ },
+ "4504": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "add%1#0"
+ ]
+ },
+ "4505": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "add%1#0",
+ "assets#0"
+ ]
+ },
+ "4506": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "len%1#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "add%1#0",
+ "len%1#0"
+ ]
+ },
+ "4507": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "eq%1#0",
+ "escrow#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "eq%1#0"
+ ]
+ },
+ "4508": {
+ "error": "invalid number of bytes for (len+uint64[])",
+ "op": "assert // invalid number of bytes for (len+uint64[])",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4509": {
+ "op": "bytec 10 // 0x0000"
+ },
+ "4511": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4512": {
+ "block": "arc58_getAllowances_while_top@2",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4513": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4515": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4516": {
+ "op": "bz arc58_getAllowances_after_while@7",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4519": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "assets#0"
+ ]
+ },
+ "4521": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "4524": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "4526": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "8"
+ ]
+ },
+ "4527": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "4528": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "8"
+ ]
+ },
+ "4529": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "4530": {
+ "op": "dig 5",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0"
+ ]
+ },
+ "4532": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "escrow#0 (copy)",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "4533": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "4534": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%as_bytes%1#0",
+ "aggregate%encoded_element%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%as_bytes%1#0"
+ ]
+ },
+ "4535": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length_uint16%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "escrow#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "4538": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0"
+ ]
+ },
+ "4539": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "4540": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a"
+ ]
+ },
+ "4542": {
+ "op": "uncover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_value%0#0",
+ "0x000a",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "4544": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "4545": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "4546": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "key#0"
+ ]
+ },
+ "4547": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "escrow#0",
+ "i#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "key#0",
+ "\"a\""
+ ]
+ },
+ "4549": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "\"a\"",
+ "key#0"
+ ]
+ },
+ "4550": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4551": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4552": {
+ "op": "bury 7",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4554": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4555": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4557": {
+ "op": "bz arc58_getAllowances_after_if_else@5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4560": {
+ "op": "dig 5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4562": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "4563": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4564": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0"
+ ]
+ },
+ "4566": {
+ "op": "dup"
+ },
+ "4567": {
+ "op": "uncover 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "aggregate%box_get%0#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4569": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "concat%0#0"
+ ]
+ },
+ "4570": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "result#0"
+ ]
+ },
+ "4571": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "result#0",
+ "0"
+ ]
+ },
+ "4572": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "4573": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "extract_uint16%0#0",
+ "1"
+ ]
+ },
+ "4574": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "add%0#0"
+ ]
+ },
+ "4575": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "as_bytes%0#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "as_bytes%0#0"
+ ]
+ },
+ "4576": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "as_u16_bytes%0#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "concat%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%0#0",
+ "as_u16_bytes%0#0"
+ ]
+ },
+ "4579": {
+ "op": "replace2 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4581": {
+ "op": "bury 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "assets#0",
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "i#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4583": {
+ "block": "arc58_getAllowances_block@6",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4584": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4585": {
+ "op": "+",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4586": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4588": {
+ "op": "b arc58_getAllowances_while_top@2"
+ },
+ "4591": {
+ "block": "arc58_getAllowances_after_if_else@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4593": {
+ "op": "dup",
+ "defined_out": [
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)"
+ ]
+ },
+ "4594": {
+ "op": "pushbytes 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "defined_out": [
+ "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000",
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000"
+ ]
+ },
+ "4646": {
+ "error": "max array length exceeded",
+ "op": "concat // on error: max array length exceeded",
+ "defined_out": [
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "concat%1#0"
+ ]
+ },
+ "4647": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "result#0"
+ ]
+ },
+ "4648": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "result#0",
+ "0"
+ ]
+ },
+ "4649": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "extract_uint16%1#0"
+ ]
+ },
+ "4650": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "extract_uint16%1#0",
+ "1"
+ ]
+ },
+ "4651": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "add%1#0"
+ ]
+ },
+ "4652": {
+ "op": "itob",
+ "defined_out": [
+ "as_bytes%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "as_bytes%1#0"
+ ]
+ },
+ "4653": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "as_u16_bytes%1#0",
+ "concat%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "concat%1#0",
+ "as_u16_bytes%1#0"
+ ]
+ },
+ "4656": {
+ "op": "replace2 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4658": {
+ "op": "bury 2",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4660": {
+ "op": "b arc58_getAllowances_block@6"
+ },
+ "4663": {
+ "block": "arc58_getAllowances_after_while@7",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75"
+ ]
+ },
+ "4665": {
+ "op": "dig 2",
+ "defined_out": [
+ "0x151f7c75",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75",
+ "result#0"
+ ]
+ },
+ "4667": {
+ "op": "concat",
+ "defined_out": [
+ "result#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "tmp%4#0"
+ ]
+ },
+ "4668": {
+ "op": "log",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4669": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4670": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0",
+ "assets#0",
+ "aggregate%array_length%1#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4671": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getExecutions[routing]",
+ "params": {},
+ "block": "arc58_getExecutions",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4672": {
+ "op": "txna ApplicationArgs 1"
+ },
+ "4675": {
+ "op": "dupn 2",
+ "defined_out": [
+ "leases#0",
+ "leases#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "leases#0",
+ "leases#0 (copy)"
+ ]
+ },
+ "4677": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "leases#0",
+ "leases#0 (copy)",
+ "0"
+ ]
+ },
+ "4678": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "leases#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4679": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4680": {
+ "op": "cover 2",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4682": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "aggregate%array_length%0#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "32"
+ ]
+ },
+ "4684": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "mul%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "mul%0#0"
+ ]
+ },
+ "4685": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "mul%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "mul%0#0",
+ "2"
+ ]
+ },
+ "4686": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%array_length%0#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "add%0#0"
+ ]
+ },
+ "4687": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "add%0#0",
+ "leases#0"
+ ]
+ },
+ "4688": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "aggregate%array_length%0#0",
+ "leases#0",
+ "len%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "4689": {
+ "op": "==",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "eq%0#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "eq%0#0"
+ ]
+ },
+ "4690": {
+ "error": "invalid number of bytes for (len+uint8[32][])",
+ "op": "assert // invalid number of bytes for (len+uint8[32][])",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4691": {
+ "op": "bytec 10 // 0x0000"
+ },
+ "4693": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4694": {
+ "block": "arc58_getExecutions_while_top@2",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4695": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "i#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4697": {
+ "op": "<",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "tmp%1#1"
+ ]
+ },
+ "4698": {
+ "op": "bz arc58_getExecutions_after_while@7",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4701": {
+ "op": "dig 3",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "leases#0"
+ ]
+ },
+ "4703": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "4706": {
+ "op": "dig 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "4708": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "aggregate%array_length%0#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "32"
+ ]
+ },
+ "4710": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "4711": {
+ "op": "pushint 32 // 32",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "32"
+ ]
+ },
+ "4713": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "4714": {
+ "op": "bytec 8 // \"x\"",
+ "defined_out": [
+ "\"x\"",
+ "aggregate%array_length%0#0",
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%encoded_element%0#0",
+ "\"x\""
+ ]
+ },
+ "4716": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "\"x\"",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "4717": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4718": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4719": {
+ "op": "bury 6",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4721": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4722": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4724": {
+ "op": "bz arc58_getExecutions_after_if_else@5",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4727": {
+ "op": "dig 4",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4729": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "4730": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4731": {
+ "op": "dig 2",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0"
+ ]
+ },
+ "4733": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0",
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0",
+ "result#0 (copy)"
+ ]
+ },
+ "4734": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0",
+ "result#0 (copy)",
+ "0"
+ ]
+ },
+ "4735": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "result#0",
+ "extract_uint16%0#0"
+ ]
+ },
+ "4736": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "result#0"
+ ]
+ },
+ "4737": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4740": {
+ "op": "bytec 20 // 0x0002",
+ "defined_out": [
+ "0x0002",
+ "aggregate%array_length%0#0",
+ "aggregate%box_get%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%box_get%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002"
+ ]
+ },
+ "4742": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "0x0002",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "4744": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4745": {
+ "op": "cover 2",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0"
+ ]
+ },
+ "4747": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%array_length%0#0",
+ "aggregate%concat%0#0",
+ "box_prefixed_key%0#0",
+ "extract_to_end%0#0",
+ "extract_uint16%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "aggregate%concat%0#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1"
+ ]
+ },
+ "4748": {
+ "op": "uncover 3",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%0#0",
+ "extract_to_end%0#0",
+ "1",
+ "aggregate%concat%0#0"
+ ]
+ },
+ "4750": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4753": {
+ "op": "bury 2",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "leases#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4755": {
+ "block": "arc58_getExecutions_block@6",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4756": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4757": {
+ "op": "+",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "i#0"
+ ]
+ },
+ "4758": {
+ "op": "bury 1",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4760": {
+ "op": "b arc58_getExecutions_while_top@2"
+ },
+ "4763": {
+ "block": "arc58_getExecutions_after_if_else@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "dig 1",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4765": {
+ "op": "dup",
+ "defined_out": [
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)"
+ ]
+ },
+ "4766": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "result#0",
+ "result#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "result#0 (copy)",
+ "0"
+ ]
+ },
+ "4767": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0",
+ "extract_uint16%1#0"
+ ]
+ },
+ "4768": {
+ "op": "swap",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ]
+ },
+ "4769": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0"
+ ]
+ },
+ "4772": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1"
+ ]
+ },
+ "4773": {
+ "op": "pushbytes 0x00020012000000000000000000000000000000000000",
+ "defined_out": [
+ "0x00020012000000000000000000000000000000000000",
+ "1",
+ "extract_to_end%1#0",
+ "extract_uint16%1#0",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "extract_uint16%1#0",
+ "extract_to_end%1#0",
+ "1",
+ "0x00020012000000000000000000000000000000000000"
+ ]
+ },
+ "4797": {
+ "callsub": "_puya_lib.arc4.dynamic_array_concat_dynamic_element",
+ "op": "callsub dynamic_array_concat_dynamic_element",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "result#0"
+ ]
+ },
+ "4800": {
+ "op": "bury 2",
+ "defined_out": [
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4802": {
+ "op": "b arc58_getExecutions_block@6"
+ },
+ "4805": {
+ "block": "arc58_getExecutions_after_while@7",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ],
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75"
+ ]
+ },
+ "4807": {
+ "op": "dig 2",
+ "defined_out": [
+ "0x151f7c75",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "0x151f7c75",
+ "result#0"
+ ]
+ },
+ "4809": {
+ "op": "concat",
+ "defined_out": [
+ "result#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "tmp%2#0"
+ ]
+ },
+ "4810": {
+ "op": "log",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4811": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "result#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "4812": {
+ "op": "return",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "leases#0",
+ "aggregate%array_length%0#0",
+ "result#0",
+ "i#0"
+ ]
+ },
+ "4813": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.mbr[routing]",
+ "params": {},
+ "block": "mbr",
+ "stack_in": [],
+ "op": "txna ApplicationArgs 1",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "4816": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "4817": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0",
+ "tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%0#0 (copy)",
+ "0"
+ ]
+ },
+ "4818": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "4819": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "aggregate%array_length%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "aggregate%array_length%0#0",
+ "2"
+ ]
+ },
+ "4820": {
+ "op": "+",
+ "defined_out": [
+ "add%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0"
+ ]
+ },
+ "4821": {
+ "op": "dig 1",
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "tmp%0#0 (copy)"
+ ]
+ },
+ "4823": {
+ "op": "len",
+ "defined_out": [
+ "add%0#0",
+ "len%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "add%0#0",
+ "len%0#0"
+ ]
+ },
+ "4824": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "eq%0#0"
+ ]
+ },
+ "4825": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "4826": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0"
+ ],
+ "stack_out": [
+ "escrow#0"
+ ]
+ },
+ "4829": {
+ "op": "txna ApplicationArgs 2",
+ "defined_out": [
+ "escrow#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0"
+ ]
+ },
+ "4832": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0",
+ "tmp%2#0 (copy)"
+ ]
+ },
+ "4833": {
+ "op": "len",
+ "defined_out": [
+ "escrow#0",
+ "len%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0",
+ "len%1#0"
+ ]
+ },
+ "4834": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "escrow#0",
+ "len%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0",
+ "len%1#0",
+ "8"
+ ]
+ },
+ "4835": {
+ "op": "==",
+ "defined_out": [
+ "eq%1#0",
+ "escrow#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0",
+ "eq%1#0"
+ ]
+ },
+ "4836": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "escrow#0",
+ "tmp%2#0"
+ ]
+ },
+ "4837": {
+ "op": "btoi",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0"
+ ]
+ },
+ "4838": {
+ "op": "txna ApplicationArgs 3",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ]
+ },
+ "4841": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "4842": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "tmp%4#0 (copy)",
+ "0"
+ ]
+ },
+ "4843": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "4844": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "aggregate%array_length%1#0",
+ "2"
+ ]
+ },
+ "4845": {
+ "op": "+",
+ "defined_out": [
+ "add%1#0",
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "add%1#0"
+ ]
+ },
+ "4846": {
+ "op": "dig 1",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "add%1#0",
+ "tmp%4#0 (copy)"
+ ]
+ },
+ "4848": {
+ "op": "len",
+ "defined_out": [
+ "add%1#0",
+ "escrow#0",
+ "len%2#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "add%1#0",
+ "len%2#0"
+ ]
+ },
+ "4849": {
+ "op": "==",
+ "defined_out": [
+ "eq%2#0",
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0",
+ "eq%2#0"
+ ]
+ },
+ "4850": {
+ "error": "invalid number of bytes for (len+utf8[])",
+ "op": "assert // invalid number of bytes for (len+utf8[])",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "tmp%4#0"
+ ]
+ },
+ "4851": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0"
+ ]
+ },
+ "4854": {
+ "op": "txna ApplicationArgs 4",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0"
+ ]
+ },
+ "4857": {
+ "op": "dup",
+ "defined_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0",
+ "tmp%6#0 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0",
+ "tmp%6#0 (copy)"
+ ]
+ },
+ "4858": {
+ "op": "len",
+ "defined_out": [
+ "escrow#0",
+ "len%3#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0",
+ "len%3#0"
+ ]
+ },
+ "4859": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0",
+ "len%3#0",
+ "8"
+ ]
+ },
+ "4860": {
+ "op": "==",
+ "defined_out": [
+ "eq%3#0",
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0",
+ "eq%3#0"
+ ]
+ },
+ "4861": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%6#0"
+ ]
+ },
+ "4862": {
+ "op": "btoi",
+ "defined_out": [
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0"
+ ]
+ },
+ "4863": {
+ "op": "dig 3",
+ "defined_out": [
+ "escrow#0",
+ "escrow#0 (copy)",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "4865": {
+ "op": "len",
+ "defined_out": [
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%0#1"
+ ]
+ },
+ "4866": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%0#1",
+ "400"
+ ]
+ },
+ "4868": {
+ "op": "*",
+ "defined_out": [
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2"
+ ]
+ },
+ "4869": {
+ "op": "pushint 6500 // 6500",
+ "defined_out": [
+ "6500",
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "6500"
+ ]
+ },
+ "4872": {
+ "op": "dig 1",
+ "defined_out": [
+ "6500",
+ "escrow#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%1#2",
+ "tmp%1#2 (copy)"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "6500",
+ "tmp%1#2 (copy)"
+ ]
+ },
+ "4874": {
+ "op": "+",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "methodCount#0",
+ "plugin#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0"
+ ]
+ },
+ "4875": {
+ "op": "dig 5",
+ "stack_out": [
+ "escrow#0",
+ "methodCount#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "4877": {
+ "op": "uncover 5",
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "escrow#0 (copy)",
+ "methodCount#0"
+ ]
+ },
+ "4879": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "op": "callsub pluginsMbr",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "plugin#0",
+ "tmp%1#1",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "plugin#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1"
+ ]
+ },
+ "4882": {
+ "op": "uncover 4",
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "plugin#0"
+ ]
+ },
+ "4884": {
+ "op": "len",
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%0#1"
+ ]
+ },
+ "4885": {
+ "op": "intc 4 // 400",
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%0#1",
+ "400"
+ ]
+ },
+ "4887": {
+ "op": "*",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%1#2",
+ "tmp%1#4"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%1#4"
+ ]
+ },
+ "4888": {
+ "op": "intc 5 // 21700",
+ "defined_out": [
+ "21700",
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%1#2",
+ "tmp%1#4"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%1#4",
+ "21700"
+ ]
+ },
+ "4890": {
+ "op": "+",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%1#2",
+ "tmp%2#4"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4"
+ ]
+ },
+ "4891": {
+ "op": "intc 6 // 27700",
+ "defined_out": [
+ "27700",
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%1#2",
+ "tmp%2#4"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "tmp%1#2",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "27700"
+ ]
+ },
+ "4893": {
+ "op": "uncover 4",
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "27700",
+ "tmp%1#2"
+ ]
+ },
+ "4895": {
+ "op": "+",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "groups#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5"
+ ]
+ },
+ "4896": {
+ "op": "uncover 4",
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "groups#0"
+ ]
+ },
+ "4898": {
+ "op": "pushint 12800 // 12800",
+ "defined_out": [
+ "12800",
+ "escrow#0",
+ "escrows#0",
+ "groups#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "groups#0",
+ "12800"
+ ]
+ },
+ "4901": {
+ "op": "*",
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%1#2"
+ ]
+ },
+ "4902": {
+ "op": "pushint 20500 // 20500",
+ "defined_out": [
+ "20500",
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%1#2",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%1#2",
+ "20500"
+ ]
+ },
+ "4906": {
+ "op": "+",
+ "defined_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2"
+ ]
+ },
+ "4907": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrow#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "\"e\""
+ ]
+ },
+ "4909": {
+ "op": "uncover 6",
+ "stack_out": [
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "\"e\"",
+ "escrow#0"
+ ]
+ },
+ "4911": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4912": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5"
+ ],
+ "stack_out": [
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4913": {
+ "op": "cover 6",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "_%0#0"
+ ]
+ },
+ "4915": {
+ "op": "pop",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2"
+ ]
+ },
+ "4916": {
+ "op": "global MinBalance",
+ "defined_out": [
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%5#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%5#1"
+ ]
+ },
+ "4918": {
+ "op": "pushint 162100 // 162100",
+ "defined_out": [
+ "162100",
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%5#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%5#1",
+ "162100"
+ ]
+ },
+ "4922": {
+ "op": "+",
+ "defined_out": [
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%7#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%7#1"
+ ]
+ },
+ "4923": {
+ "op": "dig 5",
+ "defined_out": [
+ "escrows#0",
+ "escrows#0 (copy)",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%7#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%7#1",
+ "escrows#0 (copy)"
+ ]
+ },
+ "4925": {
+ "op": "+",
+ "defined_out": [
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%1#1",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%1#1",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1"
+ ]
+ },
+ "4926": {
+ "op": "uncover 4",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "tmp%1#1"
+ ]
+ },
+ "4928": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%2#4",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "4929": {
+ "op": "uncover 4",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%val_as_bytes%0#0",
+ "tmp%2#4"
+ ]
+ },
+ "4931": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "aggregate%val_as_bytes%1#0",
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%val_as_bytes%0#0",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "4932": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "escrows#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "escrows#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%1#0"
+ ]
+ },
+ "4933": {
+ "op": "uncover 4",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%1#0",
+ "escrows#0"
+ ]
+ },
+ "4935": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%val_as_bytes%2#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%1#0",
+ "aggregate%val_as_bytes%2#0"
+ ]
+ },
+ "4936": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%2#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%2#5",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#5",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%2#0"
+ ]
+ },
+ "4937": {
+ "op": "uncover 3",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%2#0",
+ "tmp%2#5"
+ ]
+ },
+ "4939": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%2#0",
+ "aggregate%val_as_bytes%3#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%2#0",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "4940": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%3#0",
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%2#2",
+ "tmp%8#1",
+ "aggregate%head%3#0"
+ ]
+ },
+ "4941": {
+ "op": "uncover 2",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%8#1",
+ "aggregate%head%3#0",
+ "tmp%2#2"
+ ]
+ },
+ "4943": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%3#0",
+ "aggregate%val_as_bytes%4#0",
+ "maybe_exists%0#0",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%8#1",
+ "aggregate%head%3#0",
+ "aggregate%val_as_bytes%4#0"
+ ]
+ },
+ "4944": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%4#0",
+ "maybe_exists%0#0",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%8#1",
+ "aggregate%head%4#0"
+ ]
+ },
+ "4945": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "aggregate%head%4#0",
+ "maybe_exists%0#0",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%8#1",
+ "aggregate%head%4#0",
+ "0x00"
+ ]
+ },
+ "4947": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_exists%0#0",
+ "tmp%8#1",
+ "aggregate%head%4#0",
+ "0x00",
+ "0"
+ ]
+ },
+ "4948": {
+ "op": "uncover 4",
+ "stack_out": [
+ "tmp%8#1",
+ "aggregate%head%4#0",
+ "0x00",
+ "0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "4950": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%encoded_bool%0#0",
+ "aggregate%head%4#0",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "tmp%8#1",
+ "aggregate%head%4#0",
+ "aggregate%encoded_bool%0#0"
+ ]
+ },
+ "4951": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%5#0",
+ "tmp%8#1"
+ ],
+ "stack_out": [
+ "tmp%8#1",
+ "aggregate%head%5#0"
+ ]
+ },
+ "4952": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%head%5#0",
+ "tmp%8#1"
+ ]
+ },
+ "4953": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%head%5#0",
+ "aggregate%val_as_bytes%5#0"
+ ],
+ "stack_out": [
+ "aggregate%head%5#0",
+ "aggregate%val_as_bytes%5#0"
+ ]
+ },
+ "4954": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%6#0"
+ ],
+ "stack_out": [
+ "aggregate%head%6#0"
+ ]
+ },
+ "4955": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "aggregate%head%6#0"
+ ],
+ "stack_out": [
+ "aggregate%head%6#0",
+ "0x151f7c75"
+ ]
+ },
+ "4957": {
+ "op": "swap",
+ "stack_out": [
+ "0x151f7c75",
+ "aggregate%head%6#0"
+ ]
+ },
+ "4958": {
+ "op": "concat",
+ "defined_out": [
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "tmp%9#0"
+ ]
+ },
+ "4959": {
+ "op": "log",
+ "stack_out": []
+ },
+ "4960": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "4961": {
+ "op": "return",
+ "stack_out": []
+ },
+ "4962": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr",
+ "params": {
+ "escrow#0": "bytes",
+ "methodCount#0": "uint64"
+ },
+ "block": "pluginsMbr",
+ "stack_in": [],
+ "op": "proto 2 1"
+ },
+ "4965": {
+ "op": "pushint 20 // 20",
+ "defined_out": [
+ "20"
+ ],
+ "stack_out": [
+ "20"
+ ]
+ },
+ "4967": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "20",
+ "methodCount#0 (copy)"
+ ],
+ "stack_out": [
+ "20",
+ "methodCount#0 (copy)"
+ ]
+ },
+ "4969": {
+ "op": "*",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "4970": {
+ "op": "frame_dig -2",
+ "defined_out": [
+ "escrow#0 (copy)",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "4972": {
+ "op": "len",
+ "defined_out": [
+ "tmp%0#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "tmp%1#0"
+ ]
+ },
+ "4973": {
+ "op": "+",
+ "defined_out": [
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%2#0"
+ ]
+ },
+ "4974": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%2#0",
+ "400"
+ ]
+ },
+ "4976": {
+ "op": "*",
+ "defined_out": [
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0"
+ ]
+ },
+ "4977": {
+ "op": "pushint 38900 // 38900",
+ "defined_out": [
+ "38900",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "38900"
+ ]
+ },
+ "4981": {
+ "op": "+",
+ "defined_out": [
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%4#0"
+ ]
+ },
+ "4982": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "4983": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.maybeNewEscrow",
+ "params": {
+ "escrow#0": "bytes"
+ },
+ "block": "maybeNewEscrow",
+ "stack_in": [],
+ "op": "proto 1 1"
+ },
+ "4986": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4987": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "4989": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0 (copy)",
+ "\"\""
+ ]
+ },
+ "4990": {
+ "op": "==",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#0"
+ ]
+ },
+ "4991": {
+ "op": "bz maybeNewEscrow_after_if_else@2",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "4994": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "4995": {
+ "op": "swap"
+ },
+ "4996": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "4997": {
+ "block": "maybeNewEscrow_after_if_else@2",
+ "stack_in": [
+ "box_prefixed_key%0#0"
+ ],
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\""
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"e\""
+ ]
+ },
+ "4999": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "\"e\"",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "\"e\"",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5001": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5002": {
+ "op": "dup",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5003": {
+ "op": "frame_bury 0",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5005": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5006": {
+ "op": "bury 1",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5008": {
+ "op": "bz maybeNewEscrow_ternary_false@4",
+ "stack_out": [
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5011": {
+ "op": "frame_dig 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5013": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "5014": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "5015": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "5016": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "ternary_result%0#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "ternary_result%0#1"
+ ]
+ },
+ "5017": {
+ "block": "maybeNewEscrow_ternary_merge@5",
+ "stack_in": [
+ "box_prefixed_key%0#0",
+ "ternary_result%0#1"
+ ],
+ "op": "swap",
+ "defined_out": [
+ "ternary_result%0#1"
+ ]
+ },
+ "5018": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5019": {
+ "block": "maybeNewEscrow_ternary_false@4",
+ "stack_in": [
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig -1",
+ "defined_out": [
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5021": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.newEscrow",
+ "op": "callsub newEscrow",
+ "defined_out": [
+ "ternary_result%0#1"
+ ],
+ "stack_out": [
+ "box_prefixed_key%0#0",
+ "ternary_result%0#1"
+ ]
+ },
+ "5024": {
+ "op": "b maybeNewEscrow_ternary_merge@5"
+ },
+ "5027": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.newEscrow",
+ "params": {
+ "escrow#0": "bytes"
+ },
+ "block": "newEscrow",
+ "stack_in": [],
+ "op": "proto 1 1"
+ },
+ "5030": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "0"
+ ]
+ },
+ "5031": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5032": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5033": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%0#0"
+ ]
+ },
+ "5034": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "maybe_value%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%0#0",
+ "tmp%0#0"
+ ]
+ },
+ "5036": {
+ "op": "!=",
+ "defined_out": [
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0"
+ ]
+ },
+ "5037": {
+ "op": "bz newEscrow_after_if_else@3",
+ "stack_out": []
+ },
+ "5040": {
+ "op": "itxn_begin"
+ },
+ "5041": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "0"
+ ]
+ },
+ "5042": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "stack_out": [
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5043": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%1#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "5044": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%1#0"
+ ]
+ },
+ "5045": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "5047": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "escrow#0 (copy)",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5049": {
+ "op": "len",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%0#1"
+ ]
+ },
+ "5050": {
+ "op": "intc 4 // 400",
+ "defined_out": [
+ "400",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0",
+ "tmp%0#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%0#1",
+ "400"
+ ]
+ },
+ "5052": {
+ "op": "*",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%1#1"
+ ]
+ },
+ "5053": {
+ "op": "pushint 6500 // 6500",
+ "defined_out": [
+ "6500",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0",
+ "tmp%1#1"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%1#1",
+ "6500"
+ ]
+ },
+ "5056": {
+ "op": "+",
+ "defined_out": [
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "maybe_value%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0",
+ "tmp%2#0"
+ ]
+ },
+ "5057": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "maybe_value%1#0",
+ "inner_txn_params%0%%param_Receiver_idx_0#0"
+ ]
+ },
+ "5059": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "maybe_value%1#0"
+ ]
+ },
+ "5061": {
+ "op": "itxn_field Sender",
+ "stack_out": []
+ },
+ "5063": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "5064": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": []
+ },
+ "5066": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "0"
+ ]
+ },
+ "5067": {
+ "op": "itxn_field Fee",
+ "stack_out": []
+ },
+ "5069": {
+ "op": "itxn_submit"
+ },
+ "5070": {
+ "block": "newEscrow_after_if_else@3",
+ "stack_in": [],
+ "op": "itxn_begin"
+ },
+ "5071": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "0"
+ ]
+ },
+ "5072": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5073": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%2#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "5074": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%2#0"
+ ]
+ },
+ "5075": {
+ "op": "pushint 150000 // 150000",
+ "defined_out": [
+ "150000",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "150000"
+ ]
+ },
+ "5079": {
+ "op": "global MinBalance",
+ "defined_out": [
+ "150000",
+ "maybe_value%2#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "150000",
+ "tmp%2#0"
+ ]
+ },
+ "5081": {
+ "op": "+",
+ "defined_out": [
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0"
+ ]
+ },
+ "5082": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "0"
+ ]
+ },
+ "5083": {
+ "op": "bytec 18 // \"escrow_factory\"",
+ "defined_out": [
+ "\"escrow_factory\"",
+ "0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%2#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "0",
+ "\"escrow_factory\""
+ ]
+ },
+ "5085": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_exists%3#0",
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "5086": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5087": {
+ "op": "dup",
+ "defined_out": [
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "maybe_value%3#0 (copy)"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0",
+ "maybe_value%3#0 (copy)"
+ ]
+ },
+ "5088": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%0#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "5090": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0",
+ "value%0#0"
+ ]
+ },
+ "5091": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "maybe_value%2#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5093": {
+ "op": "swap",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "inner_txn_params%1%%param_Amount_idx_0#0"
+ ]
+ },
+ "5094": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5096": {
+ "op": "dig 1",
+ "defined_out": [
+ "maybe_value%2#0",
+ "maybe_value%2#0 (copy)",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "maybe_value%2#0 (copy)"
+ ]
+ },
+ "5098": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5100": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "1"
+ ]
+ },
+ "5101": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5103": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "0"
+ ]
+ },
+ "5104": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5106": {
+ "op": "itxn_next"
+ },
+ "5107": {
+ "op": "pushbytes 0xd85cf184 // method \"new(pay)uint64\"",
+ "defined_out": [
+ "Method(new(pay)uint64)",
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ],
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0",
+ "Method(new(pay)uint64)"
+ ]
+ },
+ "5113": {
+ "op": "itxn_field ApplicationArgs",
+ "stack_out": [
+ "maybe_value%2#0",
+ "maybe_value%3#0"
+ ]
+ },
+ "5115": {
+ "op": "itxn_field ApplicationID",
+ "stack_out": [
+ "maybe_value%2#0"
+ ]
+ },
+ "5117": {
+ "op": "itxn_field Sender",
+ "stack_out": []
+ },
+ "5119": {
+ "op": "pushint 6 // appl",
+ "defined_out": [
+ "appl"
+ ],
+ "stack_out": [
+ "appl"
+ ]
+ },
+ "5121": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": []
+ },
+ "5123": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "0"
+ ]
+ },
+ "5124": {
+ "op": "itxn_field Fee",
+ "stack_out": []
+ },
+ "5126": {
+ "op": "itxn_submit"
+ },
+ "5127": {
+ "op": "gitxn 1 LastLog",
+ "defined_out": [
+ "awst_tmp%0#0"
+ ],
+ "stack_out": [
+ "awst_tmp%0#0"
+ ]
+ },
+ "5130": {
+ "op": "dup",
+ "defined_out": [
+ "awst_tmp%0#0",
+ "awst_tmp%0#0 (copy)"
+ ],
+ "stack_out": [
+ "awst_tmp%0#0",
+ "awst_tmp%0#0 (copy)"
+ ]
+ },
+ "5131": {
+ "op": "extract 4 0",
+ "defined_out": [
+ "awst_tmp%0#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "awst_tmp%0#0",
+ "tmp%3#0"
+ ]
+ },
+ "5134": {
+ "op": "swap",
+ "stack_out": [
+ "tmp%3#0",
+ "awst_tmp%0#0"
+ ]
+ },
+ "5135": {
+ "op": "extract 0 4",
+ "defined_out": [
+ "tmp%3#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "tmp%4#0"
+ ]
+ },
+ "5138": {
+ "op": "bytec 7 // 0x151f7c75",
+ "defined_out": [
+ "0x151f7c75",
+ "tmp%3#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "tmp%4#0",
+ "0x151f7c75"
+ ]
+ },
+ "5140": {
+ "op": "==",
+ "defined_out": [
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "tmp%5#0"
+ ]
+ },
+ "5141": {
+ "error": "Bytes has valid prefix",
+ "op": "assert // Bytes has valid prefix",
+ "stack_out": [
+ "tmp%3#0"
+ ]
+ },
+ "5142": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "tmp%3#0 (copy)"
+ ]
+ },
+ "5143": {
+ "op": "len",
+ "defined_out": [
+ "len%0#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "len%0#0"
+ ]
+ },
+ "5144": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "len%0#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "len%0#0",
+ "8"
+ ]
+ },
+ "5145": {
+ "op": "==",
+ "defined_out": [
+ "eq%0#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%3#0",
+ "eq%0#0"
+ ]
+ },
+ "5146": {
+ "error": "invalid number of bytes for uint64",
+ "op": "assert // invalid number of bytes for uint64",
+ "stack_out": [
+ "tmp%3#0"
+ ]
+ },
+ "5147": {
+ "op": "btoi",
+ "defined_out": [
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0"
+ ]
+ },
+ "5148": {
+ "op": "dup",
+ "defined_out": [
+ "id#0",
+ "id#0 (copy)"
+ ],
+ "stack_out": [
+ "id#0",
+ "id#0 (copy)"
+ ]
+ },
+ "5149": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "5150": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "aggregate%val_as_bytes%0#0",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%val_as_bytes%0#0",
+ "0x00"
+ ]
+ },
+ "5152": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5153": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%head%1#0",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%head%1#0",
+ "\"e\""
+ ]
+ },
+ "5155": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%head%1#0",
+ "escrow#0 (copy)",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%head%1#0",
+ "\"e\"",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5157": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "box_prefixed_key%0#0",
+ "id#0"
+ ],
+ "stack_out": [
+ "id#0",
+ "aggregate%head%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5158": {
+ "op": "swap",
+ "stack_out": [
+ "id#0",
+ "box_prefixed_key%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5159": {
+ "op": "box_put",
+ "stack_out": [
+ "id#0"
+ ]
+ },
+ "5160": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5161": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCallAllowed",
+ "params": {
+ "plugin#0": "uint64",
+ "caller#0": "bytes",
+ "escrow#0": "bytes",
+ "method#0": "bytes"
+ },
+ "block": "pluginCallAllowed",
+ "stack_in": [],
+ "op": "proto 4 1"
+ },
+ "5164": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "cooldown#0"
+ ]
+ },
+ "5165": {
+ "op": "dupn 5",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0"
+ ]
+ },
+ "5167": {
+ "op": "frame_dig -4",
+ "defined_out": [
+ "plugin#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "plugin#0 (copy)"
+ ]
+ },
+ "5169": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "5170": {
+ "op": "frame_dig -3",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "caller#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0 (copy)"
+ ]
+ },
+ "5172": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5173": {
+ "op": "frame_dig -2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5175": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "5176": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "5177": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "5180": {
+ "op": "frame_dig -2",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5182": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5183": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5184": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "5186": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "5187": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5188": {
+ "op": "concat",
+ "defined_out": [
+ "key#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "key#0"
+ ]
+ },
+ "5189": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "key#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "key#0",
+ "\"p\""
+ ]
+ },
+ "5191": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "5192": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5193": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5194": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5195": {
+ "op": "bury 1",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5197": {
+ "op": "bnz pluginCallAllowed_after_if_else@2",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5200": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "5201": {
+ "op": "frame_bury 0"
+ },
+ "5203": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5204": {
+ "block": "pluginCallAllowed_after_if_else@2",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 6",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5206": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "5207": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "17"
+ ]
+ },
+ "5209": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "17",
+ "8",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "17",
+ "8"
+ ]
+ },
+ "5210": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "5211": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ]
+ },
+ "5212": {
+ "op": "frame_bury 0",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5214": {
+ "op": "dup",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "5215": {
+ "op": "pushint 27 // 27",
+ "defined_out": [
+ "27",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27"
+ ]
+ },
+ "5217": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "27",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27",
+ "1"
+ ]
+ },
+ "5218": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0"
+ ]
+ },
+ "5219": {
+ "op": "dup",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box%box_extract%1#0 (copy)",
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0",
+ "box%box_extract%1#0 (copy)"
+ ]
+ },
+ "5220": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0",
+ "box%box_extract%1#0 (copy)",
+ "1"
+ ]
+ },
+ "5221": {
+ "op": "getbit",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0",
+ "useRounds#0"
+ ]
+ },
+ "5222": {
+ "op": "frame_bury 5",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0"
+ ]
+ },
+ "5224": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0",
+ "2"
+ ]
+ },
+ "5225": {
+ "op": "getbit",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "5226": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5227": {
+ "op": "pushint 28 // 28",
+ "defined_out": [
+ "28",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "box_prefixed_key%0#0",
+ "28"
+ ]
+ },
+ "5229": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "box_prefixed_key%0#0",
+ "28",
+ "8"
+ ]
+ },
+ "5230": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%3#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "box%box_extract%3#0"
+ ]
+ },
+ "5231": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "lastCalled#0"
+ ]
+ },
+ "5232": {
+ "op": "frame_bury 3",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "5234": {
+ "op": "bz pluginCallAllowed_after_if_else@4",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5237": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "0"
+ ]
+ },
+ "5238": {
+ "op": "frame_bury 0"
+ },
+ "5240": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5241": {
+ "block": "pluginCallAllowed_after_if_else@4",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 6",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5243": {
+ "op": "pushint 44 // 44",
+ "defined_out": [
+ "44",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "44"
+ ]
+ },
+ "5245": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "44",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "44",
+ "2"
+ ]
+ },
+ "5246": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%4#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%4#0"
+ ]
+ },
+ "5247": {
+ "op": "btoi",
+ "defined_out": [
+ "box%array_length%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%array_length%0#0"
+ ]
+ },
+ "5248": {
+ "op": "!",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "methodAllowed#0"
+ ]
+ },
+ "5249": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5251": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "5252": {
+ "op": "frame_bury 2",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5254": {
+ "block": "pluginCallAllowed_while_top@5",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 6",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5256": {
+ "op": "pushint 44 // 44",
+ "defined_out": [
+ "44",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "44"
+ ]
+ },
+ "5258": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "44",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "44",
+ "2"
+ ]
+ },
+ "5259": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%5#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%5#0"
+ ]
+ },
+ "5260": {
+ "op": "btoi",
+ "defined_out": [
+ "box%array_length%1#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%array_length%1#0"
+ ]
+ },
+ "5261": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "box%array_length%1#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%array_length%1#0",
+ "i#0"
+ ]
+ },
+ "5263": {
+ "op": ">",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%4#0"
+ ]
+ },
+ "5264": {
+ "op": "bz pluginCallAllowed_block@10",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5267": {
+ "op": "frame_dig 2",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "5269": {
+ "op": "pushint 20 // 20",
+ "defined_out": [
+ "20",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "20"
+ ]
+ },
+ "5271": {
+ "op": "*",
+ "defined_out": [
+ "box%element_offset%1#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%1#0"
+ ]
+ },
+ "5272": {
+ "op": "pushint 46 // 46",
+ "defined_out": [
+ "46",
+ "box%element_offset%1#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%1#0",
+ "46"
+ ]
+ },
+ "5274": {
+ "op": "+",
+ "defined_out": [
+ "box%offset%7#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%offset%7#0"
+ ]
+ },
+ "5275": {
+ "op": "frame_dig 6",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%offset%7#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5277": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%offset%7#0"
+ ]
+ },
+ "5278": {
+ "op": "pushint 20 // 20",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0",
+ "box%offset%7#0",
+ "20"
+ ]
+ },
+ "5280": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%7#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%7#0"
+ ]
+ },
+ "5281": {
+ "op": "extract 0 4",
+ "defined_out": [
+ "aggregate%extract%0#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "aggregate%extract%0#0"
+ ]
+ },
+ "5284": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "aggregate%extract%0#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "method#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "aggregate%extract%0#0",
+ "method#0 (copy)"
+ ]
+ },
+ "5286": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%5#0"
+ ]
+ },
+ "5287": {
+ "op": "bz pluginCallAllowed_after_if_else@8",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5290": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "methodAllowed#0"
+ ]
+ },
+ "5291": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5293": {
+ "block": "pluginCallAllowed_block@10",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 5",
+ "defined_out": [
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ]
+ },
+ "5295": {
+ "op": "bz pluginCallAllowed_ternary_false@12",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5298": {
+ "op": "global Round",
+ "defined_out": [
+ "epochRef#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ]
+ },
+ "5300": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "epochRef#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5302": {
+ "block": "pluginCallAllowed_ternary_merge@13",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 3",
+ "defined_out": [
+ "lastCalled#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "lastCalled#0"
+ ]
+ },
+ "5304": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "epochRef#0",
+ "lastCalled#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "lastCalled#0",
+ "epochRef#0"
+ ]
+ },
+ "5306": {
+ "op": ">=",
+ "defined_out": [
+ "epochRef#0",
+ "lastCalled#0",
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%7#0"
+ ]
+ },
+ "5307": {
+ "op": "bz pluginCallAllowed_bool_false@16",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5310": {
+ "op": "frame_dig 1",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ]
+ },
+ "5312": {
+ "op": "frame_dig 3",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0",
+ "lastCalled#0"
+ ]
+ },
+ "5314": {
+ "op": "-",
+ "defined_out": [
+ "epochRef#0",
+ "lastCalled#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%8#0"
+ ]
+ },
+ "5315": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "lastCalled#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%8#0",
+ "cooldown#0"
+ ]
+ },
+ "5317": {
+ "op": ">=",
+ "defined_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "lastCalled#0",
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%9#0"
+ ]
+ },
+ "5318": {
+ "op": "bz pluginCallAllowed_bool_false@16",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5321": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%0#0",
+ "cooldown#0",
+ "epochRef#0",
+ "lastCalled#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "5322": {
+ "block": "pluginCallAllowed_bool_merge@17",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ],
+ "op": "frame_dig 4",
+ "defined_out": [
+ "and_result%0#0",
+ "methodAllowed#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0",
+ "methodAllowed#0"
+ ]
+ },
+ "5324": {
+ "op": "&&",
+ "defined_out": [
+ "methodAllowed#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "tmp%10#0"
+ ]
+ },
+ "5325": {
+ "op": "frame_bury 0"
+ },
+ "5327": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5328": {
+ "block": "pluginCallAllowed_bool_false@16",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "and_result%0#0"
+ ]
+ },
+ "5329": {
+ "op": "b pluginCallAllowed_bool_merge@17"
+ },
+ "5332": {
+ "block": "pluginCallAllowed_ternary_false@12",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "epochRef#0"
+ ]
+ },
+ "5334": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5336": {
+ "op": "b pluginCallAllowed_ternary_merge@13"
+ },
+ "5339": {
+ "block": "pluginCallAllowed_after_if_else@8",
+ "stack_in": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ],
+ "op": "frame_dig 2",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "5341": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "5342": {
+ "op": "+",
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "i#0"
+ ]
+ },
+ "5343": {
+ "op": "frame_bury 2",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "epochRef#0",
+ "i#0",
+ "lastCalled#0",
+ "methodAllowed#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5345": {
+ "op": "b pluginCallAllowed_while_top@5"
+ },
+ "5348": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.txnRekeysBack",
+ "params": {
+ "txn#0": "uint64"
+ },
+ "block": "txnRekeysBack",
+ "stack_in": [],
+ "op": "proto 1 1"
+ },
+ "5351": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "txn#0 (copy)"
+ ],
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5353": {
+ "op": "gtxns Sender",
+ "defined_out": [
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0"
+ ]
+ },
+ "5355": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "0"
+ ]
+ },
+ "5356": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5357": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#0"
+ ],
+ "stack_out": [
+ "tmp%0#0",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5358": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "tmp%0#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "5359": {
+ "op": "==",
+ "defined_out": [
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "tmp%1#0"
+ ]
+ },
+ "5360": {
+ "op": "bz txnRekeysBack_after_if_else@3",
+ "stack_out": []
+ },
+ "5363": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5365": {
+ "op": "gtxns RekeyTo",
+ "defined_out": [
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "tmp%2#0"
+ ]
+ },
+ "5367": {
+ "op": "global CurrentApplicationAddress",
+ "defined_out": [
+ "tmp%2#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "tmp%2#0",
+ "tmp%3#0"
+ ]
+ },
+ "5369": {
+ "op": "==",
+ "defined_out": [
+ "tmp%4#0"
+ ],
+ "stack_out": [
+ "tmp%4#0"
+ ]
+ },
+ "5370": {
+ "op": "bz txnRekeysBack_after_if_else@3",
+ "stack_out": []
+ },
+ "5373": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "5374": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5375": {
+ "block": "txnRekeysBack_after_if_else@3",
+ "stack_in": [],
+ "op": "frame_dig -1",
+ "defined_out": [
+ "txn#0 (copy)"
+ ],
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5377": {
+ "op": "gtxns TypeEnum",
+ "defined_out": [
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "tmp%5#0"
+ ]
+ },
+ "5379": {
+ "op": "pushint 6 // 6",
+ "defined_out": [
+ "6",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "tmp%5#0",
+ "6"
+ ]
+ },
+ "5381": {
+ "op": "==",
+ "defined_out": [
+ "tmp%6#0"
+ ],
+ "stack_out": [
+ "tmp%6#0"
+ ]
+ },
+ "5382": {
+ "op": "bz txnRekeysBack_bool_false@9",
+ "stack_out": []
+ },
+ "5385": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5387": {
+ "op": "gtxns ApplicationID",
+ "defined_out": [
+ "tmp%7#0"
+ ],
+ "stack_out": [
+ "tmp%7#0"
+ ]
+ },
+ "5389": {
+ "op": "global CurrentApplicationID",
+ "defined_out": [
+ "tmp%7#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "tmp%7#0",
+ "tmp%8#0"
+ ]
+ },
+ "5391": {
+ "op": "==",
+ "defined_out": [
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "tmp%9#0"
+ ]
+ },
+ "5392": {
+ "op": "bz txnRekeysBack_bool_false@9",
+ "stack_out": []
+ },
+ "5395": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5397": {
+ "op": "gtxns NumAppArgs",
+ "defined_out": [
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "tmp%10#0"
+ ]
+ },
+ "5399": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "tmp%10#0",
+ "1"
+ ]
+ },
+ "5400": {
+ "op": "==",
+ "defined_out": [
+ "tmp%11#0"
+ ],
+ "stack_out": [
+ "tmp%11#0"
+ ]
+ },
+ "5401": {
+ "op": "bz txnRekeysBack_bool_false@9",
+ "stack_out": []
+ },
+ "5404": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5406": {
+ "op": "gtxns OnCompletion",
+ "defined_out": [
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "tmp%12#0"
+ ]
+ },
+ "5408": {
+ "op": "bnz txnRekeysBack_bool_false@9",
+ "stack_out": []
+ },
+ "5411": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "txn#0 (copy)"
+ ]
+ },
+ "5413": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "txn#0 (copy)"
+ ],
+ "stack_out": [
+ "txn#0 (copy)",
+ "0"
+ ]
+ },
+ "5414": {
+ "op": "gtxnsas ApplicationArgs",
+ "defined_out": [
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "tmp%14#0"
+ ]
+ },
+ "5416": {
+ "op": "bytec 22 // method \"arc58_verifyAuthAddress()void\"",
+ "defined_out": [
+ "Method(arc58_verifyAuthAddress()void)",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "tmp%14#0",
+ "Method(arc58_verifyAuthAddress()void)"
+ ]
+ },
+ "5418": {
+ "op": "==",
+ "defined_out": [
+ "tmp%15#0"
+ ],
+ "stack_out": [
+ "tmp%15#0"
+ ]
+ },
+ "5419": {
+ "op": "bz txnRekeysBack_bool_false@9",
+ "stack_out": []
+ },
+ "5422": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "and_result%0#0"
+ ]
+ },
+ "5423": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5424": {
+ "block": "txnRekeysBack_bool_false@9",
+ "stack_in": [],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "and_result%0#0"
+ ]
+ },
+ "5425": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5426": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCheck",
+ "params": {
+ "key#0": "bytes"
+ },
+ "block": "pluginCheck",
+ "stack_in": [],
+ "op": "proto 1 2"
+ },
+ "5429": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "cooldown#0"
+ ]
+ },
+ "5430": {
+ "op": "dupn 2",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0"
+ ]
+ },
+ "5432": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\""
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "\"p\""
+ ]
+ },
+ "5434": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "\"p\"",
+ "key#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "\"p\"",
+ "key#0 (copy)"
+ ]
+ },
+ "5436": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5437": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5438": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "exists#0"
+ ]
+ },
+ "5439": {
+ "op": "dup",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "_%0#0",
+ "exists#0",
+ "exists#0 (copy)"
+ ]
+ },
+ "5440": {
+ "op": "uncover 2",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "exists#0",
+ "_%0#0"
+ ]
+ },
+ "5442": {
+ "op": "pop",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "exists#0"
+ ]
+ },
+ "5443": {
+ "op": "bnz pluginCheck_after_if_else@2",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ]
+ },
+ "5446": {
+ "op": "pushbytes 0x60",
+ "defined_out": [
+ "0x60",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "0x60"
+ ]
+ },
+ "5449": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "0x60",
+ "key#0 (copy)"
+ ]
+ },
+ "5451": {
+ "op": "frame_bury 1"
+ },
+ "5453": {
+ "op": "frame_bury 0"
+ },
+ "5455": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5456": {
+ "block": "pluginCheck_after_if_else@2",
+ "stack_in": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ],
+ "op": "frame_dig 3",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5458": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "5459": {
+ "op": "pushint 9 // 9",
+ "defined_out": [
+ "9",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "9"
+ ]
+ },
+ "5461": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "9",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "9",
+ "8"
+ ]
+ },
+ "5462": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "5463": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0"
+ ]
+ },
+ "5464": {
+ "op": "frame_bury 2",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5466": {
+ "op": "dup",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "5467": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "17"
+ ]
+ },
+ "5469": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "17",
+ "8"
+ ]
+ },
+ "5470": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%1#0",
+ "box_prefixed_key%0#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%1#0"
+ ]
+ },
+ "5471": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0"
+ ]
+ },
+ "5472": {
+ "op": "frame_bury 0",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5474": {
+ "op": "dup",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "5475": {
+ "op": "pushint 27 // 27",
+ "defined_out": [
+ "27",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "cooldown#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27"
+ ]
+ },
+ "5477": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "27",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "cooldown#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27",
+ "1"
+ ]
+ },
+ "5478": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%2#0"
+ ]
+ },
+ "5479": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%2#0",
+ "1"
+ ]
+ },
+ "5480": {
+ "op": "getbit",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ]
+ },
+ "5481": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5482": {
+ "op": "pushint 28 // 28",
+ "defined_out": [
+ "28",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "28"
+ ]
+ },
+ "5484": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "28",
+ "8"
+ ]
+ },
+ "5485": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%3#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0",
+ "box%box_extract%3#0"
+ ]
+ },
+ "5486": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0",
+ "lastCalled#0"
+ ]
+ },
+ "5487": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "useRounds#0"
+ ]
+ },
+ "5489": {
+ "op": "bz pluginCheck_ternary_false@4",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ]
+ },
+ "5492": {
+ "op": "global Round",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "epochRef#0",
+ "lastCalled#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0"
+ ]
+ },
+ "5494": {
+ "block": "pluginCheck_ternary_merge@5",
+ "stack_in": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "epochRef#0",
+ "epochRef#0 (copy)"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0",
+ "epochRef#0 (copy)"
+ ]
+ },
+ "5495": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "epochRef#0",
+ "epochRef#0 (copy)",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0",
+ "epochRef#0 (copy)",
+ "lastValid#0"
+ ]
+ },
+ "5497": {
+ "op": ">",
+ "defined_out": [
+ "epochRef#0",
+ "lastValid#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0",
+ "tmp%1#0"
+ ]
+ },
+ "5498": {
+ "op": "swap",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "epochRef#0"
+ ]
+ },
+ "5499": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "epochRef#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "epochRef#0",
+ "lastCalled#0"
+ ]
+ },
+ "5501": {
+ "op": "-",
+ "defined_out": [
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ]
+ },
+ "5502": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%2#0",
+ "cooldown#0"
+ ]
+ },
+ "5504": {
+ "op": "<",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "5505": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5507": {
+ "op": "pushint 44 // 44",
+ "defined_out": [
+ "44",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box_prefixed_key%0#0",
+ "44"
+ ]
+ },
+ "5509": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "44",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box_prefixed_key%0#0",
+ "44",
+ "2"
+ ]
+ },
+ "5510": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%4#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box%box_extract%4#0"
+ ]
+ },
+ "5511": {
+ "op": "btoi",
+ "defined_out": [
+ "box%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box%array_length%0#0"
+ ]
+ },
+ "5512": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "box%array_length%0#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "box%array_length%0#0",
+ "0"
+ ]
+ },
+ "5513": {
+ "op": ">",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ]
+ },
+ "5514": {
+ "op": "bytec 9 // 0x00",
+ "defined_out": [
+ "0x00",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "0x00"
+ ]
+ },
+ "5516": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "0x00",
+ "0"
+ ]
+ },
+ "5517": {
+ "op": "frame_dig 4",
+ "defined_out": [
+ "0",
+ "0x00",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "0x00",
+ "0",
+ "exists#0"
+ ]
+ },
+ "5519": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%encoded_bool%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "aggregate%encoded_bool%1#0"
+ ]
+ },
+ "5520": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%encoded_bool%1#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%1#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "aggregate%encoded_bool%1#0",
+ "1"
+ ]
+ },
+ "5521": {
+ "op": "uncover 4",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "aggregate%encoded_bool%1#0",
+ "1",
+ "tmp%1#0"
+ ]
+ },
+ "5523": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%set_bit%3#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%3#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "aggregate%set_bit%3#0"
+ ]
+ },
+ "5524": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%3#0",
+ "tmp%5#0",
+ "aggregate%set_bit%3#0",
+ "2"
+ ]
+ },
+ "5525": {
+ "op": "uncover 3",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%5#0",
+ "aggregate%set_bit%3#0",
+ "2",
+ "tmp%3#0"
+ ]
+ },
+ "5527": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%set_bit%4#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%5#0",
+ "aggregate%set_bit%4#0"
+ ]
+ },
+ "5528": {
+ "op": "pushint 3 // 3",
+ "defined_out": [
+ "3",
+ "aggregate%set_bit%4#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "tmp%5#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "tmp%5#0",
+ "aggregate%set_bit%4#0",
+ "3"
+ ]
+ },
+ "5530": {
+ "op": "uncover 2",
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "aggregate%set_bit%4#0",
+ "3",
+ "tmp%5#0"
+ ]
+ },
+ "5532": {
+ "op": "setbit",
+ "defined_out": [
+ "aggregate%set_bit%5#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "lastCalled#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "aggregate%set_bit%5#0"
+ ]
+ },
+ "5533": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "aggregate%set_bit%5#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "exists#0",
+ "key#0 (copy)",
+ "lastCalled#0",
+ "lastValid#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "aggregate%set_bit%5#0",
+ "key#0 (copy)"
+ ]
+ },
+ "5535": {
+ "op": "frame_bury 1"
+ },
+ "5537": {
+ "op": "frame_bury 0"
+ },
+ "5539": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "5540": {
+ "block": "pluginCheck_ternary_false@4",
+ "stack_in": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "lastValid#0",
+ "box_prefixed_key%0#0",
+ "exists#0",
+ "epochRef#0"
+ ]
+ },
+ "5542": {
+ "op": "b pluginCheck_ternary_merge@5"
+ },
+ "5545": {
+ "subroutine": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "params": {
+ "plugin#0": "uint64",
+ "global#0": "uint64",
+ "escrow#0": "bytes",
+ "methodOffsets#0": "bytes",
+ "fundsRequest#0": "bytes"
+ },
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin",
+ "stack_in": [],
+ "op": "proto 5 2"
+ },
+ "5548": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5549": {
+ "op": "dupn 10",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0"
+ ]
+ },
+ "5551": {
+ "op": "bytec_1 // \"\"",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0"
+ ]
+ },
+ "5552": {
+ "op": "dupn 18",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5554": {
+ "op": "frame_dig -4",
+ "defined_out": [
+ "global#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "global#0 (copy)"
+ ]
+ },
+ "5556": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5559": {
+ "op": "global ZeroAddress",
+ "defined_out": [
+ "caller#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "caller#0"
+ ]
+ },
+ "5561": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@3",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "caller#0"
+ ],
+ "op": "frame_dig -5",
+ "defined_out": [
+ "plugin#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "caller#0",
+ "plugin#0 (copy)"
+ ]
+ },
+ "5563": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "caller#0",
+ "aggregate%val_as_bytes%0#0"
+ ]
+ },
+ "5564": {
+ "op": "swap",
+ "defined_out": [
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%0#0",
+ "caller#0"
+ ]
+ },
+ "5565": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5566": {
+ "op": "frame_dig -3",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5568": {
+ "op": "len",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%length%0#0"
+ ]
+ },
+ "5569": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%as_bytes%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%as_bytes%0#0"
+ ]
+ },
+ "5570": {
+ "op": "extract 6 2",
+ "defined_out": [
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0"
+ ]
+ },
+ "5573": {
+ "op": "frame_dig -3",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%length_uint16%0#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5575": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5576": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5577": {
+ "op": "frame_bury 1",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%1#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5579": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ]
+ },
+ "5580": {
+ "op": "bytec 12 // 0x002a",
+ "defined_out": [
+ "0x002a",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%1#0",
+ "0x002a"
+ ]
+ },
+ "5582": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%2#0"
+ ]
+ },
+ "5583": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%2#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5584": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "5585": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "key#0"
+ ]
+ },
+ "5586": {
+ "op": "frame_bury 6",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "5588": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "aggregate%encoded_value%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "\"p\""
+ ]
+ },
+ "5590": {
+ "op": "dig 1",
+ "defined_out": [
+ "\"p\"",
+ "aggregate%encoded_value%0#0",
+ "key#0",
+ "key#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "\"p\"",
+ "key#0 (copy)"
+ ]
+ },
+ "5592": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5593": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5594": {
+ "op": "frame_bury 2",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "5596": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "maybe_exists%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5597": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5599": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "5600": {
+ "op": "bytec 19 // \"current_plugin\"",
+ "defined_out": [
+ "\"current_plugin\"",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "\"current_plugin\""
+ ]
+ },
+ "5602": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"current_plugin\"",
+ "key#0"
+ ]
+ },
+ "5603": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5604": {
+ "op": "frame_dig -3",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5606": {
+ "op": "bytec_1 // \"\"",
+ "defined_out": [
+ "\"\"",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "escrow#0 (copy)",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrow#0 (copy)",
+ "\"\""
+ ]
+ },
+ "5607": {
+ "op": "!=",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%1#0"
+ ]
+ },
+ "5608": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@7",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5611": {
+ "op": "bytec 5 // \"e\"",
+ "defined_out": [
+ "\"e\"",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"e\""
+ ]
+ },
+ "5613": {
+ "op": "frame_dig -3",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"e\"",
+ "escrow#0 (copy)"
+ ]
+ },
+ "5615": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%1#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0"
+ ]
+ },
+ "5616": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%1#0",
+ "box_prefixed_key%1#0 (copy)",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0",
+ "box_prefixed_key%1#0 (copy)"
+ ]
+ },
+ "5617": {
+ "op": "box_len",
+ "defined_out": [
+ "_%1#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%1#0",
+ "key#0",
+ "maybe_exists%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0",
+ "_%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "5618": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "5620": {
+ "error": "escrow does not exist",
+ "op": "assert // escrow does not exist",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0"
+ ]
+ },
+ "5621": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%0#0",
+ "aggregate%box_get%1#0"
+ ]
+ },
+ "5622": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%0#0"
+ ]
+ },
+ "5623": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%0#0",
+ "0"
+ ]
+ },
+ "5624": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "escrowID#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0"
+ ]
+ },
+ "5625": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "escrowID#0",
+ "escrowID#0 (copy)",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0",
+ "escrowID#0 (copy)"
+ ]
+ },
+ "5626": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "check%0#0",
+ "escrowID#0",
+ "key#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0",
+ "value%0#0",
+ "check%0#0"
+ ]
+ },
+ "5628": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0",
+ "value%0#0"
+ ]
+ },
+ "5629": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "escrowID#0",
+ "key#0",
+ "value%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0",
+ "value%0#0",
+ "\"spending_address\""
+ ]
+ },
+ "5631": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0",
+ "\"spending_address\"",
+ "value%0#0"
+ ]
+ },
+ "5632": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowID#0"
+ ]
+ },
+ "5633": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "check%0#0",
+ "escrowAddress#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "escrowAddress#0",
+ "check%0#0"
+ ]
+ },
+ "5635": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "check%0#0",
+ "escrowAddress#0"
+ ]
+ },
+ "5636": {
+ "op": "frame_bury 5",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "check%0#0",
+ "escrowAddress#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "check%0#0"
+ ]
+ },
+ "5638": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5639": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "escrowAddress#0",
+ "i#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "5640": {
+ "op": "frame_bury 16",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5642": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@56",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig -1",
+ "defined_out": [
+ "fundsRequest#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "fundsRequest#0 (copy)"
+ ]
+ },
+ "5644": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "fundsRequest#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "fundsRequest#0 (copy)",
+ "0"
+ ]
+ },
+ "5645": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_length%0#0"
+ ]
+ },
+ "5646": {
+ "op": "frame_dig 16",
+ "defined_out": [
+ "aggregate%array_length%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_length%0#0",
+ "i#0"
+ ]
+ },
+ "5648": {
+ "op": ">",
+ "defined_out": [
+ "i#0",
+ "tmp%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%1#0"
+ ]
+ },
+ "5649": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5652": {
+ "op": "frame_dig -1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "fundsRequest#0 (copy)"
+ ]
+ },
+ "5654": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%0#0"
+ ]
+ },
+ "5657": {
+ "op": "frame_dig 16",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ]
+ },
+ "5659": {
+ "op": "pushint 16 // 16",
+ "defined_out": [
+ "16",
+ "aggregate%array_trimmed%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%0#0",
+ "i#0",
+ "16"
+ ]
+ },
+ "5661": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0"
+ ]
+ },
+ "5662": {
+ "op": "pushint 16 // 16",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%0#0",
+ "aggregate%bytes_offset%0#0",
+ "16"
+ ]
+ },
+ "5664": {
+ "error": "index access is out of bounds",
+ "op": "extract3 // on error: index access is out of bounds",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5665": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5666": {
+ "op": "frame_bury 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5668": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0",
+ "0"
+ ]
+ },
+ "5669": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%1#0"
+ ]
+ },
+ "5670": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%1#0",
+ "values%1#0"
+ ]
+ },
+ "5671": {
+ "op": "frame_bury 29",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%1#0"
+ ]
+ },
+ "5673": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%1#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "5674": {
+ "op": "bytec 13 // 0x000a",
+ "defined_out": [
+ "0x000a",
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%1#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%1#0",
+ "0x000a"
+ ]
+ },
+ "5676": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0x000a",
+ "aggregate%val_as_bytes%1#0"
+ ]
+ },
+ "5677": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%4#0"
+ ]
+ },
+ "5678": {
+ "op": "frame_dig 1",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "aggregate%head%4#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%head%4#0",
+ "aggregate%encoded_value%0#0"
+ ]
+ },
+ "5680": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "allowanceKey#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "allowanceKey#0"
+ ]
+ },
+ "5681": {
+ "op": "bytec 14 // \"a\"",
+ "defined_out": [
+ "\"a\"",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "allowanceKey#0",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "allowanceKey#0",
+ "\"a\""
+ ]
+ },
+ "5683": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"a\"",
+ "allowanceKey#0"
+ ]
+ },
+ "5684": {
+ "op": "concat",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5685": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5686": {
+ "op": "frame_bury 3",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5688": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%0#4 (copy)",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%0#4 (copy)"
+ ]
+ },
+ "5689": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "maybe_exists%0#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "_%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5690": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5692": {
+ "error": "allowance does not exist",
+ "op": "assert // allowance does not exist",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5693": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%5#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%5#0"
+ ]
+ },
+ "5694": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5695": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5696": {
+ "op": "extract 0 1",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "type#0"
+ ]
+ },
+ "5699": {
+ "op": "frame_bury 10",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5701": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5702": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "17"
+ ]
+ },
+ "5704": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "spent#0"
+ ]
+ },
+ "5705": {
+ "op": "frame_bury 26",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5707": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5708": {
+ "op": "pushint 9 // 9",
+ "defined_out": [
+ "9",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "9"
+ ]
+ },
+ "5710": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "amount#0"
+ ]
+ },
+ "5711": {
+ "op": "frame_bury 11",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5713": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5714": {
+ "op": "pushint 33 // 33",
+ "defined_out": [
+ "33",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "33"
+ ]
+ },
+ "5716": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "last#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "last#0"
+ ]
+ },
+ "5717": {
+ "op": "frame_bury 19",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5719": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5720": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "1"
+ ]
+ },
+ "5721": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "max#0"
+ ]
+ },
+ "5722": {
+ "op": "frame_bury 21",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5724": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5725": {
+ "op": "pushint 25 // 25",
+ "defined_out": [
+ "25",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "25"
+ ]
+ },
+ "5727": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "interval#0"
+ ]
+ },
+ "5728": {
+ "op": "frame_bury 17",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5730": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)"
+ ]
+ },
+ "5731": {
+ "op": "pushint 41 // 41",
+ "defined_out": [
+ "41",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "aggregate%box_get%4#0 (copy)",
+ "41"
+ ]
+ },
+ "5733": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "start#0"
+ ]
+ },
+ "5734": {
+ "op": "frame_bury 27",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0"
+ ]
+ },
+ "5736": {
+ "op": "pushint 392 // 392",
+ "defined_out": [
+ "392",
+ "aggregate%box_get%4#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%box_get%4#0",
+ "392"
+ ]
+ },
+ "5739": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "5740": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "useRounds#0"
+ ]
+ },
+ "5741": {
+ "op": "frame_bury 28",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "5743": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@59",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5746": {
+ "op": "global Round",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "newLast#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "newLast#0"
+ ]
+ },
+ "5748": {
+ "op": "frame_bury 24",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "i#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "newLast#0",
+ "spent#0",
+ "start#0",
+ "type#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5750": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@60",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 10",
+ "defined_out": [
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0"
+ ]
+ },
+ "5752": {
+ "op": "bytec 15 // 0x01",
+ "defined_out": [
+ "0x01",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0",
+ "0x01"
+ ]
+ },
+ "5754": {
+ "op": "==",
+ "defined_out": [
+ "tmp%0#3",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#3"
+ ]
+ },
+ "5755": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@62",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5758": {
+ "op": "frame_dig 11",
+ "defined_out": [
+ "amount#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "amount#0"
+ ]
+ },
+ "5760": {
+ "op": "frame_dig 26",
+ "defined_out": [
+ "amount#0",
+ "spent#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "amount#0",
+ "spent#0"
+ ]
+ },
+ "5762": {
+ "op": "-",
+ "defined_out": [
+ "amount#0",
+ "leftover#0",
+ "spent#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover#0"
+ ]
+ },
+ "5763": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover#0",
+ "spent#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5765": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover#0",
+ "spent#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "5766": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover#0",
+ "spent#0",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover#0",
+ "values%7#1"
+ ]
+ },
+ "5767": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1",
+ "leftover#0"
+ ]
+ },
+ "5768": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover#0",
+ "spent#0",
+ "type#0",
+ "values%7#1",
+ "values%7#1 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1",
+ "leftover#0",
+ "values%7#1 (copy)"
+ ]
+ },
+ "5770": {
+ "op": ">=",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "spent#0",
+ "tmp%2#2",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1",
+ "tmp%2#2"
+ ]
+ },
+ "5771": {
+ "error": "allowance exceeded",
+ "op": "assert // allowance exceeded",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1"
+ ]
+ },
+ "5772": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5774": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%0#4 (copy)",
+ "spent#0",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%7#1",
+ "box_prefixed_key%0#4 (copy)",
+ "box_prefixed_key%0#4 (copy)"
+ ]
+ },
+ "5775": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%7#1",
+ "box_prefixed_key%0#4 (copy)"
+ ]
+ },
+ "5777": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%6#0",
+ "aggregate%box_get%7#0",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%7#1",
+ "aggregate%box_get%6#0",
+ "aggregate%box_get%7#0"
+ ]
+ },
+ "5778": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%7#1",
+ "aggregate%box_get%6#0"
+ ]
+ },
+ "5779": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%box_get%6#0",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "type#0",
+ "values%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%7#1",
+ "aggregate%box_get%6#0",
+ "17"
+ ]
+ },
+ "5781": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "type#0",
+ "values%7#1",
+ "values%8#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%7#1",
+ "values%8#0"
+ ]
+ },
+ "5782": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "tmp%3#3",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "tmp%3#3"
+ ]
+ },
+ "5783": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%2#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "aggregate%val_as_bytes%2#0"
+ ]
+ },
+ "5784": {
+ "op": "pushint 17 // 17"
+ },
+ "5786": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "17",
+ "aggregate%val_as_bytes%2#0"
+ ]
+ },
+ "5787": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5788": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 24",
+ "defined_out": [
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "newLast#0"
+ ]
+ },
+ "5790": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%5#0",
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%5#0"
+ ]
+ },
+ "5791": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "aggregate%val_as_bytes%5#0",
+ "box_prefixed_key%0#4",
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%5#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5793": {
+ "op": "pushint 33 // 33",
+ "defined_out": [
+ "33",
+ "aggregate%val_as_bytes%5#0",
+ "box_prefixed_key%0#4",
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%5#0",
+ "box_prefixed_key%0#4",
+ "33"
+ ]
+ },
+ "5795": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "33",
+ "aggregate%val_as_bytes%5#0"
+ ]
+ },
+ "5797": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5798": {
+ "op": "frame_dig 29",
+ "defined_out": [
+ "box_prefixed_key%0#4",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%1#0"
+ ]
+ },
+ "5800": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@73",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5803": {
+ "op": "itxn_begin"
+ },
+ "5804": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "box_prefixed_key%0#4",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "5805": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0",
+ "box_prefixed_key%0#4",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5806": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "box_prefixed_key%0#4",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "5807": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "5808": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "box_prefixed_key%0#4",
+ "maybe_value%0#0",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5810": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "box_prefixed_key%0#4",
+ "maybe_value%0#0",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "5811": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "box_prefixed_key%0#4",
+ "maybe_value%0#0",
+ "newLast#0",
+ "values%1#0",
+ "values%3#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "values%3#0"
+ ]
+ },
+ "5812": {
+ "op": "frame_dig 29",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "values%3#0",
+ "values%1#0"
+ ]
+ },
+ "5814": {
+ "op": "itxn_field XferAsset",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "values%3#0"
+ ]
+ },
+ "5816": {
+ "op": "itxn_field AssetAmount",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "5818": {
+ "op": "frame_dig 5",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "box_prefixed_key%0#4",
+ "escrowAddress#0",
+ "maybe_value%0#0",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "escrowAddress#0"
+ ]
+ },
+ "5820": {
+ "op": "itxn_field AssetReceiver",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "5822": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5824": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "aggregate%encoded_element%0#0",
+ "box_prefixed_key%0#4",
+ "escrowAddress#0",
+ "newLast#0",
+ "values%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "4"
+ ]
+ },
+ "5826": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5828": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "5829": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5831": {
+ "op": "itxn_submit"
+ },
+ "5832": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@74",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 16",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "5834": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "5835": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "5836": {
+ "op": "frame_bury 16",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5838": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@56"
+ },
+ "5841": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@73",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "itxn_begin"
+ },
+ "5842": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "5843": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "5844": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%1#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "5845": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "5846": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5848": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "5849": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "maybe_value%1#0",
+ "values%5#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "values%5#1"
+ ]
+ },
+ "5850": {
+ "op": "itxn_field Amount",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "5852": {
+ "op": "frame_dig 5",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "escrowAddress#0",
+ "maybe_value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "escrowAddress#0"
+ ]
+ },
+ "5854": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "5856": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5858": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "aggregate%encoded_element%0#0",
+ "escrowAddress#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "1"
+ ]
+ },
+ "5859": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5861": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "5862": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5864": {
+ "op": "itxn_submit"
+ },
+ "5865": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@74"
+ },
+ "5868": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@62",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 10",
+ "defined_out": [
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0"
+ ]
+ },
+ "5870": {
+ "op": "pushbytes 0x02",
+ "defined_out": [
+ "0x02",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0",
+ "0x02"
+ ]
+ },
+ "5873": {
+ "op": "==",
+ "defined_out": [
+ "tmp%4#2",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%4#2"
+ ]
+ },
+ "5874": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@66",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5877": {
+ "op": "frame_dig 28",
+ "defined_out": [
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "5879": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@77",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5882": {
+ "op": "global Round",
+ "defined_out": [
+ "tmp%0#4",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4"
+ ]
+ },
+ "5884": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%0#4",
+ "tmp%1#2",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4",
+ "tmp%1#2"
+ ]
+ },
+ "5885": {
+ "op": "frame_dig 27",
+ "defined_out": [
+ "start#0",
+ "tmp%0#4",
+ "tmp%1#2",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4",
+ "tmp%1#2",
+ "start#0"
+ ]
+ },
+ "5887": {
+ "op": "-",
+ "defined_out": [
+ "start#0",
+ "tmp%0#4",
+ "tmp%2#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4",
+ "tmp%2#0"
+ ]
+ },
+ "5888": {
+ "op": "frame_dig 17",
+ "defined_out": [
+ "interval#0",
+ "start#0",
+ "tmp%0#4",
+ "tmp%2#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4",
+ "tmp%2#0",
+ "interval#0"
+ ]
+ },
+ "5890": {
+ "op": "%",
+ "defined_out": [
+ "interval#0",
+ "start#0",
+ "tmp%0#4",
+ "tmp%3#3",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#4",
+ "tmp%3#3"
+ ]
+ },
+ "5891": {
+ "op": "-",
+ "defined_out": [
+ "currentWindowStart#0",
+ "interval#0",
+ "start#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "currentWindowStart#0"
+ ]
+ },
+ "5892": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.getLatestWindowStart@78",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "currentWindowStart#0"
+ ],
+ "op": "frame_dig 19",
+ "defined_out": [
+ "currentWindowStart#0",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "currentWindowStart#0",
+ "last#0"
+ ]
+ },
+ "5894": {
+ "op": ">",
+ "defined_out": [
+ "last#0",
+ "tmp%6#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%6#2"
+ ]
+ },
+ "5895": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@65",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5898": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5900": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_element%0#0 (copy)"
+ ]
+ },
+ "5901": {
+ "op": "extract 8 8",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0"
+ ]
+ },
+ "5904": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5905": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "5906": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "last#0",
+ "values%10#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "values%10#0"
+ ]
+ },
+ "5907": {
+ "op": "frame_dig 11",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "amount#0",
+ "last#0",
+ "values%10#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "values%10#0",
+ "amount#0"
+ ]
+ },
+ "5909": {
+ "op": "<=",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "amount#0",
+ "last#0",
+ "tmp%7#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "tmp%7#1"
+ ]
+ },
+ "5910": {
+ "error": "allowance exceeded",
+ "op": "assert // allowance exceeded",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0"
+ ]
+ },
+ "5911": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5913": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%encoded_element%0#0",
+ "aggregate%extract%12#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%extract%12#0",
+ "box_prefixed_key%0#4",
+ "17"
+ ]
+ },
+ "5915": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "17",
+ "aggregate%extract%12#0"
+ ]
+ },
+ "5917": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5918": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71"
+ },
+ "5921": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@65",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 11",
+ "defined_out": [
+ "amount#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "amount#0"
+ ]
+ },
+ "5923": {
+ "op": "frame_dig 26",
+ "defined_out": [
+ "amount#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "amount#0",
+ "spent#0"
+ ]
+ },
+ "5925": {
+ "op": "-",
+ "defined_out": [
+ "amount#0",
+ "leftover\u2081#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover\u2081#0"
+ ]
+ },
+ "5926": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover\u2081#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover\u2081#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "5928": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover\u2081#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover\u2081#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "5929": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover\u2081#0",
+ "spent#0",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "leftover\u2081#0",
+ "values%12#0"
+ ]
+ },
+ "5930": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0",
+ "leftover\u2081#0"
+ ]
+ },
+ "5931": {
+ "op": "dig 1",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "leftover\u2081#0",
+ "spent#0",
+ "values%12#0",
+ "values%12#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0",
+ "leftover\u2081#0",
+ "values%12#0 (copy)"
+ ]
+ },
+ "5933": {
+ "op": ">=",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "spent#0",
+ "tmp%9#2",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0",
+ "tmp%9#2"
+ ]
+ },
+ "5934": {
+ "error": "allowance exceeded",
+ "op": "assert // allowance exceeded",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0"
+ ]
+ },
+ "5935": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "5937": {
+ "op": "dup",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%0#4 (copy)",
+ "spent#0",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%12#0",
+ "box_prefixed_key%0#4 (copy)",
+ "box_prefixed_key%0#4 (copy)"
+ ]
+ },
+ "5938": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%12#0",
+ "box_prefixed_key%0#4 (copy)"
+ ]
+ },
+ "5940": {
+ "op": "box_get",
+ "defined_out": [
+ "aggregate%box_get%8#0",
+ "aggregate%box_get%9#0",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%12#0",
+ "aggregate%box_get%8#0",
+ "aggregate%box_get%9#0"
+ ]
+ },
+ "5941": {
+ "error": "Box must have value",
+ "op": "assert // Box must have value",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%12#0",
+ "aggregate%box_get%8#0"
+ ]
+ },
+ "5942": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%box_get%8#0",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "values%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%12#0",
+ "aggregate%box_get%8#0",
+ "17"
+ ]
+ },
+ "5944": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "values%12#0",
+ "values%13#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "values%12#0",
+ "values%13#0"
+ ]
+ },
+ "5945": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0",
+ "tmp%10#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "tmp%10#2"
+ ]
+ },
+ "5946": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%3#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "5947": {
+ "op": "pushint 17 // 17"
+ },
+ "5949": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "17",
+ "aggregate%val_as_bytes%3#0"
+ ]
+ },
+ "5950": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5951": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71"
+ },
+ "5954": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@77",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "tmp%5#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1"
+ ]
+ },
+ "5956": {
+ "op": "dup",
+ "defined_out": [
+ "tmp%5#1",
+ "tmp%6#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1",
+ "tmp%6#1"
+ ]
+ },
+ "5957": {
+ "op": "frame_dig 27",
+ "defined_out": [
+ "start#0",
+ "tmp%5#1",
+ "tmp%6#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1",
+ "tmp%6#1",
+ "start#0"
+ ]
+ },
+ "5959": {
+ "op": "-",
+ "defined_out": [
+ "start#0",
+ "tmp%5#1",
+ "tmp%7#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1",
+ "tmp%7#2"
+ ]
+ },
+ "5960": {
+ "op": "frame_dig 17",
+ "defined_out": [
+ "interval#0",
+ "start#0",
+ "tmp%5#1",
+ "tmp%7#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1",
+ "tmp%7#2",
+ "interval#0"
+ ]
+ },
+ "5962": {
+ "op": "%",
+ "defined_out": [
+ "interval#0",
+ "start#0",
+ "tmp%5#1",
+ "tmp%8#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#1",
+ "tmp%8#2"
+ ]
+ },
+ "5963": {
+ "op": "-",
+ "defined_out": [
+ "currentWindowStart#0",
+ "interval#0",
+ "start#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "currentWindowStart#0"
+ ]
+ },
+ "5964": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.getLatestWindowStart@78"
+ },
+ "5967": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@66",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 10",
+ "defined_out": [
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0"
+ ]
+ },
+ "5969": {
+ "op": "pushbytes 0x03",
+ "defined_out": [
+ "0x03",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "type#0",
+ "0x03"
+ ]
+ },
+ "5972": {
+ "op": "==",
+ "defined_out": [
+ "tmp%11#0",
+ "type#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%11#0"
+ ]
+ },
+ "5973": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5976": {
+ "op": "frame_dig 28",
+ "defined_out": [
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "5978": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@69",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5981": {
+ "op": "global Round",
+ "defined_out": [
+ "epochRef#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0"
+ ]
+ },
+ "5983": {
+ "op": "frame_bury 14",
+ "defined_out": [
+ "epochRef#0",
+ "type#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "5985": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@70",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 14",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0"
+ ]
+ },
+ "5987": {
+ "op": "frame_dig 19",
+ "defined_out": [
+ "epochRef#0",
+ "last#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0",
+ "last#0"
+ ]
+ },
+ "5989": {
+ "op": "-",
+ "defined_out": [
+ "epochRef#0",
+ "last#0",
+ "passed#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "passed#0"
+ ]
+ },
+ "5990": {
+ "op": "frame_dig 17",
+ "defined_out": [
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "passed#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "passed#0",
+ "interval#0"
+ ]
+ },
+ "5992": {
+ "op": "/",
+ "defined_out": [
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "tmp%13#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%13#1"
+ ]
+ },
+ "5993": {
+ "op": "frame_dig 11",
+ "defined_out": [
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "tmp%13#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%13#1",
+ "amount#0"
+ ]
+ },
+ "5995": {
+ "op": "*",
+ "defined_out": [
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%14#0"
+ ]
+ },
+ "5996": {
+ "op": "frame_dig 26",
+ "defined_out": [
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "spent#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%14#0",
+ "spent#0"
+ ]
+ },
+ "5998": {
+ "op": "+",
+ "defined_out": [
+ "accrued#0",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "accrued#0"
+ ]
+ },
+ "5999": {
+ "op": "dup",
+ "defined_out": [
+ "accrued#0",
+ "accrued#0 (copy)",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "accrued#0",
+ "accrued#0 (copy)"
+ ]
+ },
+ "6000": {
+ "op": "frame_dig 21",
+ "defined_out": [
+ "accrued#0",
+ "accrued#0 (copy)",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "accrued#0",
+ "accrued#0 (copy)",
+ "max#0"
+ ]
+ },
+ "6002": {
+ "op": "dup",
+ "defined_out": [
+ "accrued#0",
+ "accrued#0 (copy)",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "max#0 (copy)",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "accrued#0",
+ "accrued#0 (copy)",
+ "max#0 (copy)",
+ "max#0 (copy)"
+ ]
+ },
+ "6003": {
+ "op": "cover 3",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "max#0",
+ "accrued#0",
+ "accrued#0 (copy)",
+ "max#0 (copy)"
+ ]
+ },
+ "6005": {
+ "op": ">",
+ "defined_out": [
+ "accrued#0",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "tmp%16#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "max#0",
+ "accrued#0",
+ "tmp%16#1"
+ ]
+ },
+ "6006": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "max#0",
+ "tmp%16#1",
+ "accrued#0"
+ ]
+ },
+ "6007": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "accrued#0",
+ "max#0",
+ "tmp%16#1"
+ ]
+ },
+ "6009": {
+ "op": "select",
+ "defined_out": [
+ "amount#0",
+ "available#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0"
+ ]
+ },
+ "6010": {
+ "op": "frame_dig 0",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "available#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "aggregate%encoded_element%0#0"
+ ]
+ },
+ "6012": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "available#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "aggregate%encoded_element%0#0",
+ "8"
+ ]
+ },
+ "6013": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "available#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "values%15#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "values%15#0"
+ ]
+ },
+ "6014": {
+ "op": "dup2",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "available#0",
+ "available#0 (copy)",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "values%15#0",
+ "values%15#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "values%15#0",
+ "available#0 (copy)",
+ "values%15#0 (copy)"
+ ]
+ },
+ "6015": {
+ "op": ">=",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "available#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "tmp%17#0",
+ "values%15#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "values%15#0",
+ "tmp%17#0"
+ ]
+ },
+ "6016": {
+ "error": "allowance exceeded",
+ "op": "assert // allowance exceeded",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "available#0",
+ "values%15#0"
+ ]
+ },
+ "6017": {
+ "op": "-",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0",
+ "tmp%18#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%18#1"
+ ]
+ },
+ "6018": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%4#0",
+ "amount#0",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%4#0"
+ ]
+ },
+ "6019": {
+ "op": "frame_dig 3",
+ "defined_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%4#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%4#0",
+ "box_prefixed_key%0#4"
+ ]
+ },
+ "6021": {
+ "op": "pushint 17 // 17",
+ "defined_out": [
+ "17",
+ "aggregate%encoded_element%0#0",
+ "aggregate%val_as_bytes%4#0",
+ "amount#0",
+ "box_prefixed_key%0#4",
+ "epochRef#0",
+ "interval#0",
+ "last#0",
+ "max#0",
+ "spent#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%4#0",
+ "box_prefixed_key%0#4",
+ "17"
+ ]
+ },
+ "6023": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#4",
+ "17",
+ "aggregate%val_as_bytes%4#0"
+ ]
+ },
+ "6025": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6026": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71"
+ },
+ "6029": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@69",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0"
+ ]
+ },
+ "6031": {
+ "op": "frame_bury 14",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6033": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@70"
+ },
+ "6036": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@59",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "newLast#0"
+ ]
+ },
+ "6038": {
+ "op": "frame_bury 24",
+ "defined_out": [
+ "newLast#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6040": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@60"
+ },
+ "6043": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 2",
+ "defined_out": [
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6045": {
+ "op": "pushint 27 // 27",
+ "defined_out": [
+ "27",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#0",
+ "27"
+ ]
+ },
+ "6047": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "27",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#0",
+ "27",
+ "1"
+ ]
+ },
+ "6048": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "6049": {
+ "op": "dup",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box%box_extract%0#0 (copy)",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0",
+ "box%box_extract%0#0 (copy)"
+ ]
+ },
+ "6050": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0",
+ "box%box_extract%0#0 (copy)",
+ "1"
+ ]
+ },
+ "6051": {
+ "op": "getbit",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0",
+ "useRounds#0"
+ ]
+ },
+ "6052": {
+ "op": "frame_bury 28",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "6054": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "box%box_extract%0#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0",
+ "2"
+ ]
+ },
+ "6055": {
+ "op": "getbit",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "useExecutionKey#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useExecutionKey#0"
+ ]
+ },
+ "6056": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6059": {
+ "op": "txn Sender",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#1"
+ ]
+ },
+ "6061": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#1",
+ "0"
+ ]
+ },
+ "6062": {
+ "op": "bytec_2 // \"admin\"",
+ "defined_out": [
+ "\"admin\"",
+ "0",
+ "box_prefixed_key%0#0",
+ "tmp%0#1",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#1",
+ "0",
+ "\"admin\""
+ ]
+ },
+ "6063": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "maybe_exists%0#0",
+ "maybe_value%0#0",
+ "tmp%0#1",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#1",
+ "maybe_value%0#0",
+ "maybe_exists%0#0"
+ ]
+ },
+ "6064": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%0#1",
+ "maybe_value%0#0"
+ ]
+ },
+ "6065": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%1#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%1#0"
+ ]
+ },
+ "6066": {
+ "op": "bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6069": {
+ "op": "bytec 8 // \"x\"",
+ "defined_out": [
+ "\"x\"",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\""
+ ]
+ },
+ "6071": {
+ "op": "txn Lease",
+ "defined_out": [
+ "\"x\"",
+ "box_prefixed_key%0#0",
+ "materialized_values%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\"",
+ "materialized_values%0#0"
+ ]
+ },
+ "6073": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%1#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%1#0"
+ ]
+ },
+ "6074": {
+ "op": "box_len",
+ "defined_out": [
+ "_%0#0",
+ "box_prefixed_key%0#0",
+ "maybe_exists%1#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "_%0#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "6075": {
+ "op": "bury 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_exists%1#0"
+ ]
+ },
+ "6077": {
+ "error": "Execution key not found",
+ "op": "assert // Execution key not found",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6078": {
+ "op": "bytec 8 // \"x\"",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\""
+ ]
+ },
+ "6080": {
+ "op": "txn Lease",
+ "defined_out": [
+ "\"x\"",
+ "box_prefixed_key%0#0",
+ "materialized_values%1#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\"",
+ "materialized_values%1#0"
+ ]
+ },
+ "6082": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#1",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%2#1"
+ ]
+ },
+ "6083": {
+ "op": "intc_2 // 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%2#1",
+ "2"
+ ]
+ },
+ "6084": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "2",
+ "8",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%2#1",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%2#1",
+ "2",
+ "8"
+ ]
+ },
+ "6085": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%2#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%2#0"
+ ]
+ },
+ "6086": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "useRounds#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%2#0"
+ ]
+ },
+ "6087": {
+ "op": "global Round",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%2#0",
+ "useRounds#0",
+ "values%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%2#0",
+ "tmp%2#0"
+ ]
+ },
+ "6089": {
+ "op": "<=",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%3#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "6090": {
+ "error": "Execution key not ready",
+ "op": "assert // Execution key not ready",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6091": {
+ "op": "bytec 8 // \"x\"",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\""
+ ]
+ },
+ "6093": {
+ "op": "txn Lease",
+ "defined_out": [
+ "\"x\"",
+ "box_prefixed_key%0#0",
+ "materialized_values%2#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\"",
+ "materialized_values%2#0"
+ ]
+ },
+ "6095": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%3#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0"
+ ]
+ },
+ "6096": {
+ "op": "pushint 10 // 10",
+ "defined_out": [
+ "10",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%3#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0",
+ "10"
+ ]
+ },
+ "6098": {
+ "op": "intc_3 // 8",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0",
+ "10",
+ "8"
+ ]
+ },
+ "6099": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%3#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%3#0"
+ ]
+ },
+ "6100": {
+ "op": "btoi",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "useRounds#0",
+ "values%3#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%3#0"
+ ]
+ },
+ "6101": {
+ "op": "global Round",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%4#0",
+ "useRounds#0",
+ "values%3#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "values%3#0",
+ "tmp%4#0"
+ ]
+ },
+ "6103": {
+ "op": ">=",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "tmp%5#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%5#0"
+ ]
+ },
+ "6104": {
+ "error": "Execution key expired",
+ "op": "assert // Execution key expired",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6105": {
+ "op": "bytec 8 // \"x\"",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\""
+ ]
+ },
+ "6107": {
+ "op": "txn Lease",
+ "defined_out": [
+ "\"x\"",
+ "box_prefixed_key%0#0",
+ "materialized_values%3#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\"",
+ "materialized_values%3#0"
+ ]
+ },
+ "6109": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%4#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0"
+ ]
+ },
+ "6110": {
+ "op": "frame_bury 4",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%4#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6112": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%4#0",
+ "foundGroup#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "foundGroup#0"
+ ]
+ },
+ "6113": {
+ "op": "frame_bury 15",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%4#0",
+ "foundGroup#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6115": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%4#0",
+ "foundGroup#0",
+ "i#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "6116": {
+ "op": "frame_bury 16",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6118": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@17",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 4",
+ "defined_out": [
+ "box_prefixed_key%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0"
+ ]
+ },
+ "6120": {
+ "op": "pushint 18 // 18",
+ "defined_out": [
+ "18",
+ "box_prefixed_key%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0",
+ "18"
+ ]
+ },
+ "6122": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "18",
+ "2",
+ "box_prefixed_key%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0",
+ "18",
+ "2"
+ ]
+ },
+ "6123": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%4#0",
+ "box_prefixed_key%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%4#0"
+ ]
+ },
+ "6124": {
+ "op": "btoi",
+ "defined_out": [
+ "box%array_length%0#0",
+ "box_prefixed_key%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%array_length%0#0"
+ ]
+ },
+ "6125": {
+ "op": "frame_dig 16",
+ "defined_out": [
+ "box%array_length%0#0",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%array_length%0#0",
+ "i#0"
+ ]
+ },
+ "6127": {
+ "op": ">",
+ "defined_out": [
+ "box_prefixed_key%4#0",
+ "i#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%8#0"
+ ]
+ },
+ "6128": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_while@21",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6131": {
+ "op": "frame_dig 16",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "6133": {
+ "op": "pushint 32 // 32",
+ "defined_out": [
+ "32",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0",
+ "32"
+ ]
+ },
+ "6135": {
+ "op": "*",
+ "defined_out": [
+ "box%element_offset%0#0",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%element_offset%0#0"
+ ]
+ },
+ "6136": {
+ "op": "pushint 20 // 20",
+ "defined_out": [
+ "20",
+ "box%element_offset%0#0",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%element_offset%0#0",
+ "20"
+ ]
+ },
+ "6138": {
+ "op": "+",
+ "defined_out": [
+ "box%offset%4#0",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%offset%4#0"
+ ]
+ },
+ "6139": {
+ "op": "frame_dig 4",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%offset%4#0",
+ "box_prefixed_key%4#0"
+ ]
+ },
+ "6141": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0",
+ "box%offset%4#0"
+ ]
+ },
+ "6142": {
+ "op": "pushint 32 // 32",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%4#0",
+ "box%offset%4#0",
+ "32"
+ ]
+ },
+ "6144": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%5#0",
+ "box_prefixed_key%4#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%5#0"
+ ]
+ },
+ "6145": {
+ "op": "global GroupID",
+ "defined_out": [
+ "box%box_extract%5#0",
+ "box_prefixed_key%4#0",
+ "i#0",
+ "tmp%9#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%5#0",
+ "tmp%9#0"
+ ]
+ },
+ "6147": {
+ "op": "==",
+ "defined_out": [
+ "box_prefixed_key%4#0",
+ "i#0",
+ "tmp%10#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%10#0"
+ ]
+ },
+ "6148": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@20",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6151": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "box_prefixed_key%4#0",
+ "foundGroup#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "foundGroup#0"
+ ]
+ },
+ "6152": {
+ "op": "frame_bury 15",
+ "defined_out": [
+ "box_prefixed_key%4#0",
+ "foundGroup#0",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6154": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@20",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 16",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "6156": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0",
+ "1"
+ ]
+ },
+ "6157": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i#0"
+ ]
+ },
+ "6158": {
+ "op": "frame_bury 16",
+ "defined_out": [
+ "i#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6160": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@17"
+ },
+ "6163": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_while@21",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 15",
+ "defined_out": [
+ "foundGroup#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "foundGroup#0"
+ ]
+ },
+ "6165": {
+ "error": "Group not found",
+ "op": "assert // Group not found",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6166": {
+ "op": "bytec 8 // \"x\"",
+ "defined_out": [
+ "\"x\"",
+ "foundGroup#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\""
+ ]
+ },
+ "6168": {
+ "op": "txn Lease",
+ "defined_out": [
+ "\"x\"",
+ "foundGroup#0",
+ "materialized_values%4#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"x\"",
+ "materialized_values%4#0"
+ ]
+ },
+ "6170": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%5#0",
+ "foundGroup#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%5#0"
+ ]
+ },
+ "6171": {
+ "op": "box_del",
+ "defined_out": [
+ "foundGroup#0",
+ "{box_del}"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "{box_del}"
+ ]
+ },
+ "6172": {
+ "op": "pop",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6173": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 6",
+ "defined_out": [
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "6175": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCheck",
+ "op": "callsub pluginCheck",
+ "defined_out": [
+ "initialCheck#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "key#0"
+ ]
+ },
+ "6178": {
+ "op": "frame_bury 6",
+ "defined_out": [
+ "initialCheck#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0"
+ ]
+ },
+ "6180": {
+ "op": "dup",
+ "defined_out": [
+ "initialCheck#0",
+ "initialCheck#0 (copy)",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "initialCheck#0 (copy)"
+ ]
+ },
+ "6181": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "initialCheck#0 (copy)",
+ "0"
+ ]
+ },
+ "6182": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%3#0",
+ "initialCheck#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "aggregate%get_bit%3#0"
+ ]
+ },
+ "6183": {
+ "error": "plugin does not exist",
+ "op": "assert // plugin does not exist",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0"
+ ]
+ },
+ "6184": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "initialCheck#0 (copy)"
+ ]
+ },
+ "6185": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "initialCheck#0",
+ "initialCheck#0 (copy)",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "initialCheck#0 (copy)",
+ "1"
+ ]
+ },
+ "6186": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%4#0",
+ "initialCheck#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "aggregate%get_bit%4#0"
+ ]
+ },
+ "6187": {
+ "op": "!",
+ "defined_out": [
+ "initialCheck#0",
+ "key#0",
+ "tmp%12#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "tmp%12#0"
+ ]
+ },
+ "6188": {
+ "error": "plugin expired",
+ "op": "assert // plugin expired",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0"
+ ]
+ },
+ "6189": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "initialCheck#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "initialCheck#0",
+ "2"
+ ]
+ },
+ "6190": {
+ "op": "getbit",
+ "defined_out": [
+ "aggregate%get_bit%5#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%get_bit%5#0"
+ ]
+ },
+ "6191": {
+ "op": "!",
+ "defined_out": [
+ "key#0",
+ "tmp%13#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%13#0"
+ ]
+ },
+ "6192": {
+ "error": "plugin on cooldown",
+ "op": "assert // plugin on cooldown",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6193": {
+ "op": "frame_dig 28",
+ "defined_out": [
+ "key#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "6195": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@24",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6198": {
+ "op": "global Round",
+ "defined_out": [
+ "epochRef#0",
+ "key#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0"
+ ]
+ },
+ "6200": {
+ "op": "frame_bury 14",
+ "defined_out": [
+ "epochRef#0",
+ "key#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6202": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@25",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "rekeysBack#0"
+ ]
+ },
+ "6203": {
+ "op": "frame_bury 25",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6205": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0"
+ ]
+ },
+ "6206": {
+ "op": "frame_bury 22",
+ "defined_out": [
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6208": {
+ "op": "txn GroupIndex",
+ "defined_out": [
+ "methodIndex#0",
+ "rekeysBack#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%14#0"
+ ]
+ },
+ "6210": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "methodIndex#0",
+ "rekeysBack#0",
+ "tmp%14#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%14#0",
+ "1"
+ ]
+ },
+ "6211": {
+ "op": "+",
+ "defined_out": [
+ "i\u2081#0",
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0"
+ ]
+ },
+ "6212": {
+ "op": "frame_bury 18",
+ "defined_out": [
+ "i\u2081#0",
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6214": {
+ "op": "frame_dig 6",
+ "defined_out": [
+ "i\u2081#0",
+ "key#3",
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#3"
+ ]
+ },
+ "6216": {
+ "op": "frame_bury 7",
+ "defined_out": [
+ "i\u2081#0",
+ "key#3",
+ "methodIndex#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6218": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@26",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 18",
+ "defined_out": [
+ "i\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0"
+ ]
+ },
+ "6220": {
+ "op": "global GroupSize",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%16#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0",
+ "tmp%16#0"
+ ]
+ },
+ "6222": {
+ "op": "<",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%17#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%17#0"
+ ]
+ },
+ "6223": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@53",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6226": {
+ "op": "frame_dig 18",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0"
+ ]
+ },
+ "6228": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.txnRekeysBack",
+ "op": "callsub txnRekeysBack",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%18#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%18#0"
+ ]
+ },
+ "6231": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@29",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6234": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "i\u2081#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "rekeysBack#0"
+ ]
+ },
+ "6235": {
+ "op": "frame_bury 25",
+ "defined_out": [
+ "i\u2081#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6237": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@53",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 25",
+ "defined_out": [
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "rekeysBack#0"
+ ]
+ },
+ "6239": {
+ "error": "missing rekey back",
+ "op": "assert // missing rekey back",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6240": {
+ "op": "itxn_begin"
+ },
+ "6241": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "6242": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0",
+ "\"spending_address\""
+ ]
+ },
+ "6244": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%3#0",
+ "maybe_value%1#0",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "maybe_exists%3#0"
+ ]
+ },
+ "6245": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "6246": {
+ "op": "frame_dig -5",
+ "defined_out": [
+ "maybe_value%1#0",
+ "plugin#0 (copy)",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "plugin#0 (copy)"
+ ]
+ },
+ "6248": {
+ "op": "app_params_get AppAddress",
+ "defined_out": [
+ "check%1#0",
+ "maybe_value%1#0",
+ "rekeysBack#0",
+ "value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "value%1#0",
+ "check%1#0"
+ ]
+ },
+ "6250": {
+ "error": "application exists",
+ "op": "assert // application exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "value%1#0"
+ ]
+ },
+ "6251": {
+ "op": "pushbytes \"rekeying to plugin app\"",
+ "defined_out": [
+ "\"rekeying to plugin app\"",
+ "maybe_value%1#0",
+ "rekeysBack#0",
+ "value%1#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "value%1#0",
+ "\"rekeying to plugin app\""
+ ]
+ },
+ "6275": {
+ "op": "itxn_field Note",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "value%1#0"
+ ]
+ },
+ "6277": {
+ "op": "itxn_field RekeyTo",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "6279": {
+ "op": "dup",
+ "defined_out": [
+ "maybe_value%1#0",
+ "maybe_value%1#0 (copy)",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0",
+ "maybe_value%1#0 (copy)"
+ ]
+ },
+ "6280": {
+ "op": "itxn_field Receiver",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%1#0"
+ ]
+ },
+ "6282": {
+ "op": "itxn_field Sender",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6284": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "1"
+ ]
+ },
+ "6285": {
+ "op": "itxn_field TypeEnum",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6287": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "6288": {
+ "op": "itxn_field Fee",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6290": {
+ "op": "itxn_submit"
+ },
+ "6291": {
+ "op": "bytec 17 // \"rekey_index\"",
+ "defined_out": [
+ "\"rekey_index\"",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"rekey_index\""
+ ]
+ },
+ "6293": {
+ "op": "txn GroupIndex",
+ "defined_out": [
+ "\"rekey_index\"",
+ "rekeysBack#0",
+ "tmp%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"rekey_index\"",
+ "tmp%2#0"
+ ]
+ },
+ "6295": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6296": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"p\""
+ ]
+ },
+ "6298": {
+ "op": "frame_dig 7",
+ "defined_out": [
+ "\"p\"",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"p\"",
+ "key#3"
+ ]
+ },
+ "6300": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%3#0",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0"
+ ]
+ },
+ "6301": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "box_prefixed_key%3#0",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0",
+ "8"
+ ]
+ },
+ "6302": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%3#0",
+ "8",
+ "1"
+ ]
+ },
+ "6303": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%0#0",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0"
+ ]
+ },
+ "6304": {
+ "op": "bytec 15 // 0x01",
+ "defined_out": [
+ "0x01",
+ "box%box_extract%0#0",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box%box_extract%0#0",
+ "0x01"
+ ]
+ },
+ "6306": {
+ "op": "==",
+ "defined_out": [
+ "key#3",
+ "rekeysBack#0",
+ "tmp%3#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%3#0"
+ ]
+ },
+ "6307": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@13",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6310": {
+ "op": "bytec_3 // \"last_user_interaction\"",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "key#3",
+ "rekeysBack#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"last_user_interaction\""
+ ]
+ },
+ "6311": {
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "\"last_user_interaction\"",
+ "key#3",
+ "rekeysBack#0",
+ "tmp%0#4"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"last_user_interaction\"",
+ "tmp%0#4"
+ ]
+ },
+ "6313": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6314": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@13",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig -2",
+ "defined_out": [
+ "methodOffsets#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOffsets#0 (copy)"
+ ]
+ },
+ "6316": {
+ "op": "frame_dig -1",
+ "defined_out": [
+ "fundsRequest#0 (copy)",
+ "methodOffsets#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOffsets#0 (copy)",
+ "fundsRequest#0 (copy)"
+ ]
+ },
+ "6318": {
+ "op": "frame_bury 1"
+ },
+ "6320": {
+ "op": "frame_bury 0"
+ },
+ "6322": {
+ "retsub": true,
+ "op": "retsub"
+ },
+ "6323": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@29",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 18",
+ "defined_out": [
+ "i\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0"
+ ]
+ },
+ "6325": {
+ "op": "gtxns TypeEnum",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%19#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%19#0"
+ ]
+ },
+ "6327": {
+ "op": "pushint 6 // 6",
+ "defined_out": [
+ "6",
+ "i\u2081#0",
+ "tmp%19#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%19#0",
+ "6"
+ ]
+ },
+ "6329": {
+ "op": "!=",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%20#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%20#0"
+ ]
+ },
+ "6330": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@31",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6333": {
+ "op": "frame_dig 7",
+ "defined_out": [
+ "i\u2081#0",
+ "key%out#11"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11"
+ ]
+ },
+ "6335": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@51",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11"
+ ],
+ "op": "frame_dig 18",
+ "defined_out": [
+ "i\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11",
+ "i\u2081#0"
+ ]
+ },
+ "6337": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11",
+ "i\u2081#0",
+ "1"
+ ]
+ },
+ "6338": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11",
+ "i\u2081#0"
+ ]
+ },
+ "6339": {
+ "op": "frame_bury 18",
+ "defined_out": [
+ "i\u2081#0",
+ "key#3"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#3"
+ ]
+ },
+ "6341": {
+ "op": "frame_bury 7",
+ "defined_out": [
+ "i\u2081#0",
+ "key#3"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6343": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@26"
+ },
+ "6346": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@31",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 18",
+ "defined_out": [
+ "i\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0"
+ ]
+ },
+ "6348": {
+ "op": "dup",
+ "defined_out": [
+ "i\u2081#0",
+ "i\u2081#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0",
+ "i\u2081#0 (copy)"
+ ]
+ },
+ "6349": {
+ "op": "gtxns ApplicationID",
+ "defined_out": [
+ "i\u2081#0",
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0",
+ "tmp%21#0"
+ ]
+ },
+ "6351": {
+ "op": "frame_dig 6",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0",
+ "tmp%21#0",
+ "key#0"
+ ]
+ },
+ "6353": {
+ "op": "dup",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "key#0 (copy)",
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "i\u2081#0",
+ "tmp%21#0",
+ "key#0 (copy)",
+ "key#0 (copy)"
+ ]
+ },
+ "6354": {
+ "op": "cover 3",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%21#0",
+ "key#0 (copy)"
+ ]
+ },
+ "6356": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "i\u2081#0",
+ "key#0",
+ "key#0 (copy)",
+ "tmp%21#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%21#0",
+ "key#0 (copy)",
+ "0"
+ ]
+ },
+ "6357": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%21#0",
+ "values%8#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%21#0",
+ "values%8#0"
+ ]
+ },
+ "6358": {
+ "op": "==",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%22#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%22#0"
+ ]
+ },
+ "6359": {
+ "error": "cannot call other apps during rekey",
+ "op": "assert // cannot call other apps during rekey",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0"
+ ]
+ },
+ "6360": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "i\u2081#0 (copy)"
+ ]
+ },
+ "6361": {
+ "op": "gtxns OnCompletion",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%23#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%23#0"
+ ]
+ },
+ "6363": {
+ "op": "!",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%24#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%24#0"
+ ]
+ },
+ "6364": {
+ "error": "invalid oncomplete must be no op",
+ "op": "assert // invalid oncomplete must be no op",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0"
+ ]
+ },
+ "6365": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "i\u2081#0 (copy)"
+ ]
+ },
+ "6366": {
+ "op": "gtxns NumAppArgs",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%25#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%25#0"
+ ]
+ },
+ "6368": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "i\u2081#0",
+ "key#0",
+ "tmp%25#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%25#0",
+ "1"
+ ]
+ },
+ "6369": {
+ "op": ">",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%26#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "tmp%26#0"
+ ]
+ },
+ "6370": {
+ "error": "invalid sender must be this app id",
+ "op": "assert // invalid sender must be this app id",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0"
+ ]
+ },
+ "6371": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "i\u2081#0",
+ "1"
+ ]
+ },
+ "6372": {
+ "op": "gtxnsas ApplicationArgs",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%27#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "tmp%27#0"
+ ]
+ },
+ "6374": {
+ "op": "btoi",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%28#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "tmp%28#0"
+ ]
+ },
+ "6375": {
+ "op": "global CurrentApplicationID",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%28#0",
+ "tmp%29#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "tmp%28#0",
+ "tmp%29#0"
+ ]
+ },
+ "6377": {
+ "op": "==",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "tmp%30#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "tmp%30#0"
+ ]
+ },
+ "6378": {
+ "error": "invalid sender app id",
+ "op": "assert // invalid sender app id",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "6379": {
+ "callsub": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCheck",
+ "op": "callsub pluginCheck",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "pluginCheck%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "key#0"
+ ]
+ },
+ "6382": {
+ "op": "frame_bury 6",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "pluginCheck%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0"
+ ]
+ },
+ "6384": {
+ "op": "dup",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "pluginCheck%2#0",
+ "pluginCheck%2#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "pluginCheck%2#0 (copy)"
+ ]
+ },
+ "6385": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "pluginCheck%2#0 (copy)",
+ "1"
+ ]
+ },
+ "6386": {
+ "op": "getbit",
+ "defined_out": [
+ "expired#0",
+ "i\u2081#0",
+ "key#0",
+ "pluginCheck%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "expired#0"
+ ]
+ },
+ "6387": {
+ "op": "dig 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "expired#0",
+ "pluginCheck%2#0 (copy)"
+ ]
+ },
+ "6389": {
+ "op": "intc_2 // 2",
+ "defined_out": [
+ "2",
+ "expired#0",
+ "i\u2081#0",
+ "key#0",
+ "pluginCheck%2#0",
+ "pluginCheck%2#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "expired#0",
+ "pluginCheck%2#0 (copy)",
+ "2"
+ ]
+ },
+ "6390": {
+ "op": "getbit",
+ "defined_out": [
+ "expired#0",
+ "i\u2081#0",
+ "key#0",
+ "onCooldown#0",
+ "pluginCheck%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "pluginCheck%2#0",
+ "expired#0",
+ "onCooldown#0"
+ ]
+ },
+ "6391": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "expired#0",
+ "onCooldown#0",
+ "pluginCheck%2#0"
+ ]
+ },
+ "6393": {
+ "op": "pushint 3 // 3",
+ "defined_out": [
+ "3",
+ "expired#0",
+ "i\u2081#0",
+ "key#0",
+ "onCooldown#0",
+ "pluginCheck%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "expired#0",
+ "onCooldown#0",
+ "pluginCheck%2#0",
+ "3"
+ ]
+ },
+ "6395": {
+ "op": "getbit",
+ "defined_out": [
+ "expired#0",
+ "hasMethodRestrictions#0",
+ "i\u2081#0",
+ "key#0",
+ "onCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "expired#0",
+ "onCooldown#0",
+ "hasMethodRestrictions#0"
+ ]
+ },
+ "6396": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "onCooldown#0",
+ "hasMethodRestrictions#0",
+ "expired#0"
+ ]
+ },
+ "6398": {
+ "op": "!",
+ "defined_out": [
+ "hasMethodRestrictions#0",
+ "i\u2081#0",
+ "key#0",
+ "onCooldown#0",
+ "tmp%31#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "onCooldown#0",
+ "hasMethodRestrictions#0",
+ "tmp%31#0"
+ ]
+ },
+ "6399": {
+ "error": "plugin expired",
+ "op": "assert // plugin expired",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "onCooldown#0",
+ "hasMethodRestrictions#0"
+ ]
+ },
+ "6400": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "hasMethodRestrictions#0",
+ "onCooldown#0"
+ ]
+ },
+ "6401": {
+ "op": "!",
+ "defined_out": [
+ "hasMethodRestrictions#0",
+ "i\u2081#0",
+ "key#0",
+ "tmp%32#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "hasMethodRestrictions#0",
+ "tmp%32#0"
+ ]
+ },
+ "6402": {
+ "error": "plugin on cooldown",
+ "op": "assert // plugin on cooldown",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "hasMethodRestrictions#0"
+ ]
+ },
+ "6403": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@50",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6406": {
+ "op": "frame_dig -2",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodOffsets#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOffsets#0 (copy)"
+ ]
+ },
+ "6408": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOffsets#0 (copy)",
+ "0"
+ ]
+ },
+ "6409": {
+ "op": "extract_uint16",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i\u2081#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "6410": {
+ "op": "frame_dig 22",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_length%1#0",
+ "methodIndex#0"
+ ]
+ },
+ "6412": {
+ "op": "dup"
+ },
+ "6413": {
+ "op": "uncover 2",
+ "defined_out": [
+ "aggregate%array_length%1#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "methodIndex#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0",
+ "methodIndex#0 (copy)",
+ "aggregate%array_length%1#0"
+ ]
+ },
+ "6415": {
+ "op": "<",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "tmp%34#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0",
+ "tmp%34#0"
+ ]
+ },
+ "6416": {
+ "error": "malformed method offsets",
+ "op": "assert // malformed method offsets",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0"
+ ]
+ },
+ "6417": {
+ "op": "frame_dig -2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0",
+ "methodOffsets#0 (copy)"
+ ]
+ },
+ "6419": {
+ "op": "extract 2 0",
+ "defined_out": [
+ "aggregate%array_trimmed%7#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodIndex#0",
+ "aggregate%array_trimmed%7#0"
+ ]
+ },
+ "6422": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%7#0",
+ "methodIndex#0"
+ ]
+ },
+ "6423": {
+ "op": "intc_3 // 8",
+ "defined_out": [
+ "8",
+ "aggregate%array_trimmed%7#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%7#0",
+ "methodIndex#0",
+ "8"
+ ]
+ },
+ "6424": {
+ "op": "*",
+ "defined_out": [
+ "aggregate%array_trimmed%7#0",
+ "aggregate%bytes_offset%7#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%array_trimmed%7#0",
+ "aggregate%bytes_offset%7#0"
+ ]
+ },
+ "6425": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0"
+ ]
+ },
+ "6426": {
+ "op": "frame_dig 18",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "i\u2081#0"
+ ]
+ },
+ "6428": {
+ "op": "intc_0 // 0",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "i\u2081#0",
+ "0"
+ ]
+ },
+ "6429": {
+ "op": "gtxnsas ApplicationArgs",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "selectorArg#0"
+ ]
+ },
+ "6431": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "selectorArg#0",
+ "selectorArg#0"
+ ]
+ },
+ "6432": {
+ "op": "frame_bury 9",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "selectorArg#0"
+ ]
+ },
+ "6434": {
+ "op": "len",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "tmp%1#2"
+ ]
+ },
+ "6435": {
+ "op": "pushint 4 // 4",
+ "defined_out": [
+ "4",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "tmp%1#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "tmp%1#2",
+ "4"
+ ]
+ },
+ "6437": {
+ "op": "==",
+ "defined_out": [
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "tmp%2#2"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "tmp%2#2"
+ ]
+ },
+ "6438": {
+ "error": "invalid method signature length",
+ "op": "assert // invalid method signature length",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0"
+ ]
+ },
+ "6439": {
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\"",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "\"p\""
+ ]
+ },
+ "6441": {
+ "op": "frame_dig 6",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "6443": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6444": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6445": {
+ "op": "frame_bury 2",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6447": {
+ "op": "dup",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)"
+ ]
+ },
+ "6448": {
+ "op": "pushint 27 // 27",
+ "defined_out": [
+ "27",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27"
+ ]
+ },
+ "6450": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#0 (copy)",
+ "27",
+ "1"
+ ]
+ },
+ "6451": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%6#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%6#0"
+ ]
+ },
+ "6452": {
+ "op": "intc_1 // 1",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "box%box_extract%6#0",
+ "1"
+ ]
+ },
+ "6453": {
+ "op": "getbit",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ]
+ },
+ "6454": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0",
+ "useRounds#0 (copy)"
+ ]
+ },
+ "6455": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "useRounds#0"
+ ]
+ },
+ "6457": {
+ "op": "frame_bury 28",
+ "defined_out": [
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "offset#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6459": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "offset#0"
+ ]
+ },
+ "6461": {
+ "op": "pushint 20 // 20",
+ "defined_out": [
+ "20",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "offset#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "offset#0",
+ "20"
+ ]
+ },
+ "6463": {
+ "op": "*",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%2#0"
+ ]
+ },
+ "6464": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%2#0",
+ "box%element_offset%2#0"
+ ]
+ },
+ "6465": {
+ "op": "frame_bury 12",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%2#0"
+ ]
+ },
+ "6467": {
+ "op": "pushint 46 // 46",
+ "defined_out": [
+ "46",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%element_offset%2#0",
+ "46"
+ ]
+ },
+ "6469": {
+ "op": "+",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box%offset%8#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%offset%8#0"
+ ]
+ },
+ "6470": {
+ "op": "pushint 20 // 20",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box_prefixed_key%0#0",
+ "box%offset%8#0",
+ "20"
+ ]
+ },
+ "6472": {
+ "op": "box_extract",
+ "defined_out": [
+ "box%box_extract%8#0",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0"
+ ]
+ },
+ "6473": {
+ "op": "dup",
+ "defined_out": [
+ "box%box_extract%8#0",
+ "box%box_extract%8#0 (copy)",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "box%box_extract%8#0 (copy)"
+ ]
+ },
+ "6474": {
+ "op": "extract 0 4",
+ "defined_out": [
+ "box%box_extract%8#0",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "selector#0"
+ ]
+ },
+ "6477": {
+ "op": "frame_bury 8",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0"
+ ]
+ },
+ "6479": {
+ "op": "dup",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "box%box_extract%8#0 (copy)"
+ ]
+ },
+ "6480": {
+ "op": "pushint 4 // 4",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "box%box_extract%8#0 (copy)",
+ "4"
+ ]
+ },
+ "6482": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "box%box_extract%8#0",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "cooldown#0"
+ ]
+ },
+ "6483": {
+ "op": "frame_bury 13",
+ "defined_out": [
+ "box%box_extract%8#0",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0"
+ ]
+ },
+ "6485": {
+ "op": "pushint 12 // 12",
+ "defined_out": [
+ "12",
+ "box%box_extract%8#0",
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "i\u2081#0",
+ "key#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "box%box_extract%8#0",
+ "12"
+ ]
+ },
+ "6487": {
+ "op": "extract_uint64",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "i\u2081#0",
+ "key#0",
+ "lastCalled#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0",
+ "lastCalled#0"
+ ]
+ },
+ "6488": {
+ "op": "frame_bury 20",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "i\u2081#0",
+ "key#0",
+ "lastCalled#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "6490": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@34",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6493": {
+ "op": "global Round",
+ "defined_out": [
+ "box%element_offset%2#0",
+ "box_prefixed_key%0#0",
+ "cooldown#0",
+ "epochRef#1",
+ "i\u2081#0",
+ "key#0",
+ "lastCalled#0",
+ "methodIndex#0",
+ "selector#0",
+ "selectorArg#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#1"
+ ]
+ },
+ "6495": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@35",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#1"
+ ],
+ "op": "frame_dig 20",
+ "defined_out": [
+ "epochRef#1",
+ "lastCalled#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#1",
+ "lastCalled#0"
+ ]
+ },
+ "6497": {
+ "op": "-",
+ "defined_out": [
+ "lastCalled#0",
+ "tmp%6#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%6#1"
+ ]
+ },
+ "6498": {
+ "op": "frame_dig 13",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "tmp%6#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%6#1",
+ "cooldown#0"
+ ]
+ },
+ "6500": {
+ "op": "<",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOnCooldown#0"
+ ]
+ },
+ "6501": {
+ "op": "frame_bury 23",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6503": {
+ "op": "frame_dig 8",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "methodOnCooldown#0",
+ "selector#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "selector#0"
+ ]
+ },
+ "6505": {
+ "op": "frame_dig 9",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "methodOnCooldown#0",
+ "selector#0",
+ "selectorArg#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "selector#0",
+ "selectorArg#0"
+ ]
+ },
+ "6507": {
+ "op": "==",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled#0",
+ "methodOnCooldown#0",
+ "selector#0",
+ "selectorArg#0",
+ "tmp%8#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "tmp%8#0"
+ ]
+ },
+ "6508": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6511": {
+ "op": "frame_dig 13",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "cooldown#0"
+ ]
+ },
+ "6513": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_if_body@38",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6516": {
+ "op": "frame_dig 23",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOnCooldown#0"
+ ]
+ },
+ "6518": {
+ "op": "bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6521": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_if_body@38",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "frame_dig 13",
+ "defined_out": [
+ "cooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "cooldown#0"
+ ]
+ },
+ "6523": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@43",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6526": {
+ "op": "frame_dig 28",
+ "defined_out": [
+ "cooldown#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "useRounds#0"
+ ]
+ },
+ "6528": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@41",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6531": {
+ "op": "global Round",
+ "defined_out": [
+ "cooldown#0",
+ "lastCalled\u2081#0",
+ "useRounds#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "lastCalled\u2081#0"
+ ]
+ },
+ "6533": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@42",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "lastCalled\u2081#0"
+ ],
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%6#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0"
+ ]
+ },
+ "6534": {
+ "op": "frame_dig 12",
+ "defined_out": [
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0"
+ ]
+ },
+ "6536": {
+ "op": "pushint 58 // 58",
+ "defined_out": [
+ "58",
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0",
+ "58"
+ ]
+ },
+ "6538": {
+ "op": "+",
+ "defined_out": [
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0",
+ "box%offset%15#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0",
+ "box%offset%15#0"
+ ]
+ },
+ "6539": {
+ "op": "frame_dig 2",
+ "defined_out": [
+ "aggregate%val_as_bytes%6#0",
+ "box%element_offset%2#0",
+ "box%offset%15#0",
+ "box_prefixed_key%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0",
+ "box%offset%15#0",
+ "box_prefixed_key%0#0"
+ ]
+ },
+ "6541": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "aggregate%val_as_bytes%6#0",
+ "box_prefixed_key%0#0",
+ "box%offset%15#0"
+ ]
+ },
+ "6542": {
+ "op": "uncover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "box_prefixed_key%0#0",
+ "box%offset%15#0",
+ "aggregate%val_as_bytes%6#0"
+ ]
+ },
+ "6544": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6545": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@43",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "pushbytes 0x80",
+ "defined_out": [
+ "0x80"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0x80"
+ ]
+ },
+ "6548": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "0x80",
+ "1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0x80",
+ "1"
+ ]
+ },
+ "6549": {
+ "op": "frame_dig 23",
+ "defined_out": [
+ "0x80",
+ "1",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0x80",
+ "1",
+ "methodOnCooldown#0"
+ ]
+ },
+ "6551": {
+ "op": "setbit",
+ "defined_out": [
+ "methodCheck%0#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0"
+ ]
+ },
+ "6552": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.methodCheck@45",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0"
+ ],
+ "op": "dup",
+ "defined_out": [
+ "methodCheck%0#0",
+ "methodCheck%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0",
+ "methodCheck%0#0 (copy)"
+ ]
+ },
+ "6553": {
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0",
+ "methodCheck%0#0",
+ "methodCheck%0#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0",
+ "methodCheck%0#0 (copy)",
+ "0"
+ ]
+ },
+ "6554": {
+ "op": "getbit",
+ "defined_out": [
+ "methodAllowed#0",
+ "methodCheck%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0",
+ "methodAllowed#0"
+ ]
+ },
+ "6555": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodAllowed#0",
+ "methodCheck%0#0"
+ ]
+ },
+ "6556": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "methodAllowed#0",
+ "methodCheck%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodAllowed#0",
+ "methodCheck%0#0",
+ "1"
+ ]
+ },
+ "6557": {
+ "op": "getbit",
+ "defined_out": [
+ "methodAllowed#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodAllowed#0",
+ "methodOnCooldown#0"
+ ]
+ },
+ "6558": {
+ "op": "frame_bury 23",
+ "defined_out": [
+ "methodAllowed#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodAllowed#0"
+ ]
+ },
+ "6560": {
+ "op": "bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6563": {
+ "op": "frame_dig 23",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodOnCooldown#0"
+ ]
+ },
+ "6565": {
+ "op": "bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6568": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "and_result%0#0",
+ "methodOnCooldown#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "and_result%0#0"
+ ]
+ },
+ "6569": {
+ "error": "method on cooldown",
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_merge@49",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "and_result%0#0"
+ ],
+ "op": "assert // method on cooldown",
+ "defined_out": [],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6570": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@50",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "bytec 4 // \"p\"",
+ "defined_out": [
+ "\"p\""
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"p\""
+ ]
+ },
+ "6572": {
+ "op": "frame_dig 6",
+ "defined_out": [
+ "\"p\"",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"p\"",
+ "key#0"
+ ]
+ },
+ "6574": {
+ "op": "dup",
+ "defined_out": [
+ "\"p\"",
+ "key#0",
+ "key#0 (copy)"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"p\"",
+ "key#0 (copy)",
+ "key#0 (copy)"
+ ]
+ },
+ "6575": {
+ "op": "cover 2",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "\"p\"",
+ "key#0 (copy)"
+ ]
+ },
+ "6577": {
+ "op": "concat",
+ "defined_out": [
+ "box_prefixed_key%6#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%6#0"
+ ]
+ },
+ "6578": {
+ "op": "frame_dig 14",
+ "defined_out": [
+ "box_prefixed_key%6#0",
+ "epochRef#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%6#0",
+ "epochRef#0"
+ ]
+ },
+ "6580": {
+ "op": "itob",
+ "defined_out": [
+ "aggregate%val_as_bytes%7#0",
+ "box_prefixed_key%6#0",
+ "epochRef#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%6#0",
+ "aggregate%val_as_bytes%7#0"
+ ]
+ },
+ "6581": {
+ "op": "pushint 28 // 28"
+ },
+ "6583": {
+ "op": "swap",
+ "defined_out": [
+ "28",
+ "aggregate%val_as_bytes%7#0",
+ "box_prefixed_key%6#0",
+ "epochRef#0",
+ "key#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "box_prefixed_key%6#0",
+ "28",
+ "aggregate%val_as_bytes%7#0"
+ ]
+ },
+ "6584": {
+ "op": "box_replace",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0"
+ ]
+ },
+ "6585": {
+ "op": "frame_dig 22",
+ "defined_out": [
+ "epochRef#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "methodIndex#0"
+ ]
+ },
+ "6587": {
+ "op": "intc_1 // 1",
+ "defined_out": [
+ "1",
+ "epochRef#0",
+ "key#0",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "methodIndex#0",
+ "1"
+ ]
+ },
+ "6588": {
+ "op": "+",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key#0",
+ "methodIndex#0"
+ ]
+ },
+ "6589": {
+ "op": "frame_bury 22",
+ "defined_out": [
+ "epochRef#0",
+ "key#0",
+ "key%out#11",
+ "methodIndex#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "key%out#11"
+ ]
+ },
+ "6591": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@51"
+ },
+ "6594": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "and_result%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "and_result%0#0"
+ ]
+ },
+ "6595": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_merge@49"
+ },
+ "6598": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@41",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "lastCalled\u2081#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "lastCalled\u2081#0"
+ ]
+ },
+ "6600": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@42"
+ },
+ "6603": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "pushbytes 0x40",
+ "defined_out": [
+ "methodCheck%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "methodCheck%0#0"
+ ]
+ },
+ "6606": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.methodCheck@45"
+ },
+ "6609": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@34",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#1"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#1"
+ ]
+ },
+ "6611": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@35"
+ },
+ "6614": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@24",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "global LatestTimestamp",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "epochRef#0"
+ ]
+ },
+ "6616": {
+ "op": "frame_bury 14",
+ "defined_out": [
+ "epochRef#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6618": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@25"
+ },
+ "6621": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@7",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "intc_0 // 0",
+ "defined_out": [
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0"
+ ]
+ },
+ "6622": {
+ "op": "bytec_0 // \"controlled_address\"",
+ "defined_out": [
+ "\"controlled_address\"",
+ "0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "0",
+ "\"controlled_address\""
+ ]
+ },
+ "6623": {
+ "op": "app_global_get_ex",
+ "defined_out": [
+ "maybe_exists%2#0",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "maybe_exists%2#0"
+ ]
+ },
+ "6624": {
+ "error": "check GlobalState exists",
+ "op": "assert // check GlobalState exists",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0"
+ ]
+ },
+ "6625": {
+ "op": "bytec 11 // \"spending_address\"",
+ "defined_out": [
+ "\"spending_address\"",
+ "maybe_value%0#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "maybe_value%0#0",
+ "\"spending_address\""
+ ]
+ },
+ "6627": {
+ "op": "swap",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "\"spending_address\"",
+ "maybe_value%0#0"
+ ]
+ },
+ "6628": {
+ "op": "app_global_put",
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ]
+ },
+ "6629": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8"
+ },
+ "6632": {
+ "block": "smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@2",
+ "stack_in": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0"
+ ],
+ "op": "txn Sender",
+ "defined_out": [
+ "caller#0"
+ ],
+ "stack_out": [
+ "aggregate%encoded_element%0#0",
+ "aggregate%encoded_value%0#0",
+ "box_prefixed_key%0#0",
+ "box_prefixed_key%0#4",
+ "box_prefixed_key%4#0",
+ "escrowAddress#0",
+ "key#0",
+ "key#3",
+ "selector#0",
+ "selectorArg#0",
+ "type#0",
+ "amount#0",
+ "box%element_offset%2#0",
+ "cooldown#0",
+ "epochRef#0",
+ "foundGroup#0",
+ "i#0",
+ "interval#0",
+ "i\u2081#0",
+ "last#0",
+ "lastCalled#0",
+ "max#0",
+ "methodIndex#0",
+ "methodOnCooldown#0",
+ "newLast#0",
+ "rekeysBack#0",
+ "spent#0",
+ "start#0",
+ "useRounds#0",
+ "values%1#0",
+ "caller#0"
+ ]
+ },
+ "6634": {
+ "op": "b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@3"
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.teal b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.teal
new file mode 100644
index 000000000..2c31cb017
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.approval.teal
@@ -0,0 +1,6840 @@
+#pragma version 11
+#pragma typetrack false
+
+// @algorandfoundation/algorand-typescript/arc4/index.d.ts::Contract.approvalProgram() -> uint64:
+main:
+ intcblock 0 1 2 8 400 21700 27700
+ bytecblock "controlled_address" "" "admin" "last_user_interaction" "p" "e" "last_change" 0x151f7c75 "x" 0x00 0x0000 "spending_address" 0x002a 0x000a "a" 0x01 "n" "rekey_index" "escrow_factory" "current_plugin" 0x0002 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000 0x6cc3f606 0x002c
+ txn ApplicationID
+ bnz main_after_if_else@2
+ // smart_contracts/abstracted_account/contract.algo.ts:30
+ // rekeyIndex = GlobalState({ initialValue: 0, key: AbstractAccountGlobalStateKeysRekeyIndex })
+ bytec 17 // "rekey_index"
+ intc_0 // 0
+ app_global_put
+
+main_after_if_else@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:13
+ // export class AbstractedAccount extends Contract {
+ txn OnCompletion
+ !
+ assert // OnCompletion must be NoOp
+ txn ApplicationID
+ bz main_create_NoOp@34
+ pushbytess 0xbd6099e5 0xd24b7556 0x147b6cd6 0x13bc44e4 // method "register(string)void", method "arc58_changeAdmin(address)void", method "arc58_pluginChangeAdmin(address)void", method "arc58_getAdmin()address"
+ bytec 22 // method "arc58_verifyAuthAddress()void"
+ pushbytess 0xc95a5d3d 0x4727af21 0x582ff382 0xdefd5cd2 0xb3c80df9 0xeef448fd 0x38f591ea 0xe350b9d4 0x0a8cb2c2 0x25b713ca 0xebaf14a0 0x1fda3b4f 0x9d3f8918 0xbf4d7c57 0xd5dd382b 0x5cebed43 0xd58685af 0x7c37156e 0xaffaa4e8 0xa2403ddf 0x02fe4515 0x41bdc680 0x50f3e35c // method "arc58_rekeyTo(address,bool)void", method "arc58_canCall(uint64,bool,address,string,byte[4])bool", method "arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void", method "arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void", method "arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void", method "arc58_removePlugin(uint64,address,string)void", method "arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void", method "arc58_removeNamedPlugin(string)void", method "arc58_newEscrow(string)uint64", method "arc58_toggleEscrowLock(string)(uint64,bool)", method "arc58_reclaim(string,(uint64,uint64,bool)[])void", method "arc58_optinEscrow(string,uint64[])void", method "arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void", method "arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void", method "arc58_removeAllowances(string,uint64[])void", method "arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void", method "arc58_removeExecutionKey(byte[32])void", method "arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]", method "arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]", method "arc58_getEscrows(string[])(uint64,bool)[]", method "arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]", method "arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]", method "mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)"
+ txna ApplicationArgs 0
+ match register arc58_changeAdmin arc58_pluginChangeAdmin arc58_getAdmin arc58_verifyAuthAddress arc58_rekeyTo arc58_canCall arc58_rekeyToPlugin arc58_rekeyToNamedPlugin arc58_addPlugin arc58_removePlugin arc58_addNamedPlugin arc58_removeNamedPlugin arc58_newEscrow arc58_toggleEscrowLock arc58_reclaim arc58_optinEscrow arc58_pluginOptinEscrow arc58_addAllowances arc58_removeAllowances arc58_addExecutionKey arc58_removeExecutionKey arc58_getPlugins arc58_getNamedPlugins arc58_getEscrows arc58_getAllowances arc58_getExecutions mbr
+ err
+
+main_create_NoOp@34:
+ // smart_contracts/abstracted_account/contract.algo.ts:13
+ // export class AbstractedAccount extends Contract {
+ pushbytes 0xe18362e2 // method "createApplication(address,address,uint64)void"
+ txna ApplicationArgs 0
+ match createApplication
+ err
+
+
+// _puya_lib.arc4.dynamic_array_concat_dynamic_element(array_items_count: uint64, array_head_and_tail: bytes, new_items_count: uint64, new_head_and_tail: bytes) -> bytes:
+dynamic_array_concat_dynamic_element:
+ proto 4 1
+ bytec_1 // ""
+ dup
+ frame_dig -2
+ intc_2 // 2
+ *
+ frame_dig -4
+ intc_2 // 2
+ *
+ intc_0 // 0
+
+dynamic_array_concat_dynamic_element_for_header@1:
+ frame_dig 4
+ frame_dig 3
+ <
+ bz dynamic_array_concat_dynamic_element_after_for@4
+ frame_dig -3
+ frame_dig 4
+ dup
+ cover 2
+ extract_uint16
+ frame_dig 2
+ +
+ itob
+ extract 6 2
+ frame_dig 1
+ swap
+ concat
+ frame_bury 1
+ intc_2 // 2
+ +
+ frame_bury 4
+ b dynamic_array_concat_dynamic_element_for_header@1
+
+dynamic_array_concat_dynamic_element_after_for@4:
+ frame_dig -3
+ len
+ frame_bury 0
+ intc_0 // 0
+ frame_bury 4
+
+dynamic_array_concat_dynamic_element_for_header@5:
+ frame_dig 4
+ frame_dig 2
+ <
+ bz dynamic_array_concat_dynamic_element_after_for@8
+ frame_dig -1
+ frame_dig 4
+ dup
+ cover 2
+ extract_uint16
+ frame_dig 0
+ +
+ itob
+ extract 6 2
+ frame_dig 1
+ swap
+ concat
+ frame_bury 1
+ intc_2 // 2
+ +
+ frame_bury 4
+ b dynamic_array_concat_dynamic_element_for_header@5
+
+dynamic_array_concat_dynamic_element_after_for@8:
+ frame_dig -4
+ frame_dig -2
+ +
+ itob
+ extract 6 2
+ frame_dig 1
+ concat
+ frame_dig -3
+ frame_dig 3
+ frame_dig 0
+ substring3
+ concat
+ frame_dig -1
+ len
+ frame_dig -1
+ frame_dig 2
+ uncover 2
+ substring3
+ concat
+ frame_bury 0
+ retsub
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.createApplication[routing]() -> void:
+createApplication:
+ // smart_contracts/abstracted_account/contract.algo.ts:409
+ // @abimethod({ onCreate: 'require' })
+ txna ApplicationArgs 1
+ dupn 2
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 3
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:412
+ // Txn.sender === controlledAddress.native
+ txn Sender
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:412-413
+ // Txn.sender === controlledAddress.native
+ // || Txn.sender === admin.native,
+ bnz createApplication_bool_true@3
+ // smart_contracts/abstracted_account/contract.algo.ts:413
+ // || Txn.sender === admin.native,
+ txn Sender
+ dig 2
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:412-413
+ // Txn.sender === controlledAddress.native
+ // || Txn.sender === admin.native,
+ bz createApplication_bool_false@4
+
+createApplication_bool_true@3:
+ intc_1 // 1
+
+createApplication_bool_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:411-415
+ // assert(
+ // Txn.sender === controlledAddress.native
+ // || Txn.sender === admin.native,
+ // ERR_SENDER_MUST_BE_ADMIN_OR_CONTROLLED_ADDRESS
+ // );
+ assert // sender must be either controlledAddress or admin
+ // smart_contracts/abstracted_account/contract.algo.ts:416
+ // assert(admin !== controlledAddress);
+ dig 1
+ dup
+ dig 4
+ dup
+ cover 3
+ !=
+ assert
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:418
+ // this.admin.value = admin.native;
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:419
+ // this.controlledAddress.value = controlledAddress.native === Global.zeroAddress ? Global.currentApplicationAddress : controlledAddress.native;
+ global ZeroAddress
+ ==
+ bz createApplication_ternary_false@7
+ global CurrentApplicationAddress
+
+createApplication_ternary_merge@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:419
+ // this.controlledAddress.value = controlledAddress.native === Global.zeroAddress ? Global.currentApplicationAddress : controlledAddress.native;
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:24
+ // escrowFactory = GlobalState({ key: AbstractAccountGlobalStateKeysEscrowFactory })
+ bytec 18 // "escrow_factory"
+ // smart_contracts/abstracted_account/contract.algo.ts:420
+ // this.escrowFactory.value = escrowFactory;
+ dig 1
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:421
+ // this.spendingAddress.value = Global.zeroAddress;
+ global ZeroAddress
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:409
+ // @abimethod({ onCreate: 'require' })
+ intc_1 // 1
+ return
+
+createApplication_ternary_false@7:
+ dig 2
+ b createApplication_ternary_merge@8
+
+createApplication_bool_false@4:
+ intc_0 // 0
+ b createApplication_bool_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.register[routing]() -> void:
+register:
+ // smart_contracts/abstracted_account/contract.algo.ts:431
+ // register(escrow: string): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:432
+ // let app: uint64 = 0
+ intc_0 // 0
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:433
+ // if (escrow !== '') {
+ bytec_1 // ""
+ !=
+ bz register_after_if_else@3
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ dig 2
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:434
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:435
+ // app = this.escrows(escrow).value.id
+ box_get
+ pop
+ intc_0 // 0
+ extract_uint64
+ bury 1
+
+register_after_if_else@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:438-447
+ // abiCall({
+ // appId: this.escrowFactory.value,
+ // args: [
+ // itxn.payment({
+ // receiver: this.escrowFactory.value.address,
+ // amount: ARC58WalletIDsByAccountsMbr
+ // }),
+ // app
+ // ]
+ // })
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:442
+ // receiver: this.escrowFactory.value.address,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:24
+ // escrowFactory = GlobalState({ key: AbstractAccountGlobalStateKeysEscrowFactory })
+ bytec 18 // "escrow_factory"
+ // smart_contracts/abstracted_account/contract.algo.ts:442
+ // receiver: this.escrowFactory.value.address,
+ app_global_get_ex
+ assert // check GlobalState exists
+ dup
+ app_params_get AppAddress
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:443
+ // amount: ARC58WalletIDsByAccountsMbr
+ pushint 12100 // 12100
+ itxn_field Amount
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:441-444
+ // itxn.payment({
+ // receiver: this.escrowFactory.value.address,
+ // amount: ARC58WalletIDsByAccountsMbr
+ // }),
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:438-447
+ // abiCall({
+ // appId: this.escrowFactory.value,
+ // args: [
+ // itxn.payment({
+ // receiver: this.escrowFactory.value.address,
+ // amount: ARC58WalletIDsByAccountsMbr
+ // }),
+ // app
+ // ]
+ // })
+ itxn_next
+ // smart_contracts/abstracted_account/contract.algo.ts:445
+ // app
+ dig 1
+ itob
+ // smart_contracts/abstracted_account/contract.algo.ts:438-447
+ // abiCall({
+ // appId: this.escrowFactory.value,
+ // args: [
+ // itxn.payment({
+ // receiver: this.escrowFactory.value.address,
+ // amount: ARC58WalletIDsByAccountsMbr
+ // }),
+ // app
+ // ]
+ // })
+ pushbytes 0x607e7046 // method "register(pay,uint64)void"
+ itxn_field ApplicationArgs
+ itxn_field ApplicationArgs
+ itxn_field ApplicationID
+ pushint 6 // appl
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:431
+ // register(escrow: string): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_changeAdmin[routing]() -> void:
+arc58_changeAdmin:
+ // smart_contracts/abstracted_account/contract.algo.ts:455
+ // arc58_changeAdmin(newAdmin: Address): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ // smart_contracts/abstracted_account/contract.algo.ts:456
+ // assert(Txn.sender === this.admin.value, ERR_ONLY_ADMIN_CAN_CHANGE_ADMIN);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:456
+ // assert(Txn.sender === this.admin.value, ERR_ONLY_ADMIN_CAN_CHANGE_ADMIN);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // only admin can change the admin account
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:457
+ // this.admin.value = newAdmin.native;
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:455
+ // arc58_changeAdmin(newAdmin: Address): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_pluginChangeAdmin[routing]() -> void:
+arc58_pluginChangeAdmin:
+ // smart_contracts/abstracted_account/contract.algo.ts:470
+ // arc58_pluginChangeAdmin(newAdmin: Address): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ // smart_contracts/abstracted_account/contract.algo.ts:471
+ // const key = clone(this.currentPlugin.value)
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:28
+ // currentPlugin = GlobalState({ key: AbstractAccountGlobalStateKeysCurrentPlugin })
+ bytec 19 // "current_plugin"
+ // smart_contracts/abstracted_account/contract.algo.ts:471
+ // const key = clone(this.currentPlugin.value)
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:472
+ // const { plugin, escrow } = key
+ dup
+ intc_0 // 0
+ extract_uint64
+ dig 1
+ pushint 40 // 40
+ extract_uint16
+ dig 2
+ len
+ dig 3
+ cover 2
+ substring3
+ extract 2 0
+ // smart_contracts/abstracted_account/contract.algo.ts:474
+ // assert(escrow === '', ERR_ADMIN_PLUGINS_CANNOT_USE_ESCROWS);
+ bytec_1 // ""
+ ==
+ assert // admin plugins cannot use escrows
+ // smart_contracts/abstracted_account/contract.algo.ts:475
+ // assert(Txn.sender === Application(plugin).address, ERR_SENDER_MUST_BE_ADMIN_PLUGIN);
+ txn Sender
+ dig 1
+ app_params_get AppAddress
+ assert // application exists
+ ==
+ assert // sender must be admin plugin
+ // smart_contracts/abstracted_account/contract.algo.ts:477
+ // this.controlledAddress.value.authAddress === Application(plugin).address,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:477
+ // this.controlledAddress.value.authAddress === Application(plugin).address,
+ app_global_get_ex
+ assert // check GlobalState exists
+ acct_params_get AcctAuthAddr
+ assert // account funded
+ swap
+ app_params_get AppAddress
+ assert // application exists
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:476-479
+ // assert(
+ // this.controlledAddress.value.authAddress === Application(plugin).address,
+ // 'This plugin is not in control of the account'
+ // );
+ assert // This plugin is not in control of the account
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:482
+ // this.plugins(key).exists && this.plugins(key).value.admin,
+ box_len
+ bury 1
+ bz arc58_pluginChangeAdmin_bool_false@4
+ dup
+ pushint 27 // 27
+ intc_1 // 1
+ box_extract
+ intc_0 // 0
+ getbit
+ bz arc58_pluginChangeAdmin_bool_false@4
+ intc_1 // 1
+
+arc58_pluginChangeAdmin_bool_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:481-484
+ // assert(
+ // this.plugins(key).exists && this.plugins(key).value.admin,
+ // 'This plugin does not have admin privileges'
+ // );
+ assert // This plugin does not have admin privileges
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:486
+ // this.admin.value = newAdmin.native;
+ dig 2
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:487
+ // if (this.plugins(key).value.delegationType === DelegationTypeSelf) {
+ dup
+ intc_3 // 8
+ intc_1 // 1
+ box_extract
+ bytec 15 // 0x01
+ ==
+ bz arc58_pluginChangeAdmin_after_if_else@7
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+
+arc58_pluginChangeAdmin_after_if_else@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:470
+ // arc58_pluginChangeAdmin(newAdmin: Address): void {
+ intc_1 // 1
+ return
+
+arc58_pluginChangeAdmin_bool_false@4:
+ intc_0 // 0
+ b arc58_pluginChangeAdmin_bool_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getAdmin[routing]() -> void:
+arc58_getAdmin:
+ // smart_contracts/abstracted_account/contract.algo.ts:499
+ // return new Address(this.admin.value);
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:499
+ // return new Address(this.admin.value);
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:497
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ swap
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_verifyAuthAddress[routing]() -> void:
+arc58_verifyAuthAddress:
+ // smart_contracts/abstracted_account/contract.algo.ts:506
+ // assert(this.spendingAddress.value.authAddress === this.getAuthAddress());
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:506
+ // assert(this.spendingAddress.value.authAddress === this.getAuthAddress());
+ app_global_get_ex
+ assert // check GlobalState exists
+ dup
+ acct_params_get AcctAuthAddr
+ swap
+ cover 2
+ assert // account funded
+ // smart_contracts/abstracted_account/contract.algo.ts:397
+ // this.spendingAddress.value === this.controlledAddress.value
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:397
+ // this.spendingAddress.value === this.controlledAddress.value
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:397-398
+ // this.spendingAddress.value === this.controlledAddress.value
+ // && this.controlledAddress.value === Global.currentApplicationAddress
+ bz arc58_verifyAuthAddress_ternary_false@4
+ // smart_contracts/abstracted_account/contract.algo.ts:398
+ // && this.controlledAddress.value === Global.currentApplicationAddress
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:398
+ // && this.controlledAddress.value === Global.currentApplicationAddress
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:397-398
+ // this.spendingAddress.value === this.controlledAddress.value
+ // && this.controlledAddress.value === Global.currentApplicationAddress
+ bz arc58_verifyAuthAddress_ternary_false@4
+ // smart_contracts/abstracted_account/contract.algo.ts:399
+ // ) ? Global.zeroAddress : Global.currentApplicationAddress
+ global ZeroAddress
+
+arc58_verifyAuthAddress_ternary_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:506
+ // assert(this.spendingAddress.value.authAddress === this.getAuthAddress());
+ dig 1
+ ==
+ assert
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:507
+ // this.spendingAddress.value = Global.zeroAddress
+ global ZeroAddress
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:508
+ // this.currentPlugin.value = { plugin: 0, caller: Global.currentApplicationAddress, escrow: '' }
+ global CurrentApplicationAddress
+ intc_0 // 0
+ itob
+ swap
+ concat
+ pushbytes 0x002a0000
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:28
+ // currentPlugin = GlobalState({ key: AbstractAccountGlobalStateKeysCurrentPlugin })
+ bytec 19 // "current_plugin"
+ // smart_contracts/abstracted_account/contract.algo.ts:508
+ // this.currentPlugin.value = { plugin: 0, caller: Global.currentApplicationAddress, escrow: '' }
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:30
+ // rekeyIndex = GlobalState({ initialValue: 0, key: AbstractAccountGlobalStateKeysRekeyIndex })
+ bytec 17 // "rekey_index"
+ // smart_contracts/abstracted_account/contract.algo.ts:509
+ // this.rekeyIndex.value = 0
+ intc_0 // 0
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:505
+ // arc58_verifyAuthAddress(): void {
+ intc_1 // 1
+ return
+
+arc58_verifyAuthAddress_ternary_false@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:399
+ // ) ? Global.zeroAddress : Global.currentApplicationAddress
+ global CurrentApplicationAddress
+ b arc58_verifyAuthAddress_ternary_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyTo[routing]() -> void:
+arc58_rekeyTo:
+ bytec_1 // ""
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:518
+ // arc58_rekeyTo(address: Address, flash: boolean): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ // smart_contracts/abstracted_account/contract.algo.ts:519
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:519
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:521-528
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: address.native,
+ // rekeyTo: address.native,
+ // note: 'rekeying abstracted account'
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:523
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:523
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:526
+ // note: 'rekeying abstracted account'
+ pushbytes "rekeying abstracted account"
+ itxn_field Note
+ dig 2
+ itxn_field RekeyTo
+ uncover 2
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:521-527
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: address.native,
+ // rekeyTo: address.native,
+ // note: 'rekeying abstracted account'
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:521-528
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: address.native,
+ // rekeyTo: address.native,
+ // note: 'rekeying abstracted account'
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:530
+ // if (flash) this.assertRekeysBack();
+ bz arc58_rekeyTo_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:160
+ // let rekeysBack = false;
+ intc_0 // 0
+ bury 1
+ // smart_contracts/abstracted_account/contract.algo.ts:161
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ txn GroupIndex
+ intc_1 // 1
+ +
+ bury 2
+
+arc58_rekeyTo_while_top@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:161
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ dig 1
+ global GroupSize
+ <
+ bz arc58_rekeyTo_block@11
+ // smart_contracts/abstracted_account/contract.algo.ts:164
+ // if (this.txnRekeysBack(txn)) {
+ dig 1
+ callsub txnRekeysBack
+ bz arc58_rekeyTo_after_if_else@9
+ // smart_contracts/abstracted_account/contract.algo.ts:165
+ // rekeysBack = true;
+ intc_1 // 1
+ bury 1
+
+arc58_rekeyTo_block@11:
+ // smart_contracts/abstracted_account/contract.algo.ts:170
+ // assert(rekeysBack, ERR_MISSING_REKEY_BACK);
+ dup
+ assert // missing rekey back
+
+arc58_rekeyTo_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:518
+ // arc58_rekeyTo(address: Address, flash: boolean): void {
+ intc_1 // 1
+ return
+
+arc58_rekeyTo_after_if_else@9:
+ // smart_contracts/abstracted_account/contract.algo.ts:161
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ dig 1
+ intc_1 // 1
+ +
+ bury 2
+ b arc58_rekeyTo_while_top@6
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_canCall[routing]() -> void:
+arc58_canCall:
+ // smart_contracts/abstracted_account/contract.algo.ts:544
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ txna ApplicationArgs 3
+ dup
+ cover 2
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 4
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ swap
+ txna ApplicationArgs 5
+ dup
+ cover 2
+ len
+ pushint 4 // 4
+ ==
+ assert // invalid number of bytes for uint8[4]
+ // smart_contracts/abstracted_account/contract.algo.ts:552
+ // if (global) {
+ bz arc58_canCall_after_if_else@3
+ // smart_contracts/abstracted_account/contract.algo.ts:553
+ // this.pluginCallAllowed(plugin, Global.zeroAddress, escrow, method);
+ dig 3
+ global ZeroAddress
+ dig 3
+ dig 3
+ callsub pluginCallAllowed
+ pop
+
+arc58_canCall_after_if_else@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:555
+ // return this.pluginCallAllowed(plugin, address.native, escrow, method);
+ dig 3
+ dig 3
+ dig 3
+ dig 3
+ callsub pluginCallAllowed
+ // smart_contracts/abstracted_account/contract.algo.ts:544
+ // @abimethod({ readonly: true })
+ bytec 9 // 0x00
+ intc_0 // 0
+ uncover 2
+ setbit
+ bytec 7 // 0x151f7c75
+ swap
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin[routing]() -> void:
+arc58_rekeyToPlugin:
+ // smart_contracts/abstracted_account/contract.algo.ts:567-573
+ // arc58_rekeyToPlugin(
+ // plugin: uint64,
+ // global: boolean,
+ // escrow: string,
+ // methodOffsets: uint64[],
+ // fundsRequest: FundsRequest[]
+ // ): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 4
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ txna ApplicationArgs 5
+ dup
+ intc_0 // 0
+ extract_uint16
+ pushint 16 // 16
+ *
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint64,uint64)[])
+ callsub smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin
+ popn 2
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToNamedPlugin[routing]() -> void:
+arc58_rekeyToNamedPlugin:
+ // smart_contracts/abstracted_account/contract.algo.ts:619-624
+ // arc58_rekeyToNamedPlugin(
+ // name: string,
+ // global: boolean,
+ // escrow: string,
+ // methodOffsets: uint64[],
+ // fundsRequest: FundsRequest[]): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 4
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ txna ApplicationArgs 5
+ dup
+ intc_0 // 0
+ extract_uint16
+ pushint 16 // 16
+ *
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint64,uint64)[])
+ // smart_contracts/abstracted_account/contract.algo.ts:35
+ // namedPlugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixNamedPlugins });
+ bytec 16 // "n"
+ uncover 5
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:626
+ // this.namedPlugins(name).value.plugin,
+ intc_0 // 0
+ intc_3 // 8
+ box_extract
+ btoi
+ // smart_contracts/abstracted_account/contract.algo.ts:625-631
+ // this.arc58_rekeyToPlugin(
+ // this.namedPlugins(name).value.plugin,
+ // global,
+ // escrow,
+ // methodOffsets,
+ // fundsRequest
+ // );
+ cover 4
+ callsub smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin
+ popn 2
+ // smart_contracts/abstracted_account/contract.algo.ts:619-624
+ // arc58_rekeyToNamedPlugin(
+ // name: string,
+ // global: boolean,
+ // escrow: string,
+ // methodOffsets: uint64[],
+ // fundsRequest: FundsRequest[]): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addPlugin[routing]() -> void:
+arc58_addPlugin:
+ intc_0 // 0
+ dupn 3
+ bytec_1 // ""
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:648-660
+ // arc58_addPlugin(
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // admin: boolean,
+ // delegationType: Uint8,
+ // lastValid: uint64,
+ // cooldown: uint64,
+ // methods: MethodRestriction[],
+ // useRounds: boolean,
+ // useExecutionKey: boolean,
+ // defaultToEscrow: boolean
+ // ): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 2
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 4
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ txna ApplicationArgs 5
+ dupn 2
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for uint8
+ txna ApplicationArgs 6
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ swap
+ txna ApplicationArgs 7
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ swap
+ txna ApplicationArgs 8
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 3
+ pushint 12 // 12
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint8[4],uint64)[])
+ txna ApplicationArgs 9
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ swap
+ txna ApplicationArgs 10
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ swap
+ txna ApplicationArgs 11
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:661
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:661
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:664
+ // delegationType === DelegationTypeSelf &&
+ bytec 15 // 0x01
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:664-665
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ bz arc58_addPlugin_bool_false@4
+ // smart_contracts/abstracted_account/contract.algo.ts:665
+ // caller.native === Global.zeroAddress
+ dig 10
+ global ZeroAddress
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:664-665
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ bz arc58_addPlugin_bool_false@4
+ intc_1 // 1
+
+arc58_addPlugin_bool_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:663-666
+ // !(
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ // ),
+ !
+ // smart_contracts/abstracted_account/contract.algo.ts:662-668
+ // assert(
+ // !(
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ // ),
+ // ERR_ZERO_ADDRESS_DELEGATION_TYPE
+ // )
+ assert // delegation type must not be self for global plugins
+ // smart_contracts/abstracted_account/contract.algo.ts:671-672
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ dig 1
+ bz arc58_addPlugin_bool_false@8
+ // smart_contracts/abstracted_account/contract.algo.ts:672
+ // caller.native !== Global.zeroAddress
+ dig 10
+ global ZeroAddress
+ !=
+ // smart_contracts/abstracted_account/contract.algo.ts:671-672
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ bz arc58_addPlugin_bool_false@8
+ intc_1 // 1
+
+arc58_addPlugin_bool_merge@9:
+ // smart_contracts/abstracted_account/contract.algo.ts:670-673
+ // !(
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ // ),
+ !
+ // smart_contracts/abstracted_account/contract.algo.ts:669-675
+ // assert(
+ // !(
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ // ),
+ // ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL
+ // )
+ assert // using execution key requires global plugin
+ // smart_contracts/abstracted_account/contract.algo.ts:678
+ // if (defaultToEscrow) {
+ dup
+ bnz arc58_addPlugin_if_body@10
+ dig 9
+ bury 17
+
+arc58_addPlugin_after_if_else@11:
+ // smart_contracts/abstracted_account/contract.algo.ts:683
+ // const key: PluginKey = { plugin, caller: caller.native, escrow: escrowKey }
+ dig 11
+ itob
+ dig 11
+ concat
+ dig 17
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ bury 16
+ // smart_contracts/abstracted_account/contract.algo.ts:685
+ // let methodInfos: MethodInfo[] = []
+ intc_0 // 0
+ itob
+ bury 18
+ bytec 10 // 0x0000
+ bury 15
+ // smart_contracts/abstracted_account/contract.algo.ts:686
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ intc_0 // 0
+ bury 13
+
+arc58_addPlugin_while_top@12:
+ // smart_contracts/abstracted_account/contract.algo.ts:686
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ dig 12
+ dig 4
+ <
+ bz arc58_addPlugin_after_while@14
+ // smart_contracts/abstracted_account/contract.algo.ts:687
+ // methodInfos.push({ ...methods[i], lastCalled: 0 })
+ dig 4
+ extract 2 0
+ dig 13
+ dup
+ cover 2
+ pushint 12 // 12
+ *
+ pushint 12 // 12
+ extract3 // on error: index access is out of bounds
+ dup
+ extract 0 4
+ swap
+ extract 4 8
+ dig 1
+ len
+ pushint 4 // 4
+ ==
+ assert // invalid size
+ concat
+ dig 19
+ concat
+ dig 16
+ dup
+ uncover 2
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 16
+ // smart_contracts/abstracted_account/contract.algo.ts:686
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ intc_1 // 1
+ +
+ bury 13
+ b arc58_addPlugin_while_top@12
+
+arc58_addPlugin_after_while@14:
+ // smart_contracts/abstracted_account/contract.algo.ts:690
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ dig 2
+ bz arc58_addPlugin_ternary_false@16
+ global Round
+ bury 14
+
+arc58_addPlugin_ternary_merge@17:
+ // smart_contracts/abstracted_account/contract.algo.ts:692
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:692
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_addPlugin_after_if_else@20
+ // smart_contracts/abstracted_account/contract.algo.ts:693-699
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length)
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:695
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:695
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:696
+ // receiver: Global.currentApplicationAddress,
+ global CurrentApplicationAddress
+ // smart_contracts/abstracted_account/contract.algo.ts:697
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length)
+ dig 16
+ intc_0 // 0
+ extract_uint16
+ dig 19
+ swap
+ callsub pluginsMbr
+ itxn_field Amount
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:693-698
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length)
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:693-699
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length)
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_addPlugin_after_if_else@20:
+ // smart_contracts/abstracted_account/contract.algo.ts:702
+ // const escrowID = this.maybeNewEscrow(escrow);
+ dig 9
+ callsub maybeNewEscrow
+ // smart_contracts/abstracted_account/contract.algo.ts:704-715
+ // this.plugins(key).value = {
+ // escrow: escrowID,
+ // admin,
+ // delegationType,
+ // lastValid,
+ // cooldown,
+ // methods: clone(methodInfos),
+ // useRounds,
+ // useExecutionKey,
+ // lastCalled: 0,
+ // start: epochRef,
+ // }
+ itob
+ dig 8
+ concat
+ dig 7
+ itob
+ concat
+ dig 6
+ itob
+ concat
+ bytec 23 // 0x002c
+ concat
+ bytec 9 // 0x00
+ intc_0 // 0
+ dig 11
+ setbit
+ intc_1 // 1
+ dig 5
+ setbit
+ intc_2 // 2
+ dig 4
+ setbit
+ concat
+ dig 18
+ concat
+ dig 14
+ itob
+ concat
+ dig 15
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ dig 17
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:704-715
+ // this.plugins(key).value = {
+ // escrow: escrowID,
+ // admin,
+ // delegationType,
+ // lastValid,
+ // cooldown,
+ // methods: clone(methodInfos),
+ // useRounds,
+ // useExecutionKey,
+ // lastCalled: 0,
+ // start: epochRef,
+ // }
+ dup
+ box_del
+ pop
+ swap
+ box_put
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:648-660
+ // arc58_addPlugin(
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // admin: boolean,
+ // delegationType: Uint8,
+ // lastValid: uint64,
+ // cooldown: uint64,
+ // methods: MethodRestriction[],
+ // useRounds: boolean,
+ // useExecutionKey: boolean,
+ // defaultToEscrow: boolean
+ // ): void {
+ intc_1 // 1
+ return
+
+arc58_addPlugin_ternary_false@16:
+ // smart_contracts/abstracted_account/contract.algo.ts:690
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ bury 14
+ b arc58_addPlugin_ternary_merge@17
+
+arc58_addPlugin_if_body@10:
+ // smart_contracts/abstracted_account/contract.algo.ts:679
+ // assert(escrow !== '', ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT)
+ dig 9
+ bytec_1 // ""
+ !=
+ assert // escrow must be set if defaultToEscrow is true
+ // smart_contracts/abstracted_account/contract.algo.ts:680
+ // escrowKey = ''
+ bytec_1 // ""
+ bury 17
+ b arc58_addPlugin_after_if_else@11
+
+arc58_addPlugin_bool_false@8:
+ intc_0 // 0
+ b arc58_addPlugin_bool_merge@9
+
+arc58_addPlugin_bool_false@4:
+ intc_0 // 0
+ b arc58_addPlugin_bool_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removePlugin[routing]() -> void:
+arc58_removePlugin:
+ // smart_contracts/abstracted_account/contract.algo.ts:727
+ // arc58_removePlugin(plugin: uint64, caller: Address, escrow: string): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 2
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ cover 3
+ // smart_contracts/abstracted_account/contract.algo.ts:728
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:728
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:730
+ // const key: PluginKey = { plugin, caller: caller.native, escrow }
+ uncover 2
+ itob
+ uncover 2
+ concat
+ dig 1
+ len
+ itob
+ extract 6 2
+ uncover 2
+ concat
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:731
+ // assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:733
+ // const methodsLength: uint64 = this.plugins(key).value.methods.length
+ dup
+ pushint 44 // 44
+ intc_2 // 2
+ box_extract
+ btoi
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:735
+ // this.plugins(key).delete();
+ box_del
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:737
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:737
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_removePlugin_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:738-743
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.pluginsMbr(escrow, methodsLength)
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:740
+ // receiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:740
+ // receiver: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:741
+ // amount: this.pluginsMbr(escrow, methodsLength)
+ dig 2
+ dig 2
+ callsub pluginsMbr
+ itxn_field Amount
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:738-742
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.pluginsMbr(escrow, methodsLength)
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:738-743
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.pluginsMbr(escrow, methodsLength)
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_removePlugin_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:727
+ // arc58_removePlugin(plugin: uint64, caller: Address, escrow: string): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addNamedPlugin[routing]() -> void:
+arc58_addNamedPlugin:
+ intc_0 // 0
+ dupn 3
+ bytec_1 // ""
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:765-778
+ // arc58_addNamedPlugin(
+ // name: string,
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // admin: boolean,
+ // delegationType: Uint8,
+ // lastValid: uint64,
+ // cooldown: uint64,
+ // methods: MethodRestriction[],
+ // useRounds: boolean,
+ // useExecutionKey: boolean,
+ // defaultToEscrow: boolean
+ // ): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ swap
+ txna ApplicationArgs 3
+ dup
+ cover 2
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 4
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ swap
+ txna ApplicationArgs 5
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ swap
+ txna ApplicationArgs 6
+ dup
+ cover 2
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for uint8
+ txna ApplicationArgs 7
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ cover 2
+ txna ApplicationArgs 8
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ cover 2
+ txna ApplicationArgs 9
+ dup
+ cover 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 4
+ pushint 12 // 12
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint8[4],uint64)[])
+ txna ApplicationArgs 10
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ cover 2
+ txna ApplicationArgs 11
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ cover 2
+ txna ApplicationArgs 12
+ dup
+ len
+ intc_1 // 1
+ ==
+ assert // invalid number of bytes for bool8
+ intc_0 // 0
+ getbit
+ cover 2
+ // smart_contracts/abstracted_account/contract.algo.ts:779
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:779
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:35
+ // namedPlugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixNamedPlugins });
+ bytec 16 // "n"
+ uncover 2
+ concat
+ dup
+ cover 2
+ // smart_contracts/abstracted_account/contract.algo.ts:780
+ // assert(!this.namedPlugins(name).exists);
+ box_len
+ bury 1
+ !
+ assert
+ // smart_contracts/abstracted_account/contract.algo.ts:783
+ // delegationType === DelegationTypeSelf &&
+ bytec 15 // 0x01
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:783-784
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ bz arc58_addNamedPlugin_bool_false@4
+ // smart_contracts/abstracted_account/contract.algo.ts:784
+ // caller.native === Global.zeroAddress
+ dig 11
+ global ZeroAddress
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:783-784
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ bz arc58_addNamedPlugin_bool_false@4
+ intc_1 // 1
+
+arc58_addNamedPlugin_bool_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:782-785
+ // !(
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ // ),
+ !
+ // smart_contracts/abstracted_account/contract.algo.ts:781-787
+ // assert(
+ // !(
+ // delegationType === DelegationTypeSelf &&
+ // caller.native === Global.zeroAddress
+ // ),
+ // ERR_ZERO_ADDRESS_DELEGATION_TYPE
+ // )
+ assert // delegation type must not be self for global plugins
+ // smart_contracts/abstracted_account/contract.algo.ts:790-791
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ dig 2
+ bz arc58_addNamedPlugin_bool_false@8
+ // smart_contracts/abstracted_account/contract.algo.ts:791
+ // caller.native !== Global.zeroAddress
+ dig 11
+ global ZeroAddress
+ !=
+ // smart_contracts/abstracted_account/contract.algo.ts:790-791
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ bz arc58_addNamedPlugin_bool_false@8
+ intc_1 // 1
+
+arc58_addNamedPlugin_bool_merge@9:
+ // smart_contracts/abstracted_account/contract.algo.ts:789-792
+ // !(
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ // ),
+ !
+ // smart_contracts/abstracted_account/contract.algo.ts:788-794
+ // assert(
+ // !(
+ // useExecutionKey &&
+ // caller.native !== Global.zeroAddress
+ // ),
+ // ERR_USING_EXECUTION_KEY_REQUIRES_GLOBAL
+ // )
+ assert // using execution key requires global plugin
+ // smart_contracts/abstracted_account/contract.algo.ts:797
+ // if (defaultToEscrow) {
+ dig 1
+ bnz arc58_addNamedPlugin_if_body@10
+ dig 10
+ bury 19
+
+arc58_addNamedPlugin_after_if_else@11:
+ // smart_contracts/abstracted_account/contract.algo.ts:802
+ // const key: PluginKey = { plugin, caller: caller.native, escrow: escrowKey }
+ dig 12
+ itob
+ dig 12
+ concat
+ dig 19
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ dup
+ bury 19
+ // smart_contracts/abstracted_account/contract.algo.ts:803
+ // this.namedPlugins(name).value = clone(key)
+ dig 1
+ dup
+ box_del
+ pop
+ swap
+ box_put
+ // smart_contracts/abstracted_account/contract.algo.ts:805
+ // let methodInfos: MethodInfo[] = []
+ intc_0 // 0
+ itob
+ bury 20
+ bytec 10 // 0x0000
+ bury 17
+ // smart_contracts/abstracted_account/contract.algo.ts:806
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ intc_0 // 0
+ bury 15
+
+arc58_addNamedPlugin_while_top@12:
+ // smart_contracts/abstracted_account/contract.algo.ts:806
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ dig 14
+ dig 5
+ <
+ bz arc58_addNamedPlugin_after_while@14
+ // smart_contracts/abstracted_account/contract.algo.ts:807
+ // methodInfos.push({ ...methods[i], lastCalled: 0 })
+ dig 5
+ extract 2 0
+ dig 15
+ dup
+ cover 2
+ pushint 12 // 12
+ *
+ pushint 12 // 12
+ extract3 // on error: index access is out of bounds
+ dup
+ extract 0 4
+ swap
+ extract 4 8
+ dig 1
+ len
+ pushint 4 // 4
+ ==
+ assert // invalid size
+ concat
+ dig 21
+ concat
+ dig 18
+ dup
+ uncover 2
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 18
+ // smart_contracts/abstracted_account/contract.algo.ts:806
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ intc_1 // 1
+ +
+ bury 15
+ b arc58_addNamedPlugin_while_top@12
+
+arc58_addNamedPlugin_after_while@14:
+ // smart_contracts/abstracted_account/contract.algo.ts:810
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:810
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_addNamedPlugin_after_if_else@17
+ // smart_contracts/abstracted_account/contract.algo.ts:811-817
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:813
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:813
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:814
+ // receiver: Global.currentApplicationAddress,
+ global CurrentApplicationAddress
+ // smart_contracts/abstracted_account/contract.algo.ts:815
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ dig 18
+ intc_0 // 0
+ extract_uint16
+ dig 21
+ swap
+ callsub pluginsMbr
+ // smart_contracts/abstracted_account/contract.algo.ts:58
+ // return MinNamedPluginMBR + (BoxCostPerByte * Bytes(name).length);
+ dig 16
+ len
+ intc 4 // 400
+ *
+ intc 5 // 21700
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:815
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ +
+ itxn_field Amount
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:811-816
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:811-817
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.pluginsMbr(escrowKey, methodInfos.length) + this.namedPluginsMbr(name)
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_addNamedPlugin_after_if_else@17:
+ // smart_contracts/abstracted_account/contract.algo.ts:820
+ // const escrowID = this.maybeNewEscrow(escrow);
+ dig 10
+ callsub maybeNewEscrow
+ bury 16
+ // smart_contracts/abstracted_account/contract.algo.ts:822
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ dig 3
+ bz arc58_addNamedPlugin_ternary_false@19
+ global Round
+
+arc58_addNamedPlugin_ternary_merge@20:
+ // smart_contracts/abstracted_account/contract.algo.ts:824-835
+ // this.plugins(key).value = {
+ // escrow: escrowID,
+ // admin,
+ // delegationType,
+ // lastValid,
+ // cooldown,
+ // methods: clone(methodInfos),
+ // useRounds,
+ // useExecutionKey,
+ // lastCalled: 0,
+ // start: epochRef
+ // }
+ dig 16
+ itob
+ dig 10
+ concat
+ dig 9
+ itob
+ concat
+ dig 8
+ itob
+ concat
+ bytec 23 // 0x002c
+ concat
+ bytec 9 // 0x00
+ intc_0 // 0
+ dig 13
+ setbit
+ intc_1 // 1
+ dig 7
+ setbit
+ intc_2 // 2
+ dig 6
+ setbit
+ concat
+ dig 21
+ concat
+ swap
+ itob
+ concat
+ dig 17
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ dig 19
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:824-835
+ // this.plugins(key).value = {
+ // escrow: escrowID,
+ // admin,
+ // delegationType,
+ // lastValid,
+ // cooldown,
+ // methods: clone(methodInfos),
+ // useRounds,
+ // useExecutionKey,
+ // lastCalled: 0,
+ // start: epochRef
+ // }
+ dup
+ box_del
+ pop
+ swap
+ box_put
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:765-778
+ // arc58_addNamedPlugin(
+ // name: string,
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // admin: boolean,
+ // delegationType: Uint8,
+ // lastValid: uint64,
+ // cooldown: uint64,
+ // methods: MethodRestriction[],
+ // useRounds: boolean,
+ // useExecutionKey: boolean,
+ // defaultToEscrow: boolean
+ // ): void {
+ intc_1 // 1
+ return
+
+arc58_addNamedPlugin_ternary_false@19:
+ // smart_contracts/abstracted_account/contract.algo.ts:822
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ b arc58_addNamedPlugin_ternary_merge@20
+
+arc58_addNamedPlugin_if_body@10:
+ // smart_contracts/abstracted_account/contract.algo.ts:798
+ // assert(escrow !== '', ERR_ESCROW_REQUIRED_TO_BE_SET_AS_DEFAULT)
+ dig 10
+ bytec_1 // ""
+ !=
+ assert // escrow must be set if defaultToEscrow is true
+ // smart_contracts/abstracted_account/contract.algo.ts:799
+ // escrowKey = ''
+ bytec_1 // ""
+ bury 19
+ b arc58_addNamedPlugin_after_if_else@11
+
+arc58_addNamedPlugin_bool_false@8:
+ intc_0 // 0
+ b arc58_addNamedPlugin_bool_merge@9
+
+arc58_addNamedPlugin_bool_false@4:
+ intc_0 // 0
+ b arc58_addNamedPlugin_bool_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeNamedPlugin[routing]() -> void:
+arc58_removeNamedPlugin:
+ // smart_contracts/abstracted_account/contract.algo.ts:846
+ // arc58_removeNamedPlugin(name: string): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:847
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:847
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:35
+ // namedPlugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixNamedPlugins });
+ bytec 16 // "n"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:848
+ // assert(this.namedPlugins(name).exists, ERR_PLUGIN_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:849
+ // const app = clone(this.namedPlugins(name).value)
+ dup
+ box_get
+ pop
+ dup
+ cover 2
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:850
+ // assert(this.plugins(app).exists, ERR_PLUGIN_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:852
+ // const methodsLength: uint64 = this.plugins(app).value.methods.length
+ dup
+ pushint 44 // 44
+ intc_2 // 2
+ box_extract
+ btoi
+ cover 2
+ // smart_contracts/abstracted_account/contract.algo.ts:854
+ // this.namedPlugins(name).delete();
+ swap
+ box_del
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:855
+ // this.plugins(app).delete();
+ box_del
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:857
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:857
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_removeNamedPlugin_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:858-863
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.namedPluginsMbr(name) + this.pluginsMbr(app.escrow, methodsLength)
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:860
+ // receiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:860
+ // receiver: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:58
+ // return MinNamedPluginMBR + (BoxCostPerByte * Bytes(name).length);
+ dig 3
+ len
+ intc 4 // 400
+ *
+ intc 5 // 21700
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:861
+ // amount: this.namedPluginsMbr(name) + this.pluginsMbr(app.escrow, methodsLength)
+ dig 3
+ dup
+ pushint 40 // 40
+ extract_uint16
+ dig 1
+ len
+ substring3
+ extract 2 0
+ dig 3
+ callsub pluginsMbr
+ +
+ itxn_field Amount
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:858-862
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.namedPluginsMbr(name) + this.pluginsMbr(app.escrow, methodsLength)
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:858-863
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.namedPluginsMbr(name) + this.pluginsMbr(app.escrow, methodsLength)
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_removeNamedPlugin_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:846
+ // arc58_removeNamedPlugin(name: string): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_newEscrow[routing]() -> void:
+arc58_newEscrow:
+ // smart_contracts/abstracted_account/contract.algo.ts:875
+ // arc58_newEscrow(escrow: string): uint64 {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ // smart_contracts/abstracted_account/contract.algo.ts:876
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:876
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ dig 1
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:877
+ // assert(!this.escrows(escrow).exists, ERR_ESCROW_ALREADY_EXISTS);
+ box_len
+ bury 1
+ !
+ assert // escrow already exists
+ // smart_contracts/abstracted_account/contract.algo.ts:878
+ // assert(escrow !== '', ERR_ESCROW_NAME_REQUIRED);
+ dup
+ bytec_1 // ""
+ !=
+ assert // Escrow name is required
+ // smart_contracts/abstracted_account/contract.algo.ts:879
+ // return this.newEscrow(escrow);
+ callsub newEscrow
+ // smart_contracts/abstracted_account/contract.algo.ts:875
+ // arc58_newEscrow(escrow: string): uint64 {
+ itob
+ bytec 7 // 0x151f7c75
+ swap
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_toggleEscrowLock[routing]() -> void:
+arc58_toggleEscrowLock:
+ // smart_contracts/abstracted_account/contract.algo.ts:887
+ // arc58_toggleEscrowLock(escrow: string): EscrowInfo {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ // smart_contracts/abstracted_account/contract.algo.ts:888
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:888
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:889
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:891
+ // this.escrows(escrow).value.locked = !this.escrows(escrow).value.locked;
+ dup
+ box_get
+ pop
+ pushint 64 // 64
+ getbit
+ !
+ dig 1
+ intc_3 // 8
+ intc_1 // 1
+ box_extract
+ intc_0 // 0
+ uncover 2
+ setbit
+ dig 1
+ intc_3 // 8
+ uncover 2
+ box_replace
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:896
+ // return this.escrows(escrow).value;
+ box_get
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:887
+ // arc58_toggleEscrowLock(escrow: string): EscrowInfo {
+ bytec 7 // 0x151f7c75
+ swap
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_reclaim[routing]() -> void:
+arc58_reclaim:
+ intc_0 // 0
+ dup
+ bytec_1 // ""
+ dupn 4
+ // smart_contracts/abstracted_account/contract.algo.ts:905
+ // arc58_reclaim(escrow: string, reclaims: EscrowReclaim[]): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 3
+ pushint 17 // 17
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint64,uint64,bool1)[])
+ intc_0 // 0
+ swap
+ intc_0 // 0
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:906
+ // assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:906
+ // assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // forbidden
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:907
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:908
+ // const sender = Application(this.escrows(escrow).value.id).address
+ box_get
+ pop
+ intc_0 // 0
+ extract_uint64
+ app_params_get AppAddress
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:910
+ // for (let i: uint64 = 0; i < reclaims.length; i += 1) {
+ intc_0 // 0
+
+arc58_reclaim_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:910
+ // for (let i: uint64 = 0; i < reclaims.length; i += 1) {
+ dup
+ dig 5
+ <
+ bz arc58_reclaim_after_while@17
+ // smart_contracts/abstracted_account/contract.algo.ts:911
+ // if (reclaims[i].asset === 0) {
+ dig 5
+ extract 2 0
+ dig 1
+ pushint 17 // 17
+ *
+ pushint 17 // 17
+ extract3 // on error: index access is out of bounds
+ dup
+ intc_0 // 0
+ extract_uint64
+ dup
+ bury 12
+ bnz arc58_reclaim_else_body@10
+ // smart_contracts/abstracted_account/contract.algo.ts:914
+ // receiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:914
+ // receiver: this.controlledAddress.value,
+ app_global_get_ex
+ swap
+ bury 15
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:915
+ // amount: reclaims[i].amount
+ dup
+ intc_3 // 8
+ extract_uint64
+ bury 10
+ // smart_contracts/abstracted_account/contract.algo.ts:912
+ // const pmt = itxn.payment({
+ intc_0 // 0
+ bury 12
+ // smart_contracts/abstracted_account/contract.algo.ts:918
+ // if (reclaims[i].closeOut) {
+ pushint 128 // 128
+ getbit
+ bz arc58_reclaim_after_if_else@6
+ // smart_contracts/abstracted_account/contract.algo.ts:919
+ // pmt.set({ closeRemainderTo: this.controlledAddress.value });
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:919
+ // pmt.set({ closeRemainderTo: this.controlledAddress.value });
+ app_global_get_ex
+ assert // check GlobalState exists
+ intc_1 // 1
+ bury 12
+ bury 3
+
+arc58_reclaim_after_if_else@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:922
+ // pmt.submit();
+ itxn_begin
+ dig 10
+ bz arc58_reclaim_next_field@8
+ dig 2
+ itxn_field CloseRemainderTo
+
+arc58_reclaim_next_field@8:
+ dig 8
+ itxn_field Amount
+ dig 12
+ itxn_field Receiver
+ dig 1
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:912-916
+ // const pmt = itxn.payment({
+ // sender,
+ // receiver: this.controlledAddress.value,
+ // amount: reclaims[i].amount
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:922
+ // pmt.submit();
+ itxn_submit
+
+arc58_reclaim_after_if_else@16:
+ // smart_contracts/abstracted_account/contract.algo.ts:910
+ // for (let i: uint64 = 0; i < reclaims.length; i += 1) {
+ dup
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_reclaim_while_top@2
+
+arc58_reclaim_else_body@10:
+ // smart_contracts/abstracted_account/contract.algo.ts:926
+ // assetReceiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:926
+ // assetReceiver: this.controlledAddress.value,
+ app_global_get_ex
+ swap
+ bury 14
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:927
+ // assetAmount: reclaims[i].amount,
+ dup
+ intc_3 // 8
+ extract_uint64
+ bury 9
+ // smart_contracts/abstracted_account/contract.algo.ts:924
+ // const xfer = itxn.assetTransfer({
+ intc_0 // 0
+ bury 8
+ // smart_contracts/abstracted_account/contract.algo.ts:931
+ // if (reclaims[i].closeOut) {
+ pushint 128 // 128
+ getbit
+ bz arc58_reclaim_after_if_else@12
+ // smart_contracts/abstracted_account/contract.algo.ts:932
+ // xfer.set({ assetCloseTo: this.controlledAddress.value });
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:932
+ // xfer.set({ assetCloseTo: this.controlledAddress.value });
+ app_global_get_ex
+ assert // check GlobalState exists
+ intc_1 // 1
+ bury 8
+ bury 4
+
+arc58_reclaim_after_if_else@12:
+ // smart_contracts/abstracted_account/contract.algo.ts:935
+ // xfer.submit();
+ itxn_begin
+ dig 6
+ bz arc58_reclaim_next_field@14
+ dig 3
+ itxn_field AssetCloseTo
+
+arc58_reclaim_next_field@14:
+ dig 9
+ itxn_field XferAsset
+ dig 7
+ itxn_field AssetAmount
+ dig 11
+ itxn_field AssetReceiver
+ dig 1
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:924-929
+ // const xfer = itxn.assetTransfer({
+ // sender,
+ // assetReceiver: this.controlledAddress.value,
+ // assetAmount: reclaims[i].amount,
+ // xferAsset: reclaims[i].asset
+ // })
+ pushint 4 // 4
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:935
+ // xfer.submit();
+ itxn_submit
+ b arc58_reclaim_after_if_else@16
+
+arc58_reclaim_after_while@17:
+ // smart_contracts/abstracted_account/contract.algo.ts:905
+ // arc58_reclaim(escrow: string, reclaims: EscrowReclaim[]): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_optinEscrow[routing]() -> void:
+arc58_optinEscrow:
+ // smart_contracts/abstracted_account/contract.algo.ts:946
+ // arc58_optinEscrow(escrow: string, assets: uint64[]): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 3
+ dup
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ uncover 2
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ // smart_contracts/abstracted_account/contract.algo.ts:947
+ // assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:947
+ // assert(Txn.sender === this.admin.value, ERR_FORBIDDEN);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // forbidden
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ uncover 2
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:948
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:949
+ // const escrowID = this.escrows(escrow).value.id
+ box_get
+ pop
+ dup
+ intc_0 // 0
+ extract_uint64
+ // smart_contracts/abstracted_account/contract.algo.ts:950
+ // const escrowAddress = Application(escrowID).address
+ app_params_get AppAddress
+ swap
+ dup
+ cover 3
+ cover 4
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:951
+ // assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED)
+ pushint 64 // 64
+ getbit
+ !
+ assert // Escrow is locked
+ // smart_contracts/abstracted_account/contract.algo.ts:953-959
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:955
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:955
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:957
+ // amount: Global.assetOptInMinBalance * assets.length
+ global AssetOptInMinBalance
+ uncover 3
+ *
+ itxn_field Amount
+ itxn_field Sender
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:953-958
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:953-959
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:961
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_0 // 0
+
+arc58_optinEscrow_while_top@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:961
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ dup
+ dig 3
+ <
+ bz arc58_optinEscrow_after_while@6
+ // smart_contracts/abstracted_account/contract.algo.ts:963
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ dig 3
+ extract 2 0
+ dig 1
+ dup
+ cover 2
+ intc_3 // 8
+ *
+ extract_uint64
+ dig 6
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ dig 1
+ itob
+ bytec 13 // 0x000a
+ swap
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:963
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ box_len
+ bury 1
+ // smart_contracts/abstracted_account/contract.algo.ts:962-965
+ // assert(
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ // ERR_ALLOWANCE_DOES_NOT_EXIST
+ // );
+ assert // allowance does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:967-974
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ // .submit();
+ itxn_begin
+ itxn_field XferAsset
+ // smart_contracts/abstracted_account/contract.algo.ts:971
+ // assetAmount: 0,
+ intc_0 // 0
+ itxn_field AssetAmount
+ dig 2
+ dup
+ itxn_field AssetReceiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:967-973
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ pushint 4 // 4
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:967-974
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:961
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_optinEscrow_while_top@3
+
+arc58_optinEscrow_after_while@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:946
+ // arc58_optinEscrow(escrow: string, assets: uint64[]): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_pluginOptinEscrow[routing]() -> void:
+arc58_pluginOptinEscrow:
+ intc_0 // 0
+ bytec_1 // ""
+ // smart_contracts/abstracted_account/contract.algo.ts:986-992
+ // arc58_pluginOptinEscrow(
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // assets: uint64[],
+ // mbrPayment: gtxn.PaymentTxn
+ // ): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 4
+ dup
+ cover 4
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 5
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ txn GroupIndex
+ intc_1 // 1
+ -
+ dup
+ cover 4
+ gtxns TypeEnum
+ intc_1 // pay
+ ==
+ assert // transaction type is pay
+ // smart_contracts/abstracted_account/contract.algo.ts:993
+ // const key: PluginKey = { plugin, caller: caller.native, escrow }
+ dig 2
+ itob
+ uncover 2
+ concat
+ dig 1
+ len
+ itob
+ extract 6 2
+ dig 2
+ concat
+ dup
+ cover 4
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:995
+ // assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+ box_len
+ bury 1
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:996
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:997
+ // assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED)
+ box_get
+ pop
+ dup
+ pushint 64 // 64
+ getbit
+ !
+ assert // Escrow is locked
+ // smart_contracts/abstracted_account/contract.algo.ts:999
+ // const escrowID = this.escrows(escrow).value.id
+ intc_0 // 0
+ extract_uint64
+ swap
+ // smart_contracts/abstracted_account/contract.algo.ts:1002
+ // Txn.sender === Application(plugin).address ||
+ txn Sender
+ swap
+ app_params_get AppAddress
+ assert // application exists
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:1002-1003
+ // Txn.sender === Application(plugin).address ||
+ // Txn.sender === caller.native ||
+ bnz arc58_pluginOptinEscrow_bool_true@4
+ // smart_contracts/abstracted_account/contract.algo.ts:1003
+ // Txn.sender === caller.native ||
+ txn Sender
+ dig 6
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:1002-1003
+ // Txn.sender === Application(plugin).address ||
+ // Txn.sender === caller.native ||
+ bnz arc58_pluginOptinEscrow_bool_true@4
+ // smart_contracts/abstracted_account/contract.algo.ts:1004
+ // caller.native === Global.zeroAddress,
+ dig 5
+ global ZeroAddress
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:1002-1004
+ // Txn.sender === Application(plugin).address ||
+ // Txn.sender === caller.native ||
+ // caller.native === Global.zeroAddress,
+ bz arc58_pluginOptinEscrow_bool_false@5
+
+arc58_pluginOptinEscrow_bool_true@4:
+ intc_1 // 1
+
+arc58_pluginOptinEscrow_bool_merge@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:1001-1006
+ // assert(
+ // Txn.sender === Application(plugin).address ||
+ // Txn.sender === caller.native ||
+ // caller.native === Global.zeroAddress,
+ // ERR_FORBIDDEN
+ // )
+ assert // forbidden
+ // smart_contracts/abstracted_account/contract.algo.ts:1008
+ // const escrowAddress = Application(escrowID).address
+ dup
+ app_params_get AppAddress
+ swap
+ dup
+ cover 2
+ bury 10
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:1010-1017
+ // assertMatch(
+ // mbrPayment,
+ // {
+ // receiver: this.controlledAddress.value,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // },
+ // ERR_INVALID_PAYMENT
+ // )
+ dig 3
+ dup
+ gtxns Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:1013
+ // receiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:1013
+ // receiver: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:1010-1017
+ // assertMatch(
+ // mbrPayment,
+ // {
+ // receiver: this.controlledAddress.value,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // },
+ // ERR_INVALID_PAYMENT
+ // )
+ swap
+ dig 1
+ ==
+ uncover 2
+ gtxns Amount
+ // smart_contracts/abstracted_account/contract.algo.ts:1014
+ // amount: Global.assetOptInMinBalance * assets.length
+ global AssetOptInMinBalance
+ dig 8
+ dup
+ cover 4
+ *
+ // smart_contracts/abstracted_account/contract.algo.ts:1010-1017
+ // assertMatch(
+ // mbrPayment,
+ // {
+ // receiver: this.controlledAddress.value,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // },
+ // ERR_INVALID_PAYMENT
+ // )
+ ==
+ &&
+ assert // invalid payment
+ // smart_contracts/abstracted_account/contract.algo.ts:1019-1025
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:1023
+ // amount: Global.assetOptInMinBalance * assets.length
+ global AssetOptInMinBalance
+ *
+ itxn_field Amount
+ itxn_field Sender
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:1019-1024
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:1019-1025
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: Global.assetOptInMinBalance * assets.length
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:1027
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_0 // 0
+ bury 7
+
+arc58_pluginOptinEscrow_while_top@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:1027
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ dig 6
+ dig 4
+ <
+ bz arc58_pluginOptinEscrow_after_while@11
+ // smart_contracts/abstracted_account/contract.algo.ts:1029
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ dig 4
+ extract 2 0
+ dig 7
+ dup
+ cover 2
+ intc_3 // 8
+ *
+ extract_uint64
+ dup
+ itob
+ bytec 13 // 0x000a
+ swap
+ concat
+ dig 4
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1029
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ box_len
+ bury 1
+ // smart_contracts/abstracted_account/contract.algo.ts:1028-1031
+ // assert(
+ // this.allowances({ escrow, asset: assets[i] }).exists,
+ // ERR_ALLOWANCE_DOES_NOT_EXIST
+ // );
+ assert // allowance does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:1033-1040
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ // .submit();
+ itxn_begin
+ itxn_field XferAsset
+ // smart_contracts/abstracted_account/contract.algo.ts:1037
+ // assetAmount: 0,
+ intc_0 // 0
+ itxn_field AssetAmount
+ dig 8
+ dup
+ itxn_field AssetReceiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:1033-1039
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ pushint 4 // 4
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:1033-1040
+ // itxn
+ // .assetTransfer({
+ // sender: escrowAddress,
+ // assetReceiver: escrowAddress,
+ // assetAmount: 0,
+ // xferAsset: assets[i]
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:1027
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_1 // 1
+ +
+ bury 7
+ b arc58_pluginOptinEscrow_while_top@8
+
+arc58_pluginOptinEscrow_after_while@11:
+ // smart_contracts/abstracted_account/contract.algo.ts:986-992
+ // arc58_pluginOptinEscrow(
+ // plugin: uint64,
+ // caller: Address,
+ // escrow: string,
+ // assets: uint64[],
+ // mbrPayment: gtxn.PaymentTxn
+ // ): void {
+ intc_1 // 1
+ return
+
+arc58_pluginOptinEscrow_bool_false@5:
+ intc_0 // 0
+ b arc58_pluginOptinEscrow_bool_merge@6
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addAllowances[routing]() -> void:
+arc58_addAllowances:
+ intc_0 // 0
+ dupn 4
+ bytec_1 // ""
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:1050
+ // arc58_addAllowances(escrow: string, allowances: AddAllowanceInfo[]): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 3
+ pushint 34 // 34
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+(uint64,uint8,uint64,uint64,uint64,bool1)[])
+ // smart_contracts/abstracted_account/contract.algo.ts:1051
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:1051
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1052
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:1053
+ // assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED);
+ box_get
+ pop
+ pushint 64 // 64
+ getbit
+ !
+ assert // Escrow is locked
+ // smart_contracts/abstracted_account/contract.algo.ts:1055
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:1055
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_addAllowances_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:1056-1062
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.allowancesMbr(escrow) * allowances.length
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:1058
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:1058
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:1059
+ // receiver: Global.currentApplicationAddress,
+ global CurrentApplicationAddress
+ // smart_contracts/abstracted_account/contract.algo.ts:66
+ // return MinAllowanceMBR + (BoxCostPerByte * Bytes(escrow).length);
+ dig 4
+ len
+ intc 4 // 400
+ *
+ intc 6 // 27700
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:1060
+ // amount: this.allowancesMbr(escrow) * allowances.length
+ dig 3
+ *
+ itxn_field Amount
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:1056-1061
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.allowancesMbr(escrow) * allowances.length
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:1056-1062
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.allowancesMbr(escrow) * allowances.length
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_addAllowances_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:1065
+ // for (let i: uint64 = 0; i < allowances.length; i += 1) {
+ intc_0 // 0
+ bury 5
+
+arc58_addAllowances_while_top@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1065
+ // for (let i: uint64 = 0; i < allowances.length; i += 1) {
+ dig 4
+ dig 1
+ <
+ bz arc58_addAllowances_after_while@10
+ // smart_contracts/abstracted_account/contract.algo.ts:1066
+ // const { asset, type, amount, max, interval, useRounds } = allowances[i];
+ dig 1
+ extract 2 0
+ dig 5
+ pushint 34 // 34
+ *
+ pushint 34 // 34
+ extract3 // on error: index access is out of bounds
+ dup
+ extract 0 8
+ dig 1
+ extract 8 1
+ bury 8
+ dig 1
+ extract 9 8
+ bury 12
+ dig 1
+ extract 17 8
+ bury 11
+ dig 1
+ extract 25 8
+ bury 10
+ swap
+ pushint 264 // 264
+ getbit
+ dup
+ cover 2
+ bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:1067
+ // const key: AllowanceKey = { escrow, asset }
+ dig 4
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ bytec 13 // 0x000a
+ uncover 2
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ dup
+ bury 9
+ // smart_contracts/abstracted_account/contract.algo.ts:1068
+ // assert(!this.allowances(key).exists, ERR_ALLOWANCE_ALREADY_EXISTS);
+ box_len
+ bury 1
+ !
+ assert // allowance already exists
+ // smart_contracts/abstracted_account/contract.algo.ts:1069
+ // const start = useRounds ? Global.round : Global.latestTimestamp;
+ bz arc58_addAllowances_ternary_false@8
+ global Round
+
+arc58_addAllowances_ternary_merge@9:
+ // smart_contracts/abstracted_account/contract.algo.ts:1071-1080
+ // this.allowances(key).value = {
+ // type,
+ // spent: 0,
+ // amount,
+ // last: 0,
+ // max,
+ // interval,
+ // start,
+ // useRounds
+ // }
+ dig 6
+ dig 10
+ concat
+ dig 11
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1073
+ // spent: 0,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:1071-1080
+ // this.allowances(key).value = {
+ // type,
+ // spent: 0,
+ // amount,
+ // last: 0,
+ // max,
+ // interval,
+ // start,
+ // useRounds
+ // }
+ itob
+ swap
+ dig 1
+ concat
+ dig 10
+ concat
+ swap
+ concat
+ swap
+ itob
+ concat
+ bytec 9 // 0x00
+ intc_0 // 0
+ dig 6
+ setbit
+ concat
+ dig 7
+ swap
+ box_put
+ // smart_contracts/abstracted_account/contract.algo.ts:1065
+ // for (let i: uint64 = 0; i < allowances.length; i += 1) {
+ dig 4
+ intc_1 // 1
+ +
+ bury 5
+ b arc58_addAllowances_while_top@5
+
+arc58_addAllowances_ternary_false@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:1069
+ // const start = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ b arc58_addAllowances_ternary_merge@9
+
+arc58_addAllowances_after_while@10:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:1050
+ // arc58_addAllowances(escrow: string, allowances: AddAllowanceInfo[]): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeAllowances[routing]() -> void:
+arc58_removeAllowances:
+ bytec_1 // ""
+ // smart_contracts/abstracted_account/contract.algo.ts:1093
+ // arc58_removeAllowances(escrow: string, assets: uint64[]): void {
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ dup
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 3
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ // smart_contracts/abstracted_account/contract.algo.ts:1094
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:1094
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY);
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1095
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:1096
+ // assert(!this.escrows(escrow).value.locked, ERR_ESCROW_LOCKED);
+ box_get
+ pop
+ pushint 64 // 64
+ getbit
+ !
+ assert // Escrow is locked
+ // smart_contracts/abstracted_account/contract.algo.ts:1098
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:1098
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz arc58_removeAllowances_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:1099-1104
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.allowancesMbr(escrow) * assets.length
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:1101
+ // receiver: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:1101
+ // receiver: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:66
+ // return MinAllowanceMBR + (BoxCostPerByte * Bytes(escrow).length);
+ dig 3
+ len
+ intc 4 // 400
+ *
+ intc 6 // 27700
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:1102
+ // amount: this.allowancesMbr(escrow) * assets.length
+ dig 2
+ *
+ itxn_field Amount
+ itxn_field Receiver
+ // smart_contracts/abstracted_account/contract.algo.ts:1099-1103
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.allowancesMbr(escrow) * assets.length
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:1099-1104
+ // itxn
+ // .payment({
+ // receiver: this.controlledAddress.value,
+ // amount: this.allowancesMbr(escrow) * assets.length
+ // })
+ // .submit()
+ itxn_submit
+
+arc58_removeAllowances_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:1107
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_0 // 0
+ bury 4
+
+arc58_removeAllowances_while_top@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1107
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ dig 3
+ dig 1
+ <
+ bz arc58_removeAllowances_after_while@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1110
+ // asset: assets[i]
+ dig 1
+ extract 2 0
+ dig 4
+ dup
+ cover 2
+ intc_3 // 8
+ *
+ intc_3 // 8
+ extract3 // on error: index access is out of bounds
+ // smart_contracts/abstracted_account/contract.algo.ts:1108-1111
+ // const key: AllowanceKey = {
+ // escrow,
+ // asset: assets[i]
+ // }
+ dig 4
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ bytec 13 // 0x000a
+ uncover 2
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1112
+ // assert(this.allowances(key).exists, ERR_ALLOWANCE_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // allowance does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:1113
+ // this.allowances(key).delete()
+ box_del
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:1107
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_1 // 1
+ +
+ bury 4
+ b arc58_removeAllowances_while_top@5
+
+arc58_removeAllowances_after_while@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:1093
+ // arc58_removeAllowances(escrow: string, assets: uint64[]): void {
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_addExecutionKey[routing]() -> void:
+arc58_addExecutionKey:
+ // smart_contracts/abstracted_account/contract.algo.ts:1120
+ // arc58_addExecutionKey(lease: bytes<32>, groups: bytes<32>[], firstValid: uint64, lastValid: uint64): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ txna ApplicationArgs 2
+ dup
+ cover 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ pushint 32 // 32
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+uint8[32][])
+ txna ApplicationArgs 3
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ cover 2
+ txna ApplicationArgs 4
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ cover 2
+ // smart_contracts/abstracted_account/contract.algo.ts:1121
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY)
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:1121
+ // assert(Txn.sender === this.admin.value, ERR_ADMIN_ONLY)
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ swap
+ concat
+ dup
+ cover 3
+ // smart_contracts/abstracted_account/contract.algo.ts:1122
+ // if (!this.executions(lease).exists) {
+ box_len
+ bury 1
+ bnz arc58_addExecutionKey_else_body@3
+ // smart_contracts/abstracted_account/contract.algo.ts:1123-1127
+ // this.executions(lease).value = {
+ // groups: clone(groups),
+ // firstValid,
+ // lastValid
+ // }
+ dig 3
+ itob
+ pushbytes 0x0012
+ swap
+ concat
+ uncover 2
+ itob
+ concat
+ swap
+ concat
+ dig 1
+ dup
+ box_del
+ pop
+ swap
+ box_put
+
+arc58_addExecutionKey_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:1120
+ // arc58_addExecutionKey(lease: bytes<32>, groups: bytes<32>[], firstValid: uint64, lastValid: uint64): void {
+ intc_1 // 1
+ return
+
+arc58_addExecutionKey_else_body@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:1129
+ // assert(this.executions(lease).value.firstValid === firstValid, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_FIRST_VALID)
+ dig 2
+ dup
+ intc_2 // 2
+ intc_3 // 8
+ box_extract
+ btoi
+ dig 5
+ ==
+ assert // execution key update must match first valid
+ // smart_contracts/abstracted_account/contract.algo.ts:1130
+ // assert(this.executions(lease).value.lastValid === lastValid, ERR_EXECUTION_KEY_UPDATE_MUST_MATCH_LAST_VALID)
+ dup
+ pushint 10 // 10
+ intc_3 // 8
+ box_extract
+ btoi
+ uncover 3
+ ==
+ assert // execution key update must match last valid
+ // smart_contracts/abstracted_account/contract.algo.ts:1132
+ // this.executions(lease).value.groups = [...clone(this.executions(lease).value.groups), ...clone(groups)]
+ dup
+ box_get
+ pop
+ dup
+ intc_0 // 0
+ extract_uint16
+ dig 1
+ len
+ dig 2
+ dig 2
+ uncover 2
+ substring3
+ uncover 4
+ extract 2 0
+ concat // on error: max array length exceeded
+ dup
+ extract 2 0
+ len
+ pushint 32 // 32
+ /
+ itob
+ extract 6 2
+ replace2 0
+ uncover 2
+ intc_0 // 0
+ uncover 3
+ extract3
+ swap
+ concat
+ dig 1
+ box_del
+ pop
+ box_put
+ b arc58_addExecutionKey_after_if_else@4
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_removeExecutionKey[routing]() -> void:
+arc58_removeExecutionKey:
+ // smart_contracts/abstracted_account/contract.algo.ts:1139
+ // arc58_removeExecutionKey(lease: bytes<32>): void {
+ txna ApplicationArgs 1
+ dup
+ len
+ pushint 32 // 32
+ ==
+ assert // invalid number of bytes for uint8[32]
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ swap
+ concat
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:1140
+ // assert(this.executions(lease).exists, ERR_EXECUTION_KEY_DOES_NOT_EXIST)
+ box_len
+ bury 1
+ assert // execution key does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:1141
+ // assert(Txn.sender === this.admin.value || this.executions(lease).value.lastValid < Global.round, ERR_ADMIN_ONLY)
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:1141
+ // assert(Txn.sender === this.admin.value || this.executions(lease).value.lastValid < Global.round, ERR_ADMIN_ONLY)
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ bnz arc58_removeExecutionKey_bool_true@3
+ dup
+ pushint 10 // 10
+ intc_3 // 8
+ box_extract
+ btoi
+ global Round
+ <
+ bz arc58_removeExecutionKey_bool_false@4
+
+arc58_removeExecutionKey_bool_true@3:
+ intc_1 // 1
+
+arc58_removeExecutionKey_bool_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1141
+ // assert(Txn.sender === this.admin.value || this.executions(lease).value.lastValid < Global.round, ERR_ADMIN_ONLY)
+ assert // admin only
+ // smart_contracts/abstracted_account/contract.algo.ts:1143
+ // this.executions(lease).delete()
+ dup
+ box_del
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:22
+ // lastChange = GlobalState({ key: AbstractAccountGlobalStateKeysLastChange })
+ bytec 6 // "last_change"
+ // smart_contracts/abstracted_account/contract.algo.ts:48
+ // this.lastChange.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:1139
+ // arc58_removeExecutionKey(lease: bytes<32>): void {
+ intc_1 // 1
+ return
+
+arc58_removeExecutionKey_bool_false@4:
+ intc_0 // 0
+ b arc58_removeExecutionKey_bool_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getPlugins[routing]() -> void:
+arc58_getPlugins:
+ intc_0 // 0
+ bytec_1 // ""
+ // smart_contracts/abstracted_account/contract.algo.ts:1149
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ // smart_contracts/abstracted_account/contract.algo.ts:1151
+ // let plugins: PluginInfo[] = []
+ bytec 10 // 0x0000
+ // smart_contracts/abstracted_account/contract.algo.ts:1152
+ // for (let i: uint64 = 0; i < keys.length; i += 1) {
+ intc_0 // 0
+
+arc58_getPlugins_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:1152
+ // for (let i: uint64 = 0; i < keys.length; i += 1) {
+ dig 2
+ intc_0 // 0
+ extract_uint16
+ dup
+ bury 5
+ dig 1
+ >
+ bz arc58_getPlugins_after_while@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1153
+ // if (this.plugins(keys[i]).exists) {
+ dig 2
+ extract 2 0
+ dig 1
+ dup
+ cover 2
+ intc_2 // 2
+ *
+ dig 1
+ swap
+ extract_uint16
+ uncover 2
+ intc_1 // 1
+ +
+ dup
+ bury 4
+ dig 6
+ dig 1
+ - // on error: index access is out of bounds
+ dig 3
+ len
+ uncover 2
+ intc_2 // 2
+ *
+ dig 4
+ swap
+ extract_uint16
+ uncover 2
+ select
+ substring3
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ dup
+ bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:1153
+ // if (this.plugins(keys[i]).exists) {
+ box_len
+ bury 1
+ bz arc58_getPlugins_after_if_else@5
+ // smart_contracts/abstracted_account/contract.algo.ts:1154
+ // plugins.push(this.plugins(keys[i]).value)
+ dig 4
+ box_get
+ assert // Box must have value
+ dig 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ bytec 20 // 0x0002
+ uncover 3
+ concat
+ cover 2
+ intc_1 // 1
+ uncover 3
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+ // smart_contracts/abstracted_account/contract.algo.ts:1155
+ // continue
+ b arc58_getPlugins_while_top@2
+
+arc58_getPlugins_after_if_else@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1157
+ // plugins.push(emptyPluginInfo())
+ dig 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ intc_1 // 1
+ bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+ b arc58_getPlugins_while_top@2
+
+arc58_getPlugins_after_while@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:1149
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ dig 2
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getNamedPlugins[routing]() -> void:
+arc58_getNamedPlugins:
+ intc_0 // 0
+ dup
+ bytec_1 // ""
+ // smart_contracts/abstracted_account/contract.algo.ts:1162
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ // smart_contracts/abstracted_account/contract.algo.ts:1164
+ // let plugins: PluginInfo[] = []
+ bytec 10 // 0x0000
+ // smart_contracts/abstracted_account/contract.algo.ts:1165
+ // for (let i: uint64 = 0; i < names.length; i += 1) {
+ intc_0 // 0
+
+arc58_getNamedPlugins_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:1165
+ // for (let i: uint64 = 0; i < names.length; i += 1) {
+ dig 2
+ intc_0 // 0
+ extract_uint16
+ dig 1
+ >
+ dup
+ bury 5
+ bz arc58_getNamedPlugins_after_while@9
+ // smart_contracts/abstracted_account/contract.algo.ts:1166
+ // if (this.namedPlugins(names[i]).exists) {
+ dig 2
+ extract 2 0
+ dig 4
+ assert // index access is out of bounds
+ dig 1
+ intc_2 // 2
+ *
+ dig 1
+ swap
+ extract_uint16
+ dup2
+ extract_uint16
+ intc_2 // 2
+ +
+ extract3
+ extract 2 0
+ // smart_contracts/abstracted_account/contract.algo.ts:35
+ // namedPlugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixNamedPlugins });
+ bytec 16 // "n"
+ swap
+ concat
+ dup
+ bury 7
+ // smart_contracts/abstracted_account/contract.algo.ts:1166
+ // if (this.namedPlugins(names[i]).exists) {
+ box_len
+ bury 1
+ bz arc58_getNamedPlugins_after_if_else@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1167
+ // const nameKey = clone(this.namedPlugins(names[i]).value)
+ dig 5
+ box_get
+ assert // Box must have value
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ dup
+ bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:1168
+ // if (this.plugins(nameKey).exists) {
+ box_len
+ bury 1
+ bz arc58_getNamedPlugins_after_if_else@6
+ // smart_contracts/abstracted_account/contract.algo.ts:1169
+ // plugins.push(this.plugins(nameKey).value)
+ dig 4
+ box_get
+ assert // Box must have value
+ dig 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ bytec 20 // 0x0002
+ uncover 3
+ concat
+ cover 2
+ intc_1 // 1
+ uncover 3
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+
+arc58_getNamedPlugins_block@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:1165
+ // for (let i: uint64 = 0; i < names.length; i += 1) {
+ dup
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_getNamedPlugins_while_top@2
+
+arc58_getNamedPlugins_after_if_else@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:1172
+ // plugins.push(emptyPluginInfo())
+ dig 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ intc_1 // 1
+ bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+ // smart_contracts/abstracted_account/contract.algo.ts:1173
+ // continue
+ b arc58_getNamedPlugins_block@8
+
+arc58_getNamedPlugins_after_if_else@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:1175
+ // plugins.push(emptyPluginInfo())
+ dig 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ intc_1 // 1
+ bytec 21 // 0x000200000000000000000000000000000000000000000000000000002c00000000000000000000000000000000000000
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+ b arc58_getNamedPlugins_block@8
+
+arc58_getNamedPlugins_after_while@9:
+ // smart_contracts/abstracted_account/contract.algo.ts:1162
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ dig 2
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getEscrows[routing]() -> void:
+arc58_getEscrows:
+ intc_0 // 0
+ bytec_1 // ""
+ // smart_contracts/abstracted_account/contract.algo.ts:1180
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ // smart_contracts/abstracted_account/contract.algo.ts:1182
+ // let result: EscrowInfo[] = []
+ bytec 10 // 0x0000
+ // smart_contracts/abstracted_account/contract.algo.ts:1183
+ // for (let i: uint64 = 0; i < escrows.length; i += 1) {
+ intc_0 // 0
+
+arc58_getEscrows_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:1183
+ // for (let i: uint64 = 0; i < escrows.length; i += 1) {
+ dig 2
+ intc_0 // 0
+ extract_uint16
+ dig 1
+ >
+ dup
+ bury 5
+ bz arc58_getEscrows_after_while@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1184
+ // if (this.escrows(escrows[i]).exists) {
+ dig 2
+ extract 2 0
+ dig 4
+ assert // index access is out of bounds
+ dig 1
+ intc_2 // 2
+ *
+ dig 1
+ swap
+ extract_uint16
+ dup2
+ extract_uint16
+ intc_2 // 2
+ +
+ extract3
+ extract 2 0
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ swap
+ concat
+ dup
+ bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:1184
+ // if (this.escrows(escrows[i]).exists) {
+ box_len
+ bury 1
+ bz arc58_getEscrows_after_if_else@5
+ // smart_contracts/abstracted_account/contract.algo.ts:1185
+ // result.push(this.escrows(escrows[i]).value)
+ dig 4
+ box_get
+ assert // Box must have value
+ dig 2
+ dup
+ uncover 2
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 2
+
+arc58_getEscrows_block@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:1183
+ // for (let i: uint64 = 0; i < escrows.length; i += 1) {
+ dup
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_getEscrows_while_top@2
+
+arc58_getEscrows_after_if_else@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1188
+ // result.push(emptyEscrowInfo())
+ dig 1
+ dup
+ // smart_contracts/abstracted_account/utils.ts:20-23
+ // return {
+ // id: 0,
+ // locked: false
+ // };
+ pushbytes 0x000000000000000000
+ // smart_contracts/abstracted_account/contract.algo.ts:1188
+ // result.push(emptyEscrowInfo())
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 2
+ b arc58_getEscrows_block@6
+
+arc58_getEscrows_after_while@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:1180
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ dig 2
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getAllowances[routing]() -> void:
+arc58_getAllowances:
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:1193
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 2
+ dupn 2
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 2
+ intc_3 // 8
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+uint64[])
+ // smart_contracts/abstracted_account/contract.algo.ts:1195
+ // let result: AllowanceInfo[] = []
+ bytec 10 // 0x0000
+ // smart_contracts/abstracted_account/contract.algo.ts:1196
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ intc_0 // 0
+
+arc58_getAllowances_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:1196
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ dup
+ dig 3
+ <
+ bz arc58_getAllowances_after_while@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1197
+ // const key: AllowanceKey = { escrow, asset: assets[i] }
+ dig 3
+ extract 2 0
+ dig 1
+ intc_3 // 8
+ *
+ intc_3 // 8
+ extract3 // on error: index access is out of bounds
+ dig 5
+ dup
+ len
+ itob
+ extract 6 2
+ swap
+ concat
+ bytec 13 // 0x000a
+ uncover 2
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ dup
+ bury 7
+ // smart_contracts/abstracted_account/contract.algo.ts:1198
+ // if (this.allowances(key).exists) {
+ box_len
+ bury 1
+ bz arc58_getAllowances_after_if_else@5
+ // smart_contracts/abstracted_account/contract.algo.ts:1199
+ // result.push(this.allowances(key).value)
+ dig 5
+ box_get
+ assert // Box must have value
+ dig 2
+ dup
+ uncover 2
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 2
+
+arc58_getAllowances_block@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:1196
+ // for (let i: uint64 = 0; i < assets.length; i += 1) {
+ dup
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_getAllowances_while_top@2
+
+arc58_getAllowances_after_if_else@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1202
+ // result.push(emptyAllowanceInfo())
+ dig 1
+ dup
+ // smart_contracts/abstracted_account/utils.ts:27-36
+ // return {
+ // type: new Uint8(0),
+ // max: 0,
+ // amount: 0,
+ // spent: 0,
+ // interval: 0,
+ // last: 0,
+ // start: 0,
+ // useRounds: false
+ // };
+ pushbytes 0x0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
+ // smart_contracts/abstracted_account/contract.algo.ts:1202
+ // result.push(emptyAllowanceInfo())
+ concat // on error: max array length exceeded
+ swap
+ intc_0 // 0
+ extract_uint16
+ intc_1 // 1
+ +
+ itob
+ extract 6 2
+ replace2 0
+ bury 2
+ b arc58_getAllowances_block@6
+
+arc58_getAllowances_after_while@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:1193
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ dig 2
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_getExecutions[routing]() -> void:
+arc58_getExecutions:
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:1207
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ dupn 2
+ intc_0 // 0
+ extract_uint16
+ dup
+ cover 2
+ pushint 32 // 32
+ *
+ intc_2 // 2
+ +
+ swap
+ len
+ ==
+ assert // invalid number of bytes for (len+uint8[32][])
+ // smart_contracts/abstracted_account/contract.algo.ts:1209
+ // let result: ExecutionInfo[] = []
+ bytec 10 // 0x0000
+ // smart_contracts/abstracted_account/contract.algo.ts:1210
+ // for (let i: uint64 = 0; i < leases.length; i += 1) {
+ intc_0 // 0
+
+arc58_getExecutions_while_top@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:1210
+ // for (let i: uint64 = 0; i < leases.length; i += 1) {
+ dup
+ dig 3
+ <
+ bz arc58_getExecutions_after_while@7
+ // smart_contracts/abstracted_account/contract.algo.ts:1211
+ // if (this.executions(leases[i]).exists) {
+ dig 3
+ extract 2 0
+ dig 1
+ pushint 32 // 32
+ *
+ pushint 32 // 32
+ extract3 // on error: index access is out of bounds
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ swap
+ concat
+ dup
+ bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:1211
+ // if (this.executions(leases[i]).exists) {
+ box_len
+ bury 1
+ bz arc58_getExecutions_after_if_else@5
+ // smart_contracts/abstracted_account/contract.algo.ts:1212
+ // result.push(this.executions(leases[i]).value)
+ dig 4
+ box_get
+ assert // Box must have value
+ dig 2
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ bytec 20 // 0x0002
+ uncover 3
+ concat
+ cover 2
+ intc_1 // 1
+ uncover 3
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+
+arc58_getExecutions_block@6:
+ // smart_contracts/abstracted_account/contract.algo.ts:1210
+ // for (let i: uint64 = 0; i < leases.length; i += 1) {
+ dup
+ intc_1 // 1
+ +
+ bury 1
+ b arc58_getExecutions_while_top@2
+
+arc58_getExecutions_after_if_else@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:1215
+ // result.push(emptyExecutionInfo())
+ dig 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ swap
+ extract 2 0
+ intc_1 // 1
+ pushbytes 0x00020012000000000000000000000000000000000000
+ callsub dynamic_array_concat_dynamic_element
+ bury 2
+ b arc58_getExecutions_block@6
+
+arc58_getExecutions_after_while@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:1207
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ dig 2
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.mbr[routing]() -> void:
+mbr:
+ // smart_contracts/abstracted_account/contract.algo.ts:1220
+ // @abimethod({ readonly: true })
+ txna ApplicationArgs 1
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 2
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ txna ApplicationArgs 3
+ dup
+ intc_0 // 0
+ extract_uint16
+ intc_2 // 2
+ +
+ dig 1
+ len
+ ==
+ assert // invalid number of bytes for (len+utf8[])
+ extract 2 0
+ txna ApplicationArgs 4
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ // smart_contracts/abstracted_account/contract.algo.ts:62
+ // return MinEscrowsMBR + (BoxCostPerByte * Bytes(escrow).length);
+ dig 3
+ len
+ intc 4 // 400
+ *
+ pushint 6500 // 6500
+ dig 1
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:1230
+ // plugins: this.pluginsMbr(escrow, methodCount),
+ dig 5
+ uncover 5
+ callsub pluginsMbr
+ // smart_contracts/abstracted_account/contract.algo.ts:58
+ // return MinNamedPluginMBR + (BoxCostPerByte * Bytes(name).length);
+ uncover 4
+ len
+ intc 4 // 400
+ *
+ intc 5 // 21700
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:66
+ // return MinAllowanceMBR + (BoxCostPerByte * Bytes(escrow).length);
+ intc 6 // 27700
+ uncover 4
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:70
+ // return MinExecutionsMBR + (BoxCostPerByte * (groups * 32));
+ uncover 4
+ pushint 12800 // 12800
+ *
+ pushint 20500 // 20500
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ uncover 6
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1235
+ // escrowExists: this.escrows(escrow).exists,
+ box_len
+ cover 6
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:1238
+ // Global.minBalance +
+ global MinBalance
+ // smart_contracts/abstracted_account/contract.algo.ts:1237-1239
+ // NewCostForARC58 +
+ // Global.minBalance +
+ // ARC58WalletIDsByAccountsMbr +
+ pushint 162100 // 162100
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:1237-1240
+ // NewCostForARC58 +
+ // Global.minBalance +
+ // ARC58WalletIDsByAccountsMbr +
+ // escrows
+ dig 5
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:1229-1242
+ // return {
+ // plugins: this.pluginsMbr(escrow, methodCount),
+ // namedPlugins: this.namedPluginsMbr(plugin),
+ // escrows,
+ // allowances: this.allowancesMbr(escrow),
+ // executions: this.executionsMbr(groups),
+ // escrowExists: this.escrows(escrow).exists,
+ // newEscrowMintCost: (
+ // NewCostForARC58 +
+ // Global.minBalance +
+ // ARC58WalletIDsByAccountsMbr +
+ // escrows
+ // )
+ // }
+ uncover 4
+ itob
+ uncover 4
+ itob
+ concat
+ uncover 4
+ itob
+ concat
+ uncover 3
+ itob
+ concat
+ uncover 2
+ itob
+ concat
+ bytec 9 // 0x00
+ intc_0 // 0
+ uncover 4
+ setbit
+ concat
+ swap
+ itob
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:1220
+ // @abimethod({ readonly: true })
+ bytec 7 // 0x151f7c75
+ swap
+ concat
+ log
+ intc_1 // 1
+ return
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginsMbr(escrow: bytes, methodCount: uint64) -> uint64:
+pluginsMbr:
+ // smart_contracts/abstracted_account/contract.algo.ts:51
+ // private pluginsMbr(escrow: string, methodCount: uint64): uint64 {
+ proto 2 1
+ // smart_contracts/abstracted_account/contract.algo.ts:53
+ // BoxCostPerByte * ((MethodRestrictionByteLength * methodCount) + Bytes(escrow).length)
+ pushint 20 // 20
+ frame_dig -1
+ *
+ frame_dig -2
+ len
+ +
+ intc 4 // 400
+ *
+ // smart_contracts/abstracted_account/contract.algo.ts:52
+ // return MinPluginMBR + (
+ pushint 38900 // 38900
+ // smart_contracts/abstracted_account/contract.algo.ts:52-54
+ // return MinPluginMBR + (
+ // BoxCostPerByte * ((MethodRestrictionByteLength * methodCount) + Bytes(escrow).length)
+ // );
+ +
+ retsub
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.maybeNewEscrow(escrow: bytes) -> uint64:
+maybeNewEscrow:
+ // smart_contracts/abstracted_account/contract.algo.ts:73
+ // private maybeNewEscrow(escrow: string): uint64 {
+ proto 1 1
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:74
+ // if (escrow === '') {
+ frame_dig -1
+ bytec_1 // ""
+ ==
+ bz maybeNewEscrow_after_if_else@2
+ // smart_contracts/abstracted_account/contract.algo.ts:75
+ // return 0;
+ intc_0 // 0
+ swap
+ retsub
+
+maybeNewEscrow_after_if_else@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ frame_dig -1
+ concat
+ dup
+ frame_bury 0
+ // smart_contracts/abstracted_account/contract.algo.ts:78
+ // return this.escrows(escrow).exists
+ box_len
+ bury 1
+ // smart_contracts/abstracted_account/contract.algo.ts:78-80
+ // return this.escrows(escrow).exists
+ // ? this.escrows(escrow).value.id
+ // : this.newEscrow(escrow);
+ bz maybeNewEscrow_ternary_false@4
+ // smart_contracts/abstracted_account/contract.algo.ts:79
+ // ? this.escrows(escrow).value.id
+ frame_dig 0
+ box_get
+ assert // Box must have value
+ intc_0 // 0
+ extract_uint64
+
+maybeNewEscrow_ternary_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:78-80
+ // return this.escrows(escrow).exists
+ // ? this.escrows(escrow).value.id
+ // : this.newEscrow(escrow);
+ swap
+ retsub
+
+maybeNewEscrow_ternary_false@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:80
+ // : this.newEscrow(escrow);
+ frame_dig -1
+ callsub newEscrow
+ b maybeNewEscrow_ternary_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.newEscrow(escrow: bytes) -> uint64:
+newEscrow:
+ // smart_contracts/abstracted_account/contract.algo.ts:83
+ // private newEscrow(escrow: string): uint64 {
+ proto 1 1
+ // smart_contracts/abstracted_account/contract.algo.ts:84
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:84
+ // if (this.controlledAddress.value !== Global.currentApplicationAddress) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ global CurrentApplicationAddress
+ !=
+ bz newEscrow_after_if_else@3
+ // smart_contracts/abstracted_account/contract.algo.ts:85-91
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.escrowsMbr(escrow)
+ // })
+ // .submit()
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:87
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:87
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:88
+ // receiver: Global.currentApplicationAddress,
+ global CurrentApplicationAddress
+ // smart_contracts/abstracted_account/contract.algo.ts:62
+ // return MinEscrowsMBR + (BoxCostPerByte * Bytes(escrow).length);
+ frame_dig -1
+ len
+ intc 4 // 400
+ *
+ pushint 6500 // 6500
+ +
+ itxn_field Amount
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:85-90
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.escrowsMbr(escrow)
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:85-91
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: Global.currentApplicationAddress,
+ // amount: this.escrowsMbr(escrow)
+ // })
+ // .submit()
+ itxn_submit
+
+newEscrow_after_if_else@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:94-104
+ // const id = abiCall({
+ // sender: this.controlledAddress.value,
+ // appId: this.escrowFactory.value,
+ // args: [
+ // itxn.payment({
+ // sender: this.controlledAddress.value,
+ // amount: NewCostForARC58 + Global.minBalance,
+ // receiver: this.escrowFactory.value.address
+ // }),
+ // ]
+ // }).returnValue
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:99
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:99
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:100
+ // amount: NewCostForARC58 + Global.minBalance,
+ pushint 150000 // 150000
+ global MinBalance
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:101
+ // receiver: this.escrowFactory.value.address
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:24
+ // escrowFactory = GlobalState({ key: AbstractAccountGlobalStateKeysEscrowFactory })
+ bytec 18 // "escrow_factory"
+ // smart_contracts/abstracted_account/contract.algo.ts:101
+ // receiver: this.escrowFactory.value.address
+ app_global_get_ex
+ assert // check GlobalState exists
+ dup
+ app_params_get AppAddress
+ assert // application exists
+ itxn_field Receiver
+ swap
+ itxn_field Amount
+ dig 1
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:98-102
+ // itxn.payment({
+ // sender: this.controlledAddress.value,
+ // amount: NewCostForARC58 + Global.minBalance,
+ // receiver: this.escrowFactory.value.address
+ // }),
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:94-104
+ // const id = abiCall({
+ // sender: this.controlledAddress.value,
+ // appId: this.escrowFactory.value,
+ // args: [
+ // itxn.payment({
+ // sender: this.controlledAddress.value,
+ // amount: NewCostForARC58 + Global.minBalance,
+ // receiver: this.escrowFactory.value.address
+ // }),
+ // ]
+ // }).returnValue
+ itxn_next
+ pushbytes 0xd85cf184 // method "new(pay)uint64"
+ itxn_field ApplicationArgs
+ itxn_field ApplicationID
+ itxn_field Sender
+ pushint 6 // appl
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ itxn_submit
+ gitxn 1 LastLog
+ dup
+ extract 4 0
+ swap
+ extract 0 4
+ bytec 7 // 0x151f7c75
+ ==
+ assert // Bytes has valid prefix
+ dup
+ len
+ intc_3 // 8
+ ==
+ assert // invalid number of bytes for uint64
+ btoi
+ // smart_contracts/abstracted_account/contract.algo.ts:106
+ // this.escrows(escrow).value = { id, locked: false }
+ dup
+ itob
+ bytec 9 // 0x00
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ frame_dig -1
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:106
+ // this.escrows(escrow).value = { id, locked: false }
+ swap
+ box_put
+ // smart_contracts/abstracted_account/contract.algo.ts:108
+ // return id;
+ retsub
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCallAllowed(plugin: uint64, caller: bytes, escrow: bytes, method: bytes) -> uint64:
+pluginCallAllowed:
+ // smart_contracts/abstracted_account/contract.algo.ts:111
+ // private pluginCallAllowed(plugin: uint64, caller: Account, escrow: string, method: bytes<4>): boolean {
+ proto 4 1
+ bytec_1 // ""
+ dupn 5
+ // smart_contracts/abstracted_account/contract.algo.ts:112
+ // const key: PluginKey = { plugin, caller, escrow }
+ frame_dig -4
+ itob
+ frame_dig -3
+ concat
+ frame_dig -2
+ len
+ itob
+ extract 6 2
+ frame_dig -2
+ concat
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ swap
+ concat
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:114
+ // if (!this.plugins(key).exists) {
+ box_len
+ bury 1
+ bnz pluginCallAllowed_after_if_else@2
+ // smart_contracts/abstracted_account/contract.algo.ts:115
+ // return false;
+ intc_0 // 0
+ frame_bury 0
+ retsub
+
+pluginCallAllowed_after_if_else@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:118
+ // const { methods, useRounds, lastCalled, cooldown, useExecutionKey } = this.plugins(key).value as Readonly
+ frame_dig 6
+ dup
+ pushint 17 // 17
+ intc_3 // 8
+ box_extract
+ btoi
+ frame_bury 0
+ dup
+ pushint 27 // 27
+ intc_1 // 1
+ box_extract
+ dup
+ intc_1 // 1
+ getbit
+ frame_bury 5
+ intc_2 // 2
+ getbit
+ swap
+ pushint 28 // 28
+ intc_3 // 8
+ box_extract
+ btoi
+ frame_bury 3
+ // smart_contracts/abstracted_account/contract.algo.ts:120
+ // if (useExecutionKey) {
+ bz pluginCallAllowed_after_if_else@4
+ // smart_contracts/abstracted_account/contract.algo.ts:121
+ // return false
+ intc_0 // 0
+ frame_bury 0
+ retsub
+
+pluginCallAllowed_after_if_else@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:124
+ // let methodAllowed = methods.length > 0 ? false : true;
+ frame_dig 6
+ pushint 44 // 44
+ intc_2 // 2
+ box_extract
+ btoi
+ !
+ frame_bury 4
+ // smart_contracts/abstracted_account/contract.algo.ts:125
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ intc_0 // 0
+ frame_bury 2
+
+pluginCallAllowed_while_top@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:125
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ frame_dig 6
+ pushint 44 // 44
+ intc_2 // 2
+ box_extract
+ btoi
+ frame_dig 2
+ >
+ bz pluginCallAllowed_block@10
+ // smart_contracts/abstracted_account/contract.algo.ts:126
+ // if (methods[i].selector === method) {
+ frame_dig 2
+ pushint 20 // 20
+ *
+ pushint 46 // 46
+ +
+ frame_dig 6
+ swap
+ pushint 20 // 20
+ box_extract
+ extract 0 4
+ frame_dig -1
+ ==
+ bz pluginCallAllowed_after_if_else@8
+ // smart_contracts/abstracted_account/contract.algo.ts:127
+ // methodAllowed = true;
+ intc_1 // 1
+ frame_bury 4
+
+pluginCallAllowed_block@10:
+ // smart_contracts/abstracted_account/contract.algo.ts:132
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ frame_dig 5
+ bz pluginCallAllowed_ternary_false@12
+ global Round
+ frame_bury 1
+
+pluginCallAllowed_ternary_merge@13:
+ // smart_contracts/abstracted_account/contract.algo.ts:135
+ // lastCalled >= epochRef &&
+ frame_dig 3
+ frame_dig 1
+ >=
+ // smart_contracts/abstracted_account/contract.algo.ts:135-136
+ // lastCalled >= epochRef &&
+ // (epochRef - lastCalled) >= cooldown &&
+ bz pluginCallAllowed_bool_false@16
+ // smart_contracts/abstracted_account/contract.algo.ts:136
+ // (epochRef - lastCalled) >= cooldown &&
+ frame_dig 1
+ frame_dig 3
+ -
+ frame_dig 0
+ >=
+ // smart_contracts/abstracted_account/contract.algo.ts:135-136
+ // lastCalled >= epochRef &&
+ // (epochRef - lastCalled) >= cooldown &&
+ bz pluginCallAllowed_bool_false@16
+ intc_1 // 1
+
+pluginCallAllowed_bool_merge@17:
+ // smart_contracts/abstracted_account/contract.algo.ts:135-137
+ // lastCalled >= epochRef &&
+ // (epochRef - lastCalled) >= cooldown &&
+ // methodAllowed
+ frame_dig 4
+ &&
+ // smart_contracts/abstracted_account/contract.algo.ts:134-138
+ // return (
+ // lastCalled >= epochRef &&
+ // (epochRef - lastCalled) >= cooldown &&
+ // methodAllowed
+ // )
+ frame_bury 0
+ retsub
+
+pluginCallAllowed_bool_false@16:
+ intc_0 // 0
+ b pluginCallAllowed_bool_merge@17
+
+pluginCallAllowed_ternary_false@12:
+ // smart_contracts/abstracted_account/contract.algo.ts:132
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ frame_bury 1
+ b pluginCallAllowed_ternary_merge@13
+
+pluginCallAllowed_after_if_else@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:125
+ // for (let i: uint64 = 0; i < methods.length; i += 1) {
+ frame_dig 2
+ intc_1 // 1
+ +
+ frame_bury 2
+ b pluginCallAllowed_while_top@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.txnRekeysBack(txn: uint64) -> uint64:
+txnRekeysBack:
+ // smart_contracts/abstracted_account/contract.algo.ts:141
+ // private txnRekeysBack(txn: gtxn.Transaction): boolean {
+ proto 1 1
+ // smart_contracts/abstracted_account/contract.algo.ts:144
+ // txn.sender === this.controlledAddress.value &&
+ frame_dig -1
+ gtxns Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:144
+ // txn.sender === this.controlledAddress.value &&
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:144-145
+ // txn.sender === this.controlledAddress.value &&
+ // txn.rekeyTo === Global.currentApplicationAddress
+ bz txnRekeysBack_after_if_else@3
+ // smart_contracts/abstracted_account/contract.algo.ts:145
+ // txn.rekeyTo === Global.currentApplicationAddress
+ frame_dig -1
+ gtxns RekeyTo
+ global CurrentApplicationAddress
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:144-145
+ // txn.sender === this.controlledAddress.value &&
+ // txn.rekeyTo === Global.currentApplicationAddress
+ bz txnRekeysBack_after_if_else@3
+ // smart_contracts/abstracted_account/contract.algo.ts:147
+ // return true;
+ intc_1 // 1
+ retsub
+
+txnRekeysBack_after_if_else@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:151
+ // txn.type === TransactionType.ApplicationCall
+ frame_dig -1
+ gtxns TypeEnum
+ pushint 6 // 6
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:151-152
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ bz txnRekeysBack_bool_false@9
+ // smart_contracts/abstracted_account/contract.algo.ts:152
+ // && txn.appId === Global.currentApplicationId
+ frame_dig -1
+ gtxns ApplicationID
+ global CurrentApplicationID
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:151-152
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ bz txnRekeysBack_bool_false@9
+ // smart_contracts/abstracted_account/contract.algo.ts:153
+ // && txn.numAppArgs === 1
+ frame_dig -1
+ gtxns NumAppArgs
+ intc_1 // 1
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:151-153
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ // && txn.numAppArgs === 1
+ bz txnRekeysBack_bool_false@9
+ // smart_contracts/abstracted_account/contract.algo.ts:154
+ // && txn.onCompletion === OnCompleteAction.NoOp
+ frame_dig -1
+ gtxns OnCompletion
+ // smart_contracts/abstracted_account/contract.algo.ts:151-154
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ // && txn.numAppArgs === 1
+ // && txn.onCompletion === OnCompleteAction.NoOp
+ bnz txnRekeysBack_bool_false@9
+ // smart_contracts/abstracted_account/contract.algo.ts:155
+ // && txn.appArgs(0) === methodSelector('arc58_verifyAuthAddress()void')
+ frame_dig -1
+ intc_0 // 0
+ gtxnsas ApplicationArgs
+ bytec 22 // method "arc58_verifyAuthAddress()void"
+ ==
+ // smart_contracts/abstracted_account/contract.algo.ts:151-155
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ // && txn.numAppArgs === 1
+ // && txn.onCompletion === OnCompleteAction.NoOp
+ // && txn.appArgs(0) === methodSelector('arc58_verifyAuthAddress()void')
+ bz txnRekeysBack_bool_false@9
+ intc_1 // 1
+ // smart_contracts/abstracted_account/contract.algo.ts:150-156
+ // return (
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ // && txn.numAppArgs === 1
+ // && txn.onCompletion === OnCompleteAction.NoOp
+ // && txn.appArgs(0) === methodSelector('arc58_verifyAuthAddress()void')
+ // )
+ retsub
+
+txnRekeysBack_bool_false@9:
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:150-156
+ // return (
+ // txn.type === TransactionType.ApplicationCall
+ // && txn.appId === Global.currentApplicationId
+ // && txn.numAppArgs === 1
+ // && txn.onCompletion === OnCompleteAction.NoOp
+ // && txn.appArgs(0) === methodSelector('arc58_verifyAuthAddress()void')
+ // )
+ retsub
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.pluginCheck(key: bytes) -> bytes, bytes:
+pluginCheck:
+ // smart_contracts/abstracted_account/contract.algo.ts:173
+ // private pluginCheck(key: PluginKey): PluginValidation {
+ proto 1 2
+ bytec_1 // ""
+ dupn 2
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ frame_dig -1
+ concat
+ dup
+ // smart_contracts/abstracted_account/contract.algo.ts:175
+ // const exists = this.plugins(key).exists;
+ box_len
+ dup
+ uncover 2
+ pop
+ // smart_contracts/abstracted_account/contract.algo.ts:176
+ // if (!exists) {
+ bnz pluginCheck_after_if_else@2
+ // smart_contracts/abstracted_account/contract.algo.ts:177-182
+ // return {
+ // exists: false,
+ // expired: true,
+ // onCooldown: true,
+ // hasMethodRestrictions: false,
+ // }
+ pushbytes 0x60
+ frame_dig -1
+ frame_bury 1
+ frame_bury 0
+ retsub
+
+pluginCheck_after_if_else@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:185
+ // const { useRounds, lastValid, cooldown, lastCalled, methods } = this.plugins(key).value as Readonly
+ frame_dig 3
+ dup
+ pushint 9 // 9
+ intc_3 // 8
+ box_extract
+ btoi
+ frame_bury 2
+ dup
+ pushint 17 // 17
+ intc_3 // 8
+ box_extract
+ btoi
+ frame_bury 0
+ dup
+ pushint 27 // 27
+ intc_1 // 1
+ box_extract
+ intc_1 // 1
+ getbit
+ swap
+ pushint 28 // 28
+ intc_3 // 8
+ box_extract
+ btoi
+ frame_bury 1
+ // smart_contracts/abstracted_account/contract.algo.ts:186
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ bz pluginCheck_ternary_false@4
+ global Round
+
+pluginCheck_ternary_merge@5:
+ // smart_contracts/abstracted_account/contract.algo.ts:190
+ // expired: epochRef > lastValid,
+ dup
+ frame_dig 2
+ >
+ // smart_contracts/abstracted_account/contract.algo.ts:191
+ // onCooldown: (epochRef - lastCalled) < cooldown,
+ swap
+ frame_dig 1
+ -
+ frame_dig 0
+ <
+ // smart_contracts/abstracted_account/contract.algo.ts:192
+ // hasMethodRestrictions: methods.length > 0,
+ frame_dig 3
+ pushint 44 // 44
+ intc_2 // 2
+ box_extract
+ btoi
+ intc_0 // 0
+ >
+ // smart_contracts/abstracted_account/contract.algo.ts:188-193
+ // return {
+ // exists,
+ // expired: epochRef > lastValid,
+ // onCooldown: (epochRef - lastCalled) < cooldown,
+ // hasMethodRestrictions: methods.length > 0,
+ // }
+ bytec 9 // 0x00
+ intc_0 // 0
+ frame_dig 4
+ setbit
+ intc_1 // 1
+ uncover 4
+ setbit
+ intc_2 // 2
+ uncover 3
+ setbit
+ pushint 3 // 3
+ uncover 2
+ setbit
+ frame_dig -1
+ frame_bury 1
+ frame_bury 0
+ retsub
+
+pluginCheck_ternary_false@4:
+ // smart_contracts/abstracted_account/contract.algo.ts:186
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ b pluginCheck_ternary_merge@5
+
+
+// smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin(plugin: uint64, global: uint64, escrow: bytes, methodOffsets: bytes, fundsRequest: bytes) -> bytes, bytes:
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin:
+ // smart_contracts/abstracted_account/contract.algo.ts:567-573
+ // arc58_rekeyToPlugin(
+ // plugin: uint64,
+ // global: boolean,
+ // escrow: string,
+ // methodOffsets: uint64[],
+ // fundsRequest: FundsRequest[]
+ // ): void {
+ proto 5 2
+ intc_0 // 0
+ dupn 10
+ bytec_1 // ""
+ dupn 18
+ // smart_contracts/abstracted_account/contract.algo.ts:575
+ // const caller = global ? Global.zeroAddress : Txn.sender
+ frame_dig -4
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@2
+ global ZeroAddress
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@3:
+ // smart_contracts/abstracted_account/contract.algo.ts:576
+ // const key: PluginKey = { plugin, caller, escrow }
+ frame_dig -5
+ itob
+ swap
+ concat
+ frame_dig -3
+ len
+ itob
+ extract 6 2
+ frame_dig -3
+ concat
+ dup
+ frame_bury 1
+ swap
+ bytec 12 // 0x002a
+ concat
+ swap
+ concat
+ dup
+ frame_bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ dig 1
+ concat
+ dup
+ frame_bury 2
+ // smart_contracts/abstracted_account/contract.algo.ts:578
+ // assert(this.plugins(key).exists, ERR_PLUGIN_DOES_NOT_EXIST)
+ box_len
+ bury 1
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:28
+ // currentPlugin = GlobalState({ key: AbstractAccountGlobalStateKeysCurrentPlugin })
+ bytec 19 // "current_plugin"
+ // smart_contracts/abstracted_account/contract.algo.ts:579
+ // this.currentPlugin.value = clone(key)
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:581
+ // if (escrow !== '') {
+ frame_dig -3
+ bytec_1 // ""
+ !=
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@7
+ // smart_contracts/abstracted_account/contract.algo.ts:37
+ // escrows = BoxMap({ keyPrefix: AbstractAccountBoxPrefixEscrows })
+ bytec 5 // "e"
+ frame_dig -3
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:582
+ // assert(this.escrows(escrow).exists, ERR_ESCROW_DOES_NOT_EXIST)
+ dup
+ box_len
+ bury 1
+ assert // escrow does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:583
+ // const escrowID = this.escrows(escrow).value.id
+ box_get
+ pop
+ intc_0 // 0
+ extract_uint64
+ // smart_contracts/abstracted_account/contract.algo.ts:585
+ // this.spendingAddress.value = spendingApp.address
+ dup
+ app_params_get AppAddress
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:585
+ // this.spendingAddress.value = spendingApp.address
+ swap
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:316
+ // const escrowAddress = Application(escrowID).address;
+ app_params_get AppAddress
+ swap
+ frame_bury 5
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:318
+ // for (let i: uint64 = 0; i < fundsRequests.length; i += 1) {
+ intc_0 // 0
+ frame_bury 16
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@56:
+ // smart_contracts/abstracted_account/contract.algo.ts:318
+ // for (let i: uint64 = 0; i < fundsRequests.length; i += 1) {
+ frame_dig -1
+ intc_0 // 0
+ extract_uint16
+ frame_dig 16
+ >
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8
+ // smart_contracts/abstracted_account/contract.algo.ts:322
+ // asset: fundsRequests[i].asset
+ frame_dig -1
+ extract 2 0
+ frame_dig 16
+ pushint 16 // 16
+ *
+ pushint 16 // 16
+ extract3 // on error: index access is out of bounds
+ dup
+ frame_bury 0
+ intc_0 // 0
+ extract_uint64
+ dup
+ frame_bury 29
+ // smart_contracts/abstracted_account/contract.algo.ts:320-323
+ // const allowanceKey: AllowanceKey = {
+ // escrow,
+ // asset: fundsRequests[i].asset
+ // }
+ itob
+ bytec 13 // 0x000a
+ swap
+ concat
+ frame_dig 1
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:39
+ // allowances = BoxMap({ keyPrefix: AbstractAccountBoxPrefixAllowances }) // 38_500
+ bytec 14 // "a"
+ swap
+ concat
+ dup
+ frame_bury 3
+ // smart_contracts/abstracted_account/contract.algo.ts:349
+ // assert(this.allowances(key).exists, ERR_ALLOWANCE_DOES_NOT_EXIST);
+ dup
+ box_len
+ bury 1
+ assert // allowance does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:350
+ // const { type, spent, amount, last, max, interval, start, useRounds } = this.allowances(key).value
+ box_get
+ pop
+ dup
+ extract 0 1
+ frame_bury 10
+ dup
+ pushint 17 // 17
+ extract_uint64
+ frame_bury 26
+ dup
+ pushint 9 // 9
+ extract_uint64
+ frame_bury 11
+ dup
+ pushint 33 // 33
+ extract_uint64
+ frame_bury 19
+ dup
+ intc_1 // 1
+ extract_uint64
+ frame_bury 21
+ dup
+ pushint 25 // 25
+ extract_uint64
+ frame_bury 17
+ dup
+ pushint 41 // 41
+ extract_uint64
+ frame_bury 27
+ pushint 392 // 392
+ getbit
+ dup
+ frame_bury 28
+ // smart_contracts/abstracted_account/contract.algo.ts:351
+ // const newLast = useRounds ? Global.round : Global.latestTimestamp;
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@59
+ global Round
+ frame_bury 24
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@60:
+ // smart_contracts/abstracted_account/contract.algo.ts:353
+ // if (type === SpendAllowanceTypeFlat) {
+ frame_dig 10
+ bytec 15 // 0x01
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@62
+ // smart_contracts/abstracted_account/contract.algo.ts:354
+ // const leftover: uint64 = amount - spent;
+ frame_dig 11
+ frame_dig 26
+ -
+ // smart_contracts/abstracted_account/contract.algo.ts:355
+ // assert(leftover >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ frame_dig 0
+ intc_3 // 8
+ extract_uint64
+ swap
+ dig 1
+ >=
+ assert // allowance exceeded
+ // smart_contracts/abstracted_account/contract.algo.ts:356
+ // this.allowances(key).value.spent += fundRequest.amount
+ frame_dig 3
+ dup
+ cover 2
+ box_get
+ assert // Box must have value
+ pushint 17 // 17
+ extract_uint64
+ +
+ itob
+ pushint 17 // 17
+ swap
+ box_replace
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71:
+ // smart_contracts/abstracted_account/contract.algo.ts:381
+ // this.allowances(key).value.last = newLast
+ frame_dig 24
+ itob
+ frame_dig 3
+ pushint 33 // 33
+ uncover 2
+ box_replace
+ // smart_contracts/abstracted_account/contract.algo.ts:327
+ // if (fundsRequests[i].asset !== 0) {
+ frame_dig 29
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@73
+ // smart_contracts/abstracted_account/contract.algo.ts:328-335
+ // itxn
+ // .assetTransfer({
+ // sender: this.controlledAddress.value,
+ // assetReceiver: escrowAddress,
+ // assetAmount: fundsRequests[i].amount,
+ // xferAsset: fundsRequests[i].asset
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:330
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:330
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:332
+ // assetAmount: fundsRequests[i].amount,
+ frame_dig 0
+ intc_3 // 8
+ extract_uint64
+ frame_dig 29
+ itxn_field XferAsset
+ itxn_field AssetAmount
+ frame_dig 5
+ itxn_field AssetReceiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:328-334
+ // itxn
+ // .assetTransfer({
+ // sender: this.controlledAddress.value,
+ // assetReceiver: escrowAddress,
+ // assetAmount: fundsRequests[i].amount,
+ // xferAsset: fundsRequests[i].asset
+ // })
+ pushint 4 // 4
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:328-335
+ // itxn
+ // .assetTransfer({
+ // sender: this.controlledAddress.value,
+ // assetReceiver: escrowAddress,
+ // assetAmount: fundsRequests[i].amount,
+ // xferAsset: fundsRequests[i].asset
+ // })
+ // .submit();
+ itxn_submit
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@74:
+ // smart_contracts/abstracted_account/contract.algo.ts:318
+ // for (let i: uint64 = 0; i < fundsRequests.length; i += 1) {
+ frame_dig 16
+ intc_1 // 1
+ +
+ frame_bury 16
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@56
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@73:
+ // smart_contracts/abstracted_account/contract.algo.ts:337-343
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: fundsRequests[i].amount
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:339
+ // sender: this.controlledAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:339
+ // sender: this.controlledAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:341
+ // amount: fundsRequests[i].amount
+ frame_dig 0
+ intc_3 // 8
+ extract_uint64
+ itxn_field Amount
+ frame_dig 5
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:337-342
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: fundsRequests[i].amount
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:337-343
+ // itxn
+ // .payment({
+ // sender: this.controlledAddress.value,
+ // receiver: escrowAddress,
+ // amount: fundsRequests[i].amount
+ // })
+ // .submit();
+ itxn_submit
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@74
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@62:
+ // smart_contracts/abstracted_account/contract.algo.ts:357
+ // } else if (type === SpendAllowanceTypeWindow) {
+ frame_dig 10
+ pushbytes 0x02
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@66
+ // smart_contracts/abstracted_account/contract.algo.ts:385
+ // if (useRounds) {
+ frame_dig 28
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@77
+ // smart_contracts/abstracted_account/contract.algo.ts:386
+ // return Global.round - ((Global.round - start) % interval)
+ global Round
+ dup
+ frame_dig 27
+ -
+ frame_dig 17
+ %
+ -
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.getLatestWindowStart@78:
+ // smart_contracts/abstracted_account/contract.algo.ts:360
+ // if (currentWindowStart > last) {
+ frame_dig 19
+ >
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@65
+ // smart_contracts/abstracted_account/contract.algo.ts:361
+ // assert(amount >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ frame_dig 0
+ dup
+ extract 8 8
+ swap
+ intc_3 // 8
+ extract_uint64
+ frame_dig 11
+ <=
+ assert // allowance exceeded
+ // smart_contracts/abstracted_account/contract.algo.ts:362
+ // this.allowances(key).value.spent = fundRequest.amount
+ frame_dig 3
+ pushint 17 // 17
+ uncover 2
+ box_replace
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@65:
+ // smart_contracts/abstracted_account/contract.algo.ts:365
+ // const leftover: uint64 = amount - spent;
+ frame_dig 11
+ frame_dig 26
+ -
+ // smart_contracts/abstracted_account/contract.algo.ts:366
+ // assert(leftover >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ frame_dig 0
+ intc_3 // 8
+ extract_uint64
+ swap
+ dig 1
+ >=
+ assert // allowance exceeded
+ // smart_contracts/abstracted_account/contract.algo.ts:367
+ // this.allowances(key).value.spent += fundRequest.amount
+ frame_dig 3
+ dup
+ cover 2
+ box_get
+ assert // Box must have value
+ pushint 17 // 17
+ extract_uint64
+ +
+ itob
+ pushint 17 // 17
+ swap
+ box_replace
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@77:
+ // smart_contracts/abstracted_account/contract.algo.ts:388
+ // return Global.latestTimestamp - ((Global.latestTimestamp - start) % interval)
+ global LatestTimestamp
+ dup
+ frame_dig 27
+ -
+ frame_dig 17
+ %
+ -
+ // smart_contracts/abstracted_account/contract.algo.ts:358
+ // const currentWindowStart = this.getLatestWindowStart(useRounds, start, interval)
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.getLatestWindowStart@78
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@66:
+ // smart_contracts/abstracted_account/contract.algo.ts:369
+ // } else if (type === SpendAllowanceTypeDrip) {
+ frame_dig 10
+ pushbytes 0x03
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71
+ // smart_contracts/abstracted_account/contract.algo.ts:370
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ frame_dig 28
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@69
+ global Round
+ frame_bury 14
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@70:
+ // smart_contracts/abstracted_account/contract.algo.ts:371
+ // const passed: uint64 = epochRef - last
+ frame_dig 14
+ frame_dig 19
+ -
+ // smart_contracts/abstracted_account/contract.algo.ts:375
+ // const accrued: uint64 = spent + ((passed / interval) * amount)
+ frame_dig 17
+ /
+ frame_dig 11
+ *
+ frame_dig 26
+ +
+ // smart_contracts/abstracted_account/contract.algo.ts:376
+ // const available: uint64 = accrued > max ? max : accrued
+ dup
+ frame_dig 21
+ dup
+ cover 3
+ >
+ swap
+ cover 2
+ select
+ // smart_contracts/abstracted_account/contract.algo.ts:378
+ // assert(available >= fundRequest.amount, ERR_ALLOWANCE_EXCEEDED);
+ frame_dig 0
+ intc_3 // 8
+ extract_uint64
+ dup2
+ >=
+ assert // allowance exceeded
+ // smart_contracts/abstracted_account/contract.algo.ts:379
+ // this.allowances(key).value.spent = (available - fundRequest.amount)
+ -
+ itob
+ frame_dig 3
+ pushint 17 // 17
+ uncover 2
+ box_replace
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@71
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@69:
+ // smart_contracts/abstracted_account/contract.algo.ts:370
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ frame_bury 14
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@70
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@59:
+ // smart_contracts/abstracted_account/contract.algo.ts:351
+ // const newLast = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ frame_bury 24
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@60
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8:
+ // smart_contracts/abstracted_account/contract.algo.ts:204
+ // const { useRounds, useExecutionKey } = this.plugins(key).value
+ frame_dig 2
+ pushint 27 // 27
+ intc_1 // 1
+ box_extract
+ dup
+ intc_1 // 1
+ getbit
+ frame_bury 28
+ intc_2 // 2
+ getbit
+ // smart_contracts/abstracted_account/contract.algo.ts:206
+ // if (useExecutionKey && !(Txn.sender === this.admin.value)) {
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22
+ txn Sender
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:16
+ // admin = GlobalState({ key: AbstractAccountGlobalStateKeysAdmin })
+ bytec_2 // "admin"
+ // smart_contracts/abstracted_account/contract.algo.ts:206
+ // if (useExecutionKey && !(Txn.sender === this.admin.value)) {
+ app_global_get_ex
+ assert // check GlobalState exists
+ ==
+ bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ // smart_contracts/abstracted_account/contract.algo.ts:207
+ // assert(this.executions(Txn.lease).exists, ERR_EXECUTION_KEY_NOT_FOUND);
+ txn Lease
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:207
+ // assert(this.executions(Txn.lease).exists, ERR_EXECUTION_KEY_NOT_FOUND);
+ box_len
+ bury 1
+ assert // Execution key not found
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ // smart_contracts/abstracted_account/contract.algo.ts:208
+ // assert(this.executions(Txn.lease).value.firstValid <= Global.round, ERR_EXECUTION_NOT_READY);
+ txn Lease
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:208
+ // assert(this.executions(Txn.lease).value.firstValid <= Global.round, ERR_EXECUTION_NOT_READY);
+ intc_2 // 2
+ intc_3 // 8
+ box_extract
+ btoi
+ global Round
+ <=
+ assert // Execution key not ready
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ // smart_contracts/abstracted_account/contract.algo.ts:209
+ // assert(this.executions(Txn.lease).value.lastValid >= Global.round, ERR_EXECUTION_EXPIRED);
+ txn Lease
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:209
+ // assert(this.executions(Txn.lease).value.lastValid >= Global.round, ERR_EXECUTION_EXPIRED);
+ pushint 10 // 10
+ intc_3 // 8
+ box_extract
+ btoi
+ global Round
+ >=
+ assert // Execution key expired
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ // smart_contracts/abstracted_account/contract.algo.ts:211
+ // const groups = this.executions(Txn.lease).value.groups as Readonly[]>;
+ txn Lease
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ concat
+ frame_bury 4
+ // smart_contracts/abstracted_account/contract.algo.ts:213
+ // let foundGroup = false;
+ intc_0 // 0
+ frame_bury 15
+ // smart_contracts/abstracted_account/contract.algo.ts:214
+ // for (let i: uint64 = 0; i < groups.length; i += 1) {
+ intc_0 // 0
+ frame_bury 16
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@17:
+ // smart_contracts/abstracted_account/contract.algo.ts:214
+ // for (let i: uint64 = 0; i < groups.length; i += 1) {
+ frame_dig 4
+ pushint 18 // 18
+ intc_2 // 2
+ box_extract
+ btoi
+ frame_dig 16
+ >
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_while@21
+ // smart_contracts/abstracted_account/contract.algo.ts:215
+ // if (groups[i] === Global.groupId) {
+ frame_dig 16
+ pushint 32 // 32
+ *
+ pushint 20 // 20
+ +
+ frame_dig 4
+ swap
+ pushint 32 // 32
+ box_extract
+ global GroupID
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@20
+ // smart_contracts/abstracted_account/contract.algo.ts:216
+ // foundGroup = true;
+ intc_1 // 1
+ frame_bury 15
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@20:
+ // smart_contracts/abstracted_account/contract.algo.ts:214
+ // for (let i: uint64 = 0; i < groups.length; i += 1) {
+ frame_dig 16
+ intc_1 // 1
+ +
+ frame_bury 16
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@17
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_while@21:
+ // smart_contracts/abstracted_account/contract.algo.ts:220
+ // assert(foundGroup, ERR_GROUP_NOT_FOUND);
+ frame_dig 15
+ assert // Group not found
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ bytec 8 // "x"
+ // smart_contracts/abstracted_account/contract.algo.ts:221
+ // this.executions(Txn.lease).delete();
+ txn Lease
+ // smart_contracts/abstracted_account/contract.algo.ts:41
+ // executions = BoxMap, ExecutionInfo>({ keyPrefix: AbstractAccountBoxPrefixExecutions })
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:221
+ // this.executions(Txn.lease).delete();
+ box_del
+ pop
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@22:
+ // smart_contracts/abstracted_account/contract.algo.ts:224
+ // const initialCheck = this.pluginCheck(key);
+ frame_dig 6
+ callsub pluginCheck
+ frame_bury 6
+ // smart_contracts/abstracted_account/contract.algo.ts:226
+ // assert(initialCheck.exists, ERR_PLUGIN_DOES_NOT_EXIST);
+ dup
+ intc_0 // 0
+ getbit
+ assert // plugin does not exist
+ // smart_contracts/abstracted_account/contract.algo.ts:227
+ // assert(!initialCheck.expired, ERR_PLUGIN_EXPIRED);
+ dup
+ intc_1 // 1
+ getbit
+ !
+ assert // plugin expired
+ // smart_contracts/abstracted_account/contract.algo.ts:228
+ // assert(!initialCheck.onCooldown, ERR_PLUGIN_ON_COOLDOWN);
+ intc_2 // 2
+ getbit
+ !
+ assert // plugin on cooldown
+ // smart_contracts/abstracted_account/contract.algo.ts:230-232
+ // const epochRef = useRounds
+ // ? Global.round
+ // : Global.latestTimestamp;
+ frame_dig 28
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@24
+ // smart_contracts/abstracted_account/contract.algo.ts:231
+ // ? Global.round
+ global Round
+ frame_bury 14
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@25:
+ // smart_contracts/abstracted_account/contract.algo.ts:234
+ // let rekeysBack = false;
+ intc_0 // 0
+ frame_bury 25
+ // smart_contracts/abstracted_account/contract.algo.ts:235
+ // let methodIndex: uint64 = 0;
+ intc_0 // 0
+ frame_bury 22
+ // smart_contracts/abstracted_account/contract.algo.ts:237
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ txn GroupIndex
+ intc_1 // 1
+ +
+ frame_bury 18
+ frame_dig 6
+ frame_bury 7
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@26:
+ // smart_contracts/abstracted_account/contract.algo.ts:237
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ frame_dig 18
+ global GroupSize
+ <
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@53
+ // smart_contracts/abstracted_account/contract.algo.ts:240
+ // if (this.txnRekeysBack(txn)) {
+ frame_dig 18
+ callsub txnRekeysBack
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@29
+ // smart_contracts/abstracted_account/contract.algo.ts:241
+ // rekeysBack = true;
+ intc_1 // 1
+ frame_bury 25
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@53:
+ // smart_contracts/abstracted_account/contract.algo.ts:271
+ // assert(rekeysBack, ERR_MISSING_REKEY_BACK);
+ frame_dig 25
+ assert // missing rekey back
+ // smart_contracts/abstracted_account/contract.algo.ts:593-600
+ // itxn
+ // .payment({
+ // sender: this.spendingAddress.value,
+ // receiver: this.spendingAddress.value,
+ // rekeyTo: pluginApp.address,
+ // note: 'rekeying to plugin app'
+ // })
+ // .submit();
+ itxn_begin
+ // smart_contracts/abstracted_account/contract.algo.ts:595
+ // sender: this.spendingAddress.value,
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:595
+ // sender: this.spendingAddress.value,
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:597
+ // rekeyTo: pluginApp.address,
+ frame_dig -5
+ app_params_get AppAddress
+ assert // application exists
+ // smart_contracts/abstracted_account/contract.algo.ts:598
+ // note: 'rekeying to plugin app'
+ pushbytes "rekeying to plugin app"
+ itxn_field Note
+ itxn_field RekeyTo
+ dup
+ itxn_field Receiver
+ itxn_field Sender
+ // smart_contracts/abstracted_account/contract.algo.ts:593-599
+ // itxn
+ // .payment({
+ // sender: this.spendingAddress.value,
+ // receiver: this.spendingAddress.value,
+ // rekeyTo: pluginApp.address,
+ // note: 'rekeying to plugin app'
+ // })
+ intc_1 // 1
+ itxn_field TypeEnum
+ intc_0 // 0
+ itxn_field Fee
+ // smart_contracts/abstracted_account/contract.algo.ts:593-600
+ // itxn
+ // .payment({
+ // sender: this.spendingAddress.value,
+ // receiver: this.spendingAddress.value,
+ // rekeyTo: pluginApp.address,
+ // note: 'rekeying to plugin app'
+ // })
+ // .submit();
+ itxn_submit
+ // smart_contracts/abstracted_account/contract.algo.ts:30
+ // rekeyIndex = GlobalState({ initialValue: 0, key: AbstractAccountGlobalStateKeysRekeyIndex })
+ bytec 17 // "rekey_index"
+ // smart_contracts/abstracted_account/contract.algo.ts:603
+ // this.rekeyIndex.value = Txn.groupIndex
+ txn GroupIndex
+ app_global_put
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ frame_dig 7
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:605
+ // if (this.plugins(key).value.delegationType === DelegationTypeSelf) {
+ intc_3 // 8
+ intc_1 // 1
+ box_extract
+ bytec 15 // 0x01
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@13
+ // smart_contracts/abstracted_account/contract.algo.ts:20
+ // lastUserInteraction = GlobalState({ key: AbstractAccountGlobalStateKeysLastUserInteraction })
+ bytec_3 // "last_user_interaction"
+ // smart_contracts/abstracted_account/contract.algo.ts:44
+ // this.lastUserInteraction.value = Global.latestTimestamp
+ global LatestTimestamp
+ app_global_put
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@13:
+ frame_dig -2
+ frame_dig -1
+ frame_bury 1
+ frame_bury 0
+ retsub
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@29:
+ // smart_contracts/abstracted_account/contract.algo.ts:245
+ // if (txn.type !== TransactionType.ApplicationCall) {
+ frame_dig 18
+ gtxns TypeEnum
+ pushint 6 // 6
+ !=
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@31
+ frame_dig 7
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@51:
+ // smart_contracts/abstracted_account/contract.algo.ts:237
+ // for (let i: uint64 = (Txn.groupIndex + 1); i < Global.groupSize; i += 1) {
+ frame_dig 18
+ intc_1 // 1
+ +
+ frame_bury 18
+ frame_bury 7
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_while_top@26
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@31:
+ // smart_contracts/abstracted_account/contract.algo.ts:249
+ // assert(txn.appId.id === key.plugin, ERR_CANNOT_CALL_OTHER_APPS_DURING_REKEY);
+ frame_dig 18
+ dup
+ gtxns ApplicationID
+ frame_dig 6
+ dup
+ cover 3
+ intc_0 // 0
+ extract_uint64
+ ==
+ assert // cannot call other apps during rekey
+ // smart_contracts/abstracted_account/contract.algo.ts:250
+ // assert(txn.onCompletion === OnCompleteAction.NoOp, ERR_INVALID_ONCOMPLETE);
+ dup
+ gtxns OnCompletion
+ !
+ assert // invalid oncomplete must be no op
+ // smart_contracts/abstracted_account/contract.algo.ts:253
+ // assert(txn.numAppArgs > 1, ERR_INVALID_SENDER_ARG);
+ dup
+ gtxns NumAppArgs
+ intc_1 // 1
+ >
+ assert // invalid sender must be this app id
+ // smart_contracts/abstracted_account/contract.algo.ts:254
+ // assert(Application(btoi(txn.appArgs(1))) === Global.currentApplicationId, ERR_INVALID_SENDER_VALUE);
+ intc_1 // 1
+ gtxnsas ApplicationArgs
+ btoi
+ global CurrentApplicationID
+ ==
+ assert // invalid sender app id
+ // smart_contracts/abstracted_account/contract.algo.ts:256
+ // const { expired, onCooldown, hasMethodRestrictions } = this.pluginCheck(key);
+ callsub pluginCheck
+ frame_bury 6
+ dup
+ intc_1 // 1
+ getbit
+ dig 1
+ intc_2 // 2
+ getbit
+ uncover 2
+ pushint 3 // 3
+ getbit
+ // smart_contracts/abstracted_account/contract.algo.ts:258
+ // assert(!expired, ERR_PLUGIN_EXPIRED);
+ uncover 2
+ !
+ assert // plugin expired
+ // smart_contracts/abstracted_account/contract.algo.ts:259
+ // assert(!onCooldown, ERR_PLUGIN_ON_COOLDOWN);
+ swap
+ !
+ assert // plugin on cooldown
+ // smart_contracts/abstracted_account/contract.algo.ts:261
+ // if (hasMethodRestrictions) {
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@50
+ // smart_contracts/abstracted_account/contract.algo.ts:262
+ // assert(methodIndex < methodOffsets.length, ERR_MALFORMED_OFFSETS);
+ frame_dig -2
+ intc_0 // 0
+ extract_uint16
+ frame_dig 22
+ dup
+ uncover 2
+ <
+ assert // malformed method offsets
+ // smart_contracts/abstracted_account/contract.algo.ts:263
+ // const { methodAllowed, methodOnCooldown } = this.methodCheck(key, txn, methodOffsets[methodIndex]);
+ frame_dig -2
+ extract 2 0
+ swap
+ intc_3 // 8
+ *
+ extract_uint64
+ // smart_contracts/abstracted_account/contract.algo.ts:284
+ // assert(len(txn.appArgs(0)) === 4, ERR_INVALID_METHOD_SIGNATURE_LENGTH)
+ frame_dig 18
+ intc_0 // 0
+ gtxnsas ApplicationArgs
+ dup
+ frame_bury 9
+ len
+ pushint 4 // 4
+ ==
+ assert // invalid method signature length
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ frame_dig 6
+ concat
+ dup
+ frame_bury 2
+ // smart_contracts/abstracted_account/contract.algo.ts:287
+ // const { useRounds } = this.plugins(key).value
+ dup
+ pushint 27 // 27
+ intc_1 // 1
+ box_extract
+ intc_1 // 1
+ getbit
+ dup
+ cover 2
+ frame_bury 28
+ // smart_contracts/abstracted_account/contract.algo.ts:288
+ // const { selector, cooldown, lastCalled } = this.plugins(key).value.methods[offset]
+ uncover 2
+ pushint 20 // 20
+ *
+ dup
+ frame_bury 12
+ pushint 46 // 46
+ +
+ pushint 20 // 20
+ box_extract
+ dup
+ extract 0 4
+ frame_bury 8
+ dup
+ pushint 4 // 4
+ extract_uint64
+ frame_bury 13
+ pushint 12 // 12
+ extract_uint64
+ frame_bury 20
+ // smart_contracts/abstracted_account/contract.algo.ts:292
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@34
+ global Round
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@35:
+ // smart_contracts/abstracted_account/contract.algo.ts:293
+ // const methodOnCooldown = (epochRef - lastCalled) < cooldown
+ frame_dig 20
+ -
+ frame_dig 13
+ <
+ frame_bury 23
+ // smart_contracts/abstracted_account/contract.algo.ts:295
+ // if (selector === selectorArg && (!hasCooldown || !methodOnCooldown)) {
+ frame_dig 8
+ frame_dig 9
+ ==
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44
+ frame_dig 13
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_if_body@38
+ frame_dig 23
+ bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_if_body@38:
+ // smart_contracts/abstracted_account/contract.algo.ts:297
+ // if (hasCooldown) {
+ frame_dig 13
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@43
+ // smart_contracts/abstracted_account/contract.algo.ts:298
+ // const lastCalled = useRounds ? Global.round : Global.latestTimestamp;
+ frame_dig 28
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@41
+ global Round
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@42:
+ // smart_contracts/abstracted_account/contract.algo.ts:299
+ // this.plugins(key).value.methods[offset].lastCalled = lastCalled
+ itob
+ frame_dig 12
+ pushint 58 // 58
+ +
+ frame_dig 2
+ swap
+ uncover 2
+ box_replace
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@43:
+ // smart_contracts/abstracted_account/contract.algo.ts:302-305
+ // return {
+ // methodAllowed: true,
+ // methodOnCooldown
+ // }
+ pushbytes 0x80
+ intc_1 // 1
+ frame_dig 23
+ setbit
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.methodCheck@45:
+ // smart_contracts/abstracted_account/contract.algo.ts:263
+ // const { methodAllowed, methodOnCooldown } = this.methodCheck(key, txn, methodOffsets[methodIndex]);
+ dup
+ intc_0 // 0
+ getbit
+ swap
+ intc_1 // 1
+ getbit
+ frame_bury 23
+ // smart_contracts/abstracted_account/contract.algo.ts:264
+ // assert(methodAllowed && !methodOnCooldown, ERR_METHOD_ON_COOLDOWN);
+ bz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48
+ frame_dig 23
+ bnz smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48
+ intc_1 // 1
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_merge@49:
+ // smart_contracts/abstracted_account/contract.algo.ts:264
+ // assert(methodAllowed && !methodOnCooldown, ERR_METHOD_ON_COOLDOWN);
+ assert // method on cooldown
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@50:
+ // smart_contracts/abstracted_account/contract.algo.ts:33
+ // plugins = BoxMap({ keyPrefix: AbstractAccountBoxPrefixPlugins });
+ bytec 4 // "p"
+ frame_dig 6
+ dup
+ cover 2
+ concat
+ // smart_contracts/abstracted_account/contract.algo.ts:267
+ // this.plugins(key).value.lastCalled = epochRef
+ frame_dig 14
+ itob
+ pushint 28 // 28
+ swap
+ box_replace
+ // smart_contracts/abstracted_account/contract.algo.ts:268
+ // methodIndex += 1;
+ frame_dig 22
+ intc_1 // 1
+ +
+ frame_bury 22
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_block@51
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_false@48:
+ intc_0 // 0
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_bool_merge@49
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@41:
+ // smart_contracts/abstracted_account/contract.algo.ts:298
+ // const lastCalled = useRounds ? Global.round : Global.latestTimestamp;
+ global LatestTimestamp
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@42
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@44:
+ // smart_contracts/abstracted_account/contract.algo.ts:308-311
+ // return {
+ // methodAllowed: false,
+ // methodOnCooldown: true
+ // }
+ pushbytes 0x40
+ // smart_contracts/abstracted_account/contract.algo.ts:263
+ // const { methodAllowed, methodOnCooldown } = this.methodCheck(key, txn, methodOffsets[methodIndex]);
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_inlined_smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.methodCheck@45
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@34:
+ // smart_contracts/abstracted_account/contract.algo.ts:292
+ // const epochRef = useRounds ? Global.round : Global.latestTimestamp
+ global LatestTimestamp
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@35
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@24:
+ // smart_contracts/abstracted_account/contract.algo.ts:232
+ // : Global.latestTimestamp;
+ global LatestTimestamp
+ frame_bury 14
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@25
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_else_body@7:
+ // smart_contracts/abstracted_account/contract.algo.ts:588
+ // this.spendingAddress.value = this.controlledAddress.value
+ intc_0 // 0
+ // smart_contracts/abstracted_account/contract.algo.ts:18
+ // controlledAddress = GlobalState({ key: AbstractAccountGlobalStateKeysControlledAddress });
+ bytec_0 // "controlled_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:588
+ // this.spendingAddress.value = this.controlledAddress.value
+ app_global_get_ex
+ assert // check GlobalState exists
+ // smart_contracts/abstracted_account/contract.algo.ts:26
+ // spendingAddress = GlobalState({ key: AbstractAccountGlobalStateKeysSpendingAddress })
+ bytec 11 // "spending_address"
+ // smart_contracts/abstracted_account/contract.algo.ts:588
+ // this.spendingAddress.value = this.controlledAddress.value
+ swap
+ app_global_put
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_after_if_else@8
+
+smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_false@2:
+ // smart_contracts/abstracted_account/contract.algo.ts:575
+ // const caller = global ? Global.zeroAddress : Txn.sender
+ txn Sender
+ b smart_contracts/abstracted_account/contract.algo.ts::AbstractedAccount.arc58_rekeyToPlugin_ternary_merge@3
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc32.json b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc32.json
new file mode 100644
index 000000000..637ec9b39
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc32.json
@@ -0,0 +1,926 @@
+{
+ "hints": {
+ "createApplication(address,address,uint64)void": {
+ "call_config": {
+ "no_op": "CREATE"
+ }
+ },
+ "register(string)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_changeAdmin(address)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_pluginChangeAdmin(address)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getAdmin()address": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_verifyAuthAddress()void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_rekeyTo(address,bool)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_canCall(uint64,bool,address,string,byte[4])bool": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_removePlugin(uint64,address,string)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_removeNamedPlugin(string)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_newEscrow(string)uint64": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_toggleEscrowLock(string)(uint64,bool)": {
+ "call_config": {
+ "no_op": "CALL"
+ },
+ "structs": {
+ "output": {
+ "name": "EscrowInfo",
+ "elements": [
+ [
+ "id",
+ "uint64"
+ ],
+ [
+ "locked",
+ "bool"
+ ]
+ ]
+ }
+ }
+ },
+ "arc58_reclaim(string,(uint64,uint64,bool)[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_optinEscrow(string,uint64[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_removeAllowances(string,uint64[])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_removeExecutionKey(byte[32])void": {
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getEscrows(string[])(uint64,bool)[]": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ }
+ },
+ "mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)": {
+ "read_only": true,
+ "call_config": {
+ "no_op": "CALL"
+ },
+ "structs": {
+ "output": {
+ "name": "AbstractAccountBoxMBRData",
+ "elements": [
+ [
+ "plugins",
+ "uint64"
+ ],
+ [
+ "namedPlugins",
+ "uint64"
+ ],
+ [
+ "escrows",
+ "uint64"
+ ],
+ [
+ "allowances",
+ "uint64"
+ ],
+ [
+ "executions",
+ "uint64"
+ ],
+ [
+ "escrowExists",
+ "bool"
+ ],
+ [
+ "newEscrowMintCost",
+ "uint64"
+ ]
+ ]
+ }
+ }
+ }
+ },
+ "source": {
+ "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOCA0MDAgMjE3MDAgMjc3MDAKICAgIGJ5dGVjYmxvY2sgImNvbnRyb2xsZWRfYWRkcmVzcyIgIiIgImFkbWluIiAibGFzdF91c2VyX2ludGVyYWN0aW9uIiAicCIgImUiICJsYXN0X2NoYW5nZSIgMHgxNTFmN2M3NSAieCIgMHgwMCAweDAwMDAgInNwZW5kaW5nX2FkZHJlc3MiIDB4MDAyYSAweDAwMGEgImEiIDB4MDEgIm4iICJyZWtleV9pbmRleCIgImVzY3Jvd19mYWN0b3J5IiAiY3VycmVudF9wbHVnaW4iIDB4MDAwMiAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAweDZjYzNmNjA2IDB4MDAyYwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwCiAgICAvLyByZWtleUluZGV4ID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMCwga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNSZWtleUluZGV4IH0pCiAgICBieXRlYyAxNyAvLyAicmVrZXlfaW5kZXgiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzCiAgICAvLyBleHBvcnQgY2xhc3MgQWJzdHJhY3RlZEFjY291bnQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJ6IG1haW5fY3JlYXRlX05vT3BAMzQKICAgIHB1c2hieXRlc3MgMHhiZDYwOTllNSAweGQyNGI3NTU2IDB4MTQ3YjZjZDYgMHgxM2JjNDRlNCAvLyBtZXRob2QgInJlZ2lzdGVyKHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQiLCBtZXRob2QgImFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAiYXJjNThfZ2V0QWRtaW4oKWFkZHJlc3MiCiAgICBieXRlYyAyMiAvLyBtZXRob2QgImFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzKCl2b2lkIgogICAgcHVzaGJ5dGVzcyAweGM5NWE1ZDNkIDB4NDcyN2FmMjEgMHg1ODJmZjM4MiAweGRlZmQ1Y2QyIDB4YjNjODBkZjkgMHhlZWY0NDhmZCAweDM4ZjU5MWVhIDB4ZTM1MGI5ZDQgMHgwYThjYjJjMiAweDI1YjcxM2NhIDB4ZWJhZjE0YTAgMHgxZmRhM2I0ZiAweDlkM2Y4OTE4IDB4YmY0ZDdjNTcgMHhkNWRkMzgyYiAweDVjZWJlZDQzIDB4ZDU4Njg1YWYgMHg3YzM3MTU2ZSAweGFmZmFhNGU4IDB4YTI0MDNkZGYgMHgwMmZlNDUxNSAweDQxYmRjNjgwIDB4NTBmM2UzNWMgLy8gbWV0aG9kICJhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkIiwgbWV0aG9kICJhcmM1OF9jYW5DYWxsKHVpbnQ2NCxib29sLGFkZHJlc3Msc3RyaW5nLGJ5dGVbNF0pYm9vbCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQsYm9vbCxzdHJpbmcsdWludDY0W10sKHVpbnQ2NCx1aW50NjQpW10pdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyxib29sLHN0cmluZyx1aW50NjRbXSwodWludDY0LHVpbnQ2NClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4oc3RyaW5nKXZvaWQiLCBtZXRob2QgImFyYzU4X25ld0VzY3JvdyhzdHJpbmcpdWludDY0IiwgbWV0aG9kICJhcmM1OF90b2dnbGVFc2Nyb3dMb2NrKHN0cmluZykodWludDY0LGJvb2wpIiwgbWV0aG9kICJhcmM1OF9yZWNsYWltKHN0cmluZywodWludDY0LHVpbnQ2NCxib29sKVtdKXZvaWQiLCBtZXRob2QgImFyYzU4X29wdGluRXNjcm93KHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9wbHVnaW5PcHRpbkVzY3Jvdyh1aW50NjQsYWRkcmVzcyxzdHJpbmcsdWludDY0W10scGF5KXZvaWQiLCBtZXRob2QgImFyYzU4X2FkZEFsbG93YW5jZXMoc3RyaW5nLCh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9yZW1vdmVBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRFeGVjdXRpb25LZXkoYnl0ZVszMl0sYnl0ZVszMl1bXSx1aW50NjQsdWludDY0KXZvaWQiLCBtZXRob2QgImFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShieXRlWzMyXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9nZXRQbHVnaW5zKCh1aW50NjQsYWRkcmVzcyxzdHJpbmcpW10pKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LChieXRlWzRdLHVpbnQ2NCx1aW50NjQpW10sYm9vbCxib29sLGJvb2wsdWludDY0LHVpbnQ2NClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0TmFtZWRQbHVnaW5zKHN0cmluZ1tdKSh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQsdWludDY0KVtdLGJvb2wsYm9vbCxib29sLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgImFyYzU4X2dldEVzY3Jvd3Moc3RyaW5nW10pKHVpbnQ2NCxib29sKVtdIiwgbWV0aG9kICJhcmM1OF9nZXRBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSkodWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0RXhlY3V0aW9ucyhieXRlWzMyXVtdKShieXRlWzMyXVtdLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgIm1icihzdHJpbmcsdWludDY0LHN0cmluZyx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbCx1aW50NjQpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcmVnaXN0ZXIgYXJjNThfY2hhbmdlQWRtaW4gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gYXJjNThfZ2V0QWRtaW4gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MgYXJjNThfcmVrZXlUbyBhcmM1OF9jYW5DYWxsIGFyYzU4X3Jla2V5VG9QbHVnaW4gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luIGFyYzU4X2FkZFBsdWdpbiBhcmM1OF9yZW1vdmVQbHVnaW4gYXJjNThfYWRkTmFtZWRQbHVnaW4gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4gYXJjNThfbmV3RXNjcm93IGFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2sgYXJjNThfcmVjbGFpbSBhcmM1OF9vcHRpbkVzY3JvdyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdyBhcmM1OF9hZGRBbGxvd2FuY2VzIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMgYXJjNThfYWRkRXhlY3V0aW9uS2V5IGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleSBhcmM1OF9nZXRQbHVnaW5zIGFyYzU4X2dldE5hbWVkUGx1Z2lucyBhcmM1OF9nZXRFc2Nyb3dzIGFyYzU4X2dldEFsbG93YW5jZXMgYXJjNThfZ2V0RXhlY3V0aW9ucyBtYnIKICAgIGVycgoKbWFpbl9jcmVhdGVfTm9PcEAzNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gZXhwb3J0IGNsYXNzIEFic3RyYWN0ZWRBY2NvdW50IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHVzaGJ5dGVzIDB4ZTE4MzYyZTIgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihhZGRyZXNzLGFkZHJlc3MsdWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBjcmVhdGVBcHBsaWNhdGlvbgogICAgZXJyCgoKLy8gX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50KGFycmF5X2l0ZW1zX2NvdW50OiB1aW50NjQsIGFycmF5X2hlYWRfYW5kX3RhaWw6IGJ5dGVzLCBuZXdfaXRlbXNfY291bnQ6IHVpbnQ2NCwgbmV3X2hlYWRfYW5kX3RhaWw6IGJ5dGVzKSAtPiBieXRlczoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50OgogICAgcHJvdG8gNCAxCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGZyYW1lX2RpZyAtNAogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGludGNfMCAvLyAwCgpkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfZm9yX2hlYWRlckAxOgogICAgZnJhbWVfZGlnIDQKICAgIGZyYW1lX2RpZyAzCiAgICA8CiAgICBieiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfYWZ0ZXJfZm9yQDQKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIDQKICAgIGR1cAogICAgY292ZXIgMgogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAyCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIDEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSA0CiAgICBiIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDEKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JANDoKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBmcmFtZV9idXJ5IDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDQKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDU6CiAgICBmcmFtZV9kaWcgNAogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JAOAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgNAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDEKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBmcmFtZV9idXJ5IDQKICAgIGIgZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2Zvcl9oZWFkZXJANQoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2FmdGVyX2ZvckA4OgogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTIKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMAogICAgc3Vic3RyaW5nMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5jcmVhdGVBcHBsaWNhdGlvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmNyZWF0ZUFwcGxpY2F0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQwOQogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyCiAgICAvLyBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIHR4biBTZW5kZXIKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyLTQxMwogICAgLy8gVHhuLnNlbmRlciA9PT0gY29udHJvbGxlZEFkZHJlc3MubmF0aXZlCiAgICAvLyB8fCBUeG4uc2VuZGVyID09PSBhZG1pbi5uYXRpdmUsCiAgICBibnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF90cnVlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTMKICAgIC8vIHx8IFR4bi5zZW5kZXIgPT09IGFkbWluLm5hdGl2ZSwKICAgIHR4biBTZW5kZXIKICAgIGRpZyAyCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxMi00MTMKICAgIC8vIFR4bi5zZW5kZXIgPT09IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZQogICAgLy8gfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgYnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF9mYWxzZUA0CgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX3RydWVAMzoKICAgIGludGNfMSAvLyAxCgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDExLTQxNQogICAgLy8gYXNzZXJ0KAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIC8vICAgfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgLy8gICBFUlJfU0VOREVSX01VU1RfQkVfQURNSU5fT1JfQ09OVFJPTExFRF9BRERSRVNTCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIHNlbmRlciBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkQWRkcmVzcyBvciBhZG1pbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxNgogICAgLy8gYXNzZXJ0KGFkbWluICE9PSBjb250cm9sbGVkQWRkcmVzcyk7CiAgICBkaWcgMQogICAgZHVwCiAgICBkaWcgNAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAhPQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTgKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBhZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBieiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDcKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDIwCiAgICAvLyB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUgPSBlc2Nyb3dGYWN0b3J5OwogICAgZGlnIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQyMQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBHbG9iYWwuemVyb0FkZHJlc3M7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MDkKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDc6CiAgICBkaWcgMgogICAgYiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDgKCmNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucmVnaXN0ZXJbcm91dGluZ10oKSAtPiB2b2lkOgpyZWdpc3RlcjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzEKICAgIC8vIHJlZ2lzdGVyKGVzY3Jvdzogc3RyaW5nKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMgogICAgLy8gbGV0IGFwcDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzMKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBieXRlY18xIC8vICIiCiAgICAhPQogICAgYnogcmVnaXN0ZXJfYWZ0ZXJfaWZfZWxzZUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzQKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzNQogICAgLy8gYXBwID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBidXJ5IDEKCnJlZ2lzdGVyX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQzCiAgICAvLyBhbW91bnQ6IEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01icgogICAgcHVzaGludCAxMjEwMCAvLyAxMjEwMAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDEtNDQ0CiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICAvLyAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyB9KSwKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX25leHQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDUKICAgIC8vIGFwcAogICAgZGlnIDEKICAgIGl0b2IKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBwdXNoYnl0ZXMgMHg2MDdlNzA0NiAvLyBtZXRob2QgInJlZ2lzdGVyKHBheSx1aW50NjQpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMQogICAgLy8gcmVnaXN0ZXIoZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NoYW5nZUFkbWluW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfY2hhbmdlQWRtaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gb25seSBhZG1pbiBjYW4gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NTcKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzAKICAgIC8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKG5ld0FkbWluOiBBZGRyZXNzKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDcxCiAgICAvLyBjb25zdCBrZXkgPSBjbG9uZSh0aGlzLmN1cnJlbnRQbHVnaW4udmFsdWUpCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MQogICAgLy8gY29uc3Qga2V5ID0gY2xvbmUodGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzIKICAgIC8vIGNvbnN0IHsgcGx1Z2luLCBlc2Nyb3cgfSA9IGtleQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDQwIC8vIDQwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGxlbgogICAgZGlnIDMKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc0CiAgICAvLyBhc3NlcnQoZXNjcm93ID09PSAnJywgRVJSX0FETUlOX1BMVUdJTlNfQ0FOTk9UX1VTRV9FU0NST1dTKTsKICAgIGJ5dGVjXzEgLy8gIiIKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gcGx1Z2lucyBjYW5ub3QgdXNlIGVzY3Jvd3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzUKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsIEVSUl9TRU5ERVJfTVVTVF9CRV9BRE1JTl9QTFVHSU4pOwogICAgdHhuIFNlbmRlcgogICAgZGlnIDEKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gc2VuZGVyIG11c3QgYmUgYWRtaW4gcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc3CiAgICAvLyB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzcKICAgIC8vIHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcywKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIHN3YXAKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc2LTQ3OQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICAvLyAgICdUaGlzIHBsdWdpbiBpcyBub3QgaW4gY29udHJvbCBvZiB0aGUgYWNjb3VudCcKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgyCiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMgJiYgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuYWRtaW4sCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgZHVwCiAgICBwdXNoaW50IDI3IC8vIDI3CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgaW50Y18xIC8vIDEKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODEtNDg0CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cyAmJiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5hZG1pbiwKICAgIC8vICAgJ1RoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcycKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gZG9lcyBub3QgaGF2ZSBhZG1pbiBwcml2aWxlZ2VzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODYKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBkaWcgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODcKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbl9hZnRlcl9pZl9lbHNlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MAogICAgLy8gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4obmV3QWRtaW46IEFkZHJlc3MpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0QWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDk3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3M6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA2CiAgICAvLyBhc3NlcnQodGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IHRoaXMuZ2V0QXV0aEFkZHJlc3MoKSk7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBzcGVuZGluZ0FkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzU3BlbmRpbmdBZGRyZXNzIH0pCiAgICBieXRlYyAxMSAvLyAic3BlbmRpbmdfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDYKICAgIC8vIGFzc2VydCh0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZS5hdXRoQWRkcmVzcyA9PT0gdGhpcy5nZXRBdXRoQWRkcmVzcygpKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIHN3YXAKICAgIGNvdmVyIDIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNgogICAgLy8gYXNzZXJ0KHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSB0aGlzLmdldEF1dGhBZGRyZXNzKCkpOwogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA3CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwOAogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0geyBwbHVnaW46IDAsIGNhbGxlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsIGVzY3JvdzogJycgfQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGludGNfMCAvLyAwCiAgICBpdG9iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwMmEwMDAwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOAogICAgLy8gY3VycmVudFBsdWdpbiA9IEdsb2JhbFN0YXRlPFBsdWdpbktleT4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0N1cnJlbnRQbHVnaW4gfSkKICAgIGJ5dGVjIDE5IC8vICJjdXJyZW50X3BsdWdpbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDgKICAgIC8vIHRoaXMuY3VycmVudFBsdWdpbi52YWx1ZSA9IHsgcGx1Z2luOiAwLCBjYWxsZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLCBlc2Nyb3c6ICcnIH0KICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDkKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IDAKICAgIGludGNfMCAvLyAwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNQogICAgLy8gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF92ZXJpZnlBdXRoQWRkcmVzc190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBiIGFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3Jla2V5VG86CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTE5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMwogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyNgogICAgLy8gbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50IgogICAgaXR4bl9maWVsZCBOb3RlCiAgICBkaWcgMgogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIxLTUyNwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICByZWtleVRvOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICBub3RlOiAncmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50JwogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MzAKICAgIC8vIGlmIChmbGFzaCkgdGhpcy5hc3NlcnRSZWtleXNCYWNrKCk7CiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMgoKYXJjNThfcmVrZXlUb193aGlsZV90b3BANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBkaWcgMQogICAgZ2xvYmFsIEdyb3VwU2l6ZQogICAgPAogICAgYnogYXJjNThfcmVrZXlUb19ibG9ja0AxMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBkaWcgMQogICAgY2FsbHN1YiB0eG5SZWtleXNCYWNrCiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NQogICAgLy8gcmVrZXlzQmFjayA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxCgphcmM1OF9yZWtleVRvX2Jsb2NrQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3MAogICAgLy8gYXNzZXJ0KHJla2V5c0JhY2ssIEVSUl9NSVNTSU5HX1JFS0VZX0JBQ0spOwogICAgZHVwCiAgICBhc3NlcnQgLy8gbWlzc2luZyByZWtleSBiYWNrCgphcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3Jla2V5VG9fYWZ0ZXJfaWZfZWxzZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAyCiAgICBiIGFyYzU4X3Jla2V5VG9fd2hpbGVfdG9wQDYKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NhbkNhbGxbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9jYW5DYWxsOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU0NAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCA0IC8vIDQKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzRdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTUyCiAgICAvLyBpZiAoZ2xvYmFsKSB7CiAgICBieiBhcmM1OF9jYW5DYWxsX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1MwogICAgLy8gdGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIEdsb2JhbC56ZXJvQWRkcmVzcywgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBjYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCiAgICBwb3AKCmFyYzU4X2NhbkNhbGxfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1NQogICAgLy8gcmV0dXJuIHRoaXMucGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luLCBhZGRyZXNzLm5hdGl2ZSwgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBkaWcgMwogICAgZGlnIDMKICAgIGNhbGxzdWIgcGx1Z2luQ2FsbEFsbG93ZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NDQKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZWtleVRvUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU2Ny01NzMKICAgIC8vIGFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXQogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0KVtdKQogICAgY2FsbHN1YiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW4KICAgIHBvcG4gMgogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYxOS02MjQKICAgIC8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50NjQpW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUKICAgIC8vIG5hbWVkUGx1Z2lucyA9IEJveE1hcDxzdHJpbmcsIFBsdWdpbktleT4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeE5hbWVkUGx1Z2lucyB9KTsKICAgIGJ5dGVjIDE2IC8vICJuIgogICAgdW5jb3ZlciA1CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjYKICAgIC8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjUtNjMxCiAgICAvLyB0aGlzLmFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIC8vICAgZ2xvYmFsLAogICAgLy8gICBlc2Nyb3csCiAgICAvLyAgIG1ldGhvZE9mZnNldHMsCiAgICAvLyAgIGZ1bmRzUmVxdWVzdAogICAgLy8gKTsKICAgIGNvdmVyIDQKICAgIGNhbGxzdWIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luCiAgICBwb3BuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MTktNjI0CiAgICAvLyBhcmM1OF9yZWtleVRvTmFtZWRQbHVnaW4oCiAgICAvLyAgIG5hbWU6IHN0cmluZywKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZFBsdWdpbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZFBsdWdpbjoKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDMKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY0OC02NjAKICAgIC8vIGFyYzU4X2FkZFBsdWdpbigKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFkbWluOiBib29sZWFuLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZTogVWludDgsCiAgICAvLyAgIGxhc3RWYWxpZDogdWludDY0LAogICAgLy8gICBjb29sZG93bjogdWludDY0LAogICAgLy8gICBtZXRob2RzOiBNZXRob2RSZXN0cmljdGlvbltdLAogICAgLy8gICB1c2VSb3VuZHM6IGJvb2xlYW4sCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleTogYm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdFRvRXNjcm93OiBib29sZWFuCiAgICAvLyApOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cG4gMgogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDgKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50OFs0XSx1aW50NjQpW10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2NAogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgYnl0ZWMgMTUgLy8gMHgwMQogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjQtNjY1CiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjUKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDEwCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjY0LTY2NQogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjMtNjY2CiAgICAvLyAhKAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjItNjY4CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gICAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gICApLAogICAgLy8gICBFUlJfWkVST19BRERSRVNTX0RFTEVHQVRJT05fVFlQRQogICAgLy8gKQogICAgYXNzZXJ0IC8vIGRlbGVnYXRpb24gdHlwZSBtdXN0IG5vdCBiZSBzZWxmIGZvciBnbG9iYWwgcGx1Z2lucwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MS02NzIKICAgIC8vIHVzZUV4ZWN1dGlvbktleSAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMQogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMTAKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzEtNjcyCiAgICAvLyB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjcwLTY3MwogICAgLy8gISgKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjktNjc1CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9VU0lOR19FWEVDVVRJT05fS0VZX1JFUVVJUkVTX0dMT0JBTAogICAgLy8gKQogICAgYXNzZXJ0IC8vIHVzaW5nIGV4ZWN1dGlvbiBrZXkgcmVxdWlyZXMgZ2xvYmFsIHBsdWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3OAogICAgLy8gaWYgKGRlZmF1bHRUb0VzY3JvdykgewogICAgZHVwCiAgICBibnogYXJjNThfYWRkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyA5CiAgICBidXJ5IDE3CgphcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2ODMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDExCiAgICBpdG9iCiAgICBkaWcgMTEKICAgIGNvbmNhdAogICAgZGlnIDE3CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMTgKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEzCgphcmM1OF9hZGRQbHVnaW5fd2hpbGVfdG9wQDEyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyAxMgogICAgZGlnIDQKICAgIDwKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NwogICAgLy8gbWV0aG9kSW5mb3MucHVzaCh7IC4uLm1ldGhvZHNbaV0sIGxhc3RDYWxsZWQ6IDAgfSkKICAgIGRpZyA0CiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgc3dhcAogICAgZXh0cmFjdCA0IDgKICAgIGRpZyAxCiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2l6ZQogICAgY29uY2F0CiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgZGlnIDE2CiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEzCiAgICBiIGFyYzU4X2FkZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9mYWxzZUAxNgogICAgZ2xvYmFsIFJvdW5kCiAgICBidXJ5IDE0CgphcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9tZXJnZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTIKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkyCiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk2CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5NwogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICBkaWcgMTYKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDE5CiAgICBzd2FwCiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5My02OTgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKYXJjNThfYWRkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAyCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyA5CiAgICBjYWxsc3ViIG1heWJlTmV3RXNjcm93CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzA0LTcxNQogICAgLy8gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIGVzY3JvdzogZXNjcm93SUQsCiAgICAvLyAgIGFkbWluLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSwKICAgIC8vICAgbGFzdFZhbGlkLAogICAgLy8gICBjb29sZG93biwKICAgIC8vICAgbWV0aG9kczogY2xvbmUobWV0aG9kSW5mb3MpLAogICAgLy8gICB1c2VSb3VuZHMsCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleSwKICAgIC8vICAgbGFzdENhbGxlZDogMCwKICAgIC8vICAgc3RhcnQ6IGVwb2NoUmVmLAogICAgLy8gfQogICAgaXRvYgogICAgZGlnIDgKICAgIGNvbmNhdAogICAgZGlnIDcKICAgIGl0b2IKICAgIGNvbmNhdAogICAgZGlnIDYKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWMgMjMgLy8gMHgwMDJjCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGRpZyAxMQogICAgc2V0Yml0CiAgICBpbnRjXzEgLy8gMQogICAgZGlnIDUKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDIKICAgIGRpZyA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgZGlnIDE4CiAgICBjb25jYXQKICAgIGRpZyAxNAogICAgaXRvYgogICAgY29uY2F0CiAgICBkaWcgMTUKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZGlnIDE3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MDQtNzE1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYsCiAgICAvLyB9CiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjQ4LTY2MAogICAgLy8gYXJjNThfYWRkUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfYWRkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBidXJ5IDE0CiAgICBiIGFyYzU4X2FkZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDE3CgphcmM1OF9hZGRQbHVnaW5faWZfYm9keUAxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzkKICAgIC8vIGFzc2VydChlc2Nyb3cgIT09ICcnLCBFUlJfRVNDUk9XX1JFUVVJUkVEX1RPX0JFX1NFVF9BU19ERUZBVUxUKQogICAgZGlnIDkKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjgwCiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxNwogICAgYiBhcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQ6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9tZXJnZUA1CgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZW1vdmVQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVQbHVnaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjcyOAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MjgKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMwCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXI6IGNhbGxlci5uYXRpdmUsIGVzY3JvdyB9CiAgICB1bmNvdmVyIDIKICAgIGl0b2IKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczMQogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMzCiAgICAvLyBjb25zdCBtZXRob2RzTGVuZ3RoOiB1aW50NjQgPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzLmxlbmd0aAogICAgZHVwCiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczNwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NDAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQwCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQxCiAgICAvLyBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICBkaWcgMgogICAgZGlnIDIKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzgtNzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZE5hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfYWRkTmFtZWRQbHVnaW46CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAzCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NjUtNzc4CiAgICAvLyBhcmM1OF9hZGROYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIGNvdmVyIDIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDgKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDQKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ4WzRdLHVpbnQ2NClbXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgY292ZXIgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NzkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzc5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODAKICAgIC8vIGFzc2VydCghdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZXhpc3RzKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgzCiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzg0CiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAxMQogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4Mi03ODUKICAgIC8vICEoCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4MS03ODcKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9aRVJPX0FERFJFU1NfREVMRUdBVElPTl9UWVBFCiAgICAvLyApCiAgICBhc3NlcnQgLy8gZGVsZWdhdGlvbiB0eXBlIG11c3Qgbm90IGJlIHNlbGYgZm9yIGdsb2JhbCBwbHVnaW5zCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3OTEKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDExCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODktNzkyCiAgICAvLyAhKAogICAgLy8gICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4OC03OTQKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgICBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIC8vICAgKSwKICAgIC8vICAgRVJSX1VTSU5HX0VYRUNVVElPTl9LRVlfUkVRVUlSRVNfR0xPQkFMCiAgICAvLyApCiAgICBhc3NlcnQgLy8gdXNpbmcgZXhlY3V0aW9uIGtleSByZXF1aXJlcyBnbG9iYWwgcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk3CiAgICAvLyBpZiAoZGVmYXVsdFRvRXNjcm93KSB7CiAgICBkaWcgMQogICAgYm56IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyAxMAogICAgYnVyeSAxOQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDIKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDEyCiAgICBpdG9iCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgZGlnIDE5CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDE5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODAzCiAgICAvLyB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZSA9IGNsb25lKGtleSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMjAKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDE1CgphcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODA2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDE0CiAgICBkaWcgNQogICAgPAogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfd2hpbGVAMTQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDcKICAgIC8vIG1ldGhvZEluZm9zLnB1c2goeyAuLi5tZXRob2RzW2ldLCBsYXN0Q2FsbGVkOiAwIH0pCiAgICBkaWcgNQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyAxNQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDQKICAgIHN3YXAKICAgIGV4dHJhY3QgNCA4CiAgICBkaWcgMQogICAgbGVuCiAgICBwdXNoaW50IDQgLy8gNAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHNpemUKICAgIGNvbmNhdAogICAgZGlnIDIxCiAgICBjb25jYXQKICAgIGRpZyAxOAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMTgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBtZXRob2RzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxNQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX3doaWxlQDE0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMAogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTAKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTcKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODEzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTMKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODE0CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIGRpZyAxOAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMjEKICAgIHN3YXAKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4CiAgICAvLyByZXR1cm4gTWluTmFtZWRQbHVnaW5NQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhuYW1lKS5sZW5ndGgpOwogICAgZGlnIDE2CiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgICsKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTYKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTEtODE3CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5wbHVnaW5zTWJyKGVzY3Jvd0tleSwgbWV0aG9kSW5mb3MubGVuZ3RoKSArIHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODIwCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyAxMAogICAgY2FsbHN1YiBtYXliZU5ld0VzY3JvdwogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZGlnIDMKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTkKICAgIGdsb2JhbCBSb3VuZAoKYXJjNThfYWRkTmFtZWRQbHVnaW5fdGVybmFyeV9tZXJnZUAyMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MjQtODM1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYKICAgIC8vIH0KICAgIGRpZyAxNgogICAgaXRvYgogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIGRpZyA5CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyA4CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDIzIC8vIDB4MDAyYwogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgMTMKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIGRpZyA3CiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAyCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyAyMQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyAxNwogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyNC04MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewogICAgLy8gICBlc2Nyb3c6IGVzY3Jvd0lELAogICAgLy8gICBhZG1pbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGUsCiAgICAvLyAgIGxhc3RWYWxpZCwKICAgIC8vICAgY29vbGRvd24sCiAgICAvLyAgIG1ldGhvZHM6IGNsb25lKG1ldGhvZEluZm9zKSwKICAgIC8vICAgdXNlUm91bmRzLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXksCiAgICAvLyAgIGxhc3RDYWxsZWQ6IDAsCiAgICAvLyAgIHN0YXJ0OiBlcG9jaFJlZgogICAgLy8gfQogICAgZHVwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIHN3YXAKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc2NS03NzgKICAgIC8vIGFyYzU4X2FkZE5hbWVkUGx1Z2luKAogICAgLy8gICBuYW1lOiBzdHJpbmcsCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBjYWxsZXI6IEFkZHJlc3MsCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBhZG1pbjogYm9vbGVhbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGU6IFVpbnQ4LAogICAgLy8gICBsYXN0VmFsaWQ6IHVpbnQ2NCwKICAgIC8vICAgY29vbGRvd246IHVpbnQ2NCwKICAgIC8vICAgbWV0aG9kczogTWV0aG9kUmVzdHJpY3Rpb25bXSwKICAgIC8vICAgdXNlUm91bmRzOiBib29sZWFuLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXk6IGJvb2xlYW4sCiAgICAvLyAgIGRlZmF1bHRUb0VzY3JvdzogYm9vbGVhbgogICAgLy8gKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X2ZhbHNlQDE5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDIwCgphcmM1OF9hZGROYW1lZFBsdWdpbl9pZl9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc5OAogICAgLy8gYXNzZXJ0KGVzY3JvdyAhPT0gJycsIEVSUl9FU0NST1dfUkVRVUlSRURfVE9fQkVfU0VUX0FTX0RFRkFVTFQpCiAgICBkaWcgMTAKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk5CiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxOQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDExCgphcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVOYW1lZFBsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDYKICAgIC8vIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKG5hbWU6IHN0cmluZyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDcKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQ3CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OAogICAgLy8gYXNzZXJ0KHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OQogICAgLy8gY29uc3QgYXBwID0gY2xvbmUodGhpcy5uYW1lZFBsdWdpbnMobmFtZSkudmFsdWUpCiAgICBkdXAKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTAKICAgIC8vIGFzc2VydCh0aGlzLnBsdWdpbnMoYXBwKS5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBwbHVnaW4gZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTIKICAgIC8vIGNvbnN0IG1ldGhvZHNMZW5ndGg6IHVpbnQ2NCA9IHRoaXMucGx1Z2lucyhhcHApLnZhbHVlLm1ldGhvZHMubGVuZ3RoCiAgICBkdXAKICAgIHB1c2hpbnQgNDQgLy8gNDQKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NAogICAgLy8gdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZGVsZXRlKCk7CiAgICBzd2FwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTUKICAgIC8vIHRoaXMucGx1Z2lucyhhcHApLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODU3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MAogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NjAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIGRpZyAzCiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MQogICAgLy8gYW1vdW50OiB0aGlzLm5hbWVkUGx1Z2luc01icihuYW1lKSArIHRoaXMucGx1Z2luc01icihhcHAuZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgZGlnIDMKICAgIGR1cAogICAgcHVzaGludCA0MCAvLyA0MAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMwogICAgY2FsbHN1YiBwbHVnaW5zTWJyCiAgICArCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1OC04NjIKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkgKyB0aGlzLnBsdWdpbnNNYnIoYXBwLmVzY3JvdywgbWV0aG9kc0xlbmd0aCkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0NgogICAgLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9uZXdFc2Nyb3dbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9uZXdFc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc1CiAgICAvLyBhcmM1OF9uZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NwogICAgLy8gYXNzZXJ0KCF0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfQUxSRUFEWV9FWElTVFMpOwogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAhCiAgICBhc3NlcnQgLy8gZXNjcm93IGFscmVhZHkgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc4CiAgICAvLyBhc3NlcnQoZXNjcm93ICE9PSAnJywgRVJSX0VTQ1JPV19OQU1FX1JFUVVJUkVEKTsKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgIT0KICAgIGFzc2VydCAvLyBFc2Nyb3cgbmFtZSBpcyByZXF1aXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3OQogICAgLy8gcmV0dXJuIHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NQogICAgLy8gYXJjNThfbmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIGl0b2IKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2tbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF90b2dnbGVFc2Nyb3dMb2NrOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg4CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4OAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg5CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODkxCiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5sb2NrZWQgPSAhdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkOwogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4OTYKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZTsKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVjbGFpbVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3JlY2xhaW06CiAgICBpbnRjXzAgLy8gMAogICAgZHVwCiAgICBieXRlY18xIC8vICIiCiAgICBkdXBuIDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0LGJvb2wxKVtdKQogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBmb3JiaWRkZW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA3CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA4CiAgICAvLyBjb25zdCBzZW5kZXIgPSBBcHBsaWNhdGlvbih0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZCkuYWRkcmVzcwogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTEwCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgcmVjbGFpbXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDUKICAgIDwKICAgIGJ6IGFyYzU4X3JlY2xhaW1fYWZ0ZXJfd2hpbGVAMTcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTEKICAgIC8vIGlmIChyZWNsYWltc1tpXS5hc3NldCA9PT0gMCkgewogICAgZGlnIDUKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgcHVzaGludCAxNyAvLyAxNwogICAgKgogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZHVwCiAgICBidXJ5IDEyCiAgICBibnogYXJjNThfcmVjbGFpbV9lbHNlX2JvZHlAMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTQKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE0CiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE1CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE1CiAgICAvLyBhbW91bnQ6IHJlY2xhaW1zW2ldLmFtb3VudAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTIKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSAxMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxOAogICAgLy8gaWYgKHJlY2xhaW1zW2ldLmNsb3NlT3V0KSB7CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGdldGJpdAogICAgYnogYXJjNThfcmVjbGFpbV9hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTkKICAgIC8vIHBtdC5zZXQoeyBjbG9zZVJlbWFpbmRlclRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE5CiAgICAvLyBwbXQuc2V0KHsgY2xvc2VSZW1haW5kZXJUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxMgogICAgYnVyeSAzCgphcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjIKICAgIC8vIHBtdC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGRpZyAxMAogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDgKICAgIGRpZyAyCiAgICBpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEA4OgogICAgZGlnIDgKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBkaWcgMTIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGRpZyAxCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxMi05MTYKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICAvLyAgIHNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50CiAgICAvLyB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyMgogICAgLy8gcG10LnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDIKCmFyYzU4X3JlY2xhaW1fZWxzZV9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE0CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTI3CiAgICAvLyBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNAogICAgLy8gY29uc3QgeGZlciA9IGl0eG4uYXNzZXRUcmFuc2Zlcih7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSA4CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMxCiAgICAvLyBpZiAocmVjbGFpbXNbaV0uY2xvc2VPdXQpIHsKICAgIHB1c2hpbnQgMTI4IC8vIDEyOAogICAgZ2V0Yml0CiAgICBieiBhcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VAMTIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzIKICAgIC8vIHhmZXIuc2V0KHsgYXNzZXRDbG9zZVRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMyCiAgICAvLyB4ZmVyLnNldCh7IGFzc2V0Q2xvc2VUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSA4CiAgICBidXJ5IDQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzUKICAgIC8vIHhmZXIuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBkaWcgNgogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDE0CiAgICBkaWcgMwogICAgaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEAxNDoKICAgIGRpZyA5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgZGlnIDcKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyAxMQogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjQtOTI5CiAgICAvLyBjb25zdCB4ZmVyID0gaXR4bi5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgc2VuZGVyLAogICAgLy8gICBhc3NldFJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgLy8gICB4ZmVyQXNzZXQ6IHJlY2xhaW1zW2ldLmFzc2V0CiAgICAvLyB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkzNQogICAgLy8geGZlci5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIGFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNgoKYXJjNThfcmVjbGFpbV9hZnRlcl93aGlsZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X29wdGluRXNjcm93W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfb3B0aW5Fc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ2CiAgICAvLyBhcmM1OF9vcHRpbkVzY3Jvdyhlc2Nyb3c6IHN0cmluZywgYXNzZXRzOiB1aW50NjRbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMwogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHVuY292ZXIgMgogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gZm9yYmlkZGVuCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ4CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKQogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDkKICAgIC8vIGNvbnN0IGVzY3Jvd0lEID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTAKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAzCiAgICBjb3ZlciA0CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUxCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU3CiAgICAvLyBhbW91bnQ6IEdsb2JhbC5hc3NldE9wdEluTWluQmFsYW5jZSAqIGFzc2V0cy5sZW5ndGgKICAgIGdsb2JhbCBBc3NldE9wdEluTWluQmFsYW5jZQogICAgdW5jb3ZlciAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTMtOTU4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X29wdGluRXNjcm93X3doaWxlX3RvcEAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBkaWcgMwogICAgPAogICAgYnogYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKHsgZXNjcm93LCBhc3NldDogYXNzZXRzW2ldIH0pLmV4aXN0cywKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgNgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBpdG9iCiAgICBieXRlYyAxMyAvLyAweDAwMGEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYzCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYyLTk2NQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgLy8gICBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2Ny05NzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTcxCiAgICAvLyBhc3NldEFtb3VudDogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBkaWcgMgogICAgZHVwCiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTY3LTk3MwogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldHNbaV0KICAgIC8vICAgfSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NjctOTc0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9vcHRpbkVzY3Jvd193aGlsZV90b3BAMwoKYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDYKICAgIC8vIGFyYzU4X29wdGluRXNjcm93KGVzY3Jvdzogc3RyaW5nLCBhc3NldHM6IHVpbnQ2NFtdKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3BsdWdpbk9wdGluRXNjcm93OgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5ODYtOTkyCiAgICAvLyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdygKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFzc2V0czogdWludDY0W10sCiAgICAvLyAgIG1iclBheW1lbnQ6IGd0eG4uUGF5bWVudFR4bgogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgY292ZXIgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgNQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgY292ZXIgNAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMSAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5OTMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93IH0KICAgIGRpZyAyCiAgICBpdG9iCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGR1cAogICAgY292ZXIgNAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk1CiAgICAvLyBhc3NlcnQodGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzLCBFUlJfUExVR0lOX0RPRVNfTk9UX0VYSVNUKQogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5NgogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk3CiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgcHVzaGludCA2NCAvLyA2NAogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gRXNjcm93IGlzIGxvY2tlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5OQogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMgogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICB0eG4gU2VuZGVyCiAgICBzd2FwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDItMTAwMwogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICBibnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF90cnVlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAzCiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICB0eG4gU2VuZGVyCiAgICBkaWcgNgogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDMKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgYm56IGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfdHJ1ZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwNAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgZGlnIDUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDQKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF9mYWxzZUA1CgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX3RydWVANDoKICAgIGludGNfMSAvLyAxCgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX21lcmdlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMS0xMDA2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgRVJSX0ZPUkJJRERFTgogICAgLy8gKQogICAgYXNzZXJ0IC8vIGZvcmJpZGRlbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDgKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBzd2FwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgMTAKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgIGRpZyAzCiAgICBkdXAKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMwogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEzCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMC0xMDE3CiAgICAvLyBhc3NlcnRNYXRjaCgKICAgIC8vICAgbWJyUGF5bWVudCwKICAgIC8vICAgewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9LAogICAgLy8gICBFUlJfSU5WQUxJRF9QQVlNRU5UCiAgICAvLyApCiAgICBzd2FwCiAgICBkaWcgMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgZ3R4bnMgQW1vdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxNAogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgIGRpZyA4CiAgICBkdXAKICAgIGNvdmVyIDQKICAgICoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGludmFsaWQgcGF5bWVudAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyMwogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgICoKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDcKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X3doaWxlX3RvcEA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA2CiAgICBkaWcgNAogICAgPAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVAMTEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgZGlnIDQKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyA0CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyOC0xMDMxCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMuYWxsb3dhbmNlcyh7IGVzY3JvdywgYXNzZXQ6IGFzc2V0c1tpXSB9KS5leGlzdHMsCiAgICAvLyAgIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMzcKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyA4CiAgICBkdXAKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDMzLTEwMzkKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDcKICAgIGIgYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfd2hpbGVfdG9wQDgKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2FmdGVyX3doaWxlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk4Ni05OTIKICAgIC8vIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93KAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYXNzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgbWJyUGF5bWVudDogZ3R4bi5QYXltZW50VHhuCiAgICAvLyApOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfZmFsc2VANToKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfbWVyZ2VANgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfYWRkQWxsb3dhbmNlc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEFsbG93YW5jZXM6CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiA0CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIHB1c2hpbnQgMzQgLy8gMzQKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sMSlbXSkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUzCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpOwogICAgYm94X2dldAogICAgcG9wCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1NQogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU1CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTkKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYKICAgIC8vIHJldHVybiBNaW5BbGxvd2FuY2VNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDYgLy8gMjc3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYwCiAgICAvLyBhbW91bnQ6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpICogYWxsb3dhbmNlcy5sZW5ndGgKICAgIGRpZyAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU2LTEwNjEKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFsbG93YW5jZXMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGJ1cnkgNQoKYXJjNThfYWRkQWxsb3dhbmNlc193aGlsZV90b3BANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDQKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDEwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NgogICAgLy8gY29uc3QgeyBhc3NldCwgdHlwZSwgYW1vdW50LCBtYXgsIGludGVydmFsLCB1c2VSb3VuZHMgfSA9IGFsbG93YW5jZXNbaV07CiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA1CiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICAqCiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDgKICAgIGRpZyAxCiAgICBleHRyYWN0IDggMQogICAgYnVyeSA4CiAgICBkaWcgMQogICAgZXh0cmFjdCA5IDgKICAgIGJ1cnkgMTIKICAgIGRpZyAxCiAgICBleHRyYWN0IDE3IDgKICAgIGJ1cnkgMTEKICAgIGRpZyAxCiAgICBleHRyYWN0IDI1IDgKICAgIGJ1cnkgMTAKICAgIHN3YXAKICAgIHB1c2hpbnQgMjY0IC8vIDI2NAogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0IH0KICAgIGRpZyA0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjgKICAgIC8vIGFzc2VydCghdGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0FMUkVBRFlfRVhJU1RTKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBhbHJlYWR5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4CiAgICBnbG9iYWwgUm91bmQKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNzEtMTA4MAogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIHR5cGUsCiAgICAvLyAgIHNwZW50OiAwLAogICAgLy8gICBhbW91bnQsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIG1heCwKICAgIC8vICAgaW50ZXJ2YWwsCiAgICAvLyAgIHN0YXJ0LAogICAgLy8gICB1c2VSb3VuZHMKICAgIC8vIH0KICAgIGRpZyA2CiAgICBkaWcgMTAKICAgIGNvbmNhdAogICAgZGlnIDExCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDczCiAgICAvLyBzcGVudDogMCwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA3MS0xMDgwCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgdHlwZSwKICAgIC8vICAgc3BlbnQ6IDAsCiAgICAvLyAgIGFtb3VudCwKICAgIC8vICAgbGFzdDogMCwKICAgIC8vICAgbWF4LAogICAgLy8gICBpbnRlcnZhbCwKICAgIC8vICAgc3RhcnQsCiAgICAvLyAgIHVzZVJvdW5kcwogICAgLy8gfQogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyA3CiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFsbG93YW5jZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA0CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA1CiAgICBiIGFyYzU4X2FkZEFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgYXJjNThfYWRkQWxsb3dhbmNlc190ZXJuYXJ5X21lcmdlQDkKCmFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3JlbW92ZUFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVBbGxvd2FuY2VzOgogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTQKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NQogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTYKICAgIC8vIGFzc2VydCghdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkLCBFUlJfRVNDUk9XX0xPQ0tFRCk7CiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIEVzY3JvdyBpcyBsb2NrZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk4CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTgKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfcmVtb3ZlQWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2CiAgICAvLyByZXR1cm4gTWluQWxsb3dhbmNlTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMoZXNjcm93KS5sZW5ndGgpOwogICAgZGlnIDMKICAgIGxlbgogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgaW50YyA2IC8vIDI3NzAwCiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMgogICAgLy8gYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIGRpZyAyCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTktMTEwMwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDMKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEwCiAgICAvLyBhc3NldDogYXNzZXRzW2ldCiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwOC0xMTExCiAgICAvLyBjb25zdCBrZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogYXNzZXRzW2ldCiAgICAvLyB9CiAgICBkaWcgNAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjIDEzIC8vIDB4MDAwYQogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5CiAgICAvLyBhbGxvd2FuY2VzID0gQm94TWFwPEFsbG93YW5jZUtleSwgQWxsb3dhbmNlSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEFsbG93YW5jZXMgfSkgLy8gMzhfNTAwCiAgICBieXRlYyAxNCAvLyAiYSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTIKICAgIC8vIGFzc2VydCh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMsIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTMKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLmRlbGV0ZSgpCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTA3CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA0CiAgICBiIGFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZEV4ZWN1dGlvbktleVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEV4ZWN1dGlvbktleToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIwCiAgICAvLyBhcmM1OF9hZGRFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPiwgZ3JvdXBzOiBieXRlczwzMj5bXSwgZmlyc3RWYWxpZDogdWludDY0LCBsYXN0VmFsaWQ6IHVpbnQ2NCk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAzMiAvLyAzMgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1aW50OFszMl1bXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSkKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMgogICAgLy8gaWYgKCF0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBibnogYXJjNThfYWRkRXhlY3V0aW9uS2V5X2Vsc2VfYm9keUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMy0xMTI3CiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlID0gewogICAgLy8gICBncm91cHM6IGNsb25lKGdyb3VwcyksCiAgICAvLyAgIGZpcnN0VmFsaWQsCiAgICAvLyAgIGxhc3RWYWxpZAogICAgLy8gfQogICAgZGlnIDMKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDAwMTIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICBzd2FwCiAgICBib3hfcHV0CgphcmM1OF9hZGRFeGVjdXRpb25LZXlfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMAogICAgLy8gYXJjNThfYWRkRXhlY3V0aW9uS2V5KGxlYXNlOiBieXRlczwzMj4sIGdyb3VwczogYnl0ZXM8MzI+W10sIGZpcnN0VmFsaWQ6IHVpbnQ2NCwgbGFzdFZhbGlkOiB1aW50NjQpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X2FkZEV4ZWN1dGlvbktleV9lbHNlX2JvZHlAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTI5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5maXJzdFZhbGlkID09PSBmaXJzdFZhbGlkLCBFUlJfRVhFQ1VUSU9OX0tFWV9VUERBVEVfTVVTVF9NQVRDSF9GSVJTVF9WQUxJRCkKICAgIGRpZyAyCiAgICBkdXAKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGRpZyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgdXBkYXRlIG11c3QgbWF0Y2ggZmlyc3QgdmFsaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTMwCiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPT09IGxhc3RWYWxpZCwgRVJSX0VYRUNVVElPTl9LRVlfVVBEQVRFX01VU1RfTUFUQ0hfTEFTVF9WQUxJRCkKICAgIGR1cAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICB1bmNvdmVyIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXhlY3V0aW9uIGtleSB1cGRhdGUgbXVzdCBtYXRjaCBsYXN0IHZhbGlkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEzMgogICAgLy8gdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMgPSBbLi4uY2xvbmUodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMpLCAuLi5jbG9uZShncm91cHMpXQogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBkaWcgMgogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciA0CiAgICBleHRyYWN0IDIgMAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICB1bmNvdmVyIDIKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDMKICAgIGV4dHJhY3QzCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIGIgYXJjNThfYWRkRXhlY3V0aW9uS2V5X2FmdGVyX2lmX2Vsc2VANAoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMzkKICAgIC8vIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShsZWFzZTogYnl0ZXM8MzI+KTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MAogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZXhpc3RzLCBFUlJfRVhFQ1VUSU9OX0tFWV9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MQogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUgfHwgdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPCBHbG9iYWwucm91bmQsIEVSUl9BRE1JTl9PTkxZKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfdHJ1ZUAzCiAgICBkdXAKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZ2xvYmFsIFJvdW5kCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF9mYWxzZUA0CgphcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF90cnVlQDM6CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNDMKICAgIC8vIHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZGVsZXRlKCkKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTM5CiAgICAvLyBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPik6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleV9ib29sX21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldFBsdWdpbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQ5CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUxCiAgICAvLyBsZXQgcGx1Z2luczogUGx1Z2luSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTIKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0UGx1Z2luc193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUyCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBidXJ5IDUKICAgIGRpZyAxCiAgICA+CiAgICBieiBhcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUzCiAgICAvLyBpZiAodGhpcy5wbHVnaW5zKGtleXNbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGJ1cnkgNAogICAgZGlnIDYKICAgIGRpZyAxCiAgICAtIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDMKICAgIGxlbgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDQKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgc3Vic3RyaW5nMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTMKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE1NAogICAgLy8gcGx1Z2lucy5wdXNoKHRoaXMucGx1Z2lucyhrZXlzW2ldKS52YWx1ZSkKICAgIGRpZyA0CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgYnl0ZWMgMjAgLy8gMHgwMDAyCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTUKICAgIC8vIGNvbnRpbnVlCiAgICBiIGFyYzU4X2dldFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTcKICAgIC8vIHBsdWdpbnMucHVzaChlbXB0eVBsdWdpbkluZm8oKSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAxCiAgICBieXRlYyAyMSAvLyAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgYiBhcmM1OF9nZXRQbHVnaW5zX3doaWxlX3RvcEAyCgphcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0OQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0TmFtZWRQbHVnaW5zW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjIKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjQKICAgIC8vIGxldCBwbHVnaW5zOiBQbHVnaW5JbmZvW10gPSBbXQogICAgYnl0ZWMgMTAgLy8gMHgwMDAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjUKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjYKICAgIC8vIGlmICh0aGlzLm5hbWVkUGx1Z2lucyhuYW1lc1tpXSkuZXhpc3RzKSB7CiAgICBkaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBhc3NlcnQgLy8gaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGV4dHJhY3QzCiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY2CiAgICAvLyBpZiAodGhpcy5uYW1lZFBsdWdpbnMobmFtZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NwogICAgLy8gY29uc3QgbmFtZUtleSA9IGNsb25lKHRoaXMubmFtZWRQbHVnaW5zKG5hbWVzW2ldKS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjgKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMobmFtZUtleSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY5CiAgICAvLyBwbHVnaW5zLnB1c2godGhpcy5wbHVnaW5zKG5hbWVLZXkpLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYmxvY2tAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MgogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MwogICAgLy8gY29udGludWUKICAgIGIgYXJjNThfZ2V0TmFtZWRQbHVnaW5zX2Jsb2NrQDgKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3NQogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldE5hbWVkUGx1Z2luc19ibG9ja0A4CgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTYyCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgZGlnIDIKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9nZXRFc2Nyb3dzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0RXNjcm93czoKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MgogICAgLy8gbGV0IHJlc3VsdDogRXNjcm93SW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTgzCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZXNjcm93cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXRFc2Nyb3dzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTg0CiAgICAvLyBpZiAodGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNAogICAgYXNzZXJ0IC8vIGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGRpZyAxCiAgICBzd2FwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwMgogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBleHRyYWN0MwogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODQKICAgIC8vIGlmICh0aGlzLmVzY3Jvd3MoZXNjcm93c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldEVzY3Jvd3NfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4NQogICAgLy8gcmVzdWx0LnB1c2godGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMgoKYXJjNThfZ2V0RXNjcm93c19ibG9ja0A2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4OAogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlFc2Nyb3dJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjIwLTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBpZDogMCwKICAgIC8vICAgbG9ja2VkOiBmYWxzZQogICAgLy8gfTsKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODgKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXNjcm93SW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEVzY3Jvd3NfYmxvY2tANgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBbGxvd2FuY2VzOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTkzCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwbiAyCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE5NQogICAgLy8gbGV0IHJlc3VsdDogQWxsb3dhbmNlSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRBbGxvd2FuY2VzX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfQogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyA1CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTgKICAgIC8vIGlmICh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYnogYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk5CiAgICAvLyByZXN1bHQucHVzaCh0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICBidXJ5IDIKCmFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0QWxsb3dhbmNlc193aGlsZV90b3BAMgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwMgogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlBbGxvd2FuY2VJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjI3LTM2CiAgICAvLyByZXR1cm4gewogICAgLy8gICB0eXBlOiBuZXcgVWludDgoMCksCiAgICAvLyAgIG1heDogMCwKICAgIC8vICAgYW1vdW50OiAwLAogICAgLy8gICBzcGVudDogMCwKICAgIC8vICAgaW50ZXJ2YWw6IDAsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIHN0YXJ0OiAwLAogICAgLy8gICB1c2VSb3VuZHM6IGZhbHNlCiAgICAvLyB9OwogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDIKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5QWxsb3dhbmNlSW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTMKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEV4ZWN1dGlvbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRFeGVjdXRpb25zOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjA3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDhbMzJdW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwOQogICAgLy8gbGV0IHJlc3VsdDogRXhlY3V0aW9uSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRFeGVjdXRpb25zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTEKICAgIC8vIGlmICh0aGlzLmV4ZWN1dGlvbnMobGVhc2VzW2ldKS5leGlzdHMpIHsKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMQogICAgLy8gaWYgKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXRFeGVjdXRpb25zX2FmdGVyX2lmX2Vsc2VANQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTIKICAgIC8vIHJlc3VsdC5wdXNoKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXRFeGVjdXRpb25zX2Jsb2NrQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlYXNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTUKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXhlY3V0aW9uSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIHB1c2hieXRlcyAweDAwMDIwMDEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfYmxvY2tANgoKYXJjNThfZ2V0RXhlY3V0aW9uc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDcKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm1icltyb3V0aW5nXSgpIC0+IHZvaWQ6Cm1icjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjIwCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MgogICAgLy8gcmV0dXJuIE1pbkVzY3Jvd3NNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgMwogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgZGlnIDEKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjMwCiAgICAvLyBwbHVnaW5zOiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RDb3VudCksCiAgICBkaWcgNQogICAgdW5jb3ZlciA1CiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIHVuY292ZXIgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDUgLy8gMjE3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NgogICAgLy8gcmV0dXJuIE1pbkFsbG93YW5jZU1CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGludGMgNiAvLyAyNzcwMAogICAgdW5jb3ZlciA0CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAKICAgIC8vIHJldHVybiBNaW5FeGVjdXRpb25zTUJSICsgKEJveENvc3RQZXJCeXRlICogKGdyb3VwcyAqIDMyKSk7CiAgICB1bmNvdmVyIDQKICAgIHB1c2hpbnQgMTI4MDAgLy8gMTI4MDAKICAgICoKICAgIHB1c2hpbnQgMjA1MDAgLy8gMjA1MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgdW5jb3ZlciA2CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjM1CiAgICAvLyBlc2Nyb3dFeGlzdHM6IHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGNvdmVyIDYKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzgKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIGdsb2JhbCBNaW5CYWxhbmNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIzNy0xMjM5CiAgICAvLyBOZXdDb3N0Rm9yQVJDNTggKwogICAgLy8gR2xvYmFsLm1pbkJhbGFuY2UgKwogICAgLy8gQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIHB1c2hpbnQgMTYyMTAwIC8vIDE2MjEwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzctMTI0MAogICAgLy8gTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIC8vIEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01iciArCiAgICAvLyBlc2Nyb3dzCiAgICBkaWcgNQogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjktMTI0MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgcGx1Z2luczogdGhpcy5wbHVnaW5zTWJyKGVzY3JvdywgbWV0aG9kQ291bnQpLAogICAgLy8gICBuYW1lZFBsdWdpbnM6IHRoaXMubmFtZWRQbHVnaW5zTWJyKHBsdWdpbiksCiAgICAvLyAgIGVzY3Jvd3MsCiAgICAvLyAgIGFsbG93YW5jZXM6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpLAogICAgLy8gICBleGVjdXRpb25zOiB0aGlzLmV4ZWN1dGlvbnNNYnIoZ3JvdXBzKSwKICAgIC8vICAgZXNjcm93RXhpc3RzOiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsCiAgICAvLyAgIG5ld0VzY3Jvd01pbnRDb3N0OiAoCiAgICAvLyAgICAgTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vICAgICBHbG9iYWwubWluQmFsYW5jZSArCiAgICAvLyAgICAgQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIC8vICAgICBlc2Nyb3dzCiAgICAvLyAgICkKICAgIC8vIH0KICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgdW5jb3ZlciA0CiAgICBpdG9iCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucGx1Z2luc01icihlc2Nyb3c6IGJ5dGVzLCBtZXRob2RDb3VudDogdWludDY0KSAtPiB1aW50NjQ6CnBsdWdpbnNNYnI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTEKICAgIC8vIHByaXZhdGUgcGx1Z2luc01icihlc2Nyb3c6IHN0cmluZywgbWV0aG9kQ291bnQ6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAyIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MwogICAgLy8gQm94Q29zdFBlckJ5dGUgKiAoKE1ldGhvZFJlc3RyaWN0aW9uQnl0ZUxlbmd0aCAqIG1ldGhvZENvdW50KSArIEJ5dGVzKGVzY3JvdykubGVuZ3RoKQogICAgcHVzaGludCAyMCAvLyAyMAogICAgZnJhbWVfZGlnIC0xCiAgICAqCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgKwogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyCiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgcHVzaGludCAzODkwMCAvLyAzODkwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyLTU0CiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgLy8gICBCb3hDb3N0UGVyQnl0ZSAqICgoTWV0aG9kUmVzdHJpY3Rpb25CeXRlTGVuZ3RoICogbWV0aG9kQ291bnQpICsgQnl0ZXMoZXNjcm93KS5sZW5ndGgpCiAgICAvLyApOwogICAgKwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tYXliZU5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm1heWJlTmV3RXNjcm93OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczCiAgICAvLyBwcml2YXRlIG1heWJlTmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIHByb3RvIDEgMQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NAogICAgLy8gaWYgKGVzY3JvdyA9PT0gJycpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAiIgogICAgPT0KICAgIGJ6IG1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc1CiAgICAvLyByZXR1cm4gMDsKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4LTgwCiAgICAvLyByZXR1cm4gdGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzCiAgICAvLyAgID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIC8vICAgOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgYnogbWF5YmVOZXdFc2Nyb3dfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkKICAgIC8vID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGZyYW1lX2RpZyAwCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CgptYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgtODAKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIC8vICAgPyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgLy8gICA6IHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X3Rlcm5hcnlfZmFsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MAogICAgLy8gOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgYiBtYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm5ld0VzY3JvdzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MwogICAgLy8gcHJpdmF0ZSBuZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgcHJvdG8gMSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODcKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYyCiAgICAvLyByZXR1cm4gTWluRXNjcm93c01CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgKwogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODUtOTAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmVzY3Jvd3NNYnIoZXNjcm93KQogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NC0xMDQKICAgIC8vIGNvbnN0IGlkID0gYWJpQ2FsbDx0eXBlb2YgRXNjcm93RmFjdG9yeS5wcm90b3R5cGUubmV3Pih7CiAgICAvLyAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgYXBwSWQ6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZSwKICAgIC8vICAgYXJnczogWwogICAgLy8gICAgIGl0eG4ucGF5bWVudCh7CiAgICAvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgICBhbW91bnQ6IE5ld0Nvc3RGb3JBUkM1OCArIEdsb2JhbC5taW5CYWxhbmNlLAogICAgLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICAvLyAgICAgfSksCiAgICAvLyAgIF0KICAgIC8vIH0pLnJldHVyblZhbHVlCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMAogICAgLy8gYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIHB1c2hpbnQgMTUwMDAwIC8vIDE1MDAwMAogICAgZ2xvYmFsIE1pbkJhbGFuY2UKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNAogICAgLy8gZXNjcm93RmFjdG9yeSA9IEdsb2JhbFN0YXRlPEFwcGxpY2F0aW9uPih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzRXNjcm93RmFjdG9yeSB9KQogICAgYnl0ZWMgMTggLy8gImVzY3Jvd19mYWN0b3J5IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTgtMTAyCiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogTmV3Q29zdEZvckFSQzU4ICsgR2xvYmFsLm1pbkJhbGFuY2UsCiAgICAvLyAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gfSksCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQtMTA0CiAgICAvLyBjb25zdCBpZCA9IGFiaUNhbGw8dHlwZW9mIEVzY3Jvd0ZhY3RvcnkucHJvdG90eXBlLm5ldz4oewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFwcElkOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUsCiAgICAvLyAgIGFyZ3M6IFsKICAgIC8vICAgICBpdHhuLnBheW1lbnQoewogICAgLy8gICAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgICAgYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gICAgIH0pLAogICAgLy8gICBdCiAgICAvLyB9KS5yZXR1cm5WYWx1ZQogICAgaXR4bl9uZXh0CiAgICBwdXNoYnl0ZXMgMHhkODVjZjE4NCAvLyBtZXRob2QgIm5ldyhwYXkpdWludDY0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBnaXR4biAxIExhc3RMb2cKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYKICAgIC8vIHRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlID0geyBpZCwgbG9ja2VkOiBmYWxzZSB9CiAgICBkdXAKICAgIGl0b2IKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2CiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZSA9IHsgaWQsIGxvY2tlZDogZmFsc2UgfQogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOAogICAgLy8gcmV0dXJuIGlkOwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW46IHVpbnQ2NCwgY2FsbGVyOiBieXRlcywgZXNjcm93OiBieXRlcywgbWV0aG9kOiBieXRlcykgLT4gdWludDY0OgpwbHVnaW5DYWxsQWxsb3dlZDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEKICAgIC8vIHByaXZhdGUgcGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWNjb3VudCwgZXNjcm93OiBzdHJpbmcsIG1ldGhvZDogYnl0ZXM8ND4pOiBib29sZWFuIHsKICAgIHByb3RvIDQgMQogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTQKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBieXRlYyAxMiAvLyAweDAwMmEKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNAogICAgLy8gaWYgKCF0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYm56IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNQogICAgLy8gcmV0dXJuIGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4CiAgICAvLyBjb25zdCB7IG1ldGhvZHMsIHVzZVJvdW5kcywgbGFzdENhbGxlZCwgY29vbGRvd24sIHVzZUV4ZWN1dGlvbktleSB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgYXMgUmVhZG9ubHk8UGx1Z2luSW5mbz4KICAgIGZyYW1lX2RpZyA2CiAgICBkdXAKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAwCiAgICBkdXAKICAgIHB1c2hpbnQgMjcgLy8gMjcKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDUKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHB1c2hpbnQgMjggLy8gMjgKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwCiAgICAvLyBpZiAodXNlRXhlY3V0aW9uS2V5KSB7CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjEKICAgIC8vIHJldHVybiBmYWxzZQogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI0CiAgICAvLyBsZXQgbWV0aG9kQWxsb3dlZCA9IG1ldGhvZHMubGVuZ3RoID4gMCA/IGZhbHNlIDogdHJ1ZTsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgICEKICAgIGZyYW1lX2J1cnkgNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDIKCnBsdWdpbkNhbGxBbGxvd2VkX3doaWxlX3RvcEA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAyCiAgICA+CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNgogICAgLy8gaWYgKG1ldGhvZHNbaV0uc2VsZWN0b3IgPT09IG1ldGhvZCkgewogICAgZnJhbWVfZGlnIDIKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICoKICAgIHB1c2hpbnQgNDYgLy8gNDYKICAgICsKICAgIGZyYW1lX2RpZyA2CiAgICBzd2FwCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZXh0cmFjdCAwIDQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNwogICAgLy8gbWV0aG9kQWxsb3dlZCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSA0CgpwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyA1CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X2ZhbHNlQDEyCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMQoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9tZXJnZUAxMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMQogICAgPj0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUtMTM2CiAgICAvLyBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAoZXBvY2hSZWYgLSBsYXN0Q2FsbGVkKSA+PSBjb29sZG93biAmJgogICAgYnogcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9mYWxzZUAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgMwogICAgLQogICAgZnJhbWVfZGlnIDAKICAgID49CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTM1LTEzNgogICAgLy8gbGFzdENhbGxlZCA+PSBlcG9jaFJlZiAmJgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2Jvb2xfZmFsc2VAMTYKICAgIGludGNfMSAvLyAxCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX21lcmdlQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNS0xMzcKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIC8vIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyBtZXRob2RBbGxvd2VkCiAgICBmcmFtZV9kaWcgNAogICAgJiYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzQtMTM4CiAgICAvLyByZXR1cm4gKAogICAgLy8gICBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAgIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyAgIG1ldGhvZEFsbG93ZWQKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX2ZhbHNlQDE2OgogICAgaW50Y18wIC8vIDAKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9tZXJnZUAxNwoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9mYWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMQogICAgYiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X21lcmdlQDEzCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfd2hpbGVfdG9wQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnR4blJla2V5c0JhY2sodHhuOiB1aW50NjQpIC0+IHVpbnQ2NDoKdHhuUmVrZXlzQmFjazoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDEKICAgIC8vIHByaXZhdGUgdHhuUmVrZXlzQmFjayh0eG46IGd0eG4uVHJhbnNhY3Rpb24pOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTQ0LTE0NQogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBieiB0eG5SZWtleXNCYWNrX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NQogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJla2V5VG8KICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NC0xNDUKICAgIC8vIHR4bi5zZW5kZXIgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgJiYKICAgIC8vIHR4bi5yZWtleVRvID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDcKICAgIC8vIHJldHVybiB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxCiAgICAvLyB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA2IC8vIDYKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1MgogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MgogICAgLy8gJiYgdHhuLmFwcElkID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTIKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgYnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTMKICAgIC8vICYmIHR4bi5udW1BcHBBcmdzID09PSAxCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTMKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIGJ6IHR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTU0CiAgICAvLyAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1NAogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICAvLyAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gJiYgdHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wCiAgICBibnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTUKICAgIC8vICYmIHR4bi5hcHBBcmdzKDApID09PSBtZXRob2RTZWxlY3RvcignYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQnKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjIDIyIC8vIG1ldGhvZCAiYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQiCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTUKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIC8vICYmIHR4bi5vbkNvbXBsZXRpb24gPT09IE9uQ29tcGxldGVBY3Rpb24uTm9PcAogICAgLy8gJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCnR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5OgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnBsdWdpbkNoZWNrKGtleTogYnl0ZXMpIC0+IGJ5dGVzLCBieXRlczoKcGx1Z2luQ2hlY2s6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTczCiAgICAvLyBwcml2YXRlIHBsdWdpbkNoZWNrKGtleTogUGx1Z2luS2V5KTogUGx1Z2luVmFsaWRhdGlvbiB7CiAgICBwcm90byAxIDIKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cG4gMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NQogICAgLy8gY29uc3QgZXhpc3RzID0gdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzOwogICAgYm94X2xlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NgogICAgLy8gaWYgKCFleGlzdHMpIHsKICAgIGJueiBwbHVnaW5DaGVja19hZnRlcl9pZl9lbHNlQDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNzctMTgyCiAgICAvLyByZXR1cm4gewogICAgLy8gICBleGlzdHM6IGZhbHNlLAogICAgLy8gICBleHBpcmVkOiB0cnVlLAogICAgLy8gICBvbkNvb2xkb3duOiB0cnVlLAogICAgLy8gICBoYXNNZXRob2RSZXN0cmljdGlvbnM6IGZhbHNlLAogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4NjAKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfYnVyeSAxCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKcGx1Z2luQ2hlY2tfYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NQogICAgLy8gY29uc3QgeyB1c2VSb3VuZHMsIGxhc3RWYWxpZCwgY29vbGRvd24sIGxhc3RDYWxsZWQsIG1ldGhvZHMgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlIGFzIFJlYWRvbmx5PFBsdWdpbkluZm8+CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBwdXNoaW50IDkgLy8gOQogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDIKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDAKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDI4IC8vIDI4CiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgYnogcGx1Z2luQ2hlY2tfdGVybmFyeV9mYWxzZUA0CiAgICBnbG9iYWwgUm91bmQKCnBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOTAKICAgIC8vIGV4cGlyZWQ6IGVwb2NoUmVmID4gbGFzdFZhbGlkLAogICAgZHVwCiAgICBmcmFtZV9kaWcgMgogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MQogICAgLy8gb25Db29sZG93bjogKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93biwKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAxCiAgICAtCiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MgogICAgLy8gaGFzTWV0aG9kUmVzdHJpY3Rpb25zOiBtZXRob2RzLmxlbmd0aCA+IDAsCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCA0NCAvLyA0NAogICAgaW50Y18yIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4OC0xOTMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGV4aXN0cywKICAgIC8vICAgZXhwaXJlZDogZXBvY2hSZWYgPiBsYXN0VmFsaWQsCiAgICAvLyAgIG9uQ29vbGRvd246IChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpIDwgY29vbGRvd24sCiAgICAvLyAgIGhhc01ldGhvZFJlc3RyaWN0aW9uczogbWV0aG9kcy5sZW5ndGggPiAwLAogICAgLy8gfQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIDQKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBpbnRjXzIgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzZXRiaXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9idXJ5IDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DaGVja190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTg2CiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbihwbHVnaW46IHVpbnQ2NCwgZ2xvYmFsOiB1aW50NjQsIGVzY3JvdzogYnl0ZXMsIG1ldGhvZE9mZnNldHM6IGJ5dGVzLCBmdW5kc1JlcXVlc3Q6IGJ5dGVzKSAtPiBieXRlcywgYnl0ZXM6CnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NjctNTczCiAgICAvLyBhcmM1OF9yZWtleVRvUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10KICAgIC8vICk6IHZvaWQgewogICAgcHJvdG8gNSAyCiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAxMAogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiAxOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgZnJhbWVfZGlnIC00CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTc2CiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OAogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OQogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0gY2xvbmUoa2V5KQogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODEKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4MwogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODUKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gc3BlbmRpbmdBcHAuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4NQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBzcGVuZGluZ0FwcC5hZGRyZXNzCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMxNgogICAgLy8gY29uc3QgZXNjcm93QWRkcmVzcyA9IEFwcGxpY2F0aW9uKGVzY3Jvd0lEKS5hZGRyZXNzOwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZnJhbWVfYnVyeSA1CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTYKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BANTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxNgogICAgPgogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyMgogICAgLy8gYXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjAtMzIzCiAgICAvLyBjb25zdCBhbGxvd2FuY2VLZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gfQogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAxCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzQ5CiAgICAvLyBhc3NlcnQodGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUwCiAgICAvLyBjb25zdCB7IHR5cGUsIHNwZW50LCBhbW91bnQsIGxhc3QsIG1heCwgaW50ZXJ2YWwsIHN0YXJ0LCB1c2VSb3VuZHMgfSA9IHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgZXh0cmFjdCAwIDEKICAgIGZyYW1lX2J1cnkgMTAKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjYKICAgIGR1cAogICAgcHVzaGludCA5IC8vIDkKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDExCiAgICBkdXAKICAgIHB1c2hpbnQgMzMgLy8gMzMKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDE5CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyMQogICAgZHVwCiAgICBwdXNoaW50IDI1IC8vIDI1CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxNwogICAgZHVwCiAgICBwdXNoaW50IDQxIC8vIDQxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyNwogICAgcHVzaGludCAzOTIgLy8gMzkyCiAgICBnZXRiaXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1MQogICAgLy8gY29uc3QgbmV3TGFzdCA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OQogICAgZ2xvYmFsIFJvdW5kCiAgICBmcmFtZV9idXJ5IDI0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTMKICAgIC8vIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVGbGF0KSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU0CiAgICAvLyBjb25zdCBsZWZ0b3ZlcjogdWludDY0ID0gYW1vdW50IC0gc3BlbnQ7CiAgICBmcmFtZV9kaWcgMTEKICAgIGZyYW1lX2RpZyAyNgogICAgLQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NQogICAgLy8gYXNzZXJ0KGxlZnRvdmVyID49IGZ1bmRSZXF1ZXN0LmFtb3VudCwgRVJSX0FMTE9XQU5DRV9FWENFRURFRCk7CiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18zIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICBkaWcgMQogICAgPj0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTYKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ICs9IGZ1bmRSZXF1ZXN0LmFtb3VudAogICAgZnJhbWVfZGlnIDMKICAgIGR1cAogICAgY292ZXIgMgogICAgYm94X2dldAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGV4dHJhY3RfdWludDY0CiAgICArCiAgICBpdG9iCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICBzd2FwCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzgxCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5sYXN0ID0gbmV3TGFzdAogICAgZnJhbWVfZGlnIDI0CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAzMyAvLyAzMwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyNwogICAgLy8gaWYgKGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQgIT09IDApIHsKICAgIGZyYW1lX2RpZyAyOQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA3MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyOC0zMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMAogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMwCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMgogICAgLy8gYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfZGlnIDI5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgZnJhbWVfZGlnIDUKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjgtMzM0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQsCiAgICAvLyAgICAgeGZlckFzc2V0OiBmdW5kc1JlcXVlc3RzW2ldLmFzc2V0CiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzI4LTMzNQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgLy8gICAgIHhmZXJBc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxNgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDU2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDczOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzOQogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNDEKICAgIC8vIGFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBmcmFtZV9kaWcgNQogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzctMzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NwogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVXaW5kb3cpIHsKICAgIGZyYW1lX2RpZyAxMAogICAgcHVzaGJ5dGVzIDB4MDIKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg1CiAgICAvLyBpZiAodXNlUm91bmRzKSB7CiAgICBmcmFtZV9kaWcgMjgKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg2CiAgICAvLyByZXR1cm4gR2xvYmFsLnJvdW5kIC0gKChHbG9iYWwucm91bmQgLSBzdGFydCkgJSBpbnRlcnZhbCkKICAgIGdsb2JhbCBSb3VuZAogICAgZHVwCiAgICBmcmFtZV9kaWcgMjcKICAgIC0KICAgIGZyYW1lX2RpZyAxNwogICAgJQogICAgLQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5nZXRMYXRlc3RXaW5kb3dTdGFydEA3ODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjAKICAgIC8vIGlmIChjdXJyZW50V2luZG93U3RhcnQgPiBsYXN0KSB7CiAgICBmcmFtZV9kaWcgMTkKICAgID4KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANjUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjEKICAgIC8vIGFzc2VydChhbW91bnQgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGV4dHJhY3QgOCA4CiAgICBzd2FwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2RpZyAxMQogICAgPD0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjIKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ID0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA2NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjUKICAgIC8vIGNvbnN0IGxlZnRvdmVyOiB1aW50NjQgPSBhbW91bnQgLSBzcGVudDsKICAgIGZyYW1lX2RpZyAxMQogICAgZnJhbWVfZGlnIDI2CiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzY2CiAgICAvLyBhc3NlcnQobGVmdG92ZXIgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIGRpZyAxCiAgICA+PQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBleGNlZWRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2NwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUuc3BlbnQgKz0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgICsKICAgIGl0b2IKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIHN3YXAKICAgIGJveF9yZXBsYWNlCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDcxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3NzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozODgKICAgIC8vIHJldHVybiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gKChHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gc3RhcnQpICUgaW50ZXJ2YWwpCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyNwogICAgLQogICAgZnJhbWVfZGlnIDE3CiAgICAlCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU4CiAgICAvLyBjb25zdCBjdXJyZW50V2luZG93U3RhcnQgPSB0aGlzLmdldExhdGVzdFdpbmRvd1N0YXJ0KHVzZVJvdW5kcywgc3RhcnQsIGludGVydmFsKQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaW5saW5lZF9zbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmdldExhdGVzdFdpbmRvd1N0YXJ0QDc4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2OQogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVEcmlwKSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIHB1c2hieXRlcyAweDAzCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjkKICAgIGdsb2JhbCBSb3VuZAogICAgZnJhbWVfYnVyeSAxNAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANzA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcxCiAgICAvLyBjb25zdCBwYXNzZWQ6IHVpbnQ2NCA9IGVwb2NoUmVmIC0gbGFzdAogICAgZnJhbWVfZGlnIDE0CiAgICBmcmFtZV9kaWcgMTkKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzUKICAgIC8vIGNvbnN0IGFjY3J1ZWQ6IHVpbnQ2NCA9IHNwZW50ICsgKChwYXNzZWQgLyBpbnRlcnZhbCkgKiBhbW91bnQpCiAgICBmcmFtZV9kaWcgMTcKICAgIC8KICAgIGZyYW1lX2RpZyAxMQogICAgKgogICAgZnJhbWVfZGlnIDI2CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc2CiAgICAvLyBjb25zdCBhdmFpbGFibGU6IHVpbnQ2NCA9IGFjY3J1ZWQgPiBtYXggPyBtYXggOiBhY2NydWVkCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyMQogICAgZHVwCiAgICBjb3ZlciAzCiAgICA+CiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBzZWxlY3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzgKICAgIC8vIGFzc2VydChhdmFpbGFibGUgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cDIKICAgID49CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGV4Y2VlZGVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5zcGVudCA9IChhdmFpbGFibGUgLSBmdW5kUmVxdWVzdC5hbW91bnQpCiAgICAtCiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBmcmFtZV9idXJ5IDE0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDcwCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTEKICAgIC8vIGNvbnN0IG5ld0xhc3QgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgZnJhbWVfYnVyeSAyNAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDQKICAgIC8vIGNvbnN0IHsgdXNlUm91bmRzLCB1c2VFeGVjdXRpb25LZXkgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlCiAgICBmcmFtZV9kaWcgMgogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBnZXRiaXQKICAgIGZyYW1lX2J1cnkgMjgKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIEV4ZWN1dGlvbiBrZXkgbm90IGZvdW5kCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDgKICAgIC8vIGFzc2VydCh0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS52YWx1ZS5maXJzdFZhbGlkIDw9IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9OT1RfUkVBRFkpOwogICAgdHhuIExlYXNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA4CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZmlyc3RWYWxpZCA8PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fTk9UX1JFQURZKTsKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPD0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IG5vdCByZWFkeQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUubGFzdFZhbGlkID49IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9FWFBJUkVEKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwOQogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA+PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fRVhQSVJFRCk7CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPj0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxMQogICAgLy8gY29uc3QgZ3JvdXBzID0gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZ3JvdXBzIGFzIFJlYWRvbmx5PGJ5dGVzPDMyPltdPjsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjEzCiAgICAvLyBsZXQgZm91bmRHcm91cCA9IGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDE2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDQKICAgIHB1c2hpbnQgMTggLy8gMTgKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfZGlnIDE2CiAgICA+CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfd2hpbGVAMjEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTUKICAgIC8vIGlmIChncm91cHNbaV0gPT09IEdsb2JhbC5ncm91cElkKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICsKICAgIGZyYW1lX2RpZyA0CiAgICBzd2FwCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBib3hfZXh0cmFjdAogICAgZ2xvYmFsIEdyb3VwSUQKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNgogICAgLy8gZm91bmRHcm91cCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSAxNQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjE0CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDE2CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BAMTcKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl93aGlsZUAyMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjAKICAgIC8vIGFzc2VydChmb3VuZEdyb3VwLCBFUlJfR1JPVVBfTk9UX0ZPVU5EKTsKICAgIGZyYW1lX2RpZyAxNQogICAgYXNzZXJ0IC8vIEdyb3VwIG5vdCBmb3VuZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIxCiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS5kZWxldGUoKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyMQogICAgLy8gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkuZGVsZXRlKCk7CiAgICBib3hfZGVsCiAgICBwb3AKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDIyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNAogICAgLy8gY29uc3QgaW5pdGlhbENoZWNrID0gdGhpcy5wbHVnaW5DaGVjayhrZXkpOwogICAgZnJhbWVfZGlnIDYKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNgogICAgLy8gYXNzZXJ0KGluaXRpYWxDaGVjay5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjI3CiAgICAvLyBhc3NlcnQoIWluaXRpYWxDaGVjay5leHBpcmVkLCBFUlJfUExVR0lOX0VYUElSRUQpOwogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gcGx1Z2luIGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjgKICAgIC8vIGFzc2VydCghaW5pdGlhbENoZWNrLm9uQ29vbGRvd24sIEVSUl9QTFVHSU5fT05fQ09PTERPV04pOwogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIHBsdWdpbiBvbiBjb29sZG93bgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzMC0yMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzCiAgICAvLyAgID8gR2xvYmFsLnJvdW5kCiAgICAvLyAgIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzEKICAgIC8vID8gR2xvYmFsLnJvdW5kCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMTQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDI1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDI1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjM1CiAgICAvLyBsZXQgbWV0aG9kSW5kZXg6IHVpbnQ2NCA9IDA7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSAyMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgZnJhbWVfZGlnIDYKICAgIGZyYW1lX2J1cnkgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3doaWxlX3RvcEAyNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGdsb2JhbCBHcm91cFNpemUKICAgIDwKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0MAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGNhbGxzdWIgdHhuUmVrZXlzQmFjawogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDEKICAgIC8vIHJla2V5c0JhY2sgPSB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2J1cnkgMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNzEKICAgIC8vIGFzc2VydChyZWtleXNCYWNrLCBFUlJfTUlTU0lOR19SRUtFWV9CQUNLKTsKICAgIGZyYW1lX2RpZyAyNQogICAgYXNzZXJ0IC8vIG1pc3NpbmcgcmVrZXkgYmFjawogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU5My02MDAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgLy8gICAgIG5vdGU6ICdyZWtleWluZyB0byBwbHVnaW4gYXBwJwogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OTcKICAgIC8vIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgZnJhbWVfZGlnIC01CiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk4CiAgICAvLyBub3RlOiAncmVrZXlpbmcgdG8gcGx1Z2luIGFwcCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKICAgIGl0eG5fZmllbGQgTm90ZQogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICBkdXAKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTU5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTYwMAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDMKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IFR4bi5ncm91cEluZGV4CiAgICB0eG4gR3JvdXBJbmRleAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDUKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBpbnRjXzMgLy8gOAogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGZyYW1lX2J1cnkgMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDI5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0NQogICAgLy8gaWYgKHR4bi50eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBwdXNoaW50IDYgLy8gNgogICAgIT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDMxCiAgICBmcmFtZV9kaWcgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jsb2NrQDUxOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyAxOAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGZyYW1lX2J1cnkgNwogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDI2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAzMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDkKICAgIC8vIGFzc2VydCh0eG4uYXBwSWQuaWQgPT09IGtleS5wbHVnaW4sIEVSUl9DQU5OT1RfQ0FMTF9PVEhFUl9BUFBTX0RVUklOR19SRUtFWSk7CiAgICBmcmFtZV9kaWcgMTgKICAgIGR1cAogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbm5vdCBjYWxsIG90aGVyIGFwcHMgZHVyaW5nIHJla2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjUwCiAgICAvLyBhc3NlcnQodHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wLCBFUlJfSU5WQUxJRF9PTkNPTVBMRVRFKTsKICAgIGR1cAogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gaW52YWxpZCBvbmNvbXBsZXRlIG11c3QgYmUgbm8gb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTMKICAgIC8vIGFzc2VydCh0eG4ubnVtQXBwQXJncyA+IDEsIEVSUl9JTlZBTElEX1NFTkRFUl9BUkcpOwogICAgZHVwCiAgICBndHhucyBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIG11c3QgYmUgdGhpcyBhcHAgaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTQKICAgIC8vIGFzc2VydChBcHBsaWNhdGlvbihidG9pKHR4bi5hcHBBcmdzKDEpKSkgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCwgRVJSX0lOVkFMSURfU0VOREVSX1ZBTFVFKTsKICAgIGludGNfMSAvLyAxCiAgICBndHhuc2FzIEFwcGxpY2F0aW9uQXJncwogICAgYnRvaQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIGFwcCBpZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1NgogICAgLy8gY29uc3QgeyBleHBpcmVkLCBvbkNvb2xkb3duLCBoYXNNZXRob2RSZXN0cmljdGlvbnMgfSA9IHRoaXMucGx1Z2luQ2hlY2soa2V5KTsKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgdW5jb3ZlciAyCiAgICBwdXNoaW50IDMgLy8gMwogICAgZ2V0Yml0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjU4CiAgICAvLyBhc3NlcnQoIWV4cGlyZWQsIEVSUl9QTFVHSU5fRVhQSVJFRCk7CiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gZXhwaXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1OQogICAgLy8gYXNzZXJ0KCFvbkNvb2xkb3duLCBFUlJfUExVR0lOX09OX0NPT0xET1dOKTsKICAgIHN3YXAKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gb24gY29vbGRvd24KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjEKICAgIC8vIGlmIChoYXNNZXRob2RSZXN0cmljdGlvbnMpIHsKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYyCiAgICAvLyBhc3NlcnQobWV0aG9kSW5kZXggPCBtZXRob2RPZmZzZXRzLmxlbmd0aCwgRVJSX01BTEZPUk1FRF9PRkZTRVRTKTsKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMjIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA8CiAgICBhc3NlcnQgLy8gbWFsZm9ybWVkIG1ldGhvZCBvZmZzZXRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYzCiAgICAvLyBjb25zdCB7IG1ldGhvZEFsbG93ZWQsIG1ldGhvZE9uQ29vbGRvd24gfSA9IHRoaXMubWV0aG9kQ2hlY2soa2V5LCB0eG4sIG1ldGhvZE9mZnNldHNbbWV0aG9kSW5kZXhdKTsKICAgIGZyYW1lX2RpZyAtMgogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4NAogICAgLy8gYXNzZXJ0KGxlbih0eG4uYXBwQXJncygwKSkgPT09IDQsIEVSUl9JTlZBTElEX01FVEhPRF9TSUdOQVRVUkVfTEVOR1RIKQogICAgZnJhbWVfZGlnIDE4CiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGR1cAogICAgZnJhbWVfYnVyeSA5CiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbWV0aG9kIHNpZ25hdHVyZSBsZW5ndGgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA2CiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjg3CiAgICAvLyBjb25zdCB7IHVzZVJvdW5kcyB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyODgKICAgIC8vIGNvbnN0IHsgc2VsZWN0b3IsIGNvb2xkb3duLCBsYXN0Q2FsbGVkIH0gPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzW29mZnNldF0KICAgIHVuY292ZXIgMgogICAgcHVzaGludCAyMCAvLyAyMAogICAgKgogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEyCiAgICBwdXNoaW50IDQ2IC8vIDQ2CiAgICArCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgZnJhbWVfYnVyeSA4CiAgICBkdXAKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxMwogICAgcHVzaGludCAxMiAvLyAxMgogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMzQKICAgIGdsb2JhbCBSb3VuZAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMzU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjkzCiAgICAvLyBjb25zdCBtZXRob2RPbkNvb2xkb3duID0gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93bgogICAgZnJhbWVfZGlnIDIwCiAgICAtCiAgICBmcmFtZV9kaWcgMTMKICAgIDwKICAgIGZyYW1lX2J1cnkgMjMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTUKICAgIC8vIGlmIChzZWxlY3RvciA9PT0gc2VsZWN0b3JBcmcgJiYgKCFoYXNDb29sZG93biB8fCAhbWV0aG9kT25Db29sZG93bikpIHsKICAgIGZyYW1lX2RpZyA4CiAgICBmcmFtZV9kaWcgOQogICAgPT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0CiAgICBmcmFtZV9kaWcgMTMKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9pZl9ib2R5QDM4CiAgICBmcmFtZV9kaWcgMjMKICAgIGJueiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0NAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2lmX2JvZHlAMzg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk3CiAgICAvLyBpZiAoaGFzQ29vbGRvd24pIHsKICAgIGZyYW1lX2RpZyAxMwogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTgKICAgIC8vIGNvbnN0IGxhc3RDYWxsZWQgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZnJhbWVfZGlnIDI4CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA0MQogICAgZ2xvYmFsIFJvdW5kCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA0MjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTkKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLm1ldGhvZHNbb2Zmc2V0XS5sYXN0Q2FsbGVkID0gbGFzdENhbGxlZAogICAgaXRvYgogICAgZnJhbWVfZGlnIDEyCiAgICBwdXNoaW50IDU4IC8vIDU4CiAgICArCiAgICBmcmFtZV9kaWcgMgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAyLTMwNQogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbWV0aG9kQWxsb3dlZDogdHJ1ZSwKICAgIC8vICAgbWV0aG9kT25Db29sZG93bgogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4ODAKICAgIGludGNfMSAvLyAxCiAgICBmcmFtZV9kaWcgMjMKICAgIHNldGJpdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tZXRob2RDaGVja0A0NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjMKICAgIC8vIGNvbnN0IHsgbWV0aG9kQWxsb3dlZCwgbWV0aG9kT25Db29sZG93biB9ID0gdGhpcy5tZXRob2RDaGVjayhrZXksIHR4biwgbWV0aG9kT2Zmc2V0c1ttZXRob2RJbmRleF0pOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDIzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY0CiAgICAvLyBhc3NlcnQobWV0aG9kQWxsb3dlZCAmJiAhbWV0aG9kT25Db29sZG93biwgRVJSX01FVEhPRF9PTl9DT09MRE9XTik7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9mYWxzZUA0OAogICAgZnJhbWVfZGlnIDIzCiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDgKICAgIGludGNfMSAvLyAxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjQKICAgIC8vIGFzc2VydChtZXRob2RBbGxvd2VkICYmICFtZXRob2RPbkNvb2xkb3duLCBFUlJfTUVUSE9EX09OX0NPT0xET1dOKTsKICAgIGFzc2VydCAvLyBtZXRob2Qgb24gY29vbGRvd24KCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY3CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5sYXN0Q2FsbGVkID0gZXBvY2hSZWYKICAgIGZyYW1lX2RpZyAxNAogICAgaXRvYgogICAgcHVzaGludCAyOCAvLyAyOAogICAgc3dhcAogICAgYm94X3JlcGxhY2UKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjgKICAgIC8vIG1ldGhvZEluZGV4ICs9IDE7CiAgICBmcmFtZV9kaWcgMjIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIyCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANDE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk4CiAgICAvLyBjb25zdCBsYXN0Q2FsbGVkID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANDIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwOC0zMTEKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIG1ldGhvZEFsbG93ZWQ6IGZhbHNlLAogICAgLy8gICBtZXRob2RPbkNvb2xkb3duOiB0cnVlCiAgICAvLyB9CiAgICBwdXNoYnl0ZXMgMHg0MAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2MwogICAgLy8gY29uc3QgeyBtZXRob2RBbGxvd2VkLCBtZXRob2RPbkNvb2xkb3duIH0gPSB0aGlzLm1ldGhvZENoZWNrKGtleSwgdHhuLCBtZXRob2RPZmZzZXRzW21ldGhvZEluZGV4XSk7CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQubWV0aG9kQ2hlY2tANDUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X2ZhbHNlQDM0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI5MgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM1CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzIKICAgIC8vIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMTQKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTg4CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4OAogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgdHhuIFNlbmRlcgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUAzCg==",
+ "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg=="
+ },
+ "state": {
+ "global": {
+ "num_byte_slices": 4,
+ "num_uints": 4
+ },
+ "local": {
+ "num_byte_slices": 0,
+ "num_uints": 0
+ }
+ },
+ "schema": {
+ "global": {
+ "declared": {
+ "admin": {
+ "type": "bytes",
+ "key": "admin",
+ "descr": "The admin of the abstracted account. This address can add plugins and initiate rekeys"
+ },
+ "controlledAddress": {
+ "type": "bytes",
+ "key": "controlled_address",
+ "descr": "The address this app controls"
+ },
+ "currentPlugin": {
+ "type": "bytes",
+ "key": "current_plugin",
+ "descr": "[TEMPORARY STATE FIELD] The current plugin key being used"
+ },
+ "escrowFactory": {
+ "type": "uint64",
+ "key": "escrow_factory",
+ "descr": "the escrow account factory to use for allowances"
+ },
+ "lastChange": {
+ "type": "uint64",
+ "key": "last_change",
+ "descr": "The last time state has changed on the abstracted account (not including lastCalled for cooldowns) in unix time"
+ },
+ "lastUserInteraction": {
+ "type": "uint64",
+ "key": "last_user_interaction",
+ "descr": "The last time the contract was interacted with in unix time"
+ },
+ "rekeyIndex": {
+ "type": "uint64",
+ "key": "rekey_index",
+ "descr": "[TEMPORARY STATE FIELD] The index of the transaction that created the rekey sandwich"
+ },
+ "spendingAddress": {
+ "type": "bytes",
+ "key": "spending_address",
+ "descr": "[TEMPORARY STATE FIELD] The spending address for the currently active plugin"
+ }
+ },
+ "reserved": {}
+ },
+ "local": {
+ "declared": {},
+ "reserved": {}
+ }
+ },
+ "contract": {
+ "name": "AbstractedAccount",
+ "methods": [
+ {
+ "name": "createApplication",
+ "args": [
+ {
+ "type": "address",
+ "name": "controlledAddress",
+ "desc": "The address of the abstracted account. If zeroAddress, then the address of the contract account will be used"
+ },
+ {
+ "type": "address",
+ "name": "admin",
+ "desc": "The admin for this app"
+ },
+ {
+ "type": "uint64",
+ "name": "escrowFactory"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Create an abstracted account application.\nThis is not part of ARC58 and implementation specific."
+ },
+ {
+ "name": "register",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Register the abstracted account with the escrow factory.\nThis allows apps to correlate the account with the app without needing\nit to be explicitly provided."
+ },
+ {
+ "name": "arc58_changeAdmin",
+ "args": [
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Attempt to change the admin for this app. Some implementations MAY not support this."
+ },
+ {
+ "name": "arc58_pluginChangeAdmin",
+ "args": [
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Attempt to change the admin via plugin."
+ },
+ {
+ "name": "arc58_getAdmin",
+ "args": [],
+ "readonly": true,
+ "returns": {
+ "type": "address"
+ },
+ "desc": "Get the admin of this app. This method SHOULD always be used rather than reading directly from state\nbecause different implementations may have different ways of determining the admin."
+ },
+ {
+ "name": "arc58_verifyAuthAddress",
+ "args": [],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Verify the abstracted account is rekeyed to this app"
+ },
+ {
+ "name": "arc58_rekeyTo",
+ "args": [
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "The address to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "flash",
+ "desc": "Whether or not this should be a flash rekey. If true, the rekey back to the app address must done in the same txn group as this call"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA."
+ },
+ {
+ "name": "arc58_canCall",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "the plugin to be rekeyed to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "whether this is callable globally"
+ },
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "the address that will trigger the plugin"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "byte[4]",
+ "name": "method",
+ "desc": "the method being called on the plugin, if applicable"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "bool",
+ "desc": "whether the plugin can be called with these parameters"
+ },
+ "desc": "check whether the plugin can be used"
+ },
+ {
+ "name": "arc58_rekeyToPlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "The app to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Temporarily rekey to an approved plugin app address"
+ },
+ {
+ "name": "arc58_rekeyToNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The name of the plugin to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Temporarily rekey to a named plugin app address"
+ },
+ {
+ "name": "arc58_addPlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "the ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ },
+ {
+ "type": "bool",
+ "name": "useExecutionKey"
+ },
+ {
+ "type": "bool",
+ "name": "defaultToEscrow"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Add an app to the list of approved plugins"
+ },
+ {
+ "name": "arc58_removePlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Remove an app from the list of approved plugins"
+ },
+ {
+ "name": "arc58_addNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ },
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "the ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ },
+ {
+ "type": "bool",
+ "name": "useExecutionKey"
+ },
+ {
+ "type": "bool",
+ "name": "defaultToEscrow"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Add a named plugin"
+ },
+ {
+ "name": "arc58_removeNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Remove a named plugin"
+ },
+ {
+ "name": "arc58_newEscrow",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The name of the escrow to create"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "uint64"
+ },
+ "desc": "Create a new escrow for the controlled address"
+ },
+ {
+ "name": "arc58_toggleEscrowLock",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to lock or unlock"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "(uint64,bool)"
+ },
+ "desc": "Lock or Unlock an escrow account"
+ },
+ {
+ "name": "arc58_reclaim",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to reclaim funds from"
+ },
+ {
+ "type": "(uint64,uint64,bool)[]",
+ "name": "reclaims",
+ "desc": "The list of reclaims to make from the escrow"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Transfer funds from an escrow back to the controlled address."
+ },
+ {
+ "name": "arc58_optinEscrow",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to opt-in to"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Opt-in an escrow account to assets"
+ },
+ {
+ "name": "arc58_pluginOptinEscrow",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ },
+ {
+ "type": "pay",
+ "name": "mbrPayment",
+ "desc": "The payment txn that is used to pay for the asset opt-in"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Opt-in an escrow account to assets via a plugin / allowed caller"
+ },
+ {
+ "name": "arc58_addAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to add the allowance for"
+ },
+ {
+ "type": "(uint64,uint8,uint64,uint64,uint64,bool)[]",
+ "name": "allowances",
+ "desc": "The list of allowances to add"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Add an allowance for an escrow account"
+ },
+ {
+ "name": "arc58_removeAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to remove the allowance for"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to remove the allowance for"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ },
+ "desc": "Remove an allowances for an escrow account"
+ },
+ {
+ "name": "arc58_addExecutionKey",
+ "args": [
+ {
+ "type": "byte[32]",
+ "name": "lease"
+ },
+ {
+ "type": "byte[32][]",
+ "name": "groups"
+ },
+ {
+ "type": "uint64",
+ "name": "firstValid"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_removeExecutionKey",
+ "args": [
+ {
+ "type": "byte[32]",
+ "name": "lease"
+ }
+ ],
+ "readonly": false,
+ "returns": {
+ "type": "void"
+ }
+ },
+ {
+ "name": "arc58_getPlugins",
+ "args": [
+ {
+ "type": "(uint64,address,string)[]",
+ "name": "keys"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"
+ }
+ },
+ {
+ "name": "arc58_getNamedPlugins",
+ "args": [
+ {
+ "type": "string[]",
+ "name": "names"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"
+ }
+ },
+ {
+ "name": "arc58_getEscrows",
+ "args": [
+ {
+ "type": "string[]",
+ "name": "escrows"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(uint64,bool)[]"
+ }
+ },
+ {
+ "name": "arc58_getAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]"
+ }
+ },
+ {
+ "name": "arc58_getExecutions",
+ "args": [
+ {
+ "type": "byte[32][]",
+ "name": "leases"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(byte[32][],uint64,uint64)[]"
+ }
+ },
+ {
+ "name": "mbr",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64",
+ "name": "methodCount"
+ },
+ {
+ "type": "string",
+ "name": "plugin"
+ },
+ {
+ "type": "uint64",
+ "name": "groups"
+ }
+ ],
+ "readonly": true,
+ "returns": {
+ "type": "(uint64,uint64,uint64,uint64,uint64,bool,uint64)"
+ }
+ }
+ ],
+ "networks": {}
+ },
+ "bare_call_config": {}
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc56.json b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc56.json
new file mode 100644
index 000000000..f2ad0d607
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.arc56.json
@@ -0,0 +1,1725 @@
+{
+ "name": "AbstractedAccount",
+ "structs": {
+ "AbstractAccountBoxMBRData": [
+ {
+ "name": "plugins",
+ "type": "uint64"
+ },
+ {
+ "name": "namedPlugins",
+ "type": "uint64"
+ },
+ {
+ "name": "escrows",
+ "type": "uint64"
+ },
+ {
+ "name": "allowances",
+ "type": "uint64"
+ },
+ {
+ "name": "executions",
+ "type": "uint64"
+ },
+ {
+ "name": "escrowExists",
+ "type": "bool"
+ },
+ {
+ "name": "newEscrowMintCost",
+ "type": "uint64"
+ }
+ ],
+ "AllowanceInfo": [
+ {
+ "name": "type",
+ "type": "uint8"
+ },
+ {
+ "name": "max",
+ "type": "uint64"
+ },
+ {
+ "name": "amount",
+ "type": "uint64"
+ },
+ {
+ "name": "spent",
+ "type": "uint64"
+ },
+ {
+ "name": "interval",
+ "type": "uint64"
+ },
+ {
+ "name": "last",
+ "type": "uint64"
+ },
+ {
+ "name": "start",
+ "type": "uint64"
+ },
+ {
+ "name": "useRounds",
+ "type": "bool"
+ }
+ ],
+ "AllowanceKey": [
+ {
+ "name": "escrow",
+ "type": "string"
+ },
+ {
+ "name": "asset",
+ "type": "uint64"
+ }
+ ],
+ "EscrowInfo": [
+ {
+ "name": "id",
+ "type": "uint64"
+ },
+ {
+ "name": "locked",
+ "type": "bool"
+ }
+ ],
+ "ExecutionInfo": [
+ {
+ "name": "groups",
+ "type": "byte[32][]"
+ },
+ {
+ "name": "firstValid",
+ "type": "uint64"
+ },
+ {
+ "name": "lastValid",
+ "type": "uint64"
+ }
+ ],
+ "PluginInfo": [
+ {
+ "name": "escrow",
+ "type": "uint64"
+ },
+ {
+ "name": "delegationType",
+ "type": "uint8"
+ },
+ {
+ "name": "lastValid",
+ "type": "uint64"
+ },
+ {
+ "name": "cooldown",
+ "type": "uint64"
+ },
+ {
+ "name": "methods",
+ "type": "(byte[4],uint64,uint64)[]"
+ },
+ {
+ "name": "admin",
+ "type": "bool"
+ },
+ {
+ "name": "useRounds",
+ "type": "bool"
+ },
+ {
+ "name": "useExecutionKey",
+ "type": "bool"
+ },
+ {
+ "name": "lastCalled",
+ "type": "uint64"
+ },
+ {
+ "name": "start",
+ "type": "uint64"
+ }
+ ],
+ "PluginKey": [
+ {
+ "name": "plugin",
+ "type": "uint64"
+ },
+ {
+ "name": "caller",
+ "type": "address"
+ },
+ {
+ "name": "escrow",
+ "type": "string"
+ }
+ ]
+ },
+ "methods": [
+ {
+ "name": "createApplication",
+ "args": [
+ {
+ "type": "address",
+ "name": "controlledAddress",
+ "desc": "The address of the abstracted account. If zeroAddress, then the address of the contract account will be used"
+ },
+ {
+ "type": "address",
+ "name": "admin",
+ "desc": "The admin for this app"
+ },
+ {
+ "type": "uint64",
+ "name": "escrowFactory"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [
+ "NoOp"
+ ],
+ "call": []
+ },
+ "readonly": false,
+ "desc": "Create an abstracted account application.\nThis is not part of ARC58 and implementation specific.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "register",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Register the abstracted account with the escrow factory.\nThis allows apps to correlate the account with the app without needing\nit to be explicitly provided.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_changeAdmin",
+ "args": [
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Attempt to change the admin for this app. Some implementations MAY not support this.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_pluginChangeAdmin",
+ "args": [
+ {
+ "type": "address",
+ "name": "newAdmin",
+ "desc": "The new admin"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Attempt to change the admin via plugin.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getAdmin",
+ "args": [],
+ "returns": {
+ "type": "address"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "desc": "Get the admin of this app. This method SHOULD always be used rather than reading directly from state\nbecause different implementations may have different ways of determining the admin.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_verifyAuthAddress",
+ "args": [],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Verify the abstracted account is rekeyed to this app",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_rekeyTo",
+ "args": [
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "The address to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "flash",
+ "desc": "Whether or not this should be a flash rekey. If true, the rekey back to the app address must done in the same txn group as this call"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_canCall",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "the plugin to be rekeyed to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "whether this is callable globally"
+ },
+ {
+ "type": "address",
+ "name": "address",
+ "desc": "the address that will trigger the plugin"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "byte[4]",
+ "name": "method",
+ "desc": "the method being called on the plugin, if applicable"
+ }
+ ],
+ "returns": {
+ "type": "bool",
+ "desc": "whether the plugin can be called with these parameters"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "desc": "check whether the plugin can be used",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_rekeyToPlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin",
+ "desc": "The app to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Temporarily rekey to an approved plugin app address",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_rekeyToNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The name of the plugin to rekey to"
+ },
+ {
+ "type": "bool",
+ "name": "global",
+ "desc": "Whether the plugin is callable globally"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "methodOffsets",
+ "desc": "The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"
+ },
+ {
+ "type": "(uint64,uint64)[]",
+ "name": "fundsRequest",
+ "desc": "If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Temporarily rekey to a named plugin app address",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_addPlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "the ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ },
+ {
+ "type": "bool",
+ "name": "useExecutionKey"
+ },
+ {
+ "type": "bool",
+ "name": "defaultToEscrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Add an app to the list of approved plugins",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_removePlugin",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Remove an app from the list of approved plugins",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_addNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ },
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"
+ },
+ {
+ "type": "bool",
+ "name": "admin",
+ "desc": "Whether the plugin has permissions to change the admin account"
+ },
+ {
+ "type": "uint8",
+ "name": "delegationType",
+ "desc": "the ownership of the delegation for last_interval updates"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid",
+ "desc": "The timestamp or round when the permission expires"
+ },
+ {
+ "type": "uint64",
+ "name": "cooldown",
+ "desc": "The number of seconds or rounds that must pass before the plugin can be called again"
+ },
+ {
+ "type": "(byte[4],uint64)[]",
+ "name": "methods",
+ "desc": "The methods that are allowed to be called for the plugin by the address"
+ },
+ {
+ "type": "bool",
+ "name": "useRounds",
+ "desc": "Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"
+ },
+ {
+ "type": "bool",
+ "name": "useExecutionKey"
+ },
+ {
+ "type": "bool",
+ "name": "defaultToEscrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Add a named plugin",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_removeNamedPlugin",
+ "args": [
+ {
+ "type": "string",
+ "name": "name",
+ "desc": "The plugin name"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Remove a named plugin",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_newEscrow",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The name of the escrow to create"
+ }
+ ],
+ "returns": {
+ "type": "uint64"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Create a new escrow for the controlled address",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_toggleEscrowLock",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to lock or unlock"
+ }
+ ],
+ "returns": {
+ "type": "(uint64,bool)",
+ "struct": "EscrowInfo"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Lock or Unlock an escrow account",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_reclaim",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to reclaim funds from"
+ },
+ {
+ "type": "(uint64,uint64,bool)[]",
+ "name": "reclaims",
+ "desc": "The list of reclaims to make from the escrow"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Transfer funds from an escrow back to the controlled address.",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_optinEscrow",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to opt-in to"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Opt-in an escrow account to assets",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_pluginOptinEscrow",
+ "args": [
+ {
+ "type": "uint64",
+ "name": "plugin"
+ },
+ {
+ "type": "address",
+ "name": "caller"
+ },
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to opt-in to"
+ },
+ {
+ "type": "pay",
+ "name": "mbrPayment",
+ "desc": "The payment txn that is used to pay for the asset opt-in"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Opt-in an escrow account to assets via a plugin / allowed caller",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_addAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to add the allowance for"
+ },
+ {
+ "type": "(uint64,uint8,uint64,uint64,uint64,bool)[]",
+ "name": "allowances",
+ "desc": "The list of allowances to add"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Add an allowance for an escrow account",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_removeAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow",
+ "desc": "The escrow to remove the allowance for"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets",
+ "desc": "The list of assets to remove the allowance for"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "desc": "Remove an allowances for an escrow account",
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_addExecutionKey",
+ "args": [
+ {
+ "type": "byte[32]",
+ "name": "lease"
+ },
+ {
+ "type": "byte[32][]",
+ "name": "groups"
+ },
+ {
+ "type": "uint64",
+ "name": "firstValid"
+ },
+ {
+ "type": "uint64",
+ "name": "lastValid"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_removeExecutionKey",
+ "args": [
+ {
+ "type": "byte[32]",
+ "name": "lease"
+ }
+ ],
+ "returns": {
+ "type": "void"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": false,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getPlugins",
+ "args": [
+ {
+ "type": "(uint64,address,string)[]",
+ "name": "keys"
+ }
+ ],
+ "returns": {
+ "type": "(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getNamedPlugins",
+ "args": [
+ {
+ "type": "string[]",
+ "name": "names"
+ }
+ ],
+ "returns": {
+ "type": "(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getEscrows",
+ "args": [
+ {
+ "type": "string[]",
+ "name": "escrows"
+ }
+ ],
+ "returns": {
+ "type": "(uint64,bool)[]"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getAllowances",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64[]",
+ "name": "assets"
+ }
+ ],
+ "returns": {
+ "type": "(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "arc58_getExecutions",
+ "args": [
+ {
+ "type": "byte[32][]",
+ "name": "leases"
+ }
+ ],
+ "returns": {
+ "type": "(byte[32][],uint64,uint64)[]"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ },
+ {
+ "name": "mbr",
+ "args": [
+ {
+ "type": "string",
+ "name": "escrow"
+ },
+ {
+ "type": "uint64",
+ "name": "methodCount"
+ },
+ {
+ "type": "string",
+ "name": "plugin"
+ },
+ {
+ "type": "uint64",
+ "name": "groups"
+ }
+ ],
+ "returns": {
+ "type": "(uint64,uint64,uint64,uint64,uint64,bool,uint64)",
+ "struct": "AbstractAccountBoxMBRData"
+ },
+ "actions": {
+ "create": [],
+ "call": [
+ "NoOp"
+ ]
+ },
+ "readonly": true,
+ "events": [],
+ "recommendations": {}
+ }
+ ],
+ "arcs": [
+ 22,
+ 28
+ ],
+ "networks": {},
+ "state": {
+ "schema": {
+ "global": {
+ "ints": 4,
+ "bytes": 4
+ },
+ "local": {
+ "ints": 0,
+ "bytes": 0
+ }
+ },
+ "keys": {
+ "global": {
+ "admin": {
+ "keyType": "AVMString",
+ "valueType": "address",
+ "key": "YWRtaW4=",
+ "desc": "The admin of the abstracted account. This address can add plugins and initiate rekeys"
+ },
+ "controlledAddress": {
+ "keyType": "AVMString",
+ "valueType": "address",
+ "key": "Y29udHJvbGxlZF9hZGRyZXNz",
+ "desc": "The address this app controls"
+ },
+ "lastUserInteraction": {
+ "keyType": "AVMString",
+ "valueType": "AVMUint64",
+ "key": "bGFzdF91c2VyX2ludGVyYWN0aW9u",
+ "desc": "The last time the contract was interacted with in unix time"
+ },
+ "lastChange": {
+ "keyType": "AVMString",
+ "valueType": "AVMUint64",
+ "key": "bGFzdF9jaGFuZ2U=",
+ "desc": "The last time state has changed on the abstracted account (not including lastCalled for cooldowns) in unix time"
+ },
+ "escrowFactory": {
+ "keyType": "AVMString",
+ "valueType": "AVMUint64",
+ "key": "ZXNjcm93X2ZhY3Rvcnk=",
+ "desc": "the escrow account factory to use for allowances"
+ },
+ "spendingAddress": {
+ "keyType": "AVMString",
+ "valueType": "address",
+ "key": "c3BlbmRpbmdfYWRkcmVzcw==",
+ "desc": "[TEMPORARY STATE FIELD] The spending address for the currently active plugin"
+ },
+ "currentPlugin": {
+ "keyType": "AVMString",
+ "valueType": "PluginKey",
+ "key": "Y3VycmVudF9wbHVnaW4=",
+ "desc": "[TEMPORARY STATE FIELD] The current plugin key being used"
+ },
+ "rekeyIndex": {
+ "keyType": "AVMString",
+ "valueType": "AVMUint64",
+ "key": "cmVrZXlfaW5kZXg=",
+ "desc": "[TEMPORARY STATE FIELD] The index of the transaction that created the rekey sandwich"
+ }
+ },
+ "local": {},
+ "box": {}
+ },
+ "maps": {
+ "global": {},
+ "local": {},
+ "box": {
+ "plugins": {
+ "keyType": "PluginKey",
+ "valueType": "PluginInfo",
+ "desc": "Plugins that add functionality to the controlledAddress and the account that has permission to use it.",
+ "prefix": "cA=="
+ },
+ "namedPlugins": {
+ "keyType": "AVMString",
+ "valueType": "PluginKey",
+ "desc": "Plugins that have been given a name for discoverability",
+ "prefix": "bg=="
+ },
+ "escrows": {
+ "keyType": "AVMString",
+ "valueType": "EscrowInfo",
+ "desc": "the escrows that this wallet has created for specific callers with allowances",
+ "prefix": "ZQ=="
+ },
+ "allowances": {
+ "keyType": "AllowanceKey",
+ "valueType": "AllowanceInfo",
+ "desc": "The Allowances for plugins installed on the smart contract with useAllowance set to true",
+ "prefix": "YQ=="
+ },
+ "executions": {
+ "keyType": "AVMBytes",
+ "valueType": "ExecutionInfo",
+ "desc": "execution keys",
+ "prefix": "eA=="
+ }
+ }
+ }
+ },
+ "bareActions": {
+ "create": [],
+ "call": []
+ },
+ "sourceInfo": {
+ "approval": {
+ "sourceInfo": [
+ {
+ "pc": [
+ 4130,
+ 4248,
+ 4265,
+ 4407,
+ 4563,
+ 4730,
+ 5014,
+ 5778,
+ 5941
+ ],
+ "errorMessage": "Box must have value"
+ },
+ {
+ "pc": [
+ 5141
+ ],
+ "errorMessage": "Bytes has valid prefix"
+ },
+ {
+ "pc": [
+ 2992,
+ 3214,
+ 3442,
+ 3704
+ ],
+ "errorMessage": "Escrow is locked"
+ },
+ {
+ "pc": [
+ 2594
+ ],
+ "errorMessage": "Escrow name is required"
+ },
+ {
+ "pc": [
+ 6104
+ ],
+ "errorMessage": "Execution key expired"
+ },
+ {
+ "pc": [
+ 6077
+ ],
+ "errorMessage": "Execution key not found"
+ },
+ {
+ "pc": [
+ 6090
+ ],
+ "errorMessage": "Execution key not ready"
+ },
+ {
+ "pc": [
+ 6165
+ ],
+ "errorMessage": "Group not found"
+ },
+ {
+ "pc": [
+ 236
+ ],
+ "errorMessage": "OnCompletion must be NoOp"
+ },
+ {
+ "pc": [
+ 888
+ ],
+ "errorMessage": "This plugin does not have admin privileges"
+ },
+ {
+ "pc": [
+ 865
+ ],
+ "errorMessage": "This plugin is not in control of the account"
+ },
+ {
+ "pc": [
+ 859,
+ 940
+ ],
+ "errorMessage": "account funded"
+ },
+ {
+ "pc": [
+ 1026,
+ 1528,
+ 1859,
+ 2112,
+ 2454,
+ 2580,
+ 2629,
+ 3426,
+ 3688,
+ 3870,
+ 4031
+ ],
+ "errorMessage": "admin only"
+ },
+ {
+ "pc": [
+ 843
+ ],
+ "errorMessage": "admin plugins cannot use escrows"
+ },
+ {
+ "pc": [
+ 3579
+ ],
+ "errorMessage": "allowance already exists"
+ },
+ {
+ "pc": [
+ 3063,
+ 3341,
+ 3793,
+ 5692
+ ],
+ "errorMessage": "allowance does not exist"
+ },
+ {
+ "pc": [
+ 5771,
+ 5910,
+ 5934,
+ 6016
+ ],
+ "errorMessage": "allowance exceeded"
+ },
+ {
+ "pc": [
+ 737,
+ 850,
+ 863,
+ 2748,
+ 2987,
+ 3223,
+ 3255,
+ 5090,
+ 5628,
+ 5638,
+ 6250
+ ],
+ "errorMessage": "application exists"
+ },
+ {
+ "pc": [
+ 6359
+ ],
+ "errorMessage": "cannot call other apps during rekey"
+ },
+ {
+ "pc": [
+ 733,
+ 791,
+ 821,
+ 856,
+ 921,
+ 933,
+ 944,
+ 952,
+ 1024,
+ 1031,
+ 1526,
+ 1686,
+ 1697,
+ 1857,
+ 1903,
+ 1914,
+ 2110,
+ 2283,
+ 2294,
+ 2452,
+ 2495,
+ 2506,
+ 2578,
+ 2627,
+ 2730,
+ 2785,
+ 2804,
+ 2853,
+ 2872,
+ 2961,
+ 2997,
+ 3264,
+ 3424,
+ 3446,
+ 3457,
+ 3686,
+ 3708,
+ 3719,
+ 3868,
+ 4013,
+ 5033,
+ 5044,
+ 5074,
+ 5086,
+ 5358,
+ 5807,
+ 5845,
+ 6064,
+ 6245,
+ 6624
+ ],
+ "errorMessage": "check GlobalState exists"
+ },
+ {
+ "pc": [
+ 1545,
+ 2142
+ ],
+ "errorMessage": "delegation type must not be self for global plugins"
+ },
+ {
+ "pc": [
+ 2590
+ ],
+ "errorMessage": "escrow already exists"
+ },
+ {
+ "pc": [
+ 721,
+ 2638,
+ 2741,
+ 2973,
+ 3206,
+ 3435,
+ 3697,
+ 5620
+ ],
+ "errorMessage": "escrow does not exist"
+ },
+ {
+ "pc": [
+ 1800,
+ 2415
+ ],
+ "errorMessage": "escrow must be set if defaultToEscrow is true"
+ },
+ {
+ "pc": [
+ 4007
+ ],
+ "errorMessage": "execution key does not exist"
+ },
+ {
+ "pc": [
+ 3927
+ ],
+ "errorMessage": "execution key update must match first valid"
+ },
+ {
+ "pc": [
+ 3937
+ ],
+ "errorMessage": "execution key update must match last valid"
+ },
+ {
+ "pc": [
+ 2732,
+ 2963,
+ 3245
+ ],
+ "errorMessage": "forbidden"
+ },
+ {
+ "pc": [
+ 1628,
+ 2234,
+ 2769,
+ 3508,
+ 3767,
+ 4098,
+ 4215,
+ 4374,
+ 4529,
+ 4713,
+ 5664
+ ],
+ "errorMessage": "index access is out of bounds"
+ },
+ {
+ "pc": [
+ 6438
+ ],
+ "errorMessage": "invalid method signature length"
+ },
+ {
+ "pc": [
+ 1290,
+ 1370
+ ],
+ "errorMessage": "invalid number of bytes for (len+(uint64,uint64)[])"
+ },
+ {
+ "pc": [
+ 2720
+ ],
+ "errorMessage": "invalid number of bytes for (len+(uint64,uint64,bool1)[])"
+ },
+ {
+ "pc": [
+ 3418
+ ],
+ "errorMessage": "invalid number of bytes for (len+(uint64,uint8,uint64,uint64,uint64,bool1)[])"
+ },
+ {
+ "pc": [
+ 1487,
+ 2068
+ ],
+ "errorMessage": "invalid number of bytes for (len+(uint8[4],uint64)[])"
+ },
+ {
+ "pc": [
+ 1274,
+ 1354,
+ 2955,
+ 3152,
+ 3680,
+ 4508
+ ],
+ "errorMessage": "invalid number of bytes for (len+uint64[])"
+ },
+ {
+ "pc": [
+ 3840,
+ 4690
+ ],
+ "errorMessage": "invalid number of bytes for (len+uint8[32][])"
+ },
+ {
+ "pc": [
+ 700,
+ 1170,
+ 1256,
+ 1310,
+ 1336,
+ 1424,
+ 1845,
+ 1961,
+ 1999,
+ 2442,
+ 2569,
+ 2618,
+ 2696,
+ 2929,
+ 3129,
+ 3393,
+ 3656,
+ 4487,
+ 4825,
+ 4850
+ ],
+ "errorMessage": "invalid number of bytes for (len+utf8[])"
+ },
+ {
+ "pc": [
+ 1016,
+ 1144,
+ 1241,
+ 1321,
+ 1435,
+ 1495,
+ 1506,
+ 1517,
+ 2011,
+ 2076,
+ 2088,
+ 2100
+ ],
+ "errorMessage": "invalid number of bytes for bool8"
+ },
+ {
+ "pc": [
+ 615,
+ 1135,
+ 1232,
+ 1401,
+ 1454,
+ 1464,
+ 1822,
+ 1973,
+ 2033,
+ 2044,
+ 3103,
+ 3848,
+ 3859,
+ 4836,
+ 4861,
+ 5146
+ ],
+ "errorMessage": "invalid number of bytes for uint64"
+ },
+ {
+ "pc": [
+ 1446,
+ 2025
+ ],
+ "errorMessage": "invalid number of bytes for uint8"
+ },
+ {
+ "pc": [
+ 596,
+ 607,
+ 785,
+ 816,
+ 1008,
+ 1157,
+ 1411,
+ 1832,
+ 1986,
+ 3116,
+ 3822,
+ 3998
+ ],
+ "errorMessage": "invalid number of bytes for uint8[32]"
+ },
+ {
+ "pc": [
+ 1185
+ ],
+ "errorMessage": "invalid number of bytes for uint8[4]"
+ },
+ {
+ "pc": [
+ 6364
+ ],
+ "errorMessage": "invalid oncomplete must be no op"
+ },
+ {
+ "pc": [
+ 3283
+ ],
+ "errorMessage": "invalid payment"
+ },
+ {
+ "pc": [
+ 6378
+ ],
+ "errorMessage": "invalid sender app id"
+ },
+ {
+ "pc": [
+ 6370
+ ],
+ "errorMessage": "invalid sender must be this app id"
+ },
+ {
+ "pc": [
+ 1643,
+ 2249
+ ],
+ "errorMessage": "invalid size"
+ },
+ {
+ "pc": [
+ 6416
+ ],
+ "errorMessage": "malformed method offsets"
+ },
+ {
+ "pc": [
+ 1653,
+ 2259,
+ 3959,
+ 4413,
+ 4449,
+ 4569,
+ 4646
+ ],
+ "errorMessage": "max array length exceeded"
+ },
+ {
+ "pc": [
+ 6569
+ ],
+ "errorMessage": "method on cooldown"
+ },
+ {
+ "pc": [
+ 1112,
+ 6239
+ ],
+ "errorMessage": "missing rekey back"
+ },
+ {
+ "pc": [
+ 793
+ ],
+ "errorMessage": "only admin can change the admin account"
+ },
+ {
+ "pc": [
+ 1890,
+ 2463,
+ 2478,
+ 3197,
+ 5599,
+ 6183
+ ],
+ "errorMessage": "plugin does not exist"
+ },
+ {
+ "pc": [
+ 6188,
+ 6399
+ ],
+ "errorMessage": "plugin expired"
+ },
+ {
+ "pc": [
+ 6192,
+ 6402
+ ],
+ "errorMessage": "plugin on cooldown"
+ },
+ {
+ "pc": [
+ 852
+ ],
+ "errorMessage": "sender must be admin plugin"
+ },
+ {
+ "pc": [
+ 633
+ ],
+ "errorMessage": "sender must be either controlledAddress or admin"
+ },
+ {
+ "pc": [
+ 3164
+ ],
+ "errorMessage": "transaction type is pay"
+ },
+ {
+ "pc": [
+ 1561,
+ 2158
+ ],
+ "errorMessage": "using execution key requires global plugin"
+ }
+ ],
+ "pcOffsetMethod": "none"
+ },
+ "clear": {
+ "sourceInfo": [],
+ "pcOffsetMethod": "none"
+ }
+ },
+ "source": {
+ "approval": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOCA0MDAgMjE3MDAgMjc3MDAKICAgIGJ5dGVjYmxvY2sgImNvbnRyb2xsZWRfYWRkcmVzcyIgIiIgImFkbWluIiAibGFzdF91c2VyX2ludGVyYWN0aW9uIiAicCIgImUiICJsYXN0X2NoYW5nZSIgMHgxNTFmN2M3NSAieCIgMHgwMCAweDAwMDAgInNwZW5kaW5nX2FkZHJlc3MiIDB4MDAyYSAweDAwMGEgImEiIDB4MDEgIm4iICJyZWtleV9pbmRleCIgImVzY3Jvd19mYWN0b3J5IiAiY3VycmVudF9wbHVnaW4iIDB4MDAwMiAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAweDZjYzNmNjA2IDB4MDAyYwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwCiAgICAvLyByZWtleUluZGV4ID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMCwga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNSZWtleUluZGV4IH0pCiAgICBieXRlYyAxNyAvLyAicmVrZXlfaW5kZXgiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzCiAgICAvLyBleHBvcnQgY2xhc3MgQWJzdHJhY3RlZEFjY291bnQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJ6IG1haW5fY3JlYXRlX05vT3BAMzQKICAgIHB1c2hieXRlc3MgMHhiZDYwOTllNSAweGQyNGI3NTU2IDB4MTQ3YjZjZDYgMHgxM2JjNDRlNCAvLyBtZXRob2QgInJlZ2lzdGVyKHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQiLCBtZXRob2QgImFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAiYXJjNThfZ2V0QWRtaW4oKWFkZHJlc3MiCiAgICBieXRlYyAyMiAvLyBtZXRob2QgImFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzKCl2b2lkIgogICAgcHVzaGJ5dGVzcyAweGM5NWE1ZDNkIDB4NDcyN2FmMjEgMHg1ODJmZjM4MiAweGRlZmQ1Y2QyIDB4YjNjODBkZjkgMHhlZWY0NDhmZCAweDM4ZjU5MWVhIDB4ZTM1MGI5ZDQgMHgwYThjYjJjMiAweDI1YjcxM2NhIDB4ZWJhZjE0YTAgMHgxZmRhM2I0ZiAweDlkM2Y4OTE4IDB4YmY0ZDdjNTcgMHhkNWRkMzgyYiAweDVjZWJlZDQzIDB4ZDU4Njg1YWYgMHg3YzM3MTU2ZSAweGFmZmFhNGU4IDB4YTI0MDNkZGYgMHgwMmZlNDUxNSAweDQxYmRjNjgwIDB4NTBmM2UzNWMgLy8gbWV0aG9kICJhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkIiwgbWV0aG9kICJhcmM1OF9jYW5DYWxsKHVpbnQ2NCxib29sLGFkZHJlc3Msc3RyaW5nLGJ5dGVbNF0pYm9vbCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQsYm9vbCxzdHJpbmcsdWludDY0W10sKHVpbnQ2NCx1aW50NjQpW10pdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyxib29sLHN0cmluZyx1aW50NjRbXSwodWludDY0LHVpbnQ2NClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4oc3RyaW5nKXZvaWQiLCBtZXRob2QgImFyYzU4X25ld0VzY3JvdyhzdHJpbmcpdWludDY0IiwgbWV0aG9kICJhcmM1OF90b2dnbGVFc2Nyb3dMb2NrKHN0cmluZykodWludDY0LGJvb2wpIiwgbWV0aG9kICJhcmM1OF9yZWNsYWltKHN0cmluZywodWludDY0LHVpbnQ2NCxib29sKVtdKXZvaWQiLCBtZXRob2QgImFyYzU4X29wdGluRXNjcm93KHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9wbHVnaW5PcHRpbkVzY3Jvdyh1aW50NjQsYWRkcmVzcyxzdHJpbmcsdWludDY0W10scGF5KXZvaWQiLCBtZXRob2QgImFyYzU4X2FkZEFsbG93YW5jZXMoc3RyaW5nLCh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9yZW1vdmVBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRFeGVjdXRpb25LZXkoYnl0ZVszMl0sYnl0ZVszMl1bXSx1aW50NjQsdWludDY0KXZvaWQiLCBtZXRob2QgImFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShieXRlWzMyXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9nZXRQbHVnaW5zKCh1aW50NjQsYWRkcmVzcyxzdHJpbmcpW10pKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LChieXRlWzRdLHVpbnQ2NCx1aW50NjQpW10sYm9vbCxib29sLGJvb2wsdWludDY0LHVpbnQ2NClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0TmFtZWRQbHVnaW5zKHN0cmluZ1tdKSh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQsdWludDY0KVtdLGJvb2wsYm9vbCxib29sLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgImFyYzU4X2dldEVzY3Jvd3Moc3RyaW5nW10pKHVpbnQ2NCxib29sKVtdIiwgbWV0aG9kICJhcmM1OF9nZXRBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSkodWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0RXhlY3V0aW9ucyhieXRlWzMyXVtdKShieXRlWzMyXVtdLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgIm1icihzdHJpbmcsdWludDY0LHN0cmluZyx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbCx1aW50NjQpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcmVnaXN0ZXIgYXJjNThfY2hhbmdlQWRtaW4gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gYXJjNThfZ2V0QWRtaW4gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MgYXJjNThfcmVrZXlUbyBhcmM1OF9jYW5DYWxsIGFyYzU4X3Jla2V5VG9QbHVnaW4gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luIGFyYzU4X2FkZFBsdWdpbiBhcmM1OF9yZW1vdmVQbHVnaW4gYXJjNThfYWRkTmFtZWRQbHVnaW4gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4gYXJjNThfbmV3RXNjcm93IGFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2sgYXJjNThfcmVjbGFpbSBhcmM1OF9vcHRpbkVzY3JvdyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdyBhcmM1OF9hZGRBbGxvd2FuY2VzIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMgYXJjNThfYWRkRXhlY3V0aW9uS2V5IGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleSBhcmM1OF9nZXRQbHVnaW5zIGFyYzU4X2dldE5hbWVkUGx1Z2lucyBhcmM1OF9nZXRFc2Nyb3dzIGFyYzU4X2dldEFsbG93YW5jZXMgYXJjNThfZ2V0RXhlY3V0aW9ucyBtYnIKICAgIGVycgoKbWFpbl9jcmVhdGVfTm9PcEAzNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gZXhwb3J0IGNsYXNzIEFic3RyYWN0ZWRBY2NvdW50IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHVzaGJ5dGVzIDB4ZTE4MzYyZTIgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihhZGRyZXNzLGFkZHJlc3MsdWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBjcmVhdGVBcHBsaWNhdGlvbgogICAgZXJyCgoKLy8gX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50KGFycmF5X2l0ZW1zX2NvdW50OiB1aW50NjQsIGFycmF5X2hlYWRfYW5kX3RhaWw6IGJ5dGVzLCBuZXdfaXRlbXNfY291bnQ6IHVpbnQ2NCwgbmV3X2hlYWRfYW5kX3RhaWw6IGJ5dGVzKSAtPiBieXRlczoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50OgogICAgcHJvdG8gNCAxCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGZyYW1lX2RpZyAtNAogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGludGNfMCAvLyAwCgpkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfZm9yX2hlYWRlckAxOgogICAgZnJhbWVfZGlnIDQKICAgIGZyYW1lX2RpZyAzCiAgICA8CiAgICBieiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfYWZ0ZXJfZm9yQDQKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIDQKICAgIGR1cAogICAgY292ZXIgMgogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAyCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIDEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSA0CiAgICBiIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDEKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JANDoKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBmcmFtZV9idXJ5IDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDQKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDU6CiAgICBmcmFtZV9kaWcgNAogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JAOAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgNAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDEKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBmcmFtZV9idXJ5IDQKICAgIGIgZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2Zvcl9oZWFkZXJANQoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2FmdGVyX2ZvckA4OgogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTIKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMAogICAgc3Vic3RyaW5nMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5jcmVhdGVBcHBsaWNhdGlvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmNyZWF0ZUFwcGxpY2F0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQwOQogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyCiAgICAvLyBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIHR4biBTZW5kZXIKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyLTQxMwogICAgLy8gVHhuLnNlbmRlciA9PT0gY29udHJvbGxlZEFkZHJlc3MubmF0aXZlCiAgICAvLyB8fCBUeG4uc2VuZGVyID09PSBhZG1pbi5uYXRpdmUsCiAgICBibnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF90cnVlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTMKICAgIC8vIHx8IFR4bi5zZW5kZXIgPT09IGFkbWluLm5hdGl2ZSwKICAgIHR4biBTZW5kZXIKICAgIGRpZyAyCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxMi00MTMKICAgIC8vIFR4bi5zZW5kZXIgPT09IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZQogICAgLy8gfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgYnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF9mYWxzZUA0CgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX3RydWVAMzoKICAgIGludGNfMSAvLyAxCgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDExLTQxNQogICAgLy8gYXNzZXJ0KAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIC8vICAgfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgLy8gICBFUlJfU0VOREVSX01VU1RfQkVfQURNSU5fT1JfQ09OVFJPTExFRF9BRERSRVNTCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIHNlbmRlciBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkQWRkcmVzcyBvciBhZG1pbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxNgogICAgLy8gYXNzZXJ0KGFkbWluICE9PSBjb250cm9sbGVkQWRkcmVzcyk7CiAgICBkaWcgMQogICAgZHVwCiAgICBkaWcgNAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAhPQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTgKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBhZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBieiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDcKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDIwCiAgICAvLyB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUgPSBlc2Nyb3dGYWN0b3J5OwogICAgZGlnIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQyMQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBHbG9iYWwuemVyb0FkZHJlc3M7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MDkKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDc6CiAgICBkaWcgMgogICAgYiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDgKCmNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucmVnaXN0ZXJbcm91dGluZ10oKSAtPiB2b2lkOgpyZWdpc3RlcjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzEKICAgIC8vIHJlZ2lzdGVyKGVzY3Jvdzogc3RyaW5nKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMgogICAgLy8gbGV0IGFwcDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzMKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBieXRlY18xIC8vICIiCiAgICAhPQogICAgYnogcmVnaXN0ZXJfYWZ0ZXJfaWZfZWxzZUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzQKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzNQogICAgLy8gYXBwID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBidXJ5IDEKCnJlZ2lzdGVyX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQzCiAgICAvLyBhbW91bnQ6IEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01icgogICAgcHVzaGludCAxMjEwMCAvLyAxMjEwMAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDEtNDQ0CiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICAvLyAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyB9KSwKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX25leHQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDUKICAgIC8vIGFwcAogICAgZGlnIDEKICAgIGl0b2IKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBwdXNoYnl0ZXMgMHg2MDdlNzA0NiAvLyBtZXRob2QgInJlZ2lzdGVyKHBheSx1aW50NjQpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMQogICAgLy8gcmVnaXN0ZXIoZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NoYW5nZUFkbWluW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfY2hhbmdlQWRtaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gb25seSBhZG1pbiBjYW4gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NTcKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzAKICAgIC8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKG5ld0FkbWluOiBBZGRyZXNzKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDcxCiAgICAvLyBjb25zdCBrZXkgPSBjbG9uZSh0aGlzLmN1cnJlbnRQbHVnaW4udmFsdWUpCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MQogICAgLy8gY29uc3Qga2V5ID0gY2xvbmUodGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzIKICAgIC8vIGNvbnN0IHsgcGx1Z2luLCBlc2Nyb3cgfSA9IGtleQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDQwIC8vIDQwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGxlbgogICAgZGlnIDMKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc0CiAgICAvLyBhc3NlcnQoZXNjcm93ID09PSAnJywgRVJSX0FETUlOX1BMVUdJTlNfQ0FOTk9UX1VTRV9FU0NST1dTKTsKICAgIGJ5dGVjXzEgLy8gIiIKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gcGx1Z2lucyBjYW5ub3QgdXNlIGVzY3Jvd3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzUKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsIEVSUl9TRU5ERVJfTVVTVF9CRV9BRE1JTl9QTFVHSU4pOwogICAgdHhuIFNlbmRlcgogICAgZGlnIDEKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gc2VuZGVyIG11c3QgYmUgYWRtaW4gcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc3CiAgICAvLyB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzcKICAgIC8vIHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcywKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIHN3YXAKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc2LTQ3OQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICAvLyAgICdUaGlzIHBsdWdpbiBpcyBub3QgaW4gY29udHJvbCBvZiB0aGUgYWNjb3VudCcKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgyCiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMgJiYgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuYWRtaW4sCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgZHVwCiAgICBwdXNoaW50IDI3IC8vIDI3CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgaW50Y18xIC8vIDEKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODEtNDg0CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cyAmJiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5hZG1pbiwKICAgIC8vICAgJ1RoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcycKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gZG9lcyBub3QgaGF2ZSBhZG1pbiBwcml2aWxlZ2VzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODYKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBkaWcgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODcKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbl9hZnRlcl9pZl9lbHNlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MAogICAgLy8gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4obmV3QWRtaW46IEFkZHJlc3MpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0QWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDk3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3M6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA2CiAgICAvLyBhc3NlcnQodGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IHRoaXMuZ2V0QXV0aEFkZHJlc3MoKSk7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBzcGVuZGluZ0FkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzU3BlbmRpbmdBZGRyZXNzIH0pCiAgICBieXRlYyAxMSAvLyAic3BlbmRpbmdfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDYKICAgIC8vIGFzc2VydCh0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZS5hdXRoQWRkcmVzcyA9PT0gdGhpcy5nZXRBdXRoQWRkcmVzcygpKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIHN3YXAKICAgIGNvdmVyIDIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNgogICAgLy8gYXNzZXJ0KHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSB0aGlzLmdldEF1dGhBZGRyZXNzKCkpOwogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA3CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwOAogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0geyBwbHVnaW46IDAsIGNhbGxlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsIGVzY3JvdzogJycgfQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGludGNfMCAvLyAwCiAgICBpdG9iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwMmEwMDAwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOAogICAgLy8gY3VycmVudFBsdWdpbiA9IEdsb2JhbFN0YXRlPFBsdWdpbktleT4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0N1cnJlbnRQbHVnaW4gfSkKICAgIGJ5dGVjIDE5IC8vICJjdXJyZW50X3BsdWdpbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDgKICAgIC8vIHRoaXMuY3VycmVudFBsdWdpbi52YWx1ZSA9IHsgcGx1Z2luOiAwLCBjYWxsZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLCBlc2Nyb3c6ICcnIH0KICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDkKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IDAKICAgIGludGNfMCAvLyAwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNQogICAgLy8gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF92ZXJpZnlBdXRoQWRkcmVzc190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBiIGFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3Jla2V5VG86CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTE5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMwogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyNgogICAgLy8gbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50IgogICAgaXR4bl9maWVsZCBOb3RlCiAgICBkaWcgMgogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIxLTUyNwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICByZWtleVRvOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICBub3RlOiAncmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50JwogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MzAKICAgIC8vIGlmIChmbGFzaCkgdGhpcy5hc3NlcnRSZWtleXNCYWNrKCk7CiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMgoKYXJjNThfcmVrZXlUb193aGlsZV90b3BANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBkaWcgMQogICAgZ2xvYmFsIEdyb3VwU2l6ZQogICAgPAogICAgYnogYXJjNThfcmVrZXlUb19ibG9ja0AxMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBkaWcgMQogICAgY2FsbHN1YiB0eG5SZWtleXNCYWNrCiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NQogICAgLy8gcmVrZXlzQmFjayA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxCgphcmM1OF9yZWtleVRvX2Jsb2NrQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3MAogICAgLy8gYXNzZXJ0KHJla2V5c0JhY2ssIEVSUl9NSVNTSU5HX1JFS0VZX0JBQ0spOwogICAgZHVwCiAgICBhc3NlcnQgLy8gbWlzc2luZyByZWtleSBiYWNrCgphcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3Jla2V5VG9fYWZ0ZXJfaWZfZWxzZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAyCiAgICBiIGFyYzU4X3Jla2V5VG9fd2hpbGVfdG9wQDYKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NhbkNhbGxbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9jYW5DYWxsOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU0NAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCA0IC8vIDQKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzRdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTUyCiAgICAvLyBpZiAoZ2xvYmFsKSB7CiAgICBieiBhcmM1OF9jYW5DYWxsX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1MwogICAgLy8gdGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIEdsb2JhbC56ZXJvQWRkcmVzcywgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBjYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCiAgICBwb3AKCmFyYzU4X2NhbkNhbGxfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1NQogICAgLy8gcmV0dXJuIHRoaXMucGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luLCBhZGRyZXNzLm5hdGl2ZSwgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBkaWcgMwogICAgZGlnIDMKICAgIGNhbGxzdWIgcGx1Z2luQ2FsbEFsbG93ZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NDQKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZWtleVRvUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU2Ny01NzMKICAgIC8vIGFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXQogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0KVtdKQogICAgY2FsbHN1YiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW4KICAgIHBvcG4gMgogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYxOS02MjQKICAgIC8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50NjQpW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUKICAgIC8vIG5hbWVkUGx1Z2lucyA9IEJveE1hcDxzdHJpbmcsIFBsdWdpbktleT4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeE5hbWVkUGx1Z2lucyB9KTsKICAgIGJ5dGVjIDE2IC8vICJuIgogICAgdW5jb3ZlciA1CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjYKICAgIC8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjUtNjMxCiAgICAvLyB0aGlzLmFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIC8vICAgZ2xvYmFsLAogICAgLy8gICBlc2Nyb3csCiAgICAvLyAgIG1ldGhvZE9mZnNldHMsCiAgICAvLyAgIGZ1bmRzUmVxdWVzdAogICAgLy8gKTsKICAgIGNvdmVyIDQKICAgIGNhbGxzdWIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luCiAgICBwb3BuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MTktNjI0CiAgICAvLyBhcmM1OF9yZWtleVRvTmFtZWRQbHVnaW4oCiAgICAvLyAgIG5hbWU6IHN0cmluZywKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZFBsdWdpbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZFBsdWdpbjoKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDMKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY0OC02NjAKICAgIC8vIGFyYzU4X2FkZFBsdWdpbigKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFkbWluOiBib29sZWFuLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZTogVWludDgsCiAgICAvLyAgIGxhc3RWYWxpZDogdWludDY0LAogICAgLy8gICBjb29sZG93bjogdWludDY0LAogICAgLy8gICBtZXRob2RzOiBNZXRob2RSZXN0cmljdGlvbltdLAogICAgLy8gICB1c2VSb3VuZHM6IGJvb2xlYW4sCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleTogYm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdFRvRXNjcm93OiBib29sZWFuCiAgICAvLyApOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cG4gMgogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDgKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50OFs0XSx1aW50NjQpW10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2NAogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgYnl0ZWMgMTUgLy8gMHgwMQogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjQtNjY1CiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjUKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDEwCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjY0LTY2NQogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjMtNjY2CiAgICAvLyAhKAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjItNjY4CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gICAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gICApLAogICAgLy8gICBFUlJfWkVST19BRERSRVNTX0RFTEVHQVRJT05fVFlQRQogICAgLy8gKQogICAgYXNzZXJ0IC8vIGRlbGVnYXRpb24gdHlwZSBtdXN0IG5vdCBiZSBzZWxmIGZvciBnbG9iYWwgcGx1Z2lucwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MS02NzIKICAgIC8vIHVzZUV4ZWN1dGlvbktleSAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMQogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMTAKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzEtNjcyCiAgICAvLyB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjcwLTY3MwogICAgLy8gISgKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjktNjc1CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9VU0lOR19FWEVDVVRJT05fS0VZX1JFUVVJUkVTX0dMT0JBTAogICAgLy8gKQogICAgYXNzZXJ0IC8vIHVzaW5nIGV4ZWN1dGlvbiBrZXkgcmVxdWlyZXMgZ2xvYmFsIHBsdWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3OAogICAgLy8gaWYgKGRlZmF1bHRUb0VzY3JvdykgewogICAgZHVwCiAgICBibnogYXJjNThfYWRkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyA5CiAgICBidXJ5IDE3CgphcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2ODMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDExCiAgICBpdG9iCiAgICBkaWcgMTEKICAgIGNvbmNhdAogICAgZGlnIDE3CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMTgKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEzCgphcmM1OF9hZGRQbHVnaW5fd2hpbGVfdG9wQDEyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyAxMgogICAgZGlnIDQKICAgIDwKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NwogICAgLy8gbWV0aG9kSW5mb3MucHVzaCh7IC4uLm1ldGhvZHNbaV0sIGxhc3RDYWxsZWQ6IDAgfSkKICAgIGRpZyA0CiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgc3dhcAogICAgZXh0cmFjdCA0IDgKICAgIGRpZyAxCiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2l6ZQogICAgY29uY2F0CiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgZGlnIDE2CiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEzCiAgICBiIGFyYzU4X2FkZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9mYWxzZUAxNgogICAgZ2xvYmFsIFJvdW5kCiAgICBidXJ5IDE0CgphcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9tZXJnZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTIKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkyCiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk2CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5NwogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICBkaWcgMTYKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDE5CiAgICBzd2FwCiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5My02OTgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKYXJjNThfYWRkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAyCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyA5CiAgICBjYWxsc3ViIG1heWJlTmV3RXNjcm93CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzA0LTcxNQogICAgLy8gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIGVzY3JvdzogZXNjcm93SUQsCiAgICAvLyAgIGFkbWluLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSwKICAgIC8vICAgbGFzdFZhbGlkLAogICAgLy8gICBjb29sZG93biwKICAgIC8vICAgbWV0aG9kczogY2xvbmUobWV0aG9kSW5mb3MpLAogICAgLy8gICB1c2VSb3VuZHMsCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleSwKICAgIC8vICAgbGFzdENhbGxlZDogMCwKICAgIC8vICAgc3RhcnQ6IGVwb2NoUmVmLAogICAgLy8gfQogICAgaXRvYgogICAgZGlnIDgKICAgIGNvbmNhdAogICAgZGlnIDcKICAgIGl0b2IKICAgIGNvbmNhdAogICAgZGlnIDYKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWMgMjMgLy8gMHgwMDJjCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGRpZyAxMQogICAgc2V0Yml0CiAgICBpbnRjXzEgLy8gMQogICAgZGlnIDUKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDIKICAgIGRpZyA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgZGlnIDE4CiAgICBjb25jYXQKICAgIGRpZyAxNAogICAgaXRvYgogICAgY29uY2F0CiAgICBkaWcgMTUKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZGlnIDE3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MDQtNzE1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYsCiAgICAvLyB9CiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjQ4LTY2MAogICAgLy8gYXJjNThfYWRkUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfYWRkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBidXJ5IDE0CiAgICBiIGFyYzU4X2FkZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDE3CgphcmM1OF9hZGRQbHVnaW5faWZfYm9keUAxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzkKICAgIC8vIGFzc2VydChlc2Nyb3cgIT09ICcnLCBFUlJfRVNDUk9XX1JFUVVJUkVEX1RPX0JFX1NFVF9BU19ERUZBVUxUKQogICAgZGlnIDkKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjgwCiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxNwogICAgYiBhcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQ6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9tZXJnZUA1CgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZW1vdmVQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVQbHVnaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjcyOAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MjgKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMwCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXI6IGNhbGxlci5uYXRpdmUsIGVzY3JvdyB9CiAgICB1bmNvdmVyIDIKICAgIGl0b2IKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczMQogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMzCiAgICAvLyBjb25zdCBtZXRob2RzTGVuZ3RoOiB1aW50NjQgPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzLmxlbmd0aAogICAgZHVwCiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczNwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NDAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQwCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQxCiAgICAvLyBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICBkaWcgMgogICAgZGlnIDIKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzgtNzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZE5hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfYWRkTmFtZWRQbHVnaW46CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAzCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NjUtNzc4CiAgICAvLyBhcmM1OF9hZGROYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIGNvdmVyIDIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDgKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDQKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ4WzRdLHVpbnQ2NClbXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgY292ZXIgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NzkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzc5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODAKICAgIC8vIGFzc2VydCghdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZXhpc3RzKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgzCiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzg0CiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAxMQogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4Mi03ODUKICAgIC8vICEoCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4MS03ODcKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9aRVJPX0FERFJFU1NfREVMRUdBVElPTl9UWVBFCiAgICAvLyApCiAgICBhc3NlcnQgLy8gZGVsZWdhdGlvbiB0eXBlIG11c3Qgbm90IGJlIHNlbGYgZm9yIGdsb2JhbCBwbHVnaW5zCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3OTEKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDExCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODktNzkyCiAgICAvLyAhKAogICAgLy8gICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4OC03OTQKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgICBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIC8vICAgKSwKICAgIC8vICAgRVJSX1VTSU5HX0VYRUNVVElPTl9LRVlfUkVRVUlSRVNfR0xPQkFMCiAgICAvLyApCiAgICBhc3NlcnQgLy8gdXNpbmcgZXhlY3V0aW9uIGtleSByZXF1aXJlcyBnbG9iYWwgcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk3CiAgICAvLyBpZiAoZGVmYXVsdFRvRXNjcm93KSB7CiAgICBkaWcgMQogICAgYm56IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyAxMAogICAgYnVyeSAxOQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDIKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDEyCiAgICBpdG9iCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgZGlnIDE5CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDE5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODAzCiAgICAvLyB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZSA9IGNsb25lKGtleSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMjAKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDE1CgphcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODA2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDE0CiAgICBkaWcgNQogICAgPAogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfd2hpbGVAMTQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDcKICAgIC8vIG1ldGhvZEluZm9zLnB1c2goeyAuLi5tZXRob2RzW2ldLCBsYXN0Q2FsbGVkOiAwIH0pCiAgICBkaWcgNQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyAxNQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDQKICAgIHN3YXAKICAgIGV4dHJhY3QgNCA4CiAgICBkaWcgMQogICAgbGVuCiAgICBwdXNoaW50IDQgLy8gNAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHNpemUKICAgIGNvbmNhdAogICAgZGlnIDIxCiAgICBjb25jYXQKICAgIGRpZyAxOAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMTgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBtZXRob2RzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxNQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX3doaWxlQDE0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMAogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTAKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTcKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODEzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTMKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODE0CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIGRpZyAxOAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMjEKICAgIHN3YXAKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4CiAgICAvLyByZXR1cm4gTWluTmFtZWRQbHVnaW5NQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhuYW1lKS5sZW5ndGgpOwogICAgZGlnIDE2CiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgICsKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTYKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTEtODE3CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5wbHVnaW5zTWJyKGVzY3Jvd0tleSwgbWV0aG9kSW5mb3MubGVuZ3RoKSArIHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODIwCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyAxMAogICAgY2FsbHN1YiBtYXliZU5ld0VzY3JvdwogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZGlnIDMKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTkKICAgIGdsb2JhbCBSb3VuZAoKYXJjNThfYWRkTmFtZWRQbHVnaW5fdGVybmFyeV9tZXJnZUAyMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MjQtODM1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYKICAgIC8vIH0KICAgIGRpZyAxNgogICAgaXRvYgogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIGRpZyA5CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyA4CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDIzIC8vIDB4MDAyYwogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgMTMKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIGRpZyA3CiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAyCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyAyMQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyAxNwogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyNC04MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewogICAgLy8gICBlc2Nyb3c6IGVzY3Jvd0lELAogICAgLy8gICBhZG1pbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGUsCiAgICAvLyAgIGxhc3RWYWxpZCwKICAgIC8vICAgY29vbGRvd24sCiAgICAvLyAgIG1ldGhvZHM6IGNsb25lKG1ldGhvZEluZm9zKSwKICAgIC8vICAgdXNlUm91bmRzLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXksCiAgICAvLyAgIGxhc3RDYWxsZWQ6IDAsCiAgICAvLyAgIHN0YXJ0OiBlcG9jaFJlZgogICAgLy8gfQogICAgZHVwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIHN3YXAKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc2NS03NzgKICAgIC8vIGFyYzU4X2FkZE5hbWVkUGx1Z2luKAogICAgLy8gICBuYW1lOiBzdHJpbmcsCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBjYWxsZXI6IEFkZHJlc3MsCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBhZG1pbjogYm9vbGVhbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGU6IFVpbnQ4LAogICAgLy8gICBsYXN0VmFsaWQ6IHVpbnQ2NCwKICAgIC8vICAgY29vbGRvd246IHVpbnQ2NCwKICAgIC8vICAgbWV0aG9kczogTWV0aG9kUmVzdHJpY3Rpb25bXSwKICAgIC8vICAgdXNlUm91bmRzOiBib29sZWFuLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXk6IGJvb2xlYW4sCiAgICAvLyAgIGRlZmF1bHRUb0VzY3JvdzogYm9vbGVhbgogICAgLy8gKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X2ZhbHNlQDE5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDIwCgphcmM1OF9hZGROYW1lZFBsdWdpbl9pZl9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc5OAogICAgLy8gYXNzZXJ0KGVzY3JvdyAhPT0gJycsIEVSUl9FU0NST1dfUkVRVUlSRURfVE9fQkVfU0VUX0FTX0RFRkFVTFQpCiAgICBkaWcgMTAKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk5CiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxOQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDExCgphcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVOYW1lZFBsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDYKICAgIC8vIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKG5hbWU6IHN0cmluZyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDcKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQ3CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OAogICAgLy8gYXNzZXJ0KHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OQogICAgLy8gY29uc3QgYXBwID0gY2xvbmUodGhpcy5uYW1lZFBsdWdpbnMobmFtZSkudmFsdWUpCiAgICBkdXAKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTAKICAgIC8vIGFzc2VydCh0aGlzLnBsdWdpbnMoYXBwKS5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBwbHVnaW4gZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTIKICAgIC8vIGNvbnN0IG1ldGhvZHNMZW5ndGg6IHVpbnQ2NCA9IHRoaXMucGx1Z2lucyhhcHApLnZhbHVlLm1ldGhvZHMubGVuZ3RoCiAgICBkdXAKICAgIHB1c2hpbnQgNDQgLy8gNDQKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NAogICAgLy8gdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZGVsZXRlKCk7CiAgICBzd2FwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTUKICAgIC8vIHRoaXMucGx1Z2lucyhhcHApLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODU3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MAogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NjAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIGRpZyAzCiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MQogICAgLy8gYW1vdW50OiB0aGlzLm5hbWVkUGx1Z2luc01icihuYW1lKSArIHRoaXMucGx1Z2luc01icihhcHAuZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgZGlnIDMKICAgIGR1cAogICAgcHVzaGludCA0MCAvLyA0MAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMwogICAgY2FsbHN1YiBwbHVnaW5zTWJyCiAgICArCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1OC04NjIKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkgKyB0aGlzLnBsdWdpbnNNYnIoYXBwLmVzY3JvdywgbWV0aG9kc0xlbmd0aCkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0NgogICAgLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9uZXdFc2Nyb3dbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9uZXdFc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc1CiAgICAvLyBhcmM1OF9uZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NwogICAgLy8gYXNzZXJ0KCF0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfQUxSRUFEWV9FWElTVFMpOwogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAhCiAgICBhc3NlcnQgLy8gZXNjcm93IGFscmVhZHkgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc4CiAgICAvLyBhc3NlcnQoZXNjcm93ICE9PSAnJywgRVJSX0VTQ1JPV19OQU1FX1JFUVVJUkVEKTsKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgIT0KICAgIGFzc2VydCAvLyBFc2Nyb3cgbmFtZSBpcyByZXF1aXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3OQogICAgLy8gcmV0dXJuIHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NQogICAgLy8gYXJjNThfbmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIGl0b2IKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2tbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF90b2dnbGVFc2Nyb3dMb2NrOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg4CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4OAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg5CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODkxCiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5sb2NrZWQgPSAhdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkOwogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4OTYKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZTsKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVjbGFpbVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3JlY2xhaW06CiAgICBpbnRjXzAgLy8gMAogICAgZHVwCiAgICBieXRlY18xIC8vICIiCiAgICBkdXBuIDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0LGJvb2wxKVtdKQogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBmb3JiaWRkZW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA3CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA4CiAgICAvLyBjb25zdCBzZW5kZXIgPSBBcHBsaWNhdGlvbih0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZCkuYWRkcmVzcwogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTEwCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgcmVjbGFpbXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDUKICAgIDwKICAgIGJ6IGFyYzU4X3JlY2xhaW1fYWZ0ZXJfd2hpbGVAMTcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTEKICAgIC8vIGlmIChyZWNsYWltc1tpXS5hc3NldCA9PT0gMCkgewogICAgZGlnIDUKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgcHVzaGludCAxNyAvLyAxNwogICAgKgogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZHVwCiAgICBidXJ5IDEyCiAgICBibnogYXJjNThfcmVjbGFpbV9lbHNlX2JvZHlAMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTQKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE0CiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE1CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE1CiAgICAvLyBhbW91bnQ6IHJlY2xhaW1zW2ldLmFtb3VudAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTIKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSAxMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxOAogICAgLy8gaWYgKHJlY2xhaW1zW2ldLmNsb3NlT3V0KSB7CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGdldGJpdAogICAgYnogYXJjNThfcmVjbGFpbV9hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTkKICAgIC8vIHBtdC5zZXQoeyBjbG9zZVJlbWFpbmRlclRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE5CiAgICAvLyBwbXQuc2V0KHsgY2xvc2VSZW1haW5kZXJUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxMgogICAgYnVyeSAzCgphcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjIKICAgIC8vIHBtdC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGRpZyAxMAogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDgKICAgIGRpZyAyCiAgICBpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEA4OgogICAgZGlnIDgKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBkaWcgMTIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGRpZyAxCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxMi05MTYKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICAvLyAgIHNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50CiAgICAvLyB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyMgogICAgLy8gcG10LnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDIKCmFyYzU4X3JlY2xhaW1fZWxzZV9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE0CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTI3CiAgICAvLyBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNAogICAgLy8gY29uc3QgeGZlciA9IGl0eG4uYXNzZXRUcmFuc2Zlcih7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSA4CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMxCiAgICAvLyBpZiAocmVjbGFpbXNbaV0uY2xvc2VPdXQpIHsKICAgIHB1c2hpbnQgMTI4IC8vIDEyOAogICAgZ2V0Yml0CiAgICBieiBhcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VAMTIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzIKICAgIC8vIHhmZXIuc2V0KHsgYXNzZXRDbG9zZVRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMyCiAgICAvLyB4ZmVyLnNldCh7IGFzc2V0Q2xvc2VUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSA4CiAgICBidXJ5IDQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzUKICAgIC8vIHhmZXIuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBkaWcgNgogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDE0CiAgICBkaWcgMwogICAgaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEAxNDoKICAgIGRpZyA5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgZGlnIDcKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyAxMQogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjQtOTI5CiAgICAvLyBjb25zdCB4ZmVyID0gaXR4bi5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgc2VuZGVyLAogICAgLy8gICBhc3NldFJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgLy8gICB4ZmVyQXNzZXQ6IHJlY2xhaW1zW2ldLmFzc2V0CiAgICAvLyB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkzNQogICAgLy8geGZlci5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIGFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNgoKYXJjNThfcmVjbGFpbV9hZnRlcl93aGlsZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X29wdGluRXNjcm93W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfb3B0aW5Fc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ2CiAgICAvLyBhcmM1OF9vcHRpbkVzY3Jvdyhlc2Nyb3c6IHN0cmluZywgYXNzZXRzOiB1aW50NjRbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMwogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHVuY292ZXIgMgogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gZm9yYmlkZGVuCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ4CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKQogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDkKICAgIC8vIGNvbnN0IGVzY3Jvd0lEID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTAKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAzCiAgICBjb3ZlciA0CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUxCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU3CiAgICAvLyBhbW91bnQ6IEdsb2JhbC5hc3NldE9wdEluTWluQmFsYW5jZSAqIGFzc2V0cy5sZW5ndGgKICAgIGdsb2JhbCBBc3NldE9wdEluTWluQmFsYW5jZQogICAgdW5jb3ZlciAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTMtOTU4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X29wdGluRXNjcm93X3doaWxlX3RvcEAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBkaWcgMwogICAgPAogICAgYnogYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKHsgZXNjcm93LCBhc3NldDogYXNzZXRzW2ldIH0pLmV4aXN0cywKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgNgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBpdG9iCiAgICBieXRlYyAxMyAvLyAweDAwMGEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYzCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYyLTk2NQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgLy8gICBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2Ny05NzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTcxCiAgICAvLyBhc3NldEFtb3VudDogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBkaWcgMgogICAgZHVwCiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTY3LTk3MwogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldHNbaV0KICAgIC8vICAgfSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NjctOTc0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9vcHRpbkVzY3Jvd193aGlsZV90b3BAMwoKYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDYKICAgIC8vIGFyYzU4X29wdGluRXNjcm93KGVzY3Jvdzogc3RyaW5nLCBhc3NldHM6IHVpbnQ2NFtdKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3BsdWdpbk9wdGluRXNjcm93OgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5ODYtOTkyCiAgICAvLyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdygKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFzc2V0czogdWludDY0W10sCiAgICAvLyAgIG1iclBheW1lbnQ6IGd0eG4uUGF5bWVudFR4bgogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgY292ZXIgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgNQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgY292ZXIgNAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMSAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5OTMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93IH0KICAgIGRpZyAyCiAgICBpdG9iCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGR1cAogICAgY292ZXIgNAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk1CiAgICAvLyBhc3NlcnQodGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzLCBFUlJfUExVR0lOX0RPRVNfTk9UX0VYSVNUKQogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5NgogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk3CiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgcHVzaGludCA2NCAvLyA2NAogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gRXNjcm93IGlzIGxvY2tlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5OQogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMgogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICB0eG4gU2VuZGVyCiAgICBzd2FwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDItMTAwMwogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICBibnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF90cnVlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAzCiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICB0eG4gU2VuZGVyCiAgICBkaWcgNgogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDMKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgYm56IGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfdHJ1ZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwNAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgZGlnIDUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDQKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF9mYWxzZUA1CgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX3RydWVANDoKICAgIGludGNfMSAvLyAxCgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX21lcmdlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMS0xMDA2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgRVJSX0ZPUkJJRERFTgogICAgLy8gKQogICAgYXNzZXJ0IC8vIGZvcmJpZGRlbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDgKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBzd2FwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgMTAKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgIGRpZyAzCiAgICBkdXAKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMwogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEzCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMC0xMDE3CiAgICAvLyBhc3NlcnRNYXRjaCgKICAgIC8vICAgbWJyUGF5bWVudCwKICAgIC8vICAgewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9LAogICAgLy8gICBFUlJfSU5WQUxJRF9QQVlNRU5UCiAgICAvLyApCiAgICBzd2FwCiAgICBkaWcgMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgZ3R4bnMgQW1vdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxNAogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgIGRpZyA4CiAgICBkdXAKICAgIGNvdmVyIDQKICAgICoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGludmFsaWQgcGF5bWVudAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyMwogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgICoKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDcKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X3doaWxlX3RvcEA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA2CiAgICBkaWcgNAogICAgPAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVAMTEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgZGlnIDQKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyA0CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyOC0xMDMxCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMuYWxsb3dhbmNlcyh7IGVzY3JvdywgYXNzZXQ6IGFzc2V0c1tpXSB9KS5leGlzdHMsCiAgICAvLyAgIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMzcKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyA4CiAgICBkdXAKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDMzLTEwMzkKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDcKICAgIGIgYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfd2hpbGVfdG9wQDgKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2FmdGVyX3doaWxlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk4Ni05OTIKICAgIC8vIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93KAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYXNzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgbWJyUGF5bWVudDogZ3R4bi5QYXltZW50VHhuCiAgICAvLyApOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfZmFsc2VANToKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfbWVyZ2VANgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfYWRkQWxsb3dhbmNlc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEFsbG93YW5jZXM6CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiA0CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIHB1c2hpbnQgMzQgLy8gMzQKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sMSlbXSkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUzCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpOwogICAgYm94X2dldAogICAgcG9wCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1NQogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU1CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTkKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYKICAgIC8vIHJldHVybiBNaW5BbGxvd2FuY2VNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDYgLy8gMjc3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYwCiAgICAvLyBhbW91bnQ6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpICogYWxsb3dhbmNlcy5sZW5ndGgKICAgIGRpZyAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU2LTEwNjEKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFsbG93YW5jZXMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGJ1cnkgNQoKYXJjNThfYWRkQWxsb3dhbmNlc193aGlsZV90b3BANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDQKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDEwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NgogICAgLy8gY29uc3QgeyBhc3NldCwgdHlwZSwgYW1vdW50LCBtYXgsIGludGVydmFsLCB1c2VSb3VuZHMgfSA9IGFsbG93YW5jZXNbaV07CiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA1CiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICAqCiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDgKICAgIGRpZyAxCiAgICBleHRyYWN0IDggMQogICAgYnVyeSA4CiAgICBkaWcgMQogICAgZXh0cmFjdCA5IDgKICAgIGJ1cnkgMTIKICAgIGRpZyAxCiAgICBleHRyYWN0IDE3IDgKICAgIGJ1cnkgMTEKICAgIGRpZyAxCiAgICBleHRyYWN0IDI1IDgKICAgIGJ1cnkgMTAKICAgIHN3YXAKICAgIHB1c2hpbnQgMjY0IC8vIDI2NAogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0IH0KICAgIGRpZyA0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjgKICAgIC8vIGFzc2VydCghdGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0FMUkVBRFlfRVhJU1RTKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBhbHJlYWR5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4CiAgICBnbG9iYWwgUm91bmQKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNzEtMTA4MAogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIHR5cGUsCiAgICAvLyAgIHNwZW50OiAwLAogICAgLy8gICBhbW91bnQsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIG1heCwKICAgIC8vICAgaW50ZXJ2YWwsCiAgICAvLyAgIHN0YXJ0LAogICAgLy8gICB1c2VSb3VuZHMKICAgIC8vIH0KICAgIGRpZyA2CiAgICBkaWcgMTAKICAgIGNvbmNhdAogICAgZGlnIDExCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDczCiAgICAvLyBzcGVudDogMCwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA3MS0xMDgwCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgdHlwZSwKICAgIC8vICAgc3BlbnQ6IDAsCiAgICAvLyAgIGFtb3VudCwKICAgIC8vICAgbGFzdDogMCwKICAgIC8vICAgbWF4LAogICAgLy8gICBpbnRlcnZhbCwKICAgIC8vICAgc3RhcnQsCiAgICAvLyAgIHVzZVJvdW5kcwogICAgLy8gfQogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyA3CiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFsbG93YW5jZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA0CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA1CiAgICBiIGFyYzU4X2FkZEFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgYXJjNThfYWRkQWxsb3dhbmNlc190ZXJuYXJ5X21lcmdlQDkKCmFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3JlbW92ZUFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVBbGxvd2FuY2VzOgogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTQKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NQogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTYKICAgIC8vIGFzc2VydCghdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkLCBFUlJfRVNDUk9XX0xPQ0tFRCk7CiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIEVzY3JvdyBpcyBsb2NrZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk4CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTgKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfcmVtb3ZlQWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2CiAgICAvLyByZXR1cm4gTWluQWxsb3dhbmNlTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMoZXNjcm93KS5sZW5ndGgpOwogICAgZGlnIDMKICAgIGxlbgogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgaW50YyA2IC8vIDI3NzAwCiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMgogICAgLy8gYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIGRpZyAyCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTktMTEwMwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDMKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEwCiAgICAvLyBhc3NldDogYXNzZXRzW2ldCiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwOC0xMTExCiAgICAvLyBjb25zdCBrZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogYXNzZXRzW2ldCiAgICAvLyB9CiAgICBkaWcgNAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjIDEzIC8vIDB4MDAwYQogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5CiAgICAvLyBhbGxvd2FuY2VzID0gQm94TWFwPEFsbG93YW5jZUtleSwgQWxsb3dhbmNlSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEFsbG93YW5jZXMgfSkgLy8gMzhfNTAwCiAgICBieXRlYyAxNCAvLyAiYSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTIKICAgIC8vIGFzc2VydCh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMsIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTMKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLmRlbGV0ZSgpCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTA3CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA0CiAgICBiIGFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZEV4ZWN1dGlvbktleVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEV4ZWN1dGlvbktleToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIwCiAgICAvLyBhcmM1OF9hZGRFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPiwgZ3JvdXBzOiBieXRlczwzMj5bXSwgZmlyc3RWYWxpZDogdWludDY0LCBsYXN0VmFsaWQ6IHVpbnQ2NCk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAzMiAvLyAzMgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1aW50OFszMl1bXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSkKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMgogICAgLy8gaWYgKCF0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBibnogYXJjNThfYWRkRXhlY3V0aW9uS2V5X2Vsc2VfYm9keUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMy0xMTI3CiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlID0gewogICAgLy8gICBncm91cHM6IGNsb25lKGdyb3VwcyksCiAgICAvLyAgIGZpcnN0VmFsaWQsCiAgICAvLyAgIGxhc3RWYWxpZAogICAgLy8gfQogICAgZGlnIDMKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDAwMTIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICBzd2FwCiAgICBib3hfcHV0CgphcmM1OF9hZGRFeGVjdXRpb25LZXlfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMAogICAgLy8gYXJjNThfYWRkRXhlY3V0aW9uS2V5KGxlYXNlOiBieXRlczwzMj4sIGdyb3VwczogYnl0ZXM8MzI+W10sIGZpcnN0VmFsaWQ6IHVpbnQ2NCwgbGFzdFZhbGlkOiB1aW50NjQpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X2FkZEV4ZWN1dGlvbktleV9lbHNlX2JvZHlAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTI5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5maXJzdFZhbGlkID09PSBmaXJzdFZhbGlkLCBFUlJfRVhFQ1VUSU9OX0tFWV9VUERBVEVfTVVTVF9NQVRDSF9GSVJTVF9WQUxJRCkKICAgIGRpZyAyCiAgICBkdXAKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGRpZyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgdXBkYXRlIG11c3QgbWF0Y2ggZmlyc3QgdmFsaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTMwCiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPT09IGxhc3RWYWxpZCwgRVJSX0VYRUNVVElPTl9LRVlfVVBEQVRFX01VU1RfTUFUQ0hfTEFTVF9WQUxJRCkKICAgIGR1cAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICB1bmNvdmVyIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXhlY3V0aW9uIGtleSB1cGRhdGUgbXVzdCBtYXRjaCBsYXN0IHZhbGlkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEzMgogICAgLy8gdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMgPSBbLi4uY2xvbmUodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMpLCAuLi5jbG9uZShncm91cHMpXQogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBkaWcgMgogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciA0CiAgICBleHRyYWN0IDIgMAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICB1bmNvdmVyIDIKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDMKICAgIGV4dHJhY3QzCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIGIgYXJjNThfYWRkRXhlY3V0aW9uS2V5X2FmdGVyX2lmX2Vsc2VANAoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMzkKICAgIC8vIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShsZWFzZTogYnl0ZXM8MzI+KTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MAogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZXhpc3RzLCBFUlJfRVhFQ1VUSU9OX0tFWV9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MQogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUgfHwgdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPCBHbG9iYWwucm91bmQsIEVSUl9BRE1JTl9PTkxZKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfdHJ1ZUAzCiAgICBkdXAKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZ2xvYmFsIFJvdW5kCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF9mYWxzZUA0CgphcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF90cnVlQDM6CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNDMKICAgIC8vIHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZGVsZXRlKCkKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTM5CiAgICAvLyBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPik6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleV9ib29sX21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldFBsdWdpbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQ5CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUxCiAgICAvLyBsZXQgcGx1Z2luczogUGx1Z2luSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTIKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0UGx1Z2luc193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUyCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBidXJ5IDUKICAgIGRpZyAxCiAgICA+CiAgICBieiBhcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUzCiAgICAvLyBpZiAodGhpcy5wbHVnaW5zKGtleXNbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGJ1cnkgNAogICAgZGlnIDYKICAgIGRpZyAxCiAgICAtIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDMKICAgIGxlbgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDQKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgc3Vic3RyaW5nMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTMKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE1NAogICAgLy8gcGx1Z2lucy5wdXNoKHRoaXMucGx1Z2lucyhrZXlzW2ldKS52YWx1ZSkKICAgIGRpZyA0CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgYnl0ZWMgMjAgLy8gMHgwMDAyCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTUKICAgIC8vIGNvbnRpbnVlCiAgICBiIGFyYzU4X2dldFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTcKICAgIC8vIHBsdWdpbnMucHVzaChlbXB0eVBsdWdpbkluZm8oKSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAxCiAgICBieXRlYyAyMSAvLyAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgYiBhcmM1OF9nZXRQbHVnaW5zX3doaWxlX3RvcEAyCgphcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0OQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0TmFtZWRQbHVnaW5zW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjIKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjQKICAgIC8vIGxldCBwbHVnaW5zOiBQbHVnaW5JbmZvW10gPSBbXQogICAgYnl0ZWMgMTAgLy8gMHgwMDAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjUKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjYKICAgIC8vIGlmICh0aGlzLm5hbWVkUGx1Z2lucyhuYW1lc1tpXSkuZXhpc3RzKSB7CiAgICBkaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBhc3NlcnQgLy8gaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGV4dHJhY3QzCiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY2CiAgICAvLyBpZiAodGhpcy5uYW1lZFBsdWdpbnMobmFtZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NwogICAgLy8gY29uc3QgbmFtZUtleSA9IGNsb25lKHRoaXMubmFtZWRQbHVnaW5zKG5hbWVzW2ldKS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjgKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMobmFtZUtleSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY5CiAgICAvLyBwbHVnaW5zLnB1c2godGhpcy5wbHVnaW5zKG5hbWVLZXkpLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYmxvY2tAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MgogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MwogICAgLy8gY29udGludWUKICAgIGIgYXJjNThfZ2V0TmFtZWRQbHVnaW5zX2Jsb2NrQDgKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3NQogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldE5hbWVkUGx1Z2luc19ibG9ja0A4CgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTYyCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgZGlnIDIKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9nZXRFc2Nyb3dzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0RXNjcm93czoKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MgogICAgLy8gbGV0IHJlc3VsdDogRXNjcm93SW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTgzCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZXNjcm93cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXRFc2Nyb3dzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTg0CiAgICAvLyBpZiAodGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNAogICAgYXNzZXJ0IC8vIGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGRpZyAxCiAgICBzd2FwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwMgogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBleHRyYWN0MwogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODQKICAgIC8vIGlmICh0aGlzLmVzY3Jvd3MoZXNjcm93c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldEVzY3Jvd3NfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4NQogICAgLy8gcmVzdWx0LnB1c2godGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMgoKYXJjNThfZ2V0RXNjcm93c19ibG9ja0A2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4OAogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlFc2Nyb3dJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjIwLTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBpZDogMCwKICAgIC8vICAgbG9ja2VkOiBmYWxzZQogICAgLy8gfTsKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODgKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXNjcm93SW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEVzY3Jvd3NfYmxvY2tANgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBbGxvd2FuY2VzOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTkzCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwbiAyCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE5NQogICAgLy8gbGV0IHJlc3VsdDogQWxsb3dhbmNlSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRBbGxvd2FuY2VzX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfQogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyA1CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTgKICAgIC8vIGlmICh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYnogYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk5CiAgICAvLyByZXN1bHQucHVzaCh0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICBidXJ5IDIKCmFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0QWxsb3dhbmNlc193aGlsZV90b3BAMgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwMgogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlBbGxvd2FuY2VJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjI3LTM2CiAgICAvLyByZXR1cm4gewogICAgLy8gICB0eXBlOiBuZXcgVWludDgoMCksCiAgICAvLyAgIG1heDogMCwKICAgIC8vICAgYW1vdW50OiAwLAogICAgLy8gICBzcGVudDogMCwKICAgIC8vICAgaW50ZXJ2YWw6IDAsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIHN0YXJ0OiAwLAogICAgLy8gICB1c2VSb3VuZHM6IGZhbHNlCiAgICAvLyB9OwogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDIKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5QWxsb3dhbmNlSW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTMKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEV4ZWN1dGlvbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRFeGVjdXRpb25zOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjA3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDhbMzJdW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwOQogICAgLy8gbGV0IHJlc3VsdDogRXhlY3V0aW9uSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRFeGVjdXRpb25zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTEKICAgIC8vIGlmICh0aGlzLmV4ZWN1dGlvbnMobGVhc2VzW2ldKS5leGlzdHMpIHsKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMQogICAgLy8gaWYgKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXRFeGVjdXRpb25zX2FmdGVyX2lmX2Vsc2VANQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTIKICAgIC8vIHJlc3VsdC5wdXNoKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXRFeGVjdXRpb25zX2Jsb2NrQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlYXNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTUKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXhlY3V0aW9uSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIHB1c2hieXRlcyAweDAwMDIwMDEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfYmxvY2tANgoKYXJjNThfZ2V0RXhlY3V0aW9uc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDcKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm1icltyb3V0aW5nXSgpIC0+IHZvaWQ6Cm1icjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjIwCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MgogICAgLy8gcmV0dXJuIE1pbkVzY3Jvd3NNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgMwogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgZGlnIDEKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjMwCiAgICAvLyBwbHVnaW5zOiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RDb3VudCksCiAgICBkaWcgNQogICAgdW5jb3ZlciA1CiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIHVuY292ZXIgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDUgLy8gMjE3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NgogICAgLy8gcmV0dXJuIE1pbkFsbG93YW5jZU1CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGludGMgNiAvLyAyNzcwMAogICAgdW5jb3ZlciA0CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAKICAgIC8vIHJldHVybiBNaW5FeGVjdXRpb25zTUJSICsgKEJveENvc3RQZXJCeXRlICogKGdyb3VwcyAqIDMyKSk7CiAgICB1bmNvdmVyIDQKICAgIHB1c2hpbnQgMTI4MDAgLy8gMTI4MDAKICAgICoKICAgIHB1c2hpbnQgMjA1MDAgLy8gMjA1MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgdW5jb3ZlciA2CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjM1CiAgICAvLyBlc2Nyb3dFeGlzdHM6IHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGNvdmVyIDYKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzgKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIGdsb2JhbCBNaW5CYWxhbmNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIzNy0xMjM5CiAgICAvLyBOZXdDb3N0Rm9yQVJDNTggKwogICAgLy8gR2xvYmFsLm1pbkJhbGFuY2UgKwogICAgLy8gQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIHB1c2hpbnQgMTYyMTAwIC8vIDE2MjEwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzctMTI0MAogICAgLy8gTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIC8vIEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01iciArCiAgICAvLyBlc2Nyb3dzCiAgICBkaWcgNQogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjktMTI0MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgcGx1Z2luczogdGhpcy5wbHVnaW5zTWJyKGVzY3JvdywgbWV0aG9kQ291bnQpLAogICAgLy8gICBuYW1lZFBsdWdpbnM6IHRoaXMubmFtZWRQbHVnaW5zTWJyKHBsdWdpbiksCiAgICAvLyAgIGVzY3Jvd3MsCiAgICAvLyAgIGFsbG93YW5jZXM6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpLAogICAgLy8gICBleGVjdXRpb25zOiB0aGlzLmV4ZWN1dGlvbnNNYnIoZ3JvdXBzKSwKICAgIC8vICAgZXNjcm93RXhpc3RzOiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsCiAgICAvLyAgIG5ld0VzY3Jvd01pbnRDb3N0OiAoCiAgICAvLyAgICAgTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vICAgICBHbG9iYWwubWluQmFsYW5jZSArCiAgICAvLyAgICAgQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIC8vICAgICBlc2Nyb3dzCiAgICAvLyAgICkKICAgIC8vIH0KICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgdW5jb3ZlciA0CiAgICBpdG9iCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucGx1Z2luc01icihlc2Nyb3c6IGJ5dGVzLCBtZXRob2RDb3VudDogdWludDY0KSAtPiB1aW50NjQ6CnBsdWdpbnNNYnI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTEKICAgIC8vIHByaXZhdGUgcGx1Z2luc01icihlc2Nyb3c6IHN0cmluZywgbWV0aG9kQ291bnQ6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAyIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MwogICAgLy8gQm94Q29zdFBlckJ5dGUgKiAoKE1ldGhvZFJlc3RyaWN0aW9uQnl0ZUxlbmd0aCAqIG1ldGhvZENvdW50KSArIEJ5dGVzKGVzY3JvdykubGVuZ3RoKQogICAgcHVzaGludCAyMCAvLyAyMAogICAgZnJhbWVfZGlnIC0xCiAgICAqCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgKwogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyCiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgcHVzaGludCAzODkwMCAvLyAzODkwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyLTU0CiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgLy8gICBCb3hDb3N0UGVyQnl0ZSAqICgoTWV0aG9kUmVzdHJpY3Rpb25CeXRlTGVuZ3RoICogbWV0aG9kQ291bnQpICsgQnl0ZXMoZXNjcm93KS5sZW5ndGgpCiAgICAvLyApOwogICAgKwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tYXliZU5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm1heWJlTmV3RXNjcm93OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczCiAgICAvLyBwcml2YXRlIG1heWJlTmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIHByb3RvIDEgMQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NAogICAgLy8gaWYgKGVzY3JvdyA9PT0gJycpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAiIgogICAgPT0KICAgIGJ6IG1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc1CiAgICAvLyByZXR1cm4gMDsKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4LTgwCiAgICAvLyByZXR1cm4gdGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzCiAgICAvLyAgID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIC8vICAgOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgYnogbWF5YmVOZXdFc2Nyb3dfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkKICAgIC8vID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGZyYW1lX2RpZyAwCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CgptYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgtODAKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIC8vICAgPyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgLy8gICA6IHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X3Rlcm5hcnlfZmFsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MAogICAgLy8gOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgYiBtYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm5ld0VzY3JvdzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MwogICAgLy8gcHJpdmF0ZSBuZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgcHJvdG8gMSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODcKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYyCiAgICAvLyByZXR1cm4gTWluRXNjcm93c01CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgKwogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODUtOTAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmVzY3Jvd3NNYnIoZXNjcm93KQogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NC0xMDQKICAgIC8vIGNvbnN0IGlkID0gYWJpQ2FsbDx0eXBlb2YgRXNjcm93RmFjdG9yeS5wcm90b3R5cGUubmV3Pih7CiAgICAvLyAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgYXBwSWQ6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZSwKICAgIC8vICAgYXJnczogWwogICAgLy8gICAgIGl0eG4ucGF5bWVudCh7CiAgICAvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgICBhbW91bnQ6IE5ld0Nvc3RGb3JBUkM1OCArIEdsb2JhbC5taW5CYWxhbmNlLAogICAgLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICAvLyAgICAgfSksCiAgICAvLyAgIF0KICAgIC8vIH0pLnJldHVyblZhbHVlCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMAogICAgLy8gYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIHB1c2hpbnQgMTUwMDAwIC8vIDE1MDAwMAogICAgZ2xvYmFsIE1pbkJhbGFuY2UKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNAogICAgLy8gZXNjcm93RmFjdG9yeSA9IEdsb2JhbFN0YXRlPEFwcGxpY2F0aW9uPih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzRXNjcm93RmFjdG9yeSB9KQogICAgYnl0ZWMgMTggLy8gImVzY3Jvd19mYWN0b3J5IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTgtMTAyCiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogTmV3Q29zdEZvckFSQzU4ICsgR2xvYmFsLm1pbkJhbGFuY2UsCiAgICAvLyAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gfSksCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQtMTA0CiAgICAvLyBjb25zdCBpZCA9IGFiaUNhbGw8dHlwZW9mIEVzY3Jvd0ZhY3RvcnkucHJvdG90eXBlLm5ldz4oewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFwcElkOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUsCiAgICAvLyAgIGFyZ3M6IFsKICAgIC8vICAgICBpdHhuLnBheW1lbnQoewogICAgLy8gICAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgICAgYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gICAgIH0pLAogICAgLy8gICBdCiAgICAvLyB9KS5yZXR1cm5WYWx1ZQogICAgaXR4bl9uZXh0CiAgICBwdXNoYnl0ZXMgMHhkODVjZjE4NCAvLyBtZXRob2QgIm5ldyhwYXkpdWludDY0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBnaXR4biAxIExhc3RMb2cKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYKICAgIC8vIHRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlID0geyBpZCwgbG9ja2VkOiBmYWxzZSB9CiAgICBkdXAKICAgIGl0b2IKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2CiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZSA9IHsgaWQsIGxvY2tlZDogZmFsc2UgfQogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOAogICAgLy8gcmV0dXJuIGlkOwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW46IHVpbnQ2NCwgY2FsbGVyOiBieXRlcywgZXNjcm93OiBieXRlcywgbWV0aG9kOiBieXRlcykgLT4gdWludDY0OgpwbHVnaW5DYWxsQWxsb3dlZDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEKICAgIC8vIHByaXZhdGUgcGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWNjb3VudCwgZXNjcm93OiBzdHJpbmcsIG1ldGhvZDogYnl0ZXM8ND4pOiBib29sZWFuIHsKICAgIHByb3RvIDQgMQogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTQKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBieXRlYyAxMiAvLyAweDAwMmEKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNAogICAgLy8gaWYgKCF0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYm56IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNQogICAgLy8gcmV0dXJuIGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4CiAgICAvLyBjb25zdCB7IG1ldGhvZHMsIHVzZVJvdW5kcywgbGFzdENhbGxlZCwgY29vbGRvd24sIHVzZUV4ZWN1dGlvbktleSB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgYXMgUmVhZG9ubHk8UGx1Z2luSW5mbz4KICAgIGZyYW1lX2RpZyA2CiAgICBkdXAKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAwCiAgICBkdXAKICAgIHB1c2hpbnQgMjcgLy8gMjcKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDUKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHB1c2hpbnQgMjggLy8gMjgKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwCiAgICAvLyBpZiAodXNlRXhlY3V0aW9uS2V5KSB7CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjEKICAgIC8vIHJldHVybiBmYWxzZQogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI0CiAgICAvLyBsZXQgbWV0aG9kQWxsb3dlZCA9IG1ldGhvZHMubGVuZ3RoID4gMCA/IGZhbHNlIDogdHJ1ZTsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgICEKICAgIGZyYW1lX2J1cnkgNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDIKCnBsdWdpbkNhbGxBbGxvd2VkX3doaWxlX3RvcEA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAyCiAgICA+CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNgogICAgLy8gaWYgKG1ldGhvZHNbaV0uc2VsZWN0b3IgPT09IG1ldGhvZCkgewogICAgZnJhbWVfZGlnIDIKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICoKICAgIHB1c2hpbnQgNDYgLy8gNDYKICAgICsKICAgIGZyYW1lX2RpZyA2CiAgICBzd2FwCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZXh0cmFjdCAwIDQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNwogICAgLy8gbWV0aG9kQWxsb3dlZCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSA0CgpwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyA1CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X2ZhbHNlQDEyCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMQoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9tZXJnZUAxMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMQogICAgPj0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUtMTM2CiAgICAvLyBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAoZXBvY2hSZWYgLSBsYXN0Q2FsbGVkKSA+PSBjb29sZG93biAmJgogICAgYnogcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9mYWxzZUAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgMwogICAgLQogICAgZnJhbWVfZGlnIDAKICAgID49CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTM1LTEzNgogICAgLy8gbGFzdENhbGxlZCA+PSBlcG9jaFJlZiAmJgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2Jvb2xfZmFsc2VAMTYKICAgIGludGNfMSAvLyAxCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX21lcmdlQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNS0xMzcKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIC8vIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyBtZXRob2RBbGxvd2VkCiAgICBmcmFtZV9kaWcgNAogICAgJiYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzQtMTM4CiAgICAvLyByZXR1cm4gKAogICAgLy8gICBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAgIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyAgIG1ldGhvZEFsbG93ZWQKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX2ZhbHNlQDE2OgogICAgaW50Y18wIC8vIDAKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9tZXJnZUAxNwoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9mYWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMQogICAgYiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X21lcmdlQDEzCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfd2hpbGVfdG9wQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnR4blJla2V5c0JhY2sodHhuOiB1aW50NjQpIC0+IHVpbnQ2NDoKdHhuUmVrZXlzQmFjazoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDEKICAgIC8vIHByaXZhdGUgdHhuUmVrZXlzQmFjayh0eG46IGd0eG4uVHJhbnNhY3Rpb24pOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTQ0LTE0NQogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBieiB0eG5SZWtleXNCYWNrX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NQogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJla2V5VG8KICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NC0xNDUKICAgIC8vIHR4bi5zZW5kZXIgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgJiYKICAgIC8vIHR4bi5yZWtleVRvID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDcKICAgIC8vIHJldHVybiB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxCiAgICAvLyB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA2IC8vIDYKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1MgogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MgogICAgLy8gJiYgdHhuLmFwcElkID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTIKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgYnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTMKICAgIC8vICYmIHR4bi5udW1BcHBBcmdzID09PSAxCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTMKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIGJ6IHR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTU0CiAgICAvLyAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1NAogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICAvLyAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gJiYgdHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wCiAgICBibnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTUKICAgIC8vICYmIHR4bi5hcHBBcmdzKDApID09PSBtZXRob2RTZWxlY3RvcignYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQnKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjIDIyIC8vIG1ldGhvZCAiYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQiCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTUKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIC8vICYmIHR4bi5vbkNvbXBsZXRpb24gPT09IE9uQ29tcGxldGVBY3Rpb24uTm9PcAogICAgLy8gJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCnR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5OgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnBsdWdpbkNoZWNrKGtleTogYnl0ZXMpIC0+IGJ5dGVzLCBieXRlczoKcGx1Z2luQ2hlY2s6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTczCiAgICAvLyBwcml2YXRlIHBsdWdpbkNoZWNrKGtleTogUGx1Z2luS2V5KTogUGx1Z2luVmFsaWRhdGlvbiB7CiAgICBwcm90byAxIDIKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cG4gMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NQogICAgLy8gY29uc3QgZXhpc3RzID0gdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzOwogICAgYm94X2xlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NgogICAgLy8gaWYgKCFleGlzdHMpIHsKICAgIGJueiBwbHVnaW5DaGVja19hZnRlcl9pZl9lbHNlQDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNzctMTgyCiAgICAvLyByZXR1cm4gewogICAgLy8gICBleGlzdHM6IGZhbHNlLAogICAgLy8gICBleHBpcmVkOiB0cnVlLAogICAgLy8gICBvbkNvb2xkb3duOiB0cnVlLAogICAgLy8gICBoYXNNZXRob2RSZXN0cmljdGlvbnM6IGZhbHNlLAogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4NjAKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfYnVyeSAxCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKcGx1Z2luQ2hlY2tfYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NQogICAgLy8gY29uc3QgeyB1c2VSb3VuZHMsIGxhc3RWYWxpZCwgY29vbGRvd24sIGxhc3RDYWxsZWQsIG1ldGhvZHMgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlIGFzIFJlYWRvbmx5PFBsdWdpbkluZm8+CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBwdXNoaW50IDkgLy8gOQogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDIKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDAKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDI4IC8vIDI4CiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgYnogcGx1Z2luQ2hlY2tfdGVybmFyeV9mYWxzZUA0CiAgICBnbG9iYWwgUm91bmQKCnBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOTAKICAgIC8vIGV4cGlyZWQ6IGVwb2NoUmVmID4gbGFzdFZhbGlkLAogICAgZHVwCiAgICBmcmFtZV9kaWcgMgogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MQogICAgLy8gb25Db29sZG93bjogKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93biwKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAxCiAgICAtCiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MgogICAgLy8gaGFzTWV0aG9kUmVzdHJpY3Rpb25zOiBtZXRob2RzLmxlbmd0aCA+IDAsCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCA0NCAvLyA0NAogICAgaW50Y18yIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4OC0xOTMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGV4aXN0cywKICAgIC8vICAgZXhwaXJlZDogZXBvY2hSZWYgPiBsYXN0VmFsaWQsCiAgICAvLyAgIG9uQ29vbGRvd246IChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpIDwgY29vbGRvd24sCiAgICAvLyAgIGhhc01ldGhvZFJlc3RyaWN0aW9uczogbWV0aG9kcy5sZW5ndGggPiAwLAogICAgLy8gfQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIDQKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBpbnRjXzIgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzZXRiaXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9idXJ5IDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DaGVja190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTg2CiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbihwbHVnaW46IHVpbnQ2NCwgZ2xvYmFsOiB1aW50NjQsIGVzY3JvdzogYnl0ZXMsIG1ldGhvZE9mZnNldHM6IGJ5dGVzLCBmdW5kc1JlcXVlc3Q6IGJ5dGVzKSAtPiBieXRlcywgYnl0ZXM6CnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NjctNTczCiAgICAvLyBhcmM1OF9yZWtleVRvUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10KICAgIC8vICk6IHZvaWQgewogICAgcHJvdG8gNSAyCiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAxMAogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiAxOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgZnJhbWVfZGlnIC00CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTc2CiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OAogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OQogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0gY2xvbmUoa2V5KQogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODEKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4MwogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODUKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gc3BlbmRpbmdBcHAuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4NQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBzcGVuZGluZ0FwcC5hZGRyZXNzCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMxNgogICAgLy8gY29uc3QgZXNjcm93QWRkcmVzcyA9IEFwcGxpY2F0aW9uKGVzY3Jvd0lEKS5hZGRyZXNzOwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZnJhbWVfYnVyeSA1CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTYKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BANTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxNgogICAgPgogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyMgogICAgLy8gYXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjAtMzIzCiAgICAvLyBjb25zdCBhbGxvd2FuY2VLZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gfQogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAxCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzQ5CiAgICAvLyBhc3NlcnQodGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUwCiAgICAvLyBjb25zdCB7IHR5cGUsIHNwZW50LCBhbW91bnQsIGxhc3QsIG1heCwgaW50ZXJ2YWwsIHN0YXJ0LCB1c2VSb3VuZHMgfSA9IHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgZXh0cmFjdCAwIDEKICAgIGZyYW1lX2J1cnkgMTAKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjYKICAgIGR1cAogICAgcHVzaGludCA5IC8vIDkKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDExCiAgICBkdXAKICAgIHB1c2hpbnQgMzMgLy8gMzMKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDE5CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyMQogICAgZHVwCiAgICBwdXNoaW50IDI1IC8vIDI1CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxNwogICAgZHVwCiAgICBwdXNoaW50IDQxIC8vIDQxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyNwogICAgcHVzaGludCAzOTIgLy8gMzkyCiAgICBnZXRiaXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1MQogICAgLy8gY29uc3QgbmV3TGFzdCA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OQogICAgZ2xvYmFsIFJvdW5kCiAgICBmcmFtZV9idXJ5IDI0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTMKICAgIC8vIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVGbGF0KSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU0CiAgICAvLyBjb25zdCBsZWZ0b3ZlcjogdWludDY0ID0gYW1vdW50IC0gc3BlbnQ7CiAgICBmcmFtZV9kaWcgMTEKICAgIGZyYW1lX2RpZyAyNgogICAgLQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NQogICAgLy8gYXNzZXJ0KGxlZnRvdmVyID49IGZ1bmRSZXF1ZXN0LmFtb3VudCwgRVJSX0FMTE9XQU5DRV9FWENFRURFRCk7CiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18zIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICBkaWcgMQogICAgPj0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTYKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ICs9IGZ1bmRSZXF1ZXN0LmFtb3VudAogICAgZnJhbWVfZGlnIDMKICAgIGR1cAogICAgY292ZXIgMgogICAgYm94X2dldAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGV4dHJhY3RfdWludDY0CiAgICArCiAgICBpdG9iCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICBzd2FwCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzgxCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5sYXN0ID0gbmV3TGFzdAogICAgZnJhbWVfZGlnIDI0CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAzMyAvLyAzMwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyNwogICAgLy8gaWYgKGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQgIT09IDApIHsKICAgIGZyYW1lX2RpZyAyOQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA3MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyOC0zMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMAogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMwCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMgogICAgLy8gYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfZGlnIDI5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgZnJhbWVfZGlnIDUKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjgtMzM0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQsCiAgICAvLyAgICAgeGZlckFzc2V0OiBmdW5kc1JlcXVlc3RzW2ldLmFzc2V0CiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzI4LTMzNQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgLy8gICAgIHhmZXJBc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxNgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDU2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDczOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzOQogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNDEKICAgIC8vIGFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBmcmFtZV9kaWcgNQogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzctMzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NwogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVXaW5kb3cpIHsKICAgIGZyYW1lX2RpZyAxMAogICAgcHVzaGJ5dGVzIDB4MDIKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg1CiAgICAvLyBpZiAodXNlUm91bmRzKSB7CiAgICBmcmFtZV9kaWcgMjgKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg2CiAgICAvLyByZXR1cm4gR2xvYmFsLnJvdW5kIC0gKChHbG9iYWwucm91bmQgLSBzdGFydCkgJSBpbnRlcnZhbCkKICAgIGdsb2JhbCBSb3VuZAogICAgZHVwCiAgICBmcmFtZV9kaWcgMjcKICAgIC0KICAgIGZyYW1lX2RpZyAxNwogICAgJQogICAgLQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5nZXRMYXRlc3RXaW5kb3dTdGFydEA3ODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjAKICAgIC8vIGlmIChjdXJyZW50V2luZG93U3RhcnQgPiBsYXN0KSB7CiAgICBmcmFtZV9kaWcgMTkKICAgID4KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANjUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjEKICAgIC8vIGFzc2VydChhbW91bnQgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGV4dHJhY3QgOCA4CiAgICBzd2FwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2RpZyAxMQogICAgPD0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjIKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ID0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA2NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjUKICAgIC8vIGNvbnN0IGxlZnRvdmVyOiB1aW50NjQgPSBhbW91bnQgLSBzcGVudDsKICAgIGZyYW1lX2RpZyAxMQogICAgZnJhbWVfZGlnIDI2CiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzY2CiAgICAvLyBhc3NlcnQobGVmdG92ZXIgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIGRpZyAxCiAgICA+PQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBleGNlZWRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2NwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUuc3BlbnQgKz0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgICsKICAgIGl0b2IKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIHN3YXAKICAgIGJveF9yZXBsYWNlCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDcxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3NzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozODgKICAgIC8vIHJldHVybiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gKChHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gc3RhcnQpICUgaW50ZXJ2YWwpCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyNwogICAgLQogICAgZnJhbWVfZGlnIDE3CiAgICAlCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU4CiAgICAvLyBjb25zdCBjdXJyZW50V2luZG93U3RhcnQgPSB0aGlzLmdldExhdGVzdFdpbmRvd1N0YXJ0KHVzZVJvdW5kcywgc3RhcnQsIGludGVydmFsKQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaW5saW5lZF9zbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmdldExhdGVzdFdpbmRvd1N0YXJ0QDc4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2OQogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVEcmlwKSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIHB1c2hieXRlcyAweDAzCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjkKICAgIGdsb2JhbCBSb3VuZAogICAgZnJhbWVfYnVyeSAxNAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANzA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcxCiAgICAvLyBjb25zdCBwYXNzZWQ6IHVpbnQ2NCA9IGVwb2NoUmVmIC0gbGFzdAogICAgZnJhbWVfZGlnIDE0CiAgICBmcmFtZV9kaWcgMTkKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzUKICAgIC8vIGNvbnN0IGFjY3J1ZWQ6IHVpbnQ2NCA9IHNwZW50ICsgKChwYXNzZWQgLyBpbnRlcnZhbCkgKiBhbW91bnQpCiAgICBmcmFtZV9kaWcgMTcKICAgIC8KICAgIGZyYW1lX2RpZyAxMQogICAgKgogICAgZnJhbWVfZGlnIDI2CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc2CiAgICAvLyBjb25zdCBhdmFpbGFibGU6IHVpbnQ2NCA9IGFjY3J1ZWQgPiBtYXggPyBtYXggOiBhY2NydWVkCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyMQogICAgZHVwCiAgICBjb3ZlciAzCiAgICA+CiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBzZWxlY3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzgKICAgIC8vIGFzc2VydChhdmFpbGFibGUgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cDIKICAgID49CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGV4Y2VlZGVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5zcGVudCA9IChhdmFpbGFibGUgLSBmdW5kUmVxdWVzdC5hbW91bnQpCiAgICAtCiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBmcmFtZV9idXJ5IDE0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDcwCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTEKICAgIC8vIGNvbnN0IG5ld0xhc3QgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgZnJhbWVfYnVyeSAyNAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDQKICAgIC8vIGNvbnN0IHsgdXNlUm91bmRzLCB1c2VFeGVjdXRpb25LZXkgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlCiAgICBmcmFtZV9kaWcgMgogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBnZXRiaXQKICAgIGZyYW1lX2J1cnkgMjgKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIEV4ZWN1dGlvbiBrZXkgbm90IGZvdW5kCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDgKICAgIC8vIGFzc2VydCh0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS52YWx1ZS5maXJzdFZhbGlkIDw9IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9OT1RfUkVBRFkpOwogICAgdHhuIExlYXNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA4CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZmlyc3RWYWxpZCA8PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fTk9UX1JFQURZKTsKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPD0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IG5vdCByZWFkeQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUubGFzdFZhbGlkID49IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9FWFBJUkVEKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwOQogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA+PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fRVhQSVJFRCk7CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPj0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxMQogICAgLy8gY29uc3QgZ3JvdXBzID0gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZ3JvdXBzIGFzIFJlYWRvbmx5PGJ5dGVzPDMyPltdPjsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjEzCiAgICAvLyBsZXQgZm91bmRHcm91cCA9IGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDE2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDQKICAgIHB1c2hpbnQgMTggLy8gMTgKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfZGlnIDE2CiAgICA+CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfd2hpbGVAMjEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTUKICAgIC8vIGlmIChncm91cHNbaV0gPT09IEdsb2JhbC5ncm91cElkKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICsKICAgIGZyYW1lX2RpZyA0CiAgICBzd2FwCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBib3hfZXh0cmFjdAogICAgZ2xvYmFsIEdyb3VwSUQKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNgogICAgLy8gZm91bmRHcm91cCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSAxNQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjE0CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDE2CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BAMTcKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl93aGlsZUAyMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjAKICAgIC8vIGFzc2VydChmb3VuZEdyb3VwLCBFUlJfR1JPVVBfTk9UX0ZPVU5EKTsKICAgIGZyYW1lX2RpZyAxNQogICAgYXNzZXJ0IC8vIEdyb3VwIG5vdCBmb3VuZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIxCiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS5kZWxldGUoKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyMQogICAgLy8gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkuZGVsZXRlKCk7CiAgICBib3hfZGVsCiAgICBwb3AKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDIyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNAogICAgLy8gY29uc3QgaW5pdGlhbENoZWNrID0gdGhpcy5wbHVnaW5DaGVjayhrZXkpOwogICAgZnJhbWVfZGlnIDYKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNgogICAgLy8gYXNzZXJ0KGluaXRpYWxDaGVjay5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjI3CiAgICAvLyBhc3NlcnQoIWluaXRpYWxDaGVjay5leHBpcmVkLCBFUlJfUExVR0lOX0VYUElSRUQpOwogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gcGx1Z2luIGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjgKICAgIC8vIGFzc2VydCghaW5pdGlhbENoZWNrLm9uQ29vbGRvd24sIEVSUl9QTFVHSU5fT05fQ09PTERPV04pOwogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIHBsdWdpbiBvbiBjb29sZG93bgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzMC0yMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzCiAgICAvLyAgID8gR2xvYmFsLnJvdW5kCiAgICAvLyAgIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzEKICAgIC8vID8gR2xvYmFsLnJvdW5kCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMTQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDI1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDI1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjM1CiAgICAvLyBsZXQgbWV0aG9kSW5kZXg6IHVpbnQ2NCA9IDA7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSAyMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgZnJhbWVfZGlnIDYKICAgIGZyYW1lX2J1cnkgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3doaWxlX3RvcEAyNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGdsb2JhbCBHcm91cFNpemUKICAgIDwKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0MAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGNhbGxzdWIgdHhuUmVrZXlzQmFjawogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDEKICAgIC8vIHJla2V5c0JhY2sgPSB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2J1cnkgMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNzEKICAgIC8vIGFzc2VydChyZWtleXNCYWNrLCBFUlJfTUlTU0lOR19SRUtFWV9CQUNLKTsKICAgIGZyYW1lX2RpZyAyNQogICAgYXNzZXJ0IC8vIG1pc3NpbmcgcmVrZXkgYmFjawogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU5My02MDAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgLy8gICAgIG5vdGU6ICdyZWtleWluZyB0byBwbHVnaW4gYXBwJwogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OTcKICAgIC8vIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgZnJhbWVfZGlnIC01CiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk4CiAgICAvLyBub3RlOiAncmVrZXlpbmcgdG8gcGx1Z2luIGFwcCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKICAgIGl0eG5fZmllbGQgTm90ZQogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICBkdXAKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTU5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTYwMAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDMKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IFR4bi5ncm91cEluZGV4CiAgICB0eG4gR3JvdXBJbmRleAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDUKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBpbnRjXzMgLy8gOAogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGZyYW1lX2J1cnkgMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDI5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0NQogICAgLy8gaWYgKHR4bi50eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBwdXNoaW50IDYgLy8gNgogICAgIT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDMxCiAgICBmcmFtZV9kaWcgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jsb2NrQDUxOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyAxOAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGZyYW1lX2J1cnkgNwogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDI2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAzMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDkKICAgIC8vIGFzc2VydCh0eG4uYXBwSWQuaWQgPT09IGtleS5wbHVnaW4sIEVSUl9DQU5OT1RfQ0FMTF9PVEhFUl9BUFBTX0RVUklOR19SRUtFWSk7CiAgICBmcmFtZV9kaWcgMTgKICAgIGR1cAogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbm5vdCBjYWxsIG90aGVyIGFwcHMgZHVyaW5nIHJla2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjUwCiAgICAvLyBhc3NlcnQodHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wLCBFUlJfSU5WQUxJRF9PTkNPTVBMRVRFKTsKICAgIGR1cAogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gaW52YWxpZCBvbmNvbXBsZXRlIG11c3QgYmUgbm8gb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTMKICAgIC8vIGFzc2VydCh0eG4ubnVtQXBwQXJncyA+IDEsIEVSUl9JTlZBTElEX1NFTkRFUl9BUkcpOwogICAgZHVwCiAgICBndHhucyBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIG11c3QgYmUgdGhpcyBhcHAgaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTQKICAgIC8vIGFzc2VydChBcHBsaWNhdGlvbihidG9pKHR4bi5hcHBBcmdzKDEpKSkgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCwgRVJSX0lOVkFMSURfU0VOREVSX1ZBTFVFKTsKICAgIGludGNfMSAvLyAxCiAgICBndHhuc2FzIEFwcGxpY2F0aW9uQXJncwogICAgYnRvaQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIGFwcCBpZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1NgogICAgLy8gY29uc3QgeyBleHBpcmVkLCBvbkNvb2xkb3duLCBoYXNNZXRob2RSZXN0cmljdGlvbnMgfSA9IHRoaXMucGx1Z2luQ2hlY2soa2V5KTsKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgdW5jb3ZlciAyCiAgICBwdXNoaW50IDMgLy8gMwogICAgZ2V0Yml0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjU4CiAgICAvLyBhc3NlcnQoIWV4cGlyZWQsIEVSUl9QTFVHSU5fRVhQSVJFRCk7CiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gZXhwaXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1OQogICAgLy8gYXNzZXJ0KCFvbkNvb2xkb3duLCBFUlJfUExVR0lOX09OX0NPT0xET1dOKTsKICAgIHN3YXAKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gb24gY29vbGRvd24KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjEKICAgIC8vIGlmIChoYXNNZXRob2RSZXN0cmljdGlvbnMpIHsKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYyCiAgICAvLyBhc3NlcnQobWV0aG9kSW5kZXggPCBtZXRob2RPZmZzZXRzLmxlbmd0aCwgRVJSX01BTEZPUk1FRF9PRkZTRVRTKTsKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMjIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA8CiAgICBhc3NlcnQgLy8gbWFsZm9ybWVkIG1ldGhvZCBvZmZzZXRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYzCiAgICAvLyBjb25zdCB7IG1ldGhvZEFsbG93ZWQsIG1ldGhvZE9uQ29vbGRvd24gfSA9IHRoaXMubWV0aG9kQ2hlY2soa2V5LCB0eG4sIG1ldGhvZE9mZnNldHNbbWV0aG9kSW5kZXhdKTsKICAgIGZyYW1lX2RpZyAtMgogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4NAogICAgLy8gYXNzZXJ0KGxlbih0eG4uYXBwQXJncygwKSkgPT09IDQsIEVSUl9JTlZBTElEX01FVEhPRF9TSUdOQVRVUkVfTEVOR1RIKQogICAgZnJhbWVfZGlnIDE4CiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGR1cAogICAgZnJhbWVfYnVyeSA5CiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbWV0aG9kIHNpZ25hdHVyZSBsZW5ndGgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA2CiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjg3CiAgICAvLyBjb25zdCB7IHVzZVJvdW5kcyB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyODgKICAgIC8vIGNvbnN0IHsgc2VsZWN0b3IsIGNvb2xkb3duLCBsYXN0Q2FsbGVkIH0gPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzW29mZnNldF0KICAgIHVuY292ZXIgMgogICAgcHVzaGludCAyMCAvLyAyMAogICAgKgogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEyCiAgICBwdXNoaW50IDQ2IC8vIDQ2CiAgICArCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgZnJhbWVfYnVyeSA4CiAgICBkdXAKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxMwogICAgcHVzaGludCAxMiAvLyAxMgogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMzQKICAgIGdsb2JhbCBSb3VuZAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMzU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjkzCiAgICAvLyBjb25zdCBtZXRob2RPbkNvb2xkb3duID0gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93bgogICAgZnJhbWVfZGlnIDIwCiAgICAtCiAgICBmcmFtZV9kaWcgMTMKICAgIDwKICAgIGZyYW1lX2J1cnkgMjMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTUKICAgIC8vIGlmIChzZWxlY3RvciA9PT0gc2VsZWN0b3JBcmcgJiYgKCFoYXNDb29sZG93biB8fCAhbWV0aG9kT25Db29sZG93bikpIHsKICAgIGZyYW1lX2RpZyA4CiAgICBmcmFtZV9kaWcgOQogICAgPT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0CiAgICBmcmFtZV9kaWcgMTMKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9pZl9ib2R5QDM4CiAgICBmcmFtZV9kaWcgMjMKICAgIGJueiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0NAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2lmX2JvZHlAMzg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk3CiAgICAvLyBpZiAoaGFzQ29vbGRvd24pIHsKICAgIGZyYW1lX2RpZyAxMwogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTgKICAgIC8vIGNvbnN0IGxhc3RDYWxsZWQgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZnJhbWVfZGlnIDI4CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA0MQogICAgZ2xvYmFsIFJvdW5kCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA0MjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTkKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLm1ldGhvZHNbb2Zmc2V0XS5sYXN0Q2FsbGVkID0gbGFzdENhbGxlZAogICAgaXRvYgogICAgZnJhbWVfZGlnIDEyCiAgICBwdXNoaW50IDU4IC8vIDU4CiAgICArCiAgICBmcmFtZV9kaWcgMgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAyLTMwNQogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbWV0aG9kQWxsb3dlZDogdHJ1ZSwKICAgIC8vICAgbWV0aG9kT25Db29sZG93bgogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4ODAKICAgIGludGNfMSAvLyAxCiAgICBmcmFtZV9kaWcgMjMKICAgIHNldGJpdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tZXRob2RDaGVja0A0NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjMKICAgIC8vIGNvbnN0IHsgbWV0aG9kQWxsb3dlZCwgbWV0aG9kT25Db29sZG93biB9ID0gdGhpcy5tZXRob2RDaGVjayhrZXksIHR4biwgbWV0aG9kT2Zmc2V0c1ttZXRob2RJbmRleF0pOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDIzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY0CiAgICAvLyBhc3NlcnQobWV0aG9kQWxsb3dlZCAmJiAhbWV0aG9kT25Db29sZG93biwgRVJSX01FVEhPRF9PTl9DT09MRE9XTik7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9mYWxzZUA0OAogICAgZnJhbWVfZGlnIDIzCiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDgKICAgIGludGNfMSAvLyAxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjQKICAgIC8vIGFzc2VydChtZXRob2RBbGxvd2VkICYmICFtZXRob2RPbkNvb2xkb3duLCBFUlJfTUVUSE9EX09OX0NPT0xET1dOKTsKICAgIGFzc2VydCAvLyBtZXRob2Qgb24gY29vbGRvd24KCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY3CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5sYXN0Q2FsbGVkID0gZXBvY2hSZWYKICAgIGZyYW1lX2RpZyAxNAogICAgaXRvYgogICAgcHVzaGludCAyOCAvLyAyOAogICAgc3dhcAogICAgYm94X3JlcGxhY2UKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjgKICAgIC8vIG1ldGhvZEluZGV4ICs9IDE7CiAgICBmcmFtZV9kaWcgMjIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIyCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANDE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk4CiAgICAvLyBjb25zdCBsYXN0Q2FsbGVkID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANDIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwOC0zMTEKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIG1ldGhvZEFsbG93ZWQ6IGZhbHNlLAogICAgLy8gICBtZXRob2RPbkNvb2xkb3duOiB0cnVlCiAgICAvLyB9CiAgICBwdXNoYnl0ZXMgMHg0MAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2MwogICAgLy8gY29uc3QgeyBtZXRob2RBbGxvd2VkLCBtZXRob2RPbkNvb2xkb3duIH0gPSB0aGlzLm1ldGhvZENoZWNrKGtleSwgdHhuLCBtZXRob2RPZmZzZXRzW21ldGhvZEluZGV4XSk7CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQubWV0aG9kQ2hlY2tANDUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X2ZhbHNlQDM0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI5MgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM1CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzIKICAgIC8vIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMTQKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTg4CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4OAogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgdHhuIFNlbmRlcgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUAzCg==",
+ "clear": "I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg=="
+ },
+ "byteCode": {
+ "approval": "CyAHAAECCJADxKkBtNgBJhgSY29udHJvbGxlZF9hZGRyZXNzAAVhZG1pbhVsYXN0X3VzZXJfaW50ZXJhY3Rpb24BcAFlC2xhc3RfY2hhbmdlBBUffHUBeAEAAgAAEHNwZW5kaW5nX2FkZHJlc3MCACoCAAoBYQEBAW4LcmVrZXlfaW5kZXgOZXNjcm93X2ZhY3RvcnkOY3VycmVudF9wbHVnaW4CAAIwAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAABGzD9gYCACwxGEAABCcRImcxGRREMRhBAMuCBAS9YJnlBNJLdVYEFHts1gQTvETkJxaCFwTJWl09BEcnryEEWC/zggTe/VzSBLPIDfkE7vRI/QQ49ZHqBONQudQECoyywgQltxPKBOuvFKAEH9o7TwSdP4kYBL9NfFcE1d04KwRc6+1DBNWGha8EfDcVbgSv+qToBKJAPd8EAv5FFQRBvcaABFDz41w2GgCOHAD0AU0BbAHaAeUCKgKsAw0DVgOxBVsF3AfCCEEIcgi7CakKWgt0DH8NKg3aDhYOng8+D74QgxERAIAE4YNi4jYaAI4BAIEAigQBKUmL/iQLi/wkCyKLBIsDDEEAHIv9iwRJTgJZiwIIFlcGAosBTFCMASQIjARC/9yL/RWMACKMBIsEiwIMQQAci/+LBElOAlmLAAgWVwYCiwFMUIwBJAiMBEL/3Iv8i/4IFlcGAosBUIv9iwOLAFJQi/8Vi/+LAk8CUlCMAIk2GgFHAhWBIBJENhoCSU4CFYEgEkQ2GgNJFSUSRBdMMQASQAAIMQBLAhJBADQjREsBSUsESU4DE0QqTGcyAxJBABoyCihMZycSSwFnJwsyA2crMgdnJwYyB2cjQ0sCQv/jIkL/yTYaAUkiWSQISwEVEkRXAgBJIkwpE0EAECcFSwJQSb1FAUS+SCJbRQGxIicSZURJcghEgcResgiyByOyECKyAbZLARaABGB+cEayGrIashiBBrIQIrIBsyNDNhoBSRWBIBJEMQAiKmVEEkQqTGcrMgdnJwYyB2cjQzYaAUkVgSASRCInE2VESSJbSwGBKFlLAhVLA04CUlcCACkSRDEASwFyCEQSRCIoZURzAkRMcghEEkQnBExQSb1FAUEAJUmBGyO6IlNBABsjRCpLAmdJJSO6Jw8SQQAEKzIHZycGMgdnI0MiQv/iIiplRCcHTFCwI0MiJwtlRElzAkxOAkQiKGVEEkEALCIoZUQyChJBACIyA0sBEkQnCzIDZzIKIhZMUIAEACoAAFAnE0xnJxEiZyNDMgpC/9spSTYaAUkVgSASRDYaAkkVIxJEIlMxACIqZUQSRLEiKGVEgBtyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnSyBUsCsiBPArIHsgAjshAisgGzQQAeIkUBMRYjCEUCSwEyBAxBAAtLAYgQk0EACyNFAUlEKzIHZyNDSwEjCEUCQv/cNhoBSRUlEkQXNhoCSRUjEkQiUzYaA0lOAhWBIBJENhoESSJZJAhLARUSRFcCAEw2GgVJTgIVgQQSREEADEsDMgNLA0sDiA95SEsDSwNLA0sDiA9tJwkiTwJUJwdMULAjQzYaAUkVJRJEFzYaAkkVIxJEIlM2GgNJIlkkCEsBFRJEVwIANhoESSJZJQskCEsBFRJENhoFSSJZgRALJAhLARUSRIgQm0YCI0M2GgFJIlkkCEsBFRJEVwIANhoCSRUjEkQiUzYaA0kiWSQISwEVEkRXAgA2GgRJIlklCyQISwEVEkQ2GgVJIlmBEAskCEsBFRJEJxBPBVAiJboXTgSIEEBGAiNDIkcDKUk2GgFJFSUSRBc2GgJJFYEgEkQ2GgNJIlkkCEsBFRJEVwIANhoESRUjEkQiUzYaBUcCFSMSRDYaBkkVJRJEF0w2GgdJFSUSRBdMNhoISU4CSSJZSU4DgQwLJAhMFRJENhoJSRUjEkQiU0w2GgpJFSMSRCJTTDYaC0kVIxJEIlNMMQAiKmVEEkQnDxJBARRLCjIDEkEBDCMUREsBQQEASwoyAxNBAPgjFERJQADmSwlFEUsLFksLUEsRSRUWVwYCTFBMJwxQTFBFECIWRRInCkUPIkUNSwxLBAxBAD1LBFcCAEsNSU4CgQwLgQxYSVcABExXBAhLARWBBBJEUEsTUEsQSU8CUEwiWSMIFlcGAlwARRAjCEUNQv+7SwJBAG4yBkUOIihlRDIKE0EAHrEiKGVEMgpLECJZSxNMiAy0sgiyB7IAI7IQIrIBs0sJiAy3FksIUEsHFlBLBhZQJxdQJwkiSwtUI0sFVCRLBFRQSxJQSw4WUEsPUCcESxFQSbxITL8rMgdnJwYyB2cjQzIHRQ5C/49LCSkTRClFEUL/EyJC/wUiQv7xNhoBSRUlEkQXNhoCSRWBIBJENhoDSSJZJAhLARUSRFcCAElOAzEAIiplRBJETwIWTwJQSwEVFlcGAk8CUEwnDFBMUCcETFBJvUUBREmBLCS6F0y8SCIoZUQyChNBABexIihlREsCSwKIC+CyCLIHI7IQIrIBsysyB2cnBjIHZyNDIkcDKUk2GgFJIlkkCEsBFRJEVwIASTYaAkkVJRJEF0w2GgNJTgIVgSASRDYaBEkiWSQISwEVEkRXAgBMNhoFSRUjEkQiU0w2GgZJTgJJFSMSRDYaB0kVJRJEF04CNhoISRUlEkQXTgI2GglJTgNJIllJTgSBDAskCEwVEkQ2GgpJFSMSRCJTTgI2GgtJFSMSRCJTTgI2GgxJFSMSRCJTTgIxACIqZUQSRCcQTwJQSU4CvUUBFEQnDxJBASZLCzIDEkEBHiMUREsCQQESSwsyAxNBAQojFERLAUAA90sKRRNLDBZLDFBLE0kVFlcGAkxQTCcMUExQSUUTSwFJvEhMvyIWRRQnCkURIkUPSw5LBQxBAD1LBVcCAEsPSU4CgQwLgQxYSVcABExXBAhLARWBBBJEUEsVUEsSSU8CUEwiWSMIFlcGAlwARRIjCEUPQv+7IihlRDIKE0EAKLEiKGVEMgpLEiJZSxVMiApfSxAVIQQLIQUICLIIsgeyACOyECKyAbNLCogKWEUQSwNBAEAyBksQFksKUEsJFlBLCBZQJxdQJwkiSw1UI0sHVCRLBlRQSxVQTBZQSxFQJwRLE1BJvEhMvysyB2cnBjIHZyNDMgdC/71LCikTRClFE0L/AiJC/vMiQv7fNhoBSSJZJAhLARUSRFcCAEkxACIqZUQSRCcQTFBJvUUBREm+SElOAicETFBJvUUBREmBLCS6F04CTLxIvEgiKGVEMgoTQQAssSIoZURLAxUhBAshBQhLA0mBKFlLARVSVwIASwOICXwIsgiyByOyECKyAbMrMgdnJwYyB2cjQzYaAUkiWSQISwEVEkRXAgAxACIqZUQSRCcFSwFQvUUBFERJKRNEiAl9FicHTFCwI0M2GgFJIlkkCEsBFRJEVwIAMQAiKmVEEkQnBUxQSb1FAURJvkiBQFMUSwElI7oiTwJUSwElTwK7KzIHZycGMgdnvkgnB0xQsCNDIkkpRwQ2GgFJIlkkCEsBFRJEVwIANhoCSU4CSSJZSU4DgRELJAhMFRJEIkwiTDEAIiplRBJEJwVMUEm9RQFEvkgiW3IIRCJJSwUMQQCeSwVXAgBLAYERC4ERWEkiW0lFDEAARCIoZUxFD0RJJVtFCiJFDIGAAVNBAAkiKGVEI0UMRQOxSwpBAARLArIJSwiyCEsMsgdLAbIAI7IQIrIBs0kjCEUBQv+fIihlTEUOREklW0UJIkUIgYABU0EACSIoZUQjRQhFBLFLBkEABEsDshVLCbIRSweyEksLshRLAbIAgQSyECKyAbNC/7QjQzYaAUkiWSQISwEVEkRXAgBJNhoCSU4CSSJZSU4DSSULJAhPAhUSRDEAIiplRBJEJwVPAlBJvUUBRL5ISSJbcghMSU4DTgREgUBTFESxIihlRDIQTwMLsgiyALIHI7IQIrIBsyJJSwMMQQBESwNXAgBLAUlOAiULW0sGSRUWVwYCTFBLARYnDUxQTFAnDkxQvUUBRLGyESKyEksCSbIUsgCBBLIQIrIBsyMIRQFC/7UjQyIpNhoBSRUlEkQXNhoCSU4CSRWBIBJENhoDSSJZJAhLARUSRFcCADYaBElOBEkiWUlOBSULJAhMFRJEMRYjCUlOBDgQIxJESwIWTwJQSwEVFlcGAksCUElOBEwnDFBMUCcETFC9RQFEJwVMUEm9RQFEvkhJgUBTFEQiW0wxAExyCEQSQAAQMQBLBhJAAAhLBTIDEkEAgCNESXIITElOAkUKREsDSTgHIihlRExLARJPAjgIMhBLCElOBAsSEESxMhALsgiyALIHI7IQIrIBsyJFB0sGSwQMQQA6SwRXAgBLB0lOAiULW0kWJw1MUEsEUCcOTFC9RQFEsbIRIrISSwhJshSyAIEEshAisgGzIwhFB0L/viNDIkL/fSJHBClJNhoBSSJZJAhLARUSRFcCAEk2GgJJTgJJIllJTgOBIgskCEwVEkQxACIqZUQSRCcFTFBJvUUBRL5IgUBTFEQiKGVEMgoTQQAgsSIoZUQyCksEFSEECyEGCEsDC7IIsgeyACOyECKyAbMiRQVLBEsBDEEAiEsBVwIASwWBIguBIlhJVwAISwFXCAFFCEsBVwkIRQxLAVcRCEULSwFXGQhFCkyBiAJTSU4CRQZLBEkVFlcGAkxQJw1PAlBMUCcOTFBJRQm9RQEUREEALDIGSwZLClBLC1AiFkxLAVBLClBMUEwWUCcJIksGVFBLB0y/SwQjCEUFQv91MgdC/9ErMgdnJwYyB2cjQyk2GgFJIlkkCEsBFRJEVwIASTYaAklOAkkiWUlOAyULJAhMFRJEMQAiKmVEEkQnBUxQSb1FAUS+SIFAUxREIihlRDIKE0EAHLEiKGVESwMVIQQLIQYISwILsgiyByOyECKyAbMiRQRLA0sBDEEAMUsBVwIASwRJTgIlCyVYSwRJFRZXBgJMUCcNTwJQTFAnDkxQSb1FAUS8SCMIRQRC/8crMgdnJwYyB2cjQzYaAUkVgSASRDYaAklOAkkiWYEgCyQITBUSRDYaA0kVJRJEF04CNhoESRUlEkQXTgIxACIqZUQSRCcITFBJTgO9RQFAACFLAxaAAgASTFBPAhZQTFBLAUm8SEy/KzIHZycGMgdnI0NLAkkkJboXSwUSREmBCiW6F08DEkRJvkhJIllLARVLAksCTwJSTwRXAgBQSVcCABWBIAoWVwYCXABPAiJPA1hMUEsBvEi/Qv+sNhoBSRWBIBJEJwhMUEm9RQFEMQAiKmVEEkAADEmBCiW6FzIGDEEAECNESbxIKzIHZycGMgdnI0MiQv/tIik2GgEnCiJLAiJZSUUFSwENQQBrSwJXAgBLAUlOAiQLSwFMWU8CIwhJRQRLBksBCUsDFU8CJAtLBExZTwJNUicETFBJRQa9RQFBAB9LBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jxkkUCQv+cSwFJIllMVwIAIycViPF+RQJC/4gnB0sCULAjQyJJKTYaAScKIksCIllLAQ1JRQVBAIJLAlcCAEsEREsBJAtLAUxZSlkkCFhXAgAnEExQSUUHvUUBQQBJSwW+RCcETFBJRQa9RQFBACRLBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jxC0UCSSMIRQFC/5lLAUkiWUxXAgAjJxWI8PJFAkL/5EsBSSJZTFcCACMnFYjw3kUCQv/QJwdLAlCwI0MiKTYaAScKIksCIllLAQ1JRQVBAGNLAlcCAEsEREsBJAtLAUxZSlkkCFhXAgAnBUxQSUUGvUUBQQAfSwS+REsCSU8CUEwiWSMIFlcGAlwARQJJIwhFAUL/r0sBSYAJAAAAAAAAAAAAUEwiWSMIFlcGAlwARQJC/9knB0sCULAjQyI2GgFJIlkkCEsBFRJEVwIANhoCRwIiWUlOAiULJAhMFRJEJwoiSUsDDEEAkEsDVwIASwElCyVYSwVJFRZXBgJMUCcNTwJQTFAnDkxQSUUHvUUBQQAfSwW+REsCSU8CUEwiWSMIFlcGAlwARQJJIwhFAUL/sUsBSYAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQTCJZIwgWVwYCXABFAkL/sCcHSwJQsCNDIjYaAUcCIllJTgKBIAskCEwVEkQnCiJJSwMMQQBoSwNXAgBLAYEgC4EgWCcITFBJRQa9RQFBACRLBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jvOkUCSSMIRQFC/7tLAUkiWUxXAgAjgBYAAgASAAAAAAAAAAAAAAAAAAAAAAAAiO8LRQJC/84nB0sCULAjQzYaAUkiWSQISwEVEkRXAgA2GgJJFSUSRBc2GgNJIlkkCEsBFRJEVwIANhoESRUlEkQXSwMVIQQLgeQySwEISwVPBYgAUE8EFSEECyEFCCEGTwQITwSBgGQLgZSgAQgnBU8GUL1OBkgyAYG08gkISwUITwQWTwQWUE8EFlBPAxZQTwIWUCcJIk8EVFBMFlAnB0xQsCNDigIBgRSL/wuL/hUIIQQLgfSvAgiJigEBIov/KRJBAAMiTIknBYv/UEmMAL1FAUEACIsAvkQiW0yJi/+IAANC//aKAQEiKGVEMgoTQQAesSIoZUQyCov/FSEEC4HkMgiyCLIHsgAjshAisgGzsSIoZUSB8JMJMgEIIicSZURJcghEsgdMsghLAbIAI7IQIrIBtoAE2FzxhLIashiyAIEGshAisgGztwE+SVcEAExXAAQnBxJESRUlEkQXSRYnCVAnBYv/UEy/iYoEASlHBYv8Fov9UIv+FRZXBgKL/lBMJwxQTFAnBExQSb1FAUAABCKMAImLBkmBESW6F4wASYEbI7pJI1OMBSRTTIEcJboXjANBAAQijACJiwaBLCS6FxSMBCKMAosGgSwkuheLAg1BABqLAoEUC4EuCIsGTIEUulcABIv/EkEAMSOMBIsFQQAiMgaMAYsDiwEPQQASiwGLAwmLAA9BAAcjiwQQjACJIkL/9jIHjAFC/9uLAiMIjAJC/6KKAQGL/zgAIihlRBJBAAyL/zggMgoSQQACI4mL/zgQgQYSQQAni/84GDIIEkEAHYv/OBsjEkEAFIv/OBlAAA2L/yLCGicWEkEAAiOJIomKAQIpRwInBIv/UEm9SU8CSEAACoABYIv/jAGMAImLA0mBCSW6F4wCSYERJboXjABJgRsjuiNTTIEcJboXjAFBADAyBkmLAg1MiwEJiwAMiwOBLCS6FyINJwkiiwRUI08EVCRPA1SBA08CVIv/jAGMAIkyB0L/zYoFAiJHCilHEov8QQQxMgOL+xZMUIv9FRZXBgKL/VBJjAFMJwxQTFBJjAYnBEsBUEmMAr1FAUQnE0xni/0pE0ED8icFi/1QSb1FAUS+SCJbSXIIRCcLTGdyCEyMBUQijBCL/yJZixANQQGHi/9XAgCLEIEQC4EQWEmMACJbSYwdFicNTFCLAVAnDkxQSYwDSb1FAUS+SElXAAGMCkmBEVuMGkmBCVuMC0mBIVuME0kjW4wVSYEZW4wRSYEpW4wbgYgDU0mMHEEBIjIGjBiLCicPEkEAbosLixoJiwAlW0xLAQ9EiwNJTgK+RIERWwgWgRFMu4sYFosDgSFPAruLHUEAJrEiKGVEiwAlW4sdshGyEosFshSyAIEEshAisgGzixAjCIwQQv85sSIoZUSLACVbsgiLBbIHsgAjshAisgGzQv/ciwqAAQISQQBaixxBAEgyBkmLGwmLERgJixMNQQAXiwBJVwgITCVbiwsORIsDgRFPArtC/3uLC4saCYsAJVtMSwEPRIsDSU4CvkSBEVsIFoERTLtC/1oyB0mLGwmLERgJQv+1iwqAAQMSQf9EixxBADAyBowOiw6LEwmLEQqLCwuLGghJixVJTgMNTE4CTYsAJVtKD0QJFosDgRFPArtC/w8yB4wOQv/NMgeMGEL+24sCgRsjukkjU4wcJFNBAHIxACIqZUQSQABoJwgxBlC9RQFEJwgxBlAkJboXMgYORCcIMQZQgQoluhcyBg9EJwgxBlCMBCKMDyKMEIsEgRIkuheLEA1BACCLEIEgC4EUCIsETIEgujILEkEAAyOMD4sQIwiMEEL/04sPRCcIMQZQvEiLBoj9EIwGSSJTREkjUxREJFMURIscQQGgMgaMDiKMGSKMFjEWIwiMEosGjAeLEjIEDEEAC4sSiPyNQQBZI4wZixlEsSInC2VEi/tyCESAFnJla2V5aW5nIHRvIHBsdWdpbiBhcHCyBbIgSbIHsgAjshAisgGzJxExFmcnBIsHUCUjuicPEkEABCsyB2eL/ov/jAGMAImLEjgQgQYTQQANiweLEiMIjBKMB0L/gIsSSTgYiwZJTgMiWxJESTgZFERJOBsjDUQjwhoXMggSRIj8RIwGSSNTSwEkU08CgQNTTwIUREwUREEApIv+IlmLFklPAgxEi/5XAgBMJQtbixIiwhpJjAkVgQQSRCcEiwZQSYwCSYEbI7ojU0lOAowcTwKBFAtJjAyBLgiBFLpJVwAEjAhJgQRbjA2BDFuMFEEAdDIGixQJiw0MjBeLCIsJEkEAXIsNQQAFixdAAFKLDUEAE4scQQBDMgYWiwyBOgiLAkxPAruAAYAjixdUSSJTTCNTjBdBAB+LF0AAGiNEJwSLBklOAlCLDhaBHEy7ixYjCIwWQv79IkL/4zIHQv+6gAFAQv/HMgdC/4kyB4wOQv5dIihlRCcLTGdC/bMxAEL7zA==",
+ "clear": "C4EBQw=="
+ },
+ "compilerInfo": {
+ "compiler": "puya",
+ "compilerVersion": {
+ "major": 5,
+ "minor": 2,
+ "patch": 0
+ }
+ },
+ "events": [],
+ "templateVariables": {}
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.puya.map b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.puya.map
new file mode 100644
index 000000000..bf29998bd
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.puya.map
@@ -0,0 +1,25 @@
+{
+ "version": 3,
+ "sources": [],
+ "mappings": ";;;",
+ "op_pc_offset": 0,
+ "pc_events": {
+ "1": {
+ "subroutine": "@algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram",
+ "params": {},
+ "block": "main",
+ "stack_in": [],
+ "op": "pushint 1 // 1",
+ "defined_out": [
+ "1"
+ ],
+ "stack_out": [
+ "1"
+ ]
+ },
+ "3": {
+ "op": "return",
+ "stack_out": []
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.teal b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.teal
new file mode 100644
index 000000000..42f81b0f1
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccount.clear.teal
@@ -0,0 +1,7 @@
+#pragma version 11
+#pragma typetrack false
+
+// @algorandfoundation/algorand-typescript/base-contract.d.ts::BaseContract.clearStateProgram() -> uint64:
+main:
+ pushint 1 // 1
+ return
diff --git a/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccountClient.ts b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccountClient.ts
new file mode 100644
index 000000000..aa1ca14f0
--- /dev/null
+++ b/assets/arc-0058/projects/arc-0058/smart_contracts/artifacts/abstracted_account/AbstractedAccountClient.ts
@@ -0,0 +1,3446 @@
+/* eslint-disable */
+/**
+ * This file was automatically generated by @algorandfoundation/algokit-client-generator.
+ * DO NOT MODIFY IT BY HAND.
+ * requires: @algorandfoundation/algokit-utils: ^7
+ */
+import { type AlgorandClient } from '@algorandfoundation/algokit-utils/types/algorand-client'
+import { ABIReturn, AppReturn, SendAppTransactionResult } from '@algorandfoundation/algokit-utils/types/app'
+import { Arc56Contract, getArc56ReturnValue, getABIStructFromABITuple } from '@algorandfoundation/algokit-utils/types/app-arc56'
+import {
+ AppClient as _AppClient,
+ AppClientMethodCallParams,
+ AppClientParams,
+ AppClientBareCallParams,
+ CallOnComplete,
+ AppClientCompilationParams,
+ ResolveAppClientByCreatorAndName,
+ ResolveAppClientByNetwork,
+ CloneAppClientParams,
+} from '@algorandfoundation/algokit-utils/types/app-client'
+import { AppFactory as _AppFactory, AppFactoryAppClientParams, AppFactoryResolveAppClientByCreatorAndNameParams, AppFactoryDeployParams, AppFactoryParams, CreateSchema } from '@algorandfoundation/algokit-utils/types/app-factory'
+import { TransactionComposer, AppCallMethodCall, AppMethodCallTransactionArgument, SimulateOptions, RawSimulateOptions, SkipSignaturesSimulateOptions } from '@algorandfoundation/algokit-utils/types/composer'
+import { SendParams, SendSingleTransactionResult, SendAtomicTransactionComposerResults } from '@algorandfoundation/algokit-utils/types/transaction'
+import { Address, encodeAddress, modelsv2, OnApplicationComplete, Transaction, TransactionSigner } from 'algosdk'
+
+export const APP_SPEC: Arc56Contract = {"name":"AbstractedAccount","structs":{"AbstractAccountBoxMBRData":[{"name":"plugins","type":"uint64"},{"name":"namedPlugins","type":"uint64"},{"name":"escrows","type":"uint64"},{"name":"allowances","type":"uint64"},{"name":"executions","type":"uint64"},{"name":"escrowExists","type":"bool"},{"name":"newEscrowMintCost","type":"uint64"}],"AllowanceInfo":[{"name":"type","type":"uint8"},{"name":"max","type":"uint64"},{"name":"amount","type":"uint64"},{"name":"spent","type":"uint64"},{"name":"interval","type":"uint64"},{"name":"last","type":"uint64"},{"name":"start","type":"uint64"},{"name":"useRounds","type":"bool"}],"AllowanceKey":[{"name":"escrow","type":"string"},{"name":"asset","type":"uint64"}],"EscrowInfo":[{"name":"id","type":"uint64"},{"name":"locked","type":"bool"}],"ExecutionInfo":[{"name":"groups","type":"byte[32][]"},{"name":"firstValid","type":"uint64"},{"name":"lastValid","type":"uint64"}],"PluginInfo":[{"name":"escrow","type":"uint64"},{"name":"delegationType","type":"uint8"},{"name":"lastValid","type":"uint64"},{"name":"cooldown","type":"uint64"},{"name":"methods","type":"(byte[4],uint64,uint64)[]"},{"name":"admin","type":"bool"},{"name":"useRounds","type":"bool"},{"name":"useExecutionKey","type":"bool"},{"name":"lastCalled","type":"uint64"},{"name":"start","type":"uint64"}],"PluginKey":[{"name":"plugin","type":"uint64"},{"name":"caller","type":"address"},{"name":"escrow","type":"string"}]},"methods":[{"name":"createApplication","args":[{"type":"address","name":"controlledAddress","desc":"The address of the abstracted account. If zeroAddress, then the address of the contract account will be used"},{"type":"address","name":"admin","desc":"The admin for this app"},{"type":"uint64","name":"escrowFactory"}],"returns":{"type":"void"},"actions":{"create":["NoOp"],"call":[]},"readonly":false,"desc":"Create an abstracted account application.\nThis is not part of ARC58 and implementation specific.","events":[],"recommendations":{}},{"name":"register","args":[{"type":"string","name":"escrow"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Register the abstracted account with the escrow factory.\nThis allows apps to correlate the account with the app without needing\nit to be explicitly provided.","events":[],"recommendations":{}},{"name":"arc58_changeAdmin","args":[{"type":"address","name":"newAdmin","desc":"The new admin"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Attempt to change the admin for this app. Some implementations MAY not support this.","events":[],"recommendations":{}},{"name":"arc58_pluginChangeAdmin","args":[{"type":"address","name":"newAdmin","desc":"The new admin"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Attempt to change the admin via plugin.","events":[],"recommendations":{}},{"name":"arc58_getAdmin","args":[],"returns":{"type":"address"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"desc":"Get the admin of this app. This method SHOULD always be used rather than reading directly from state\nbecause different implementations may have different ways of determining the admin.","events":[],"recommendations":{}},{"name":"arc58_verifyAuthAddress","args":[],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Verify the abstracted account is rekeyed to this app","events":[],"recommendations":{}},{"name":"arc58_rekeyTo","args":[{"type":"address","name":"address","desc":"The address to rekey to"},{"type":"bool","name":"flash","desc":"Whether or not this should be a flash rekey. If true, the rekey back to the app address must done in the same txn group as this call"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.","events":[],"recommendations":{}},{"name":"arc58_canCall","args":[{"type":"uint64","name":"plugin","desc":"the plugin to be rekeyed to"},{"type":"bool","name":"global","desc":"whether this is callable globally"},{"type":"address","name":"address","desc":"the address that will trigger the plugin"},{"type":"string","name":"escrow"},{"type":"byte[4]","name":"method","desc":"the method being called on the plugin, if applicable"}],"returns":{"type":"bool","desc":"whether the plugin can be called with these parameters"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"desc":"check whether the plugin can be used","events":[],"recommendations":{}},{"name":"arc58_rekeyToPlugin","args":[{"type":"uint64","name":"plugin","desc":"The app to rekey to"},{"type":"bool","name":"global","desc":"Whether the plugin is callable globally"},{"type":"string","name":"escrow"},{"type":"uint64[]","name":"methodOffsets","desc":"The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"},{"type":"(uint64,uint64)[]","name":"fundsRequest","desc":"If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Temporarily rekey to an approved plugin app address","events":[],"recommendations":{}},{"name":"arc58_rekeyToNamedPlugin","args":[{"type":"string","name":"name","desc":"The name of the plugin to rekey to"},{"type":"bool","name":"global","desc":"Whether the plugin is callable globally"},{"type":"string","name":"escrow"},{"type":"uint64[]","name":"methodOffsets","desc":"The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group"},{"type":"(uint64,uint64)[]","name":"fundsRequest","desc":"If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Temporarily rekey to a named plugin app address","events":[],"recommendations":{}},{"name":"arc58_addPlugin","args":[{"type":"uint64","name":"plugin"},{"type":"address","name":"caller"},{"type":"string","name":"escrow","desc":"The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"},{"type":"bool","name":"admin","desc":"Whether the plugin has permissions to change the admin account"},{"type":"uint8","name":"delegationType","desc":"the ownership of the delegation for last_interval updates"},{"type":"uint64","name":"lastValid","desc":"The timestamp or round when the permission expires"},{"type":"uint64","name":"cooldown","desc":"The number of seconds or rounds that must pass before the plugin can be called again"},{"type":"(byte[4],uint64)[]","name":"methods","desc":"The methods that are allowed to be called for the plugin by the address"},{"type":"bool","name":"useRounds","desc":"Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"},{"type":"bool","name":"useExecutionKey"},{"type":"bool","name":"defaultToEscrow"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Add an app to the list of approved plugins","events":[],"recommendations":{}},{"name":"arc58_removePlugin","args":[{"type":"uint64","name":"plugin"},{"type":"address","name":"caller"},{"type":"string","name":"escrow"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Remove an app from the list of approved plugins","events":[],"recommendations":{}},{"name":"arc58_addNamedPlugin","args":[{"type":"string","name":"name","desc":"The plugin name"},{"type":"uint64","name":"plugin"},{"type":"address","name":"caller"},{"type":"string","name":"escrow","desc":"The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created"},{"type":"bool","name":"admin","desc":"Whether the plugin has permissions to change the admin account"},{"type":"uint8","name":"delegationType","desc":"the ownership of the delegation for last_interval updates"},{"type":"uint64","name":"lastValid","desc":"The timestamp or round when the permission expires"},{"type":"uint64","name":"cooldown","desc":"The number of seconds or rounds that must pass before the plugin can be called again"},{"type":"(byte[4],uint64)[]","name":"methods","desc":"The methods that are allowed to be called for the plugin by the address"},{"type":"bool","name":"useRounds","desc":"Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp"},{"type":"bool","name":"useExecutionKey"},{"type":"bool","name":"defaultToEscrow"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Add a named plugin","events":[],"recommendations":{}},{"name":"arc58_removeNamedPlugin","args":[{"type":"string","name":"name","desc":"The plugin name"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Remove a named plugin","events":[],"recommendations":{}},{"name":"arc58_newEscrow","args":[{"type":"string","name":"escrow","desc":"The name of the escrow to create"}],"returns":{"type":"uint64"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Create a new escrow for the controlled address","events":[],"recommendations":{}},{"name":"arc58_toggleEscrowLock","args":[{"type":"string","name":"escrow","desc":"The escrow to lock or unlock"}],"returns":{"type":"(uint64,bool)","struct":"EscrowInfo"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Lock or Unlock an escrow account","events":[],"recommendations":{}},{"name":"arc58_reclaim","args":[{"type":"string","name":"escrow","desc":"The escrow to reclaim funds from"},{"type":"(uint64,uint64,bool)[]","name":"reclaims","desc":"The list of reclaims to make from the escrow"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Transfer funds from an escrow back to the controlled address.","events":[],"recommendations":{}},{"name":"arc58_optinEscrow","args":[{"type":"string","name":"escrow","desc":"The escrow to opt-in to"},{"type":"uint64[]","name":"assets","desc":"The list of assets to opt-in to"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Opt-in an escrow account to assets","events":[],"recommendations":{}},{"name":"arc58_pluginOptinEscrow","args":[{"type":"uint64","name":"plugin"},{"type":"address","name":"caller"},{"type":"string","name":"escrow"},{"type":"uint64[]","name":"assets","desc":"The list of assets to opt-in to"},{"type":"pay","name":"mbrPayment","desc":"The payment txn that is used to pay for the asset opt-in"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Opt-in an escrow account to assets via a plugin / allowed caller","events":[],"recommendations":{}},{"name":"arc58_addAllowances","args":[{"type":"string","name":"escrow","desc":"The escrow to add the allowance for"},{"type":"(uint64,uint8,uint64,uint64,uint64,bool)[]","name":"allowances","desc":"The list of allowances to add"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Add an allowance for an escrow account","events":[],"recommendations":{}},{"name":"arc58_removeAllowances","args":[{"type":"string","name":"escrow","desc":"The escrow to remove the allowance for"},{"type":"uint64[]","name":"assets","desc":"The list of assets to remove the allowance for"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"desc":"Remove an allowances for an escrow account","events":[],"recommendations":{}},{"name":"arc58_addExecutionKey","args":[{"type":"byte[32]","name":"lease"},{"type":"byte[32][]","name":"groups"},{"type":"uint64","name":"firstValid"},{"type":"uint64","name":"lastValid"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"events":[],"recommendations":{}},{"name":"arc58_removeExecutionKey","args":[{"type":"byte[32]","name":"lease"}],"returns":{"type":"void"},"actions":{"create":[],"call":["NoOp"]},"readonly":false,"events":[],"recommendations":{}},{"name":"arc58_getPlugins","args":[{"type":"(uint64,address,string)[]","name":"keys"}],"returns":{"type":"(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}},{"name":"arc58_getNamedPlugins","args":[{"type":"string[]","name":"names"}],"returns":{"type":"(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}},{"name":"arc58_getEscrows","args":[{"type":"string[]","name":"escrows"}],"returns":{"type":"(uint64,bool)[]"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}},{"name":"arc58_getAllowances","args":[{"type":"string","name":"escrow"},{"type":"uint64[]","name":"assets"}],"returns":{"type":"(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}},{"name":"arc58_getExecutions","args":[{"type":"byte[32][]","name":"leases"}],"returns":{"type":"(byte[32][],uint64,uint64)[]"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}},{"name":"mbr","args":[{"type":"string","name":"escrow"},{"type":"uint64","name":"methodCount"},{"type":"string","name":"plugin"},{"type":"uint64","name":"groups"}],"returns":{"type":"(uint64,uint64,uint64,uint64,uint64,bool,uint64)","struct":"AbstractAccountBoxMBRData"},"actions":{"create":[],"call":["NoOp"]},"readonly":true,"events":[],"recommendations":{}}],"arcs":[22,28],"networks":{},"state":{"schema":{"global":{"ints":4,"bytes":4},"local":{"ints":0,"bytes":0}},"keys":{"global":{"admin":{"keyType":"AVMString","valueType":"address","key":"YWRtaW4=","desc":"The admin of the abstracted account. This address can add plugins and initiate rekeys"},"controlledAddress":{"keyType":"AVMString","valueType":"address","key":"Y29udHJvbGxlZF9hZGRyZXNz","desc":"The address this app controls"},"lastUserInteraction":{"keyType":"AVMString","valueType":"AVMUint64","key":"bGFzdF91c2VyX2ludGVyYWN0aW9u","desc":"The last time the contract was interacted with in unix time"},"lastChange":{"keyType":"AVMString","valueType":"AVMUint64","key":"bGFzdF9jaGFuZ2U=","desc":"The last time state has changed on the abstracted account (not including lastCalled for cooldowns) in unix time"},"escrowFactory":{"keyType":"AVMString","valueType":"AVMUint64","key":"ZXNjcm93X2ZhY3Rvcnk=","desc":"the escrow account factory to use for allowances"},"spendingAddress":{"keyType":"AVMString","valueType":"address","key":"c3BlbmRpbmdfYWRkcmVzcw==","desc":"[TEMPORARY STATE FIELD] The spending address for the currently active plugin"},"currentPlugin":{"keyType":"AVMString","valueType":"PluginKey","key":"Y3VycmVudF9wbHVnaW4=","desc":"[TEMPORARY STATE FIELD] The current plugin key being used"},"rekeyIndex":{"keyType":"AVMString","valueType":"AVMUint64","key":"cmVrZXlfaW5kZXg=","desc":"[TEMPORARY STATE FIELD] The index of the transaction that created the rekey sandwich"}},"local":{},"box":{}},"maps":{"global":{},"local":{},"box":{"plugins":{"keyType":"PluginKey","valueType":"PluginInfo","desc":"Plugins that add functionality to the controlledAddress and the account that has permission to use it.","prefix":"cA=="},"namedPlugins":{"keyType":"AVMString","valueType":"PluginKey","desc":"Plugins that have been given a name for discoverability","prefix":"bg=="},"escrows":{"keyType":"AVMString","valueType":"EscrowInfo","desc":"the escrows that this wallet has created for specific callers with allowances","prefix":"ZQ=="},"allowances":{"keyType":"AllowanceKey","valueType":"AllowanceInfo","desc":"The Allowances for plugins installed on the smart contract with useAllowance set to true","prefix":"YQ=="},"executions":{"keyType":"AVMBytes","valueType":"ExecutionInfo","desc":"execution keys","prefix":"eA=="}}}},"bareActions":{"create":[],"call":[]},"sourceInfo":{"approval":{"sourceInfo":[{"pc":[4130,4248,4265,4407,4563,4730,5014,5778,5941],"errorMessage":"Box must have value"},{"pc":[5141],"errorMessage":"Bytes has valid prefix"},{"pc":[2992,3214,3442,3704],"errorMessage":"Escrow is locked"},{"pc":[2594],"errorMessage":"Escrow name is required"},{"pc":[6104],"errorMessage":"Execution key expired"},{"pc":[6077],"errorMessage":"Execution key not found"},{"pc":[6090],"errorMessage":"Execution key not ready"},{"pc":[6165],"errorMessage":"Group not found"},{"pc":[236],"errorMessage":"OnCompletion must be NoOp"},{"pc":[888],"errorMessage":"This plugin does not have admin privileges"},{"pc":[865],"errorMessage":"This plugin is not in control of the account"},{"pc":[859,940],"errorMessage":"account funded"},{"pc":[1026,1528,1859,2112,2454,2580,2629,3426,3688,3870,4031],"errorMessage":"admin only"},{"pc":[843],"errorMessage":"admin plugins cannot use escrows"},{"pc":[3579],"errorMessage":"allowance already exists"},{"pc":[3063,3341,3793,5692],"errorMessage":"allowance does not exist"},{"pc":[5771,5910,5934,6016],"errorMessage":"allowance exceeded"},{"pc":[737,850,863,2748,2987,3223,3255,5090,5628,5638,6250],"errorMessage":"application exists"},{"pc":[6359],"errorMessage":"cannot call other apps during rekey"},{"pc":[733,791,821,856,921,933,944,952,1024,1031,1526,1686,1697,1857,1903,1914,2110,2283,2294,2452,2495,2506,2578,2627,2730,2785,2804,2853,2872,2961,2997,3264,3424,3446,3457,3686,3708,3719,3868,4013,5033,5044,5074,5086,5358,5807,5845,6064,6245,6624],"errorMessage":"check GlobalState exists"},{"pc":[1545,2142],"errorMessage":"delegation type must not be self for global plugins"},{"pc":[2590],"errorMessage":"escrow already exists"},{"pc":[721,2638,2741,2973,3206,3435,3697,5620],"errorMessage":"escrow does not exist"},{"pc":[1800,2415],"errorMessage":"escrow must be set if defaultToEscrow is true"},{"pc":[4007],"errorMessage":"execution key does not exist"},{"pc":[3927],"errorMessage":"execution key update must match first valid"},{"pc":[3937],"errorMessage":"execution key update must match last valid"},{"pc":[2732,2963,3245],"errorMessage":"forbidden"},{"pc":[1628,2234,2769,3508,3767,4098,4215,4374,4529,4713,5664],"errorMessage":"index access is out of bounds"},{"pc":[6438],"errorMessage":"invalid method signature length"},{"pc":[1290,1370],"errorMessage":"invalid number of bytes for (len+(uint64,uint64)[])"},{"pc":[2720],"errorMessage":"invalid number of bytes for (len+(uint64,uint64,bool1)[])"},{"pc":[3418],"errorMessage":"invalid number of bytes for (len+(uint64,uint8,uint64,uint64,uint64,bool1)[])"},{"pc":[1487,2068],"errorMessage":"invalid number of bytes for (len+(uint8[4],uint64)[])"},{"pc":[1274,1354,2955,3152,3680,4508],"errorMessage":"invalid number of bytes for (len+uint64[])"},{"pc":[3840,4690],"errorMessage":"invalid number of bytes for (len+uint8[32][])"},{"pc":[700,1170,1256,1310,1336,1424,1845,1961,1999,2442,2569,2618,2696,2929,3129,3393,3656,4487,4825,4850],"errorMessage":"invalid number of bytes for (len+utf8[])"},{"pc":[1016,1144,1241,1321,1435,1495,1506,1517,2011,2076,2088,2100],"errorMessage":"invalid number of bytes for bool8"},{"pc":[615,1135,1232,1401,1454,1464,1822,1973,2033,2044,3103,3848,3859,4836,4861,5146],"errorMessage":"invalid number of bytes for uint64"},{"pc":[1446,2025],"errorMessage":"invalid number of bytes for uint8"},{"pc":[596,607,785,816,1008,1157,1411,1832,1986,3116,3822,3998],"errorMessage":"invalid number of bytes for uint8[32]"},{"pc":[1185],"errorMessage":"invalid number of bytes for uint8[4]"},{"pc":[6364],"errorMessage":"invalid oncomplete must be no op"},{"pc":[3283],"errorMessage":"invalid payment"},{"pc":[6378],"errorMessage":"invalid sender app id"},{"pc":[6370],"errorMessage":"invalid sender must be this app id"},{"pc":[1643,2249],"errorMessage":"invalid size"},{"pc":[6416],"errorMessage":"malformed method offsets"},{"pc":[1653,2259,3959,4413,4449,4569,4646],"errorMessage":"max array length exceeded"},{"pc":[6569],"errorMessage":"method on cooldown"},{"pc":[1112,6239],"errorMessage":"missing rekey back"},{"pc":[793],"errorMessage":"only admin can change the admin account"},{"pc":[1890,2463,2478,3197,5599,6183],"errorMessage":"plugin does not exist"},{"pc":[6188,6399],"errorMessage":"plugin expired"},{"pc":[6192,6402],"errorMessage":"plugin on cooldown"},{"pc":[852],"errorMessage":"sender must be admin plugin"},{"pc":[633],"errorMessage":"sender must be either controlledAddress or admin"},{"pc":[3164],"errorMessage":"transaction type is pay"},{"pc":[1561,2158],"errorMessage":"using execution key requires global plugin"}],"pcOffsetMethod":"none"},"clear":{"sourceInfo":[],"pcOffsetMethod":"none"}},"source":{"approval":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYXJjNC9pbmRleC5kLnRzOjpDb250cmFjdC5hcHByb3ZhbFByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBpbnRjYmxvY2sgMCAxIDIgOCA0MDAgMjE3MDAgMjc3MDAKICAgIGJ5dGVjYmxvY2sgImNvbnRyb2xsZWRfYWRkcmVzcyIgIiIgImFkbWluIiAibGFzdF91c2VyX2ludGVyYWN0aW9uIiAicCIgImUiICJsYXN0X2NoYW5nZSIgMHgxNTFmN2M3NSAieCIgMHgwMCAweDAwMDAgInNwZW5kaW5nX2FkZHJlc3MiIDB4MDAyYSAweDAwMGEgImEiIDB4MDEgIm4iICJyZWtleV9pbmRleCIgImVzY3Jvd19mYWN0b3J5IiAiY3VycmVudF9wbHVnaW4iIDB4MDAwMiAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMCAweDZjYzNmNjA2IDB4MDAyYwogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJueiBtYWluX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwCiAgICAvLyByZWtleUluZGV4ID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGluaXRpYWxWYWx1ZTogMCwga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNSZWtleUluZGV4IH0pCiAgICBieXRlYyAxNyAvLyAicmVrZXlfaW5kZXgiCiAgICBpbnRjXzAgLy8gMAogICAgYXBwX2dsb2JhbF9wdXQKCm1haW5fYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzCiAgICAvLyBleHBvcnQgY2xhc3MgQWJzdHJhY3RlZEFjY291bnQgZXh0ZW5kcyBDb250cmFjdCB7CiAgICB0eG4gT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gT25Db21wbGV0aW9uIG11c3QgYmUgTm9PcAogICAgdHhuIEFwcGxpY2F0aW9uSUQKICAgIGJ6IG1haW5fY3JlYXRlX05vT3BAMzQKICAgIHB1c2hieXRlc3MgMHhiZDYwOTllNSAweGQyNGI3NTU2IDB4MTQ3YjZjZDYgMHgxM2JjNDRlNCAvLyBtZXRob2QgInJlZ2lzdGVyKHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9jaGFuZ2VBZG1pbihhZGRyZXNzKXZvaWQiLCBtZXRob2QgImFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKGFkZHJlc3Mpdm9pZCIsIG1ldGhvZCAiYXJjNThfZ2V0QWRtaW4oKWFkZHJlc3MiCiAgICBieXRlYyAyMiAvLyBtZXRob2QgImFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzKCl2b2lkIgogICAgcHVzaGJ5dGVzcyAweGM5NWE1ZDNkIDB4NDcyN2FmMjEgMHg1ODJmZjM4MiAweGRlZmQ1Y2QyIDB4YjNjODBkZjkgMHhlZWY0NDhmZCAweDM4ZjU5MWVhIDB4ZTM1MGI5ZDQgMHgwYThjYjJjMiAweDI1YjcxM2NhIDB4ZWJhZjE0YTAgMHgxZmRhM2I0ZiAweDlkM2Y4OTE4IDB4YmY0ZDdjNTcgMHhkNWRkMzgyYiAweDVjZWJlZDQzIDB4ZDU4Njg1YWYgMHg3YzM3MTU2ZSAweGFmZmFhNGU4IDB4YTI0MDNkZGYgMHgwMmZlNDUxNSAweDQxYmRjNjgwIDB4NTBmM2UzNWMgLy8gbWV0aG9kICJhcmM1OF9yZWtleVRvKGFkZHJlc3MsYm9vbCl2b2lkIiwgbWV0aG9kICJhcmM1OF9jYW5DYWxsKHVpbnQ2NCxib29sLGFkZHJlc3Msc3RyaW5nLGJ5dGVbNF0pYm9vbCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb1BsdWdpbih1aW50NjQsYm9vbCxzdHJpbmcsdWludDY0W10sKHVpbnQ2NCx1aW50NjQpW10pdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luKHN0cmluZyxib29sLHN0cmluZyx1aW50NjRbXSwodWludDY0LHVpbnQ2NClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRQbHVnaW4odWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlUGx1Z2luKHVpbnQ2NCxhZGRyZXNzLHN0cmluZyl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGROYW1lZFBsdWdpbihzdHJpbmcsdWludDY0LGFkZHJlc3Msc3RyaW5nLGJvb2wsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQpW10sYm9vbCxib29sLGJvb2wpdm9pZCIsIG1ldGhvZCAiYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4oc3RyaW5nKXZvaWQiLCBtZXRob2QgImFyYzU4X25ld0VzY3JvdyhzdHJpbmcpdWludDY0IiwgbWV0aG9kICJhcmM1OF90b2dnbGVFc2Nyb3dMb2NrKHN0cmluZykodWludDY0LGJvb2wpIiwgbWV0aG9kICJhcmM1OF9yZWNsYWltKHN0cmluZywodWludDY0LHVpbnQ2NCxib29sKVtdKXZvaWQiLCBtZXRob2QgImFyYzU4X29wdGluRXNjcm93KHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9wbHVnaW5PcHRpbkVzY3Jvdyh1aW50NjQsYWRkcmVzcyxzdHJpbmcsdWludDY0W10scGF5KXZvaWQiLCBtZXRob2QgImFyYzU4X2FkZEFsbG93YW5jZXMoc3RyaW5nLCh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9yZW1vdmVBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9hZGRFeGVjdXRpb25LZXkoYnl0ZVszMl0sYnl0ZVszMl1bXSx1aW50NjQsdWludDY0KXZvaWQiLCBtZXRob2QgImFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShieXRlWzMyXSl2b2lkIiwgbWV0aG9kICJhcmM1OF9nZXRQbHVnaW5zKCh1aW50NjQsYWRkcmVzcyxzdHJpbmcpW10pKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LChieXRlWzRdLHVpbnQ2NCx1aW50NjQpW10sYm9vbCxib29sLGJvb2wsdWludDY0LHVpbnQ2NClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0TmFtZWRQbHVnaW5zKHN0cmluZ1tdKSh1aW50NjQsdWludDgsdWludDY0LHVpbnQ2NCwoYnl0ZVs0XSx1aW50NjQsdWludDY0KVtdLGJvb2wsYm9vbCxib29sLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgImFyYzU4X2dldEVzY3Jvd3Moc3RyaW5nW10pKHVpbnQ2NCxib29sKVtdIiwgbWV0aG9kICJhcmM1OF9nZXRBbGxvd2FuY2VzKHN0cmluZyx1aW50NjRbXSkodWludDgsdWludDY0LHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbClbXSIsIG1ldGhvZCAiYXJjNThfZ2V0RXhlY3V0aW9ucyhieXRlWzMyXVtdKShieXRlWzMyXVtdLHVpbnQ2NCx1aW50NjQpW10iLCBtZXRob2QgIm1icihzdHJpbmcsdWludDY0LHN0cmluZyx1aW50NjQpKHVpbnQ2NCx1aW50NjQsdWludDY0LHVpbnQ2NCx1aW50NjQsYm9vbCx1aW50NjQpIgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMAogICAgbWF0Y2ggcmVnaXN0ZXIgYXJjNThfY2hhbmdlQWRtaW4gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4gYXJjNThfZ2V0QWRtaW4gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MgYXJjNThfcmVrZXlUbyBhcmM1OF9jYW5DYWxsIGFyYzU4X3Jla2V5VG9QbHVnaW4gYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luIGFyYzU4X2FkZFBsdWdpbiBhcmM1OF9yZW1vdmVQbHVnaW4gYXJjNThfYWRkTmFtZWRQbHVnaW4gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4gYXJjNThfbmV3RXNjcm93IGFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2sgYXJjNThfcmVjbGFpbSBhcmM1OF9vcHRpbkVzY3JvdyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdyBhcmM1OF9hZGRBbGxvd2FuY2VzIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMgYXJjNThfYWRkRXhlY3V0aW9uS2V5IGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleSBhcmM1OF9nZXRQbHVnaW5zIGFyYzU4X2dldE5hbWVkUGx1Z2lucyBhcmM1OF9nZXRFc2Nyb3dzIGFyYzU4X2dldEFsbG93YW5jZXMgYXJjNThfZ2V0RXhlY3V0aW9ucyBtYnIKICAgIGVycgoKbWFpbl9jcmVhdGVfTm9PcEAzNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMwogICAgLy8gZXhwb3J0IGNsYXNzIEFic3RyYWN0ZWRBY2NvdW50IGV4dGVuZHMgQ29udHJhY3QgewogICAgcHVzaGJ5dGVzIDB4ZTE4MzYyZTIgLy8gbWV0aG9kICJjcmVhdGVBcHBsaWNhdGlvbihhZGRyZXNzLGFkZHJlc3MsdWludDY0KXZvaWQiCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAwCiAgICBtYXRjaCBjcmVhdGVBcHBsaWNhdGlvbgogICAgZXJyCgoKLy8gX3B1eWFfbGliLmFyYzQuZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50KGFycmF5X2l0ZW1zX2NvdW50OiB1aW50NjQsIGFycmF5X2hlYWRfYW5kX3RhaWw6IGJ5dGVzLCBuZXdfaXRlbXNfY291bnQ6IHVpbnQ2NCwgbmV3X2hlYWRfYW5kX3RhaWw6IGJ5dGVzKSAtPiBieXRlczoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50OgogICAgcHJvdG8gNCAxCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGZyYW1lX2RpZyAtNAogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGludGNfMCAvLyAwCgpkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfZm9yX2hlYWRlckAxOgogICAgZnJhbWVfZGlnIDQKICAgIGZyYW1lX2RpZyAzCiAgICA8CiAgICBieiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnRfYWZ0ZXJfZm9yQDQKICAgIGZyYW1lX2RpZyAtMwogICAgZnJhbWVfZGlnIDQKICAgIGR1cAogICAgY292ZXIgMgogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAyCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgZnJhbWVfZGlnIDEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSAxCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZnJhbWVfYnVyeSA0CiAgICBiIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDEKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JANDoKICAgIGZyYW1lX2RpZyAtMwogICAgbGVuCiAgICBmcmFtZV9idXJ5IDAKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDQKCmR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9mb3JfaGVhZGVyQDU6CiAgICBmcmFtZV9kaWcgNAogICAgZnJhbWVfZGlnIDIKICAgIDwKICAgIGJ6IGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudF9hZnRlcl9mb3JAOAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgNAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgZnJhbWVfZGlnIDAKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgc3dhcAogICAgY29uY2F0CiAgICBmcmFtZV9idXJ5IDEKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBmcmFtZV9idXJ5IDQKICAgIGIgZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2Zvcl9oZWFkZXJANQoKZHluYW1pY19hcnJheV9jb25jYXRfZHluYW1pY19lbGVtZW50X2FmdGVyX2ZvckA4OgogICAgZnJhbWVfZGlnIC00CiAgICBmcmFtZV9kaWcgLTIKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgMQogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTMKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMAogICAgc3Vic3RyaW5nMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTEKICAgIGxlbgogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9kaWcgMgogICAgdW5jb3ZlciAyCiAgICBzdWJzdHJpbmczCiAgICBjb25jYXQKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5jcmVhdGVBcHBsaWNhdGlvbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmNyZWF0ZUFwcGxpY2F0aW9uOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQwOQogICAgLy8gQGFiaW1ldGhvZCh7IG9uQ3JlYXRlOiAncmVxdWlyZScgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyCiAgICAvLyBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIHR4biBTZW5kZXIKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEyLTQxMwogICAgLy8gVHhuLnNlbmRlciA9PT0gY29udHJvbGxlZEFkZHJlc3MubmF0aXZlCiAgICAvLyB8fCBUeG4uc2VuZGVyID09PSBhZG1pbi5uYXRpdmUsCiAgICBibnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF90cnVlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTMKICAgIC8vIHx8IFR4bi5zZW5kZXIgPT09IGFkbWluLm5hdGl2ZSwKICAgIHR4biBTZW5kZXIKICAgIGRpZyAyCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxMi00MTMKICAgIC8vIFR4bi5zZW5kZXIgPT09IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZQogICAgLy8gfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgYnogY3JlYXRlQXBwbGljYXRpb25fYm9vbF9mYWxzZUA0CgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX3RydWVAMzoKICAgIGludGNfMSAvLyAxCgpjcmVhdGVBcHBsaWNhdGlvbl9ib29sX21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDExLTQxNQogICAgLy8gYXNzZXJ0KAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmUKICAgIC8vICAgfHwgVHhuLnNlbmRlciA9PT0gYWRtaW4ubmF0aXZlLAogICAgLy8gICBFUlJfU0VOREVSX01VU1RfQkVfQURNSU5fT1JfQ09OVFJPTExFRF9BRERSRVNTCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIHNlbmRlciBtdXN0IGJlIGVpdGhlciBjb250cm9sbGVkQWRkcmVzcyBvciBhZG1pbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxNgogICAgLy8gYXNzZXJ0KGFkbWluICE9PSBjb250cm9sbGVkQWRkcmVzcyk7CiAgICBkaWcgMQogICAgZHVwCiAgICBkaWcgNAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAhPQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MTgKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBhZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICBieiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDcKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxOQogICAgLy8gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSA9IGNvbnRyb2xsZWRBZGRyZXNzLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzID8gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MgOiBjb250cm9sbGVkQWRkcmVzcy5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDIwCiAgICAvLyB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUgPSBlc2Nyb3dGYWN0b3J5OwogICAgZGlnIDEKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQyMQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBHbG9iYWwuemVyb0FkZHJlc3M7CiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MDkKICAgIC8vIEBhYmltZXRob2QoeyBvbkNyZWF0ZTogJ3JlcXVpcmUnIH0pCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgpjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X2ZhbHNlQDc6CiAgICBkaWcgMgogICAgYiBjcmVhdGVBcHBsaWNhdGlvbl90ZXJuYXJ5X21lcmdlQDgKCmNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGNyZWF0ZUFwcGxpY2F0aW9uX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucmVnaXN0ZXJbcm91dGluZ10oKSAtPiB2b2lkOgpyZWdpc3RlcjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzEKICAgIC8vIHJlZ2lzdGVyKGVzY3Jvdzogc3RyaW5nKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMgogICAgLy8gbGV0IGFwcDogdWludDY0ID0gMAogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzMKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBieXRlY18xIC8vICIiCiAgICAhPQogICAgYnogcmVnaXN0ZXJfYWZ0ZXJfaWZfZWxzZUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzQKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzNQogICAgLy8gYXBwID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBidXJ5IDEKCnJlZ2lzdGVyX2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0CiAgICAvLyBlc2Nyb3dGYWN0b3J5ID0gR2xvYmFsU3RhdGU8QXBwbGljYXRpb24+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNFc2Nyb3dGYWN0b3J5IH0pCiAgICBieXRlYyAxOCAvLyAiZXNjcm93X2ZhY3RvcnkiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQyCiAgICAvLyByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQzCiAgICAvLyBhbW91bnQ6IEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01icgogICAgcHVzaGludCAxMjEwMCAvLyAxMjEwMAogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDEtNDQ0CiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICByZWNlaXZlcjogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLmFkZHJlc3MsCiAgICAvLyAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyB9KSwKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBpdHhuX25leHQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NDUKICAgIC8vIGFwcAogICAgZGlnIDEKICAgIGl0b2IKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MzgtNDQ3CiAgICAvLyBhYmlDYWxsPHR5cGVvZiBFc2Nyb3dGYWN0b3J5LnByb3RvdHlwZS5yZWdpc3Rlcj4oewogICAgLy8gICBhcHBJZDogdGhpcy5lc2Nyb3dGYWN0b3J5LnZhbHVlLAogICAgLy8gICBhcmdzOiBbCiAgICAvLyAgICAgaXR4bi5wYXltZW50KHsKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcywKICAgIC8vICAgICAgIGFtb3VudDogQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyCiAgICAvLyAgICAgfSksCiAgICAvLyAgICAgYXBwCiAgICAvLyAgIF0KICAgIC8vIH0pCiAgICBwdXNoYnl0ZXMgMHg2MDdlNzA0NiAvLyBtZXRob2QgInJlZ2lzdGVyKHBheSx1aW50NjQpdm9pZCIKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25BcmdzCiAgICBpdHhuX2ZpZWxkIEFwcGxpY2F0aW9uQXJncwogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbklECiAgICBwdXNoaW50IDYgLy8gYXBwbAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQzMQogICAgLy8gcmVnaXN0ZXIoZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NoYW5nZUFkbWluW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfY2hhbmdlQWRtaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ1NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9PTkxZX0FETUlOX0NBTl9DSEFOR0VfQURNSU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gb25seSBhZG1pbiBjYW4gY2hhbmdlIHRoZSBhZG1pbiBhY2NvdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NTcKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDU1CiAgICAvLyBhcmM1OF9jaGFuZ2VBZG1pbihuZXdBZG1pbjogQWRkcmVzcyk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzAKICAgIC8vIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluKG5ld0FkbWluOiBBZGRyZXNzKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDcxCiAgICAvLyBjb25zdCBrZXkgPSBjbG9uZSh0aGlzLmN1cnJlbnRQbHVnaW4udmFsdWUpCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MQogICAgLy8gY29uc3Qga2V5ID0gY2xvbmUodGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzIKICAgIC8vIGNvbnN0IHsgcGx1Z2luLCBlc2Nyb3cgfSA9IGtleQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGRpZyAxCiAgICBwdXNoaW50IDQwIC8vIDQwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDIKICAgIGxlbgogICAgZGlnIDMKICAgIGNvdmVyIDIKICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc0CiAgICAvLyBhc3NlcnQoZXNjcm93ID09PSAnJywgRVJSX0FETUlOX1BMVUdJTlNfQ0FOTk9UX1VTRV9FU0NST1dTKTsKICAgIGJ5dGVjXzEgLy8gIiIKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gcGx1Z2lucyBjYW5ub3QgdXNlIGVzY3Jvd3MKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzUKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsIEVSUl9TRU5ERVJfTVVTVF9CRV9BRE1JTl9QTFVHSU4pOwogICAgdHhuIFNlbmRlcgogICAgZGlnIDEKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gc2VuZGVyIG11c3QgYmUgYWRtaW4gcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc3CiAgICAvLyB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NzcKICAgIC8vIHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcywKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBhY2N0X3BhcmFtc19nZXQgQWNjdEF1dGhBZGRyCiAgICBhc3NlcnQgLy8gYWNjb3VudCBmdW5kZWQKICAgIHN3YXAKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDc2LTQ3OQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSBBcHBsaWNhdGlvbihwbHVnaW4pLmFkZHJlc3MsCiAgICAvLyAgICdUaGlzIHBsdWdpbiBpcyBub3QgaW4gY29udHJvbCBvZiB0aGUgYWNjb3VudCcKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gaXMgbm90IGluIGNvbnRyb2wgb2YgdGhlIGFjY291bnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgyCiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMgJiYgdGhpcy5wbHVnaW5zKGtleSkudmFsdWUuYWRtaW4sCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgZHVwCiAgICBwdXNoaW50IDI3IC8vIDI3CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGJ6IGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANAogICAgaW50Y18xIC8vIDEKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODEtNDg0CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cyAmJiB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5hZG1pbiwKICAgIC8vICAgJ1RoaXMgcGx1Z2luIGRvZXMgbm90IGhhdmUgYWRtaW4gcHJpdmlsZWdlcycKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gVGhpcyBwbHVnaW4gZG9lcyBub3QgaGF2ZSBhZG1pbiBwcml2aWxlZ2VzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODYKICAgIC8vIHRoaXMuYWRtaW4udmFsdWUgPSBuZXdBZG1pbi5uYXRpdmU7CiAgICBkaWcgMgogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0ODcKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBkdXAKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBhcmM1OF9wbHVnaW5DaGFuZ2VBZG1pbl9hZnRlcl9pZl9lbHNlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2FmdGVyX2lmX2Vsc2VANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ3MAogICAgLy8gYXJjNThfcGx1Z2luQ2hhbmdlQWRtaW4obmV3QWRtaW46IEFkZHJlc3MpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbkNoYW5nZUFkbWluX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0QWRtaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBZG1pbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OTkKICAgIC8vIHJldHVybiBuZXcgQWRkcmVzcyh0aGlzLmFkbWluLnZhbHVlKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDk3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3M6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA2CiAgICAvLyBhc3NlcnQodGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUuYXV0aEFkZHJlc3MgPT09IHRoaXMuZ2V0QXV0aEFkZHJlc3MoKSk7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2CiAgICAvLyBzcGVuZGluZ0FkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzU3BlbmRpbmdBZGRyZXNzIH0pCiAgICBieXRlYyAxMSAvLyAic3BlbmRpbmdfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDYKICAgIC8vIGFzc2VydCh0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZS5hdXRoQWRkcmVzcyA9PT0gdGhpcy5nZXRBdXRoQWRkcmVzcygpKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBkdXAKICAgIGFjY3RfcGFyYW1zX2dldCBBY2N0QXV0aEFkZHIKICAgIHN3YXAKICAgIGNvdmVyIDIKICAgIGFzc2VydCAvLyBhY2NvdW50IGZ1bmRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5NwogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk4CiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5Ny0zOTgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID09PSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICAvLyAmJiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwoKYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3NfdGVybmFyeV9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNgogICAgLy8gYXNzZXJ0KHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLmF1dGhBZGRyZXNzID09PSB0aGlzLmdldEF1dGhBZGRyZXNzKCkpOwogICAgZGlnIDEKICAgID09CiAgICBhc3NlcnQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTA3CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwOAogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0geyBwbHVnaW46IDAsIGNhbGxlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsIGVzY3JvdzogJycgfQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGludGNfMCAvLyAwCiAgICBpdG9iCiAgICBzd2FwCiAgICBjb25jYXQKICAgIHB1c2hieXRlcyAweDAwMmEwMDAwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOAogICAgLy8gY3VycmVudFBsdWdpbiA9IEdsb2JhbFN0YXRlPFBsdWdpbktleT4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0N1cnJlbnRQbHVnaW4gfSkKICAgIGJ5dGVjIDE5IC8vICJjdXJyZW50X3BsdWdpbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDgKICAgIC8vIHRoaXMuY3VycmVudFBsdWdpbi52YWx1ZSA9IHsgcGx1Z2luOiAwLCBjYWxsZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLCBlc2Nyb3c6ICcnIH0KICAgIHN3YXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MDkKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IDAKICAgIGludGNfMCAvLyAwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUwNQogICAgLy8gYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF92ZXJpZnlBdXRoQWRkcmVzc190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzk5CiAgICAvLyApID8gR2xvYmFsLnplcm9BZGRyZXNzIDogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBiIGFyYzU4X3ZlcmlmeUF1dGhBZGRyZXNzX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3Jla2V5VG86CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OFszMl0KICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTE5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMwogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyNgogICAgLy8gbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50IgogICAgaXR4bl9maWVsZCBOb3RlCiAgICBkaWcgMgogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICB1bmNvdmVyIDIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTIxLTUyNwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICByZWtleVRvOiBhZGRyZXNzLm5hdGl2ZSwKICAgIC8vICAgICBub3RlOiAncmVrZXlpbmcgYWJzdHJhY3RlZCBhY2NvdW50JwogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyMS01MjgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgcmVrZXlUbzogYWRkcmVzcy5uYXRpdmUsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIGFic3RyYWN0ZWQgYWNjb3VudCcKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MzAKICAgIC8vIGlmIChmbGFzaCkgdGhpcy5hc3NlcnRSZWtleXNCYWNrKCk7CiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMgoKYXJjNThfcmVrZXlUb193aGlsZV90b3BANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNjEKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBkaWcgMQogICAgZ2xvYmFsIEdyb3VwU2l6ZQogICAgPAogICAgYnogYXJjNThfcmVrZXlUb19ibG9ja0AxMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBkaWcgMQogICAgY2FsbHN1YiB0eG5SZWtleXNCYWNrCiAgICBieiBhcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2NQogICAgLy8gcmVrZXlzQmFjayA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxCgphcmM1OF9yZWtleVRvX2Jsb2NrQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3MAogICAgLy8gYXNzZXJ0KHJla2V5c0JhY2ssIEVSUl9NSVNTSU5HX1JFS0VZX0JBQ0spOwogICAgZHVwCiAgICBhc3NlcnQgLy8gbWlzc2luZyByZWtleSBiYWNrCgphcmM1OF9yZWtleVRvX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MTgKICAgIC8vIGFyYzU4X3Jla2V5VG8oYWRkcmVzczogQWRkcmVzcywgZmxhc2g6IGJvb2xlYW4pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3Jla2V5VG9fYWZ0ZXJfaWZfZWxzZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGRpZyAxCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAyCiAgICBiIGFyYzU4X3Jla2V5VG9fd2hpbGVfdG9wQDYKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2NhbkNhbGxbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9jYW5DYWxsOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU0NAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCA0IC8vIDQKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzRdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTUyCiAgICAvLyBpZiAoZ2xvYmFsKSB7CiAgICBieiBhcmM1OF9jYW5DYWxsX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1MwogICAgLy8gdGhpcy5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW4sIEdsb2JhbC56ZXJvQWRkcmVzcywgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBjYWxsc3ViIHBsdWdpbkNhbGxBbGxvd2VkCiAgICBwb3AKCmFyYzU4X2NhbkNhbGxfYWZ0ZXJfaWZfZWxzZUAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU1NQogICAgLy8gcmV0dXJuIHRoaXMucGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luLCBhZGRyZXNzLm5hdGl2ZSwgZXNjcm93LCBtZXRob2QpOwogICAgZGlnIDMKICAgIGRpZyAzCiAgICBkaWcgMwogICAgZGlnIDMKICAgIGNhbGxzdWIgcGx1Z2luQ2FsbEFsbG93ZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NDQKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgdW5jb3ZlciAyCiAgICBzZXRiaXQKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZWtleVRvUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU2Ny01NzMKICAgIC8vIGFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXQogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHB1c2hpbnQgMTYgLy8gMTYKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0KVtdKQogICAgY2FsbHN1YiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW4KICAgIHBvcG4gMgogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVrZXlUb05hbWVkUGx1Z2luOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYxOS02MjQKICAgIC8vIGFyYzU4X3Jla2V5VG9OYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBnbG9iYWw6IGJvb2xlYW4sCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBtZXRob2RPZmZzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgZnVuZHNSZXF1ZXN0OiBGdW5kc1JlcXVlc3RbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA1CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50NjQpW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUKICAgIC8vIG5hbWVkUGx1Z2lucyA9IEJveE1hcDxzdHJpbmcsIFBsdWdpbktleT4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeE5hbWVkUGx1Z2lucyB9KTsKICAgIGJ5dGVjIDE2IC8vICJuIgogICAgdW5jb3ZlciA1CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjYKICAgIC8vIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIGludGNfMCAvLyAwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MjUtNjMxCiAgICAvLyB0aGlzLmFyYzU4X3Jla2V5VG9QbHVnaW4oCiAgICAvLyAgIHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLnZhbHVlLnBsdWdpbiwKICAgIC8vICAgZ2xvYmFsLAogICAgLy8gICBlc2Nyb3csCiAgICAvLyAgIG1ldGhvZE9mZnNldHMsCiAgICAvLyAgIGZ1bmRzUmVxdWVzdAogICAgLy8gKTsKICAgIGNvdmVyIDQKICAgIGNhbGxzdWIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luCiAgICBwb3BuIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MTktNjI0CiAgICAvLyBhcmM1OF9yZWtleVRvTmFtZWRQbHVnaW4oCiAgICAvLyAgIG5hbWU6IHN0cmluZywKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZFBsdWdpbltyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZFBsdWdpbjoKICAgIGludGNfMCAvLyAwCiAgICBkdXBuIDMKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY0OC02NjAKICAgIC8vIGFyYzU4X2FkZFBsdWdpbigKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFkbWluOiBib29sZWFuLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZTogVWludDgsCiAgICAvLyAgIGxhc3RWYWxpZDogdWludDY0LAogICAgLy8gICBjb29sZG93bjogdWludDY0LAogICAgLy8gICBtZXRob2RzOiBNZXRob2RSZXN0cmljdGlvbltdLAogICAgLy8gICB1c2VSb3VuZHM6IGJvb2xlYW4sCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleTogYm9vbGVhbiwKICAgIC8vICAgZGVmYXVsdFRvRXNjcm93OiBib29sZWFuCiAgICAvLyApOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cG4gMgogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDgKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA3CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgOAogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50OFs0XSx1aW50NjQpW10pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgc3dhcAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2NAogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgYnl0ZWMgMTUgLy8gMHgwMQogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjQtNjY1CiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjUKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDEwCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjY0LTY2NQogICAgLy8gZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjMtNjY2CiAgICAvLyAhKAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjItNjY4CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgZGVsZWdhdGlvblR5cGUgPT09IERlbGVnYXRpb25UeXBlU2VsZiAmJgogICAgLy8gICAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gICApLAogICAgLy8gICBFUlJfWkVST19BRERSRVNTX0RFTEVHQVRJT05fVFlQRQogICAgLy8gKQogICAgYXNzZXJ0IC8vIGRlbGVnYXRpb24gdHlwZSBtdXN0IG5vdCBiZSBzZWxmIGZvciBnbG9iYWwgcGx1Z2lucwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MS02NzIKICAgIC8vIHVzZUV4ZWN1dGlvbktleSAmJgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMQogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3MgogICAgLy8gY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICBkaWcgMTAKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgIT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzEtNjcyCiAgICAvLyB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjcwLTY3MwogICAgLy8gISgKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgLy8gKSwKICAgICEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NjktNjc1CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgICEoCiAgICAvLyAgICAgdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9VU0lOR19FWEVDVVRJT05fS0VZX1JFUVVJUkVTX0dMT0JBTAogICAgLy8gKQogICAgYXNzZXJ0IC8vIHVzaW5nIGV4ZWN1dGlvbiBrZXkgcmVxdWlyZXMgZ2xvYmFsIHBsdWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY3OAogICAgLy8gaWYgKGRlZmF1bHRUb0VzY3JvdykgewogICAgZHVwCiAgICBibnogYXJjNThfYWRkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyA5CiAgICBidXJ5IDE3CgphcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2ODMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDExCiAgICBpdG9iCiAgICBkaWcgMTEKICAgIGNvbmNhdAogICAgZGlnIDE3CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMTgKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDEzCgphcmM1OF9hZGRQbHVnaW5fd2hpbGVfdG9wQDEyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyAxMgogICAgZGlnIDQKICAgIDwKICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NwogICAgLy8gbWV0aG9kSW5mb3MucHVzaCh7IC4uLm1ldGhvZHNbaV0sIGxhc3RDYWxsZWQ6IDAgfSkKICAgIGRpZyA0CiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgc3dhcAogICAgZXh0cmFjdCA0IDgKICAgIGRpZyAxCiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2l6ZQogICAgY29uY2F0CiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgZGlnIDE2CiAgICBkdXAKICAgIHVuY292ZXIgMgogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY4NgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEzCiAgICBiIGFyYzU4X2FkZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZFBsdWdpbl9hZnRlcl93aGlsZUAxNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9mYWxzZUAxNgogICAgZ2xvYmFsIFJvdW5kCiAgICBidXJ5IDE0CgphcmM1OF9hZGRQbHVnaW5fdGVybmFyeV9tZXJnZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTIKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkyCiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDIwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2OTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Njk2CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5NwogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICBkaWcgMTYKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDE5CiAgICBzd2FwCiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY5My02OTgKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkzLTY5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3dLZXksIG1ldGhvZEluZm9zLmxlbmd0aCkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKYXJjNThfYWRkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAyCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyA5CiAgICBjYWxsc3ViIG1heWJlTmV3RXNjcm93CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzA0LTcxNQogICAgLy8gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIGVzY3JvdzogZXNjcm93SUQsCiAgICAvLyAgIGFkbWluLAogICAgLy8gICBkZWxlZ2F0aW9uVHlwZSwKICAgIC8vICAgbGFzdFZhbGlkLAogICAgLy8gICBjb29sZG93biwKICAgIC8vICAgbWV0aG9kczogY2xvbmUobWV0aG9kSW5mb3MpLAogICAgLy8gICB1c2VSb3VuZHMsCiAgICAvLyAgIHVzZUV4ZWN1dGlvbktleSwKICAgIC8vICAgbGFzdENhbGxlZDogMCwKICAgIC8vICAgc3RhcnQ6IGVwb2NoUmVmLAogICAgLy8gfQogICAgaXRvYgogICAgZGlnIDgKICAgIGNvbmNhdAogICAgZGlnIDcKICAgIGl0b2IKICAgIGNvbmNhdAogICAgZGlnIDYKICAgIGl0b2IKICAgIGNvbmNhdAogICAgYnl0ZWMgMjMgLy8gMHgwMDJjCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIGRpZyAxMQogICAgc2V0Yml0CiAgICBpbnRjXzEgLy8gMQogICAgZGlnIDUKICAgIHNldGJpdAogICAgaW50Y18yIC8vIDIKICAgIGRpZyA0CiAgICBzZXRiaXQKICAgIGNvbmNhdAogICAgZGlnIDE4CiAgICBjb25jYXQKICAgIGRpZyAxNAogICAgaXRvYgogICAgY29uY2F0CiAgICBkaWcgMTUKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZGlnIDE3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MDQtNzE1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYsCiAgICAvLyB9CiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjQ4LTY2MAogICAgLy8gYXJjNThfYWRkUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfYWRkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjkwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBidXJ5IDE0CiAgICBiIGFyYzU4X2FkZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDE3CgphcmM1OF9hZGRQbHVnaW5faWZfYm9keUAxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NzkKICAgIC8vIGFzc2VydChlc2Nyb3cgIT09ICcnLCBFUlJfRVNDUk9XX1JFUVVJUkVEX1RPX0JFX1NFVF9BU19ERUZBVUxUKQogICAgZGlnIDkKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjgwCiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxNwogICAgYiBhcmM1OF9hZGRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMQoKYXJjNThfYWRkUGx1Z2luX2Jvb2xfZmFsc2VAODoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZFBsdWdpbl9ib29sX2ZhbHNlQDQ6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGRQbHVnaW5fYm9vbF9tZXJnZUA1CgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZW1vdmVQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVQbHVnaW46CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIGR1cAogICAgY292ZXIgMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjcyOAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MjgKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMwCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXI6IGNhbGxlci5uYXRpdmUsIGVzY3JvdyB9CiAgICB1bmNvdmVyIDIKICAgIGl0b2IKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkaWcgMQogICAgbGVuCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczMQogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzMzCiAgICAvLyBjb25zdCBtZXRob2RzTGVuZ3RoOiB1aW50NjQgPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzLmxlbmd0aAogICAgZHVwCiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIHN3YXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczNwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NDAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQwCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzQxCiAgICAvLyBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICBkaWcgMgogICAgZGlnIDIKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3MzgtNzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMucGx1Z2luc01icihlc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzM4LTc0MwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9yZW1vdmVQbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzI3CiAgICAvLyBhcmM1OF9yZW1vdmVQbHVnaW4ocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWRkcmVzcywgZXNjcm93OiBzdHJpbmcpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZE5hbWVkUGx1Z2luW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfYWRkTmFtZWRQbHVnaW46CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAzCiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NjUtNzc4CiAgICAvLyBhcmM1OF9hZGROYW1lZFBsdWdpbigKICAgIC8vICAgbmFtZTogc3RyaW5nLAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYWRtaW46IGJvb2xlYW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlOiBVaW50OCwKICAgIC8vICAgbGFzdFZhbGlkOiB1aW50NjQsCiAgICAvLyAgIGNvb2xkb3duOiB1aW50NjQsCiAgICAvLyAgIG1ldGhvZHM6IE1ldGhvZFJlc3RyaWN0aW9uW10sCiAgICAvLyAgIHVzZVJvdW5kczogYm9vbGVhbiwKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5OiBib29sZWFuLAogICAgLy8gICBkZWZhdWx0VG9Fc2Nyb3c6IGJvb2xlYW4KICAgIC8vICk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBzd2FwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDUKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50OAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNwogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIGNvdmVyIDIKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDgKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA5CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDQKICAgIHB1c2hpbnQgMTIgLy8gMTIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ4WzRdLHVpbnQ2NClbXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEwCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18xIC8vIDEKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIGJvb2w4CiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxMQogICAgZHVwCiAgICBsZW4KICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciBib29sOAogICAgaW50Y18wIC8vIDAKICAgIGdldGJpdAogICAgY292ZXIgMgogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMTIKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzEgLy8gMQogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgYm9vbDgKICAgIGludGNfMCAvLyAwCiAgICBnZXRiaXQKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NzkKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzc5CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODAKICAgIC8vIGFzc2VydCghdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZXhpc3RzKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgzCiAgICAvLyBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzg0CiAgICAvLyBjYWxsZXIubmF0aXZlID09PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAxMQogICAgZ2xvYmFsIFplcm9BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4My03ODQKICAgIC8vIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9mYWxzZUA0CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYm9vbF9tZXJnZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4Mi03ODUKICAgIC8vICEoCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlID09PSBEZWxlZ2F0aW9uVHlwZVNlbGYgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4MS03ODcKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICBkZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmICYmCiAgICAvLyAgICAgY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyAgICksCiAgICAvLyAgIEVSUl9aRVJPX0FERFJFU1NfREVMRUdBVElPTl9UWVBFCiAgICAvLyApCiAgICBhc3NlcnQgLy8gZGVsZWdhdGlvbiB0eXBlIG11c3Qgbm90IGJlIHNlbGYgZm9yIGdsb2JhbCBwbHVnaW5zCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGRpZyAyCiAgICBieiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3OTEKICAgIC8vIGNhbGxlci5uYXRpdmUgIT09IEdsb2JhbC56ZXJvQWRkcmVzcwogICAgZGlnIDExCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKICAgICE9CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkwLTc5MQogICAgLy8gdXNlRXhlY3V0aW9uS2V5ICYmCiAgICAvLyBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VAOAogICAgaW50Y18xIC8vIDEKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3ODktNzkyCiAgICAvLyAhKAogICAgLy8gICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgY2FsbGVyLm5hdGl2ZSAhPT0gR2xvYmFsLnplcm9BZGRyZXNzCiAgICAvLyApLAogICAgIQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4OC03OTQKICAgIC8vIGFzc2VydCgKICAgIC8vICAgISgKICAgIC8vICAgICB1c2VFeGVjdXRpb25LZXkgJiYKICAgIC8vICAgICBjYWxsZXIubmF0aXZlICE9PSBHbG9iYWwuemVyb0FkZHJlc3MKICAgIC8vICAgKSwKICAgIC8vICAgRVJSX1VTSU5HX0VYRUNVVElPTl9LRVlfUkVRVUlSRVNfR0xPQkFMCiAgICAvLyApCiAgICBhc3NlcnQgLy8gdXNpbmcgZXhlY3V0aW9uIGtleSByZXF1aXJlcyBnbG9iYWwgcGx1Z2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk3CiAgICAvLyBpZiAoZGVmYXVsdFRvRXNjcm93KSB7CiAgICBkaWcgMQogICAgYm56IGFyYzU4X2FkZE5hbWVkUGx1Z2luX2lmX2JvZHlAMTAKICAgIGRpZyAxMAogICAgYnVyeSAxOQoKYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDIKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93OiBlc2Nyb3dLZXkgfQogICAgZGlnIDEyCiAgICBpdG9iCiAgICBkaWcgMTIKICAgIGNvbmNhdAogICAgZGlnIDE5CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDE5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODAzCiAgICAvLyB0aGlzLm5hbWVkUGx1Z2lucyhuYW1lKS52YWx1ZSA9IGNsb25lKGtleSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGJveF9kZWwKICAgIHBvcAogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNQogICAgLy8gbGV0IG1ldGhvZEluZm9zOiBNZXRob2RJbmZvW10gPSBbXQogICAgaW50Y18wIC8vIDAKICAgIGl0b2IKICAgIGJ1cnkgMjAKICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgYnVyeSAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgwNgogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDE1CgphcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODA2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDE0CiAgICBkaWcgNQogICAgPAogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfd2hpbGVAMTQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDcKICAgIC8vIG1ldGhvZEluZm9zLnB1c2goeyAuLi5tZXRob2RzW2ldLCBsYXN0Q2FsbGVkOiAwIH0pCiAgICBkaWcgNQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyAxNQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICAqCiAgICBwdXNoaW50IDEyIC8vIDEyCiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDQKICAgIHN3YXAKICAgIGV4dHJhY3QgNCA4CiAgICBkaWcgMQogICAgbGVuCiAgICBwdXNoaW50IDQgLy8gNAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIHNpemUKICAgIGNvbmNhdAogICAgZGlnIDIxCiAgICBjb25jYXQKICAgIGRpZyAxOAogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMTgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MDYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBtZXRob2RzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxNQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl93aGlsZV90b3BAMTIKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX3doaWxlQDE0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMAogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTAKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfYWRkTmFtZWRQbHVnaW5fYWZ0ZXJfaWZfZWxzZUAxNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTcKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODEzCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTMKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODE0CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIGRpZyAxOAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMjEKICAgIHN3YXAKICAgIGNhbGxzdWIgcGx1Z2luc01icgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4CiAgICAvLyByZXR1cm4gTWluTmFtZWRQbHVnaW5NQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhuYW1lKS5sZW5ndGgpOwogICAgZGlnIDE2CiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxNQogICAgLy8gYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgICsKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgxMS04MTYKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93S2V5LCBtZXRob2RJbmZvcy5sZW5ndGgpICsgdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MTEtODE3CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5wbHVnaW5zTWJyKGVzY3Jvd0tleSwgbWV0aG9kSW5mb3MubGVuZ3RoKSArIHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODIwCiAgICAvLyBjb25zdCBlc2Nyb3dJRCA9IHRoaXMubWF5YmVOZXdFc2Nyb3coZXNjcm93KTsKICAgIGRpZyAxMAogICAgY2FsbHN1YiBtYXliZU5ld0VzY3JvdwogICAgYnVyeSAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZGlnIDMKICAgIGJ6IGFyYzU4X2FkZE5hbWVkUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMTkKICAgIGdsb2JhbCBSb3VuZAoKYXJjNThfYWRkTmFtZWRQbHVnaW5fdGVybmFyeV9tZXJnZUAyMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MjQtODM1CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgZXNjcm93OiBlc2Nyb3dJRCwKICAgIC8vICAgYWRtaW4sCiAgICAvLyAgIGRlbGVnYXRpb25UeXBlLAogICAgLy8gICBsYXN0VmFsaWQsCiAgICAvLyAgIGNvb2xkb3duLAogICAgLy8gICBtZXRob2RzOiBjbG9uZShtZXRob2RJbmZvcyksCiAgICAvLyAgIHVzZVJvdW5kcywKICAgIC8vICAgdXNlRXhlY3V0aW9uS2V5LAogICAgLy8gICBsYXN0Q2FsbGVkOiAwLAogICAgLy8gICBzdGFydDogZXBvY2hSZWYKICAgIC8vIH0KICAgIGRpZyAxNgogICAgaXRvYgogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIGRpZyA5CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyA4CiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDIzIC8vIDB4MDAyYwogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgMTMKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIGRpZyA3CiAgICBzZXRiaXQKICAgIGludGNfMiAvLyAyCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyAyMQogICAgY29uY2F0CiAgICBzd2FwCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGRpZyAxNwogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMTkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyNC04MzUKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlID0gewogICAgLy8gICBlc2Nyb3c6IGVzY3Jvd0lELAogICAgLy8gICBhZG1pbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGUsCiAgICAvLyAgIGxhc3RWYWxpZCwKICAgIC8vICAgY29vbGRvd24sCiAgICAvLyAgIG1ldGhvZHM6IGNsb25lKG1ldGhvZEluZm9zKSwKICAgIC8vICAgdXNlUm91bmRzLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXksCiAgICAvLyAgIGxhc3RDYWxsZWQ6IDAsCiAgICAvLyAgIHN0YXJ0OiBlcG9jaFJlZgogICAgLy8gfQogICAgZHVwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIHN3YXAKICAgIGJveF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc2NS03NzgKICAgIC8vIGFyYzU4X2FkZE5hbWVkUGx1Z2luKAogICAgLy8gICBuYW1lOiBzdHJpbmcsCiAgICAvLyAgIHBsdWdpbjogdWludDY0LAogICAgLy8gICBjYWxsZXI6IEFkZHJlc3MsCiAgICAvLyAgIGVzY3Jvdzogc3RyaW5nLAogICAgLy8gICBhZG1pbjogYm9vbGVhbiwKICAgIC8vICAgZGVsZWdhdGlvblR5cGU6IFVpbnQ4LAogICAgLy8gICBsYXN0VmFsaWQ6IHVpbnQ2NCwKICAgIC8vICAgY29vbGRvd246IHVpbnQ2NCwKICAgIC8vICAgbWV0aG9kczogTWV0aG9kUmVzdHJpY3Rpb25bXSwKICAgIC8vICAgdXNlUm91bmRzOiBib29sZWFuLAogICAgLy8gICB1c2VFeGVjdXRpb25LZXk6IGJvb2xlYW4sCiAgICAvLyAgIGRlZmF1bHRUb0VzY3JvdzogYm9vbGVhbgogICAgLy8gKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgphcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X2ZhbHNlQDE5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjgyMgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl90ZXJuYXJ5X21lcmdlQDIwCgphcmM1OF9hZGROYW1lZFBsdWdpbl9pZl9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc5OAogICAgLy8gYXNzZXJ0KGVzY3JvdyAhPT0gJycsIEVSUl9FU0NST1dfUkVRVUlSRURfVE9fQkVfU0VUX0FTX0RFRkFVTFQpCiAgICBkaWcgMTAKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBhc3NlcnQgLy8gZXNjcm93IG11c3QgYmUgc2V0IGlmIGRlZmF1bHRUb0VzY3JvdyBpcyB0cnVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Nzk5CiAgICAvLyBlc2Nyb3dLZXkgPSAnJwogICAgYnl0ZWNfMSAvLyAiIgogICAgYnVyeSAxOQogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDExCgphcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX2ZhbHNlQDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBhcmM1OF9hZGROYW1lZFBsdWdpbl9ib29sX21lcmdlQDkKCmFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X2FkZE5hbWVkUGx1Z2luX2Jvb2xfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW5bcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVOYW1lZFBsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDYKICAgIC8vIGFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luKG5hbWU6IHN0cmluZyk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NDcKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQ3CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OAogICAgLy8gYXNzZXJ0KHRoaXMubmFtZWRQbHVnaW5zKG5hbWUpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0OQogICAgLy8gY29uc3QgYXBwID0gY2xvbmUodGhpcy5uYW1lZFBsdWdpbnMobmFtZSkudmFsdWUpCiAgICBkdXAKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBjb3ZlciAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTAKICAgIC8vIGFzc2VydCh0aGlzLnBsdWdpbnMoYXBwKS5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBwbHVnaW4gZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTIKICAgIC8vIGNvbnN0IG1ldGhvZHNMZW5ndGg6IHVpbnQ2NCA9IHRoaXMucGx1Z2lucyhhcHApLnZhbHVlLm1ldGhvZHMubGVuZ3RoCiAgICBkdXAKICAgIHB1c2hpbnQgNDQgLy8gNDQKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NAogICAgLy8gdGhpcy5uYW1lZFBsdWdpbnMobmFtZSkuZGVsZXRlKCk7CiAgICBzd2FwCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTUKICAgIC8vIHRoaXMucGx1Z2lucyhhcHApLmRlbGV0ZSgpOwogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODU3CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1NwogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MKICAgICE9CiAgICBieiBhcmM1OF9yZW1vdmVOYW1lZFBsdWdpbl9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MAogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NjAKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIGRpZyAzCiAgICBsZW4KICAgIGludGMgNCAvLyA0MDAKICAgICoKICAgIGludGMgNSAvLyAyMTcwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg2MQogICAgLy8gYW1vdW50OiB0aGlzLm5hbWVkUGx1Z2luc01icihuYW1lKSArIHRoaXMucGx1Z2luc01icihhcHAuZXNjcm93LCBtZXRob2RzTGVuZ3RoKQogICAgZGlnIDMKICAgIGR1cAogICAgcHVzaGludCA0MCAvLyA0MAogICAgZXh0cmFjdF91aW50MTYKICAgIGRpZyAxCiAgICBsZW4KICAgIHN1YnN0cmluZzMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMwogICAgY2FsbHN1YiBwbHVnaW5zTWJyCiAgICArCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1OC04NjIKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5uYW1lZFBsdWdpbnNNYnIobmFtZSkgKyB0aGlzLnBsdWdpbnNNYnIoYXBwLmVzY3JvdywgbWV0aG9kc0xlbmd0aCkKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4NTgtODYzCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhbW91bnQ6IHRoaXMubmFtZWRQbHVnaW5zTWJyKG5hbWUpICsgdGhpcy5wbHVnaW5zTWJyKGFwcC5lc2Nyb3csIG1ldGhvZHNMZW5ndGgpCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZU5hbWVkUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg0NgogICAgLy8gYXJjNThfcmVtb3ZlTmFtZWRQbHVnaW4obmFtZTogc3RyaW5nKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9uZXdFc2Nyb3dbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9uZXdFc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc1CiAgICAvLyBhcmM1OF9uZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NgogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZGlnIDEKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NwogICAgLy8gYXNzZXJ0KCF0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfQUxSRUFEWV9FWElTVFMpOwogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAhCiAgICBhc3NlcnQgLy8gZXNjcm93IGFscmVhZHkgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODc4CiAgICAvLyBhc3NlcnQoZXNjcm93ICE9PSAnJywgRVJSX0VTQ1JPV19OQU1FX1JFUVVJUkVEKTsKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgIT0KICAgIGFzc2VydCAvLyBFc2Nyb3cgbmFtZSBpcyByZXF1aXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3OQogICAgLy8gcmV0dXJuIHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3NQogICAgLy8gYXJjNThfbmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIGl0b2IKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgc3dhcAogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3RvZ2dsZUVzY3Jvd0xvY2tbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF90b2dnbGVFc2Nyb3dMb2NrOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg4CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4OAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODg5CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODkxCiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5sb2NrZWQgPSAhdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkOwogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICBpbnRjXzEgLy8gMQogICAgYm94X2V4dHJhY3QKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZGlnIDEKICAgIGludGNfMyAvLyA4CiAgICB1bmNvdmVyIDIKICAgIGJveF9yZXBsYWNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4OTYKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZTsKICAgIGJveF9nZXQKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4NwogICAgLy8gYXJjNThfdG9nZ2xlRXNjcm93TG9jayhlc2Nyb3c6IHN0cmluZyk6IEVzY3Jvd0luZm8gewogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVjbGFpbVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3JlY2xhaW06CiAgICBpbnRjXzAgLy8gMAogICAgZHVwCiAgICBieXRlY18xIC8vICIiCiAgICBkdXBuIDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBjb3ZlciAzCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuKyh1aW50NjQsdWludDY0LGJvb2wxKVtdKQogICAgaW50Y18wIC8vIDAKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA2CiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0ZPUkJJRERFTik7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBmb3JiaWRkZW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA3CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTA4CiAgICAvLyBjb25zdCBzZW5kZXIgPSBBcHBsaWNhdGlvbih0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZCkuYWRkcmVzcwogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIGFwcF9wYXJhbXNfZ2V0IEFwcEFkZHJlc3MKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTEwCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgcmVjbGFpbXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDUKICAgIDwKICAgIGJ6IGFyYzU4X3JlY2xhaW1fYWZ0ZXJfd2hpbGVAMTcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTEKICAgIC8vIGlmIChyZWNsYWltc1tpXS5hc3NldCA9PT0gMCkgewogICAgZGlnIDUKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgcHVzaGludCAxNyAvLyAxNwogICAgKgogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZHVwCiAgICBidXJ5IDEyCiAgICBibnogYXJjNThfcmVjbGFpbV9lbHNlX2JvZHlAMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTQKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE0CiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE1CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE1CiAgICAvLyBhbW91bnQ6IHJlY2xhaW1zW2ldLmFtb3VudAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgMTAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTIKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSAxMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxOAogICAgLy8gaWYgKHJlY2xhaW1zW2ldLmNsb3NlT3V0KSB7CiAgICBwdXNoaW50IDEyOCAvLyAxMjgKICAgIGdldGJpdAogICAgYnogYXJjNThfcmVjbGFpbV9hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTkKICAgIC8vIHBtdC5zZXQoeyBjbG9zZVJlbWFpbmRlclRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTE5CiAgICAvLyBwbXQuc2V0KHsgY2xvc2VSZW1haW5kZXJUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSAxMgogICAgYnVyeSAzCgphcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjIKICAgIC8vIHBtdC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGRpZyAxMAogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDgKICAgIGRpZyAyCiAgICBpdHhuX2ZpZWxkIENsb3NlUmVtYWluZGVyVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEA4OgogICAgZGlnIDgKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBkaWcgMTIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGRpZyAxCiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkxMi05MTYKICAgIC8vIGNvbnN0IHBtdCA9IGl0eG4ucGF5bWVudCh7CiAgICAvLyAgIHNlbmRlciwKICAgIC8vICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50CiAgICAvLyB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyMgogICAgLy8gcG10LnN1Ym1pdCgpOwogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCByZWNsYWltcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X3JlY2xhaW1fd2hpbGVfdG9wQDIKCmFyYzU4X3JlY2xhaW1fZWxzZV9ib2R5QDEwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNgogICAgLy8gYXNzZXRSZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBzd2FwCiAgICBidXJ5IDE0CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTI3CiAgICAvLyBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkyNAogICAgLy8gY29uc3QgeGZlciA9IGl0eG4uYXNzZXRUcmFuc2Zlcih7CiAgICBpbnRjXzAgLy8gMAogICAgYnVyeSA4CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMxCiAgICAvLyBpZiAocmVjbGFpbXNbaV0uY2xvc2VPdXQpIHsKICAgIHB1c2hpbnQgMTI4IC8vIDEyOAogICAgZ2V0Yml0CiAgICBieiBhcmM1OF9yZWNsYWltX2FmdGVyX2lmX2Vsc2VAMTIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzIKICAgIC8vIHhmZXIuc2V0KHsgYXNzZXRDbG9zZVRvOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlIH0pOwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTMyCiAgICAvLyB4ZmVyLnNldCh7IGFzc2V0Q2xvc2VUbzogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSB9KTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBpbnRjXzEgLy8gMQogICAgYnVyeSA4CiAgICBidXJ5IDQKCmFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MzUKICAgIC8vIHhmZXIuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBkaWcgNgogICAgYnogYXJjNThfcmVjbGFpbV9uZXh0X2ZpZWxkQDE0CiAgICBkaWcgMwogICAgaXR4bl9maWVsZCBBc3NldENsb3NlVG8KCmFyYzU4X3JlY2xhaW1fbmV4dF9maWVsZEAxNDoKICAgIGRpZyA5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgZGlnIDcKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyAxMQogICAgaXR4bl9maWVsZCBBc3NldFJlY2VpdmVyCiAgICBkaWcgMQogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MjQtOTI5CiAgICAvLyBjb25zdCB4ZmVyID0gaXR4bi5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgc2VuZGVyLAogICAgLy8gICBhc3NldFJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICBhc3NldEFtb3VudDogcmVjbGFpbXNbaV0uYW1vdW50LAogICAgLy8gICB4ZmVyQXNzZXQ6IHJlY2xhaW1zW2ldLmFzc2V0CiAgICAvLyB9KQogICAgcHVzaGludCA0IC8vIDQKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjkzNQogICAgLy8geGZlci5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIGFyYzU4X3JlY2xhaW1fYWZ0ZXJfaWZfZWxzZUAxNgoKYXJjNThfcmVjbGFpbV9hZnRlcl93aGlsZUAxNzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5MDUKICAgIC8vIGFyYzU4X3JlY2xhaW0oZXNjcm93OiBzdHJpbmcsIHJlY2xhaW1zOiBFc2Nyb3dSZWNsYWltW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X29wdGluRXNjcm93W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfb3B0aW5Fc2Nyb3c6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ2CiAgICAvLyBhcmM1OF9vcHRpbkVzY3Jvdyhlc2Nyb3c6IHN0cmluZywgYXNzZXRzOiB1aW50NjRbXSk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBkaWcgMQogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3V0ZjhbXSkKICAgIGV4dHJhY3QgMiAwCiAgICBkdXAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDIKICAgIGR1cAogICAgY292ZXIgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMwogICAgZHVwCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHVuY292ZXIgMgogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk0NwogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9GT1JCSURERU4pOwogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBhc3NlcnQgLy8gZm9yYmlkZGVuCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHVuY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQ4CiAgICAvLyBhc3NlcnQodGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzLCBFUlJfRVNDUk9XX0RPRVNfTk9UX0VYSVNUKQogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDkKICAgIC8vIGNvbnN0IGVzY3Jvd0lEID0gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGJveF9nZXQKICAgIHBvcAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTAKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZHVwCiAgICBjb3ZlciAzCiAgICBjb3ZlciA0CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUxCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU1CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTUKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTU3CiAgICAvLyBhbW91bnQ6IEdsb2JhbC5hc3NldE9wdEluTWluQmFsYW5jZSAqIGFzc2V0cy5sZW5ndGgKICAgIGdsb2JhbCBBc3NldE9wdEluTWluQmFsYW5jZQogICAgdW5jb3ZlciAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NTMtOTU4CiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTUzLTk1OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKCmFyYzU4X29wdGluRXNjcm93X3doaWxlX3RvcEAzOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBkaWcgMwogICAgPAogICAgYnogYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKHsgZXNjcm93LCBhc3NldDogYXNzZXRzW2ldIH0pLmV4aXN0cywKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGV4dHJhY3RfdWludDY0CiAgICBkaWcgNgogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBpdG9iCiAgICBieXRlYyAxMyAvLyAweDAwMGEKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYzCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTYyLTk2NQogICAgLy8gYXNzZXJ0KAogICAgLy8gICB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgLy8gICBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUCiAgICAvLyApOwogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2Ny05NzQKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIGl0eG5fZmllbGQgWGZlckFzc2V0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTcxCiAgICAvLyBhc3NldEFtb3VudDogMCwKICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEFzc2V0QW1vdW50CiAgICBkaWcgMgogICAgZHVwCiAgICBpdHhuX2ZpZWxkIEFzc2V0UmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTY3LTk3MwogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IDAsCiAgICAvLyAgICAgeGZlckFzc2V0OiBhc3NldHNbaV0KICAgIC8vICAgfSkKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NjctOTc0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk2MQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9vcHRpbkVzY3Jvd193aGlsZV90b3BAMwoKYXJjNThfb3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NDYKICAgIC8vIGFyYzU4X29wdGluRXNjcm93KGVzY3Jvdzogc3RyaW5nLCBhc3NldHM6IHVpbnQ2NFtdKTogdm9pZCB7CiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X3BsdWdpbk9wdGluRXNjcm93OgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5ODYtOTkyCiAgICAvLyBhcmM1OF9wbHVnaW5PcHRpbkVzY3JvdygKICAgIC8vICAgcGx1Z2luOiB1aW50NjQsCiAgICAvLyAgIGNhbGxlcjogQWRkcmVzcywKICAgIC8vICAgZXNjcm93OiBzdHJpbmcsCiAgICAvLyAgIGFzc2V0czogdWludDY0W10sCiAgICAvLyAgIG1iclBheW1lbnQ6IGd0eG4uUGF5bWVudFR4bgogICAgLy8gKTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAzCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGRpZyAxCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdXRmOFtdKQogICAgZXh0cmFjdCAyIDAKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDQKICAgIGR1cAogICAgY292ZXIgNAogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgNQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICB0eG4gR3JvdXBJbmRleAogICAgaW50Y18xIC8vIDEKICAgIC0KICAgIGR1cAogICAgY292ZXIgNAogICAgZ3R4bnMgVHlwZUVudW0KICAgIGludGNfMSAvLyBwYXkKICAgID09CiAgICBhc3NlcnQgLy8gdHJhbnNhY3Rpb24gdHlwZSBpcyBwYXkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5OTMKICAgIC8vIGNvbnN0IGtleTogUGx1Z2luS2V5ID0geyBwbHVnaW4sIGNhbGxlcjogY2FsbGVyLm5hdGl2ZSwgZXNjcm93IH0KICAgIGRpZyAyCiAgICBpdG9iCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGR1cAogICAgY292ZXIgNAogICAgc3dhcAogICAgYnl0ZWMgMTIgLy8gMHgwMDJhCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk1CiAgICAvLyBhc3NlcnQodGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzLCBFUlJfUExVR0lOX0RPRVNfTk9UX0VYSVNUKQogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5NgogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCkKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gZXNjcm93IGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTk3CiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgcHVzaGludCA2NCAvLyA2NAogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gRXNjcm93IGlzIGxvY2tlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5OQogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMgogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICB0eG4gU2VuZGVyCiAgICBzd2FwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDItMTAwMwogICAgLy8gVHhuLnNlbmRlciA9PT0gQXBwbGljYXRpb24ocGx1Z2luKS5hZGRyZXNzIHx8CiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICBibnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF90cnVlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAzCiAgICAvLyBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICB0eG4gU2VuZGVyCiAgICBkaWcgNgogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDMKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgYm56IGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfdHJ1ZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwNAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgZGlnIDUKICAgIGdsb2JhbCBaZXJvQWRkcmVzcwogICAgPT0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDAyLTEwMDQKICAgIC8vIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gVHhuLnNlbmRlciA9PT0gY2FsbGVyLm5hdGl2ZSB8fAogICAgLy8gY2FsbGVyLm5hdGl2ZSA9PT0gR2xvYmFsLnplcm9BZGRyZXNzLAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYm9vbF9mYWxzZUA1CgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX3RydWVANDoKICAgIGludGNfMSAvLyAxCgphcmM1OF9wbHVnaW5PcHRpbkVzY3Jvd19ib29sX21lcmdlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAwMS0xMDA2CiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIFR4bi5zZW5kZXIgPT09IEFwcGxpY2F0aW9uKHBsdWdpbikuYWRkcmVzcyB8fAogICAgLy8gICBUeG4uc2VuZGVyID09PSBjYWxsZXIubmF0aXZlIHx8CiAgICAvLyAgIGNhbGxlci5uYXRpdmUgPT09IEdsb2JhbC56ZXJvQWRkcmVzcywKICAgIC8vICAgRVJSX0ZPUkJJRERFTgogICAgLy8gKQogICAgYXNzZXJ0IC8vIGZvcmJpZGRlbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMDgKICAgIC8vIGNvbnN0IGVzY3Jvd0FkZHJlc3MgPSBBcHBsaWNhdGlvbihlc2Nyb3dJRCkuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBzd2FwCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgMTAKICAgIGFzc2VydCAvLyBhcHBsaWNhdGlvbiBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgIGRpZyAzCiAgICBkdXAKICAgIGd0eG5zIFJlY2VpdmVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMwogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEzCiAgICAvLyByZWNlaXZlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxMC0xMDE3CiAgICAvLyBhc3NlcnRNYXRjaCgKICAgIC8vICAgbWJyUGF5bWVudCwKICAgIC8vICAgewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9LAogICAgLy8gICBFUlJfSU5WQUxJRF9QQVlNRU5UCiAgICAvLyApCiAgICBzd2FwCiAgICBkaWcgMQogICAgPT0KICAgIHVuY292ZXIgMgogICAgZ3R4bnMgQW1vdW50CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAxNAogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgIGRpZyA4CiAgICBkdXAKICAgIGNvdmVyIDQKICAgICoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEwLTEwMTcKICAgIC8vIGFzc2VydE1hdGNoKAogICAgLy8gICBtYnJQYXltZW50LAogICAgLy8gICB7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0sCiAgICAvLyAgIEVSUl9JTlZBTElEX1BBWU1FTlQKICAgIC8vICkKICAgID09CiAgICAmJgogICAgYXNzZXJ0IC8vIGludmFsaWQgcGF5bWVudAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyMwogICAgLy8gYW1vdW50OiBHbG9iYWwuYXNzZXRPcHRJbk1pbkJhbGFuY2UgKiBhc3NldHMubGVuZ3RoCiAgICBnbG9iYWwgQXNzZXRPcHRJbk1pbkJhbGFuY2UKICAgICoKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBpdHhuX2ZpZWxkIFNlbmRlcgogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMTktMTAyNQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogR2xvYmFsLmFzc2V0T3B0SW5NaW5CYWxhbmNlICogYXNzZXRzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDcKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X3doaWxlX3RvcEA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA2CiAgICBkaWcgNAogICAgPAogICAgYnogYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfYWZ0ZXJfd2hpbGVAMTEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgZGlnIDQKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzMgLy8gOAogICAgKgogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cAogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyA0CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDI5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoeyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfSkuZXhpc3RzLAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAyOC0xMDMxCiAgICAvLyBhc3NlcnQoCiAgICAvLyAgIHRoaXMuYWxsb3dhbmNlcyh7IGVzY3JvdywgYXNzZXQ6IGFzc2V0c1tpXSB9KS5leGlzdHMsCiAgICAvLyAgIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QKICAgIC8vICk7CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMzcKICAgIC8vIGFzc2V0QW1vdW50OiAwLAogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgQXNzZXRBbW91bnQKICAgIGRpZyA4CiAgICBkdXAKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDMzLTEwMzkKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiAwLAogICAgLy8gICAgIHhmZXJBc3NldDogYXNzZXRzW2ldCiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTAzMy0xMDQwCiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogMCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGFzc2V0c1tpXQogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMjcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDcKICAgIGIgYXJjNThfcGx1Z2luT3B0aW5Fc2Nyb3dfd2hpbGVfdG9wQDgKCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2FmdGVyX3doaWxlQDExOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk4Ni05OTIKICAgIC8vIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93KAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgY2FsbGVyOiBBZGRyZXNzLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgYXNzZXRzOiB1aW50NjRbXSwKICAgIC8vICAgbWJyUGF5bWVudDogZ3R4bi5QYXltZW50VHhuCiAgICAvLyApOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfZmFsc2VANToKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3BsdWdpbk9wdGluRXNjcm93X2Jvb2xfbWVyZ2VANgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfYWRkQWxsb3dhbmNlc1tyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEFsbG93YW5jZXM6CiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiA0CiAgICBieXRlY18xIC8vICIiCiAgICBkdXAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIHB1c2hpbnQgMzQgLy8gMzQKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rKHVpbnQ2NCx1aW50OCx1aW50NjQsdWludDY0LHVpbnQ2NCxib29sMSlbXSkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpOwogICAgdHhuIFNlbmRlcgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNgogICAgLy8gYWRtaW4gPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQWRtaW4gfSkKICAgIGJ5dGVjXzIgLy8gImFkbWluIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGFzc2VydCAvLyBlc2Nyb3cgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUzCiAgICAvLyBhc3NlcnQoIXRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlLmxvY2tlZCwgRVJSX0VTQ1JPV19MT0NLRUQpOwogICAgYm94X2dldAogICAgcG9wCiAgICBwdXNoaW50IDY0IC8vIDY0CiAgICBnZXRiaXQKICAgICEKICAgIGFzc2VydCAvLyBFc2Nyb3cgaXMgbG9ja2VkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1NQogICAgLy8gaWYgKHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgIT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzKSB7CiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU1CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgIT0KICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4CiAgICAvLyBjb250cm9sbGVkQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNDb250cm9sbGVkQWRkcmVzcyB9KTsKICAgIGJ5dGVjXzAgLy8gImNvbnRyb2xsZWRfYWRkcmVzcyIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU4CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNTkKICAgIC8vIHJlY2VpdmVyOiBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcywKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NjYKICAgIC8vIHJldHVybiBNaW5BbGxvd2FuY2VNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDYgLy8gMjc3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYwCiAgICAvLyBhbW91bnQ6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpICogYWxsb3dhbmNlcy5sZW5ndGgKICAgIGRpZyAzCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDU2LTEwNjEKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFsbG93YW5jZXMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA1Ni0xMDYyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhbGxvd2FuY2VzLmxlbmd0aAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCkKICAgIGl0eG5fc3VibWl0CgphcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX2lmX2Vsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGJ1cnkgNQoKYXJjNThfYWRkQWxsb3dhbmNlc193aGlsZV90b3BANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYWxsb3dhbmNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDQKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9hZGRBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDEwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NgogICAgLy8gY29uc3QgeyBhc3NldCwgdHlwZSwgYW1vdW50LCBtYXgsIGludGVydmFsLCB1c2VSb3VuZHMgfSA9IGFsbG93YW5jZXNbaV07CiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA1CiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICAqCiAgICBwdXNoaW50IDM0IC8vIDM0CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGR1cAogICAgZXh0cmFjdCAwIDgKICAgIGRpZyAxCiAgICBleHRyYWN0IDggMQogICAgYnVyeSA4CiAgICBkaWcgMQogICAgZXh0cmFjdCA5IDgKICAgIGJ1cnkgMTIKICAgIGRpZyAxCiAgICBleHRyYWN0IDE3IDgKICAgIGJ1cnkgMTEKICAgIGRpZyAxCiAgICBleHRyYWN0IDI1IDgKICAgIGJ1cnkgMTAKICAgIHN3YXAKICAgIHB1c2hpbnQgMjY0IC8vIDI2NAogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0IH0KICAgIGRpZyA0CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjgKICAgIC8vIGFzc2VydCghdGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0FMUkVBRFlfRVhJU1RTKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgIQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBhbHJlYWR5IGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGJ6IGFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4CiAgICBnbG9iYWwgUm91bmQKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9tZXJnZUA5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNzEtMTA4MAogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUgPSB7CiAgICAvLyAgIHR5cGUsCiAgICAvLyAgIHNwZW50OiAwLAogICAgLy8gICBhbW91bnQsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIG1heCwKICAgIC8vICAgaW50ZXJ2YWwsCiAgICAvLyAgIHN0YXJ0LAogICAgLy8gICB1c2VSb3VuZHMKICAgIC8vIH0KICAgIGRpZyA2CiAgICBkaWcgMTAKICAgIGNvbmNhdAogICAgZGlnIDExCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDczCiAgICAvLyBzcGVudDogMCwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA3MS0xMDgwCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSA9IHsKICAgIC8vICAgdHlwZSwKICAgIC8vICAgc3BlbnQ6IDAsCiAgICAvLyAgIGFtb3VudCwKICAgIC8vICAgbGFzdDogMCwKICAgIC8vICAgbWF4LAogICAgLy8gICBpbnRlcnZhbCwKICAgIC8vICAgc3RhcnQsCiAgICAvLyAgIHVzZVJvdW5kcwogICAgLy8gfQogICAgaXRvYgogICAgc3dhcAogICAgZGlnIDEKICAgIGNvbmNhdAogICAgZGlnIDEwCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgc3dhcAogICAgaXRvYgogICAgY29uY2F0CiAgICBieXRlYyA5IC8vIDB4MDAKICAgIGludGNfMCAvLyAwCiAgICBkaWcgNgogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIGRpZyA3CiAgICBzd2FwCiAgICBib3hfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFsbG93YW5jZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGRpZyA0CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA1CiAgICBiIGFyYzU4X2FkZEFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X2FkZEFsbG93YW5jZXNfdGVybmFyeV9mYWxzZUA4OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwNjkKICAgIC8vIGNvbnN0IHN0YXJ0ID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgYXJjNThfYWRkQWxsb3dhbmNlc190ZXJuYXJ5X21lcmdlQDkKCmFyYzU4X2FkZEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVAMTA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDUwCiAgICAvLyBhcmM1OF9hZGRBbGxvd2FuY2VzKGVzY3Jvdzogc3RyaW5nLCBhbGxvd2FuY2VzOiBBZGRBbGxvd2FuY2VJbmZvW10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3JlbW92ZUFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9yZW1vdmVBbGxvd2FuY2VzOgogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgZHVwCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAyCiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDMKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgc3dhcAogICAgbGVuCiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciAobGVuK3VpbnQ2NFtdKQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTQKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSk7CiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NAogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUsIEVSUl9BRE1JTl9PTkxZKTsKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICA9PQogICAgYXNzZXJ0IC8vIGFkbWluIG9ubHkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA5NQogICAgLy8gYXNzZXJ0KHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywgRVJSX0VTQ1JPV19ET0VTX05PVF9FWElTVCk7CiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTYKICAgIC8vIGFzc2VydCghdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUubG9ja2VkLCBFUlJfRVNDUk9XX0xPQ0tFRCk7CiAgICBib3hfZ2V0CiAgICBwb3AKICAgIHB1c2hpbnQgNjQgLy8gNjQKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIEVzY3JvdyBpcyBsb2NrZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk4CiAgICAvLyBpZiAodGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAhPT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MpIHsKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTgKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogYXJjNThfcmVtb3ZlQWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjY2CiAgICAvLyByZXR1cm4gTWluQWxsb3dhbmNlTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMoZXNjcm93KS5sZW5ndGgpOwogICAgZGlnIDMKICAgIGxlbgogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgaW50YyA2IC8vIDI3NzAwCiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwMgogICAgLy8gYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIGRpZyAyCiAgICAqCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTktMTEwMwogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmFsbG93YW5jZXNNYnIoZXNjcm93KSAqIGFzc2V0cy5sZW5ndGgKICAgIC8vICAgfSkKICAgIGludGNfMSAvLyAxCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDk5LTExMDQKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHJlY2VpdmVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5hbGxvd2FuY2VzTWJyKGVzY3JvdykgKiBhc3NldHMubGVuZ3RoCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKQogICAgaXR4bl9zdWJtaXQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMDcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBidXJ5IDQKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGFzc2V0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDMKICAgIGRpZyAxCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVBbGxvd2FuY2VzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEwCiAgICAvLyBhc3NldDogYXNzZXRzW2ldCiAgICBkaWcgMQogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEwOC0xMTExCiAgICAvLyBjb25zdCBrZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogYXNzZXRzW2ldCiAgICAvLyB9CiAgICBkaWcgNAogICAgZHVwCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGJ5dGVjIDEzIC8vIDB4MDAwYQogICAgdW5jb3ZlciAyCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM5CiAgICAvLyBhbGxvd2FuY2VzID0gQm94TWFwPEFsbG93YW5jZUtleSwgQWxsb3dhbmNlSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEFsbG93YW5jZXMgfSkgLy8gMzhfNTAwCiAgICBieXRlYyAxNCAvLyAiYSIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTIKICAgIC8vIGFzc2VydCh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMsIEVSUl9BTExPV0FOQ0VfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMTMKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLmRlbGV0ZSgpCiAgICBib3hfZGVsCiAgICBwb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTA3CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSA0CiAgICBiIGFyYzU4X3JlbW92ZUFsbG93YW5jZXNfd2hpbGVfdG9wQDUKCmFyYzU4X3JlbW92ZUFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMgogICAgLy8gbGFzdENoYW5nZSA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RDaGFuZ2UgfSkKICAgIGJ5dGVjIDYgLy8gImxhc3RfY2hhbmdlIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ4CiAgICAvLyB0aGlzLmxhc3RDaGFuZ2UudmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOTMKICAgIC8vIGFyYzU4X3JlbW92ZUFsbG93YW5jZXMoZXNjcm93OiBzdHJpbmcsIGFzc2V0czogdWludDY0W10pOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2FkZEV4ZWN1dGlvbktleVtyb3V0aW5nXSgpIC0+IHZvaWQ6CmFyYzU4X2FkZEV4ZWN1dGlvbktleToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIwCiAgICAvLyBhcmM1OF9hZGRFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPiwgZ3JvdXBzOiBieXRlczwzMj5bXSwgZmlyc3RWYWxpZDogdWludDY0LCBsYXN0VmFsaWQ6IHVpbnQ2NCk6IHZvaWQgewogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgZHVwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ4WzMyXQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBjb3ZlciAyCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgcHVzaGludCAzMiAvLyAzMgogICAgKgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIHN3YXAKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1aW50OFszMl1bXSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgbGVuCiAgICBpbnRjXzMgLy8gOAogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDY0CiAgICBidG9pCiAgICBjb3ZlciAyCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyA0CiAgICBkdXAKICAgIGxlbgogICAgaW50Y18zIC8vIDgKICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIHVpbnQ2NAogICAgYnRvaQogICAgY292ZXIgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMjEKICAgIC8vIGFzc2VydChUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlLCBFUlJfQURNSU5fT05MWSkKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTIxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSwgRVJSX0FETUlOX09OTFkpCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgPT0KICAgIGFzc2VydCAvLyBhZG1pbiBvbmx5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBjb3ZlciAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMgogICAgLy8gaWYgKCF0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBibnogYXJjNThfYWRkRXhlY3V0aW9uS2V5X2Vsc2VfYm9keUAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMy0xMTI3CiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlID0gewogICAgLy8gICBncm91cHM6IGNsb25lKGdyb3VwcyksCiAgICAvLyAgIGZpcnN0VmFsaWQsCiAgICAvLyAgIGxhc3RWYWxpZAogICAgLy8gfQogICAgZGlnIDMKICAgIGl0b2IKICAgIHB1c2hieXRlcyAweDAwMTIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZGlnIDEKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICBzd2FwCiAgICBib3hfcHV0CgphcmM1OF9hZGRFeGVjdXRpb25LZXlfYWZ0ZXJfaWZfZWxzZUA0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwCiAgICAvLyBsYXN0VXNlckludGVyYWN0aW9uID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdFVzZXJJbnRlcmFjdGlvbiB9KQogICAgYnl0ZWNfMyAvLyAibGFzdF91c2VyX2ludGVyYWN0aW9uIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQ0CiAgICAvLyB0aGlzLmxhc3RVc2VySW50ZXJhY3Rpb24udmFsdWUgPSBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyCiAgICAvLyBsYXN0Q2hhbmdlID0gR2xvYmFsU3RhdGU8dWludDY0Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzTGFzdENoYW5nZSB9KQogICAgYnl0ZWMgNiAvLyAibGFzdF9jaGFuZ2UiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDgKICAgIC8vIHRoaXMubGFzdENoYW5nZS52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyMAogICAgLy8gYXJjNThfYWRkRXhlY3V0aW9uS2V5KGxlYXNlOiBieXRlczwzMj4sIGdyb3VwczogYnl0ZXM8MzI+W10sIGZpcnN0VmFsaWQ6IHVpbnQ2NCwgbGFzdFZhbGlkOiB1aW50NjQpOiB2b2lkIHsKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCmFyYzU4X2FkZEV4ZWN1dGlvbktleV9lbHNlX2JvZHlAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTI5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5maXJzdFZhbGlkID09PSBmaXJzdFZhbGlkLCBFUlJfRVhFQ1VUSU9OX0tFWV9VUERBVEVfTVVTVF9NQVRDSF9GSVJTVF9WQUxJRCkKICAgIGRpZyAyCiAgICBkdXAKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGRpZyA1CiAgICA9PQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgdXBkYXRlIG11c3QgbWF0Y2ggZmlyc3QgdmFsaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTMwCiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPT09IGxhc3RWYWxpZCwgRVJSX0VYRUNVVElPTl9LRVlfVVBEQVRFX01VU1RfTUFUQ0hfTEFTVF9WQUxJRCkKICAgIGR1cAogICAgcHVzaGludCAxMCAvLyAxMAogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICB1bmNvdmVyIDMKICAgID09CiAgICBhc3NlcnQgLy8gZXhlY3V0aW9uIGtleSB1cGRhdGUgbXVzdCBtYXRjaCBsYXN0IHZhbGlkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEzMgogICAgLy8gdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMgPSBbLi4uY2xvbmUodGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5ncm91cHMpLCAuLi5jbG9uZShncm91cHMpXQogICAgZHVwCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkaWcgMQogICAgbGVuCiAgICBkaWcgMgogICAgZGlnIDIKICAgIHVuY292ZXIgMgogICAgc3Vic3RyaW5nMwogICAgdW5jb3ZlciA0CiAgICBleHRyYWN0IDIgMAogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBkdXAKICAgIGV4dHJhY3QgMiAwCiAgICBsZW4KICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIC8KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICB1bmNvdmVyIDIKICAgIGludGNfMCAvLyAwCiAgICB1bmNvdmVyIDMKICAgIGV4dHJhY3QzCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGRpZyAxCiAgICBib3hfZGVsCiAgICBwb3AKICAgIGJveF9wdXQKICAgIGIgYXJjNThfYWRkRXhlY3V0aW9uS2V5X2FmdGVyX2lmX2Vsc2VANAoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5W3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExMzkKICAgIC8vIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleShsZWFzZTogYnl0ZXM8MzI+KTogdm9pZCB7CiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICBkdXAKICAgIGxlbgogICAgcHVzaGludCAzMiAvLyAzMgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgdWludDhbMzJdCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MAogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZXhpc3RzLCBFUlJfRVhFQ1VUSU9OX0tFWV9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGV4ZWN1dGlvbiBrZXkgZG9lcyBub3QgZXhpc3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICB0eG4gU2VuZGVyCiAgICBpbnRjXzAgLy8gMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE2CiAgICAvLyBhZG1pbiA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNBZG1pbiB9KQogICAgYnl0ZWNfMiAvLyAiYWRtaW4iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0MQogICAgLy8gYXNzZXJ0KFR4bi5zZW5kZXIgPT09IHRoaXMuYWRtaW4udmFsdWUgfHwgdGhpcy5leGVjdXRpb25zKGxlYXNlKS52YWx1ZS5sYXN0VmFsaWQgPCBHbG9iYWwucm91bmQsIEVSUl9BRE1JTl9PTkxZKQogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfdHJ1ZUAzCiAgICBkdXAKICAgIHB1c2hpbnQgMTAgLy8gMTAKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZ2xvYmFsIFJvdW5kCiAgICA8CiAgICBieiBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF9mYWxzZUA0CgphcmM1OF9yZW1vdmVFeGVjdXRpb25LZXlfYm9vbF90cnVlQDM6CiAgICBpbnRjXzEgLy8gMQoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQxCiAgICAvLyBhc3NlcnQoVHhuLnNlbmRlciA9PT0gdGhpcy5hZG1pbi52YWx1ZSB8fCB0aGlzLmV4ZWN1dGlvbnMobGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA8IEdsb2JhbC5yb3VuZCwgRVJSX0FETUlOX09OTFkpCiAgICBhc3NlcnQgLy8gYWRtaW4gb25seQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNDMKICAgIC8vIHRoaXMuZXhlY3V0aW9ucyhsZWFzZSkuZGVsZXRlKCkKICAgIGR1cAogICAgYm94X2RlbAogICAgcG9wCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjAKICAgIC8vIGxhc3RVc2VySW50ZXJhY3Rpb24gPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0VXNlckludGVyYWN0aW9uIH0pCiAgICBieXRlY18zIC8vICJsYXN0X3VzZXJfaW50ZXJhY3Rpb24iCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDQKICAgIC8vIHRoaXMubGFzdFVzZXJJbnRlcmFjdGlvbi52YWx1ZSA9IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXAKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGFwcF9nbG9iYWxfcHV0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIKICAgIC8vIGxhc3RDaGFuZ2UgPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNMYXN0Q2hhbmdlIH0pCiAgICBieXRlYyA2IC8vICJsYXN0X2NoYW5nZSIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0OAogICAgLy8gdGhpcy5sYXN0Q2hhbmdlLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTM5CiAgICAvLyBhcmM1OF9yZW1vdmVFeGVjdXRpb25LZXkobGVhc2U6IGJ5dGVzPDMyPik6IHZvaWQgewogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKYXJjNThfcmVtb3ZlRXhlY3V0aW9uS2V5X2Jvb2xfZmFsc2VANDoKICAgIGludGNfMCAvLyAwCiAgICBiIGFyYzU4X3JlbW92ZUV4ZWN1dGlvbktleV9ib29sX21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldFBsdWdpbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGJ5dGVjXzEgLy8gIiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTQ5CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUxCiAgICAvLyBsZXQgcGx1Z2luczogUGx1Z2luSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTIKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBrZXlzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0UGx1Z2luc193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUyCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwga2V5cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwCiAgICBidXJ5IDUKICAgIGRpZyAxCiAgICA+CiAgICBieiBhcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTUzCiAgICAvLyBpZiAodGhpcy5wbHVnaW5zKGtleXNbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgZHVwCiAgICBjb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBkdXAKICAgIGJ1cnkgNAogICAgZGlnIDYKICAgIGRpZyAxCiAgICAtIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgZGlnIDMKICAgIGxlbgogICAgdW5jb3ZlciAyCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDQKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICB1bmNvdmVyIDIKICAgIHNlbGVjdAogICAgc3Vic3RyaW5nMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTMKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE1NAogICAgLy8gcGx1Z2lucy5wdXNoKHRoaXMucGx1Z2lucyhrZXlzW2ldKS52YWx1ZSkKICAgIGRpZyA0CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgYnl0ZWMgMjAgLy8gMHgwMDAyCiAgICB1bmNvdmVyIDMKICAgIGNvbmNhdAogICAgY292ZXIgMgogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgMwogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTUKICAgIC8vIGNvbnRpbnVlCiAgICBiIGFyYzU4X2dldFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNTcKICAgIC8vIHBsdWdpbnMucHVzaChlbXB0eVBsdWdpbkluZm8oKSkKICAgIGRpZyAxCiAgICBkdXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgc3dhcAogICAgZXh0cmFjdCAyIDAKICAgIGludGNfMSAvLyAxCiAgICBieXRlYyAyMSAvLyAweDAwMDIwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMmMwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgY2FsbHN1YiBkeW5hbWljX2FycmF5X2NvbmNhdF9keW5hbWljX2VsZW1lbnQKICAgIGJ1cnkgMgogICAgYiBhcmM1OF9nZXRQbHVnaW5zX3doaWxlX3RvcEAyCgphcmM1OF9nZXRQbHVnaW5zX2FmdGVyX3doaWxlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE0OQogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgIGRpZyAyCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfZ2V0TmFtZWRQbHVnaW5zW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zOgogICAgaW50Y18wIC8vIDAKICAgIGR1cAogICAgYnl0ZWNfMSAvLyAiIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjIKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjQKICAgIC8vIGxldCBwbHVnaW5zOiBQbHVnaW5JbmZvW10gPSBbXQogICAgYnl0ZWMgMTAgLy8gMHgwMDAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG5hbWVzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0TmFtZWRQbHVnaW5zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjUKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBuYW1lcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjYKICAgIC8vIGlmICh0aGlzLm5hbWVkUGx1Z2lucyhuYW1lc1tpXSkuZXhpc3RzKSB7CiAgICBkaWcgMgogICAgZXh0cmFjdCAyIDAKICAgIGRpZyA0CiAgICBhc3NlcnQgLy8gaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyAxCiAgICBpbnRjXzIgLy8gMgogICAgKgogICAgZGlnIDEKICAgIHN3YXAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAyCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18yIC8vIDIKICAgICsKICAgIGV4dHJhY3QzCiAgICBleHRyYWN0IDIgMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1CiAgICAvLyBuYW1lZFBsdWdpbnMgPSBCb3hNYXA8c3RyaW5nLCBQbHVnaW5LZXk+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhOYW1lZFBsdWdpbnMgfSk7CiAgICBieXRlYyAxNiAvLyAibiIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZHVwCiAgICBidXJ5IDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY2CiAgICAvLyBpZiAodGhpcy5uYW1lZFBsdWdpbnMobmFtZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfaWZfZWxzZUA3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE2NwogICAgLy8gY29uc3QgbmFtZUtleSA9IGNsb25lKHRoaXMubmFtZWRQbHVnaW5zKG5hbWVzW2ldKS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNjgKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMobmFtZUtleSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY5CiAgICAvLyBwbHVnaW5zLnB1c2godGhpcy5wbHVnaW5zKG5hbWVLZXkpLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYmxvY2tAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTY1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbmFtZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGJ1cnkgMQogICAgYiBhcmM1OF9nZXROYW1lZFBsdWdpbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MgogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3MwogICAgLy8gY29udGludWUKICAgIGIgYXJjNThfZ2V0TmFtZWRQbHVnaW5zX2Jsb2NrQDgKCmFyYzU4X2dldE5hbWVkUGx1Z2luc19hZnRlcl9pZl9lbHNlQDc6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE3NQogICAgLy8gcGx1Z2lucy5wdXNoKGVtcHR5UGx1Z2luSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIGJ5dGVjIDIxIC8vIDB4MDAwMjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAyYzAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldE5hbWVkUGx1Z2luc19ibG9ja0A4CgphcmM1OF9nZXROYW1lZFBsdWdpbnNfYWZ0ZXJfd2hpbGVAOToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTYyCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIGJ5dGVjIDcgLy8gMHgxNTFmN2M3NQogICAgZGlnIDIKICAgIGNvbmNhdAogICAgbG9nCiAgICBpbnRjXzEgLy8gMQogICAgcmV0dXJuCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9nZXRFc2Nyb3dzW3JvdXRpbmddKCkgLT4gdm9pZDoKYXJjNThfZ2V0RXNjcm93czoKICAgIGludGNfMCAvLyAwCiAgICBieXRlY18xIC8vICIiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MAogICAgLy8gQGFiaW1ldGhvZCh7IHJlYWRvbmx5OiB0cnVlIH0pCiAgICB0eG5hIEFwcGxpY2F0aW9uQXJncyAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4MgogICAgLy8gbGV0IHJlc3VsdDogRXNjcm93SW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBpbnRjXzAgLy8gMAoKYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTgzCiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZXNjcm93cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZGlnIDIKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZGlnIDEKICAgID4KICAgIGR1cAogICAgYnVyeSA1CiAgICBieiBhcmM1OF9nZXRFc2Nyb3dzX2FmdGVyX3doaWxlQDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTg0CiAgICAvLyBpZiAodGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLmV4aXN0cykgewogICAgZGlnIDIKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgNAogICAgYXNzZXJ0IC8vIGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgICoKICAgIGRpZyAxCiAgICBzd2FwCiAgICBleHRyYWN0X3VpbnQxNgogICAgZHVwMgogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBleHRyYWN0MwogICAgZXh0cmFjdCAyIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODQKICAgIC8vIGlmICh0aGlzLmVzY3Jvd3MoZXNjcm93c1tpXSkuZXhpc3RzKSB7CiAgICBib3hfbGVuCiAgICBidXJ5IDEKICAgIGJ6IGFyYzU4X2dldEVzY3Jvd3NfYWZ0ZXJfaWZfZWxzZUA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4NQogICAgLy8gcmVzdWx0LnB1c2godGhpcy5lc2Nyb3dzKGVzY3Jvd3NbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdCAvLyBvbiBlcnJvcjogbWF4IGFycmF5IGxlbmd0aCBleGNlZWRlZAogICAgc3dhcAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHJlcGxhY2UyIDAKICAgIGJ1cnkgMgoKYXJjNThfZ2V0RXNjcm93c19ibG9ja0A2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODMKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBlc2Nyb3dzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0RXNjcm93c193aGlsZV90b3BAMgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4OAogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlFc2Nyb3dJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjIwLTIzCiAgICAvLyByZXR1cm4gewogICAgLy8gICBpZDogMCwKICAgIC8vICAgbG9ja2VkOiBmYWxzZQogICAgLy8gfTsKICAgIHB1c2hieXRlcyAweDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODgKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXNjcm93SW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEVzY3Jvd3NfYmxvY2tANgoKYXJjNThfZ2V0RXNjcm93c19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExODAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEFsbG93YW5jZXNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRBbGxvd2FuY2VzOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTkzCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwbiAyCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGR1cAogICAgY292ZXIgMgogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDY0W10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE5NQogICAgLy8gbGV0IHJlc3VsdDogQWxsb3dhbmNlSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRBbGxvd2FuY2VzX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTYKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBhc3NldHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEFsbG93YW5jZXNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTcKICAgIC8vIGNvbnN0IGtleTogQWxsb3dhbmNlS2V5ID0geyBlc2Nyb3csIGFzc2V0OiBhc3NldHNbaV0gfQogICAgZGlnIDMKICAgIGV4dHJhY3QgMiAwCiAgICBkaWcgMQogICAgaW50Y18zIC8vIDgKICAgICoKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0MyAvLyBvbiBlcnJvcjogaW5kZXggYWNjZXNzIGlzIG91dCBvZiBib3VuZHMKICAgIGRpZyA1CiAgICBkdXAKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIHN3YXAKICAgIGNvbmNhdAogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICB1bmNvdmVyIDIKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzkKICAgIC8vIGFsbG93YW5jZXMgPSBCb3hNYXA8QWxsb3dhbmNlS2V5LCBBbGxvd2FuY2VJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4QWxsb3dhbmNlcyB9KSAvLyAzOF81MDAKICAgIGJ5dGVjIDE0IC8vICJhIgogICAgc3dhcAogICAgY29uY2F0CiAgICBkdXAKICAgIGJ1cnkgNwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTgKICAgIC8vIGlmICh0aGlzLmFsbG93YW5jZXMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYnogYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk5CiAgICAvLyByZXN1bHQucHVzaCh0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZSkKICAgIGRpZyA1CiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgZGlnIDIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICBjb25jYXQgLy8gb24gZXJyb3I6IG1heCBhcnJheSBsZW5ndGggZXhjZWVkZWQKICAgIHN3YXAKICAgIGludGNfMCAvLyAwCiAgICBleHRyYWN0X3VpbnQxNgogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICByZXBsYWNlMiAwCiAgICBidXJ5IDIKCmFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTk2CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgYXNzZXRzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBidXJ5IDEKICAgIGIgYXJjNThfZ2V0QWxsb3dhbmNlc193aGlsZV90b3BAMgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl9pZl9lbHNlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwMgogICAgLy8gcmVzdWx0LnB1c2goZW1wdHlBbGxvd2FuY2VJbmZvKCkpCiAgICBkaWcgMQogICAgZHVwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L3V0aWxzLnRzOjI3LTM2CiAgICAvLyByZXR1cm4gewogICAgLy8gICB0eXBlOiBuZXcgVWludDgoMCksCiAgICAvLyAgIG1heDogMCwKICAgIC8vICAgYW1vdW50OiAwLAogICAgLy8gICBzcGVudDogMCwKICAgIC8vICAgaW50ZXJ2YWw6IDAsCiAgICAvLyAgIGxhc3Q6IDAsCiAgICAvLyAgIHN0YXJ0OiAwLAogICAgLy8gICB1c2VSb3VuZHM6IGZhbHNlCiAgICAvLyB9OwogICAgcHVzaGJ5dGVzIDB4MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDIKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5QWxsb3dhbmNlSW5mbygpKQogICAgY29uY2F0IC8vIG9uIGVycm9yOiBtYXggYXJyYXkgbGVuZ3RoIGV4Y2VlZGVkCiAgICBzd2FwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBpdG9iCiAgICBleHRyYWN0IDYgMgogICAgcmVwbGFjZTIgMAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEFsbG93YW5jZXNfYmxvY2tANgoKYXJjNThfZ2V0QWxsb3dhbmNlc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExOTMKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X2dldEV4ZWN1dGlvbnNbcm91dGluZ10oKSAtPiB2b2lkOgphcmM1OF9nZXRFeGVjdXRpb25zOgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjA3CiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cG4gMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIGludGNfMiAvLyAyCiAgICArCiAgICBzd2FwCiAgICBsZW4KICAgID09CiAgICBhc3NlcnQgLy8gaW52YWxpZCBudW1iZXIgb2YgYnl0ZXMgZm9yIChsZW4rdWludDhbMzJdW10pCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwOQogICAgLy8gbGV0IHJlc3VsdDogRXhlY3V0aW9uSW5mb1tdID0gW10KICAgIGJ5dGVjIDEwIC8vIDB4MDAwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCgphcmM1OF9nZXRFeGVjdXRpb25zX3doaWxlX3RvcEAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTAKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBsZWFzZXMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGR1cAogICAgZGlnIDMKICAgIDwKICAgIGJ6IGFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfd2hpbGVANwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTEKICAgIC8vIGlmICh0aGlzLmV4ZWN1dGlvbnMobGVhc2VzW2ldKS5leGlzdHMpIHsKICAgIGRpZyAzCiAgICBleHRyYWN0IDIgMAogICAgZGlnIDEKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgIGV4dHJhY3QzIC8vIG9uIGVycm9yOiBpbmRleCBhY2Nlc3MgaXMgb3V0IG9mIGJvdW5kcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMQogICAgLy8gaWYgKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLmV4aXN0cykgewogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBieiBhcmM1OF9nZXRFeGVjdXRpb25zX2FmdGVyX2lmX2Vsc2VANQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTIKICAgIC8vIHJlc3VsdC5wdXNoKHRoaXMuZXhlY3V0aW9ucyhsZWFzZXNbaV0pLnZhbHVlKQogICAgZGlnIDQKICAgIGJveF9nZXQKICAgIGFzc2VydCAvLyBCb3ggbXVzdCBoYXZlIHZhbHVlCiAgICBkaWcgMgogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIHN3YXAKICAgIGV4dHJhY3QgMiAwCiAgICBieXRlYyAyMCAvLyAweDAwMDIKICAgIHVuY292ZXIgMwogICAgY29uY2F0CiAgICBjb3ZlciAyCiAgICBpbnRjXzEgLy8gMQogICAgdW5jb3ZlciAzCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCgphcmM1OF9nZXRFeGVjdXRpb25zX2Jsb2NrQDY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIxMAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGxlYXNlcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgYnVyeSAxCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfd2hpbGVfdG9wQDIKCmFyYzU4X2dldEV4ZWN1dGlvbnNfYWZ0ZXJfaWZfZWxzZUA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMTUKICAgIC8vIHJlc3VsdC5wdXNoKGVtcHR5RXhlY3V0aW9uSW5mbygpKQogICAgZGlnIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBzd2FwCiAgICBleHRyYWN0IDIgMAogICAgaW50Y18xIC8vIDEKICAgIHB1c2hieXRlcyAweDAwMDIwMDEyMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCiAgICBjYWxsc3ViIGR5bmFtaWNfYXJyYXlfY29uY2F0X2R5bmFtaWNfZWxlbWVudAogICAgYnVyeSAyCiAgICBiIGFyYzU4X2dldEV4ZWN1dGlvbnNfYmxvY2tANgoKYXJjNThfZ2V0RXhlY3V0aW9uc19hZnRlcl93aGlsZUA3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMDcKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBkaWcgMgogICAgY29uY2F0CiAgICBsb2cKICAgIGludGNfMSAvLyAxCiAgICByZXR1cm4KCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm1icltyb3V0aW5nXSgpIC0+IHZvaWQ6Cm1icjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjIwCiAgICAvLyBAYWJpbWV0aG9kKHsgcmVhZG9ubHk6IHRydWUgfSkKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDEKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgMgogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIHR4bmEgQXBwbGljYXRpb25BcmdzIDMKICAgIGR1cAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBpbnRjXzIgLy8gMgogICAgKwogICAgZGlnIDEKICAgIGxlbgogICAgPT0KICAgIGFzc2VydCAvLyBpbnZhbGlkIG51bWJlciBvZiBieXRlcyBmb3IgKGxlbit1dGY4W10pCiAgICBleHRyYWN0IDIgMAogICAgdHhuYSBBcHBsaWNhdGlvbkFyZ3MgNAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MgogICAgLy8gcmV0dXJuIE1pbkVzY3Jvd3NNQlIgKyAoQm94Q29zdFBlckJ5dGUgKiBCeXRlcyhlc2Nyb3cpLmxlbmd0aCk7CiAgICBkaWcgMwogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgZGlnIDEKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjMwCiAgICAvLyBwbHVnaW5zOiB0aGlzLnBsdWdpbnNNYnIoZXNjcm93LCBtZXRob2RDb3VudCksCiAgICBkaWcgNQogICAgdW5jb3ZlciA1CiAgICBjYWxsc3ViIHBsdWdpbnNNYnIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OAogICAgLy8gcmV0dXJuIE1pbk5hbWVkUGx1Z2luTUJSICsgKEJveENvc3RQZXJCeXRlICogQnl0ZXMobmFtZSkubGVuZ3RoKTsKICAgIHVuY292ZXIgNAogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBpbnRjIDUgLy8gMjE3MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2NgogICAgLy8gcmV0dXJuIE1pbkFsbG93YW5jZU1CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGludGMgNiAvLyAyNzcwMAogICAgdW5jb3ZlciA0CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzAKICAgIC8vIHJldHVybiBNaW5FeGVjdXRpb25zTUJSICsgKEJveENvc3RQZXJCeXRlICogKGdyb3VwcyAqIDMyKSk7CiAgICB1bmNvdmVyIDQKICAgIHB1c2hpbnQgMTI4MDAgLy8gMTI4MDAKICAgICoKICAgIHB1c2hpbnQgMjA1MDAgLy8gMjA1MDAKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgdW5jb3ZlciA2CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjM1CiAgICAvLyBlc2Nyb3dFeGlzdHM6IHRoaXMuZXNjcm93cyhlc2Nyb3cpLmV4aXN0cywKICAgIGJveF9sZW4KICAgIGNvdmVyIDYKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzgKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIGdsb2JhbCBNaW5CYWxhbmNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIzNy0xMjM5CiAgICAvLyBOZXdDb3N0Rm9yQVJDNTggKwogICAgLy8gR2xvYmFsLm1pbkJhbGFuY2UgKwogICAgLy8gQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIHB1c2hpbnQgMTYyMTAwIC8vIDE2MjEwMAogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMzctMTI0MAogICAgLy8gTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vIEdsb2JhbC5taW5CYWxhbmNlICsKICAgIC8vIEFSQzU4V2FsbGV0SURzQnlBY2NvdW50c01iciArCiAgICAvLyBlc2Nyb3dzCiAgICBkaWcgNQogICAgKwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjktMTI0MgogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgcGx1Z2luczogdGhpcy5wbHVnaW5zTWJyKGVzY3JvdywgbWV0aG9kQ291bnQpLAogICAgLy8gICBuYW1lZFBsdWdpbnM6IHRoaXMubmFtZWRQbHVnaW5zTWJyKHBsdWdpbiksCiAgICAvLyAgIGVzY3Jvd3MsCiAgICAvLyAgIGFsbG93YW5jZXM6IHRoaXMuYWxsb3dhbmNlc01icihlc2Nyb3cpLAogICAgLy8gICBleGVjdXRpb25zOiB0aGlzLmV4ZWN1dGlvbnNNYnIoZ3JvdXBzKSwKICAgIC8vICAgZXNjcm93RXhpc3RzOiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsCiAgICAvLyAgIG5ld0VzY3Jvd01pbnRDb3N0OiAoCiAgICAvLyAgICAgTmV3Q29zdEZvckFSQzU4ICsKICAgIC8vICAgICBHbG9iYWwubWluQmFsYW5jZSArCiAgICAvLyAgICAgQVJDNThXYWxsZXRJRHNCeUFjY291bnRzTWJyICsKICAgIC8vICAgICBlc2Nyb3dzCiAgICAvLyAgICkKICAgIC8vIH0KICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgdW5jb3ZlciA0CiAgICBpdG9iCiAgICBjb25jYXQKICAgIHVuY292ZXIgNAogICAgaXRvYgogICAgY29uY2F0CiAgICB1bmNvdmVyIDMKICAgIGl0b2IKICAgIGNvbmNhdAogICAgdW5jb3ZlciAyCiAgICBpdG9iCiAgICBjb25jYXQKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgaW50Y18wIC8vIDAKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBjb25jYXQKICAgIHN3YXAKICAgIGl0b2IKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyMjAKICAgIC8vIEBhYmltZXRob2QoeyByZWFkb25seTogdHJ1ZSB9KQogICAgYnl0ZWMgNyAvLyAweDE1MWY3Yzc1CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGxvZwogICAgaW50Y18xIC8vIDEKICAgIHJldHVybgoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQucGx1Z2luc01icihlc2Nyb3c6IGJ5dGVzLCBtZXRob2RDb3VudDogdWludDY0KSAtPiB1aW50NjQ6CnBsdWdpbnNNYnI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTEKICAgIC8vIHByaXZhdGUgcGx1Z2luc01icihlc2Nyb3c6IHN0cmluZywgbWV0aG9kQ291bnQ6IHVpbnQ2NCk6IHVpbnQ2NCB7CiAgICBwcm90byAyIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1MwogICAgLy8gQm94Q29zdFBlckJ5dGUgKiAoKE1ldGhvZFJlc3RyaWN0aW9uQnl0ZUxlbmd0aCAqIG1ldGhvZENvdW50KSArIEJ5dGVzKGVzY3JvdykubGVuZ3RoKQogICAgcHVzaGludCAyMCAvLyAyMAogICAgZnJhbWVfZGlnIC0xCiAgICAqCiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgKwogICAgaW50YyA0IC8vIDQwMAogICAgKgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyCiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgcHVzaGludCAzODkwMCAvLyAzODkwMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjUyLTU0CiAgICAvLyByZXR1cm4gTWluUGx1Z2luTUJSICsgKAogICAgLy8gICBCb3hDb3N0UGVyQnl0ZSAqICgoTWV0aG9kUmVzdHJpY3Rpb25CeXRlTGVuZ3RoICogbWV0aG9kQ291bnQpICsgQnl0ZXMoZXNjcm93KS5sZW5ndGgpCiAgICAvLyApOwogICAgKwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tYXliZU5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm1heWJlTmV3RXNjcm93OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjczCiAgICAvLyBwcml2YXRlIG1heWJlTmV3RXNjcm93KGVzY3Jvdzogc3RyaW5nKTogdWludDY0IHsKICAgIHByb3RvIDEgMQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo3NAogICAgLy8gaWYgKGVzY3JvdyA9PT0gJycpIHsKICAgIGZyYW1lX2RpZyAtMQogICAgYnl0ZWNfMSAvLyAiIgogICAgPT0KICAgIGJ6IG1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc1CiAgICAvLyByZXR1cm4gMDsKICAgIGludGNfMCAvLyAwCiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjc4LTgwCiAgICAvLyByZXR1cm4gdGhpcy5lc2Nyb3dzKGVzY3JvdykuZXhpc3RzCiAgICAvLyAgID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIC8vICAgOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgYnogbWF5YmVOZXdFc2Nyb3dfdGVybmFyeV9mYWxzZUA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzkKICAgIC8vID8gdGhpcy5lc2Nyb3dzKGVzY3JvdykudmFsdWUuaWQKICAgIGZyYW1lX2RpZyAwCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CgptYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NzgtODAKICAgIC8vIHJldHVybiB0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMKICAgIC8vICAgPyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgLy8gICA6IHRoaXMubmV3RXNjcm93KGVzY3Jvdyk7CiAgICBzd2FwCiAgICByZXRzdWIKCm1heWJlTmV3RXNjcm93X3Rlcm5hcnlfZmFsc2VANDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MAogICAgLy8gOiB0aGlzLm5ld0VzY3Jvdyhlc2Nyb3cpOwogICAgZnJhbWVfZGlnIC0xCiAgICBjYWxsc3ViIG5ld0VzY3JvdwogICAgYiBtYXliZU5ld0VzY3Jvd190ZXJuYXJ5X21lcmdlQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50Lm5ld0VzY3Jvdyhlc2Nyb3c6IGJ5dGVzKSAtPiB1aW50NjQ6Cm5ld0VzY3JvdzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo4MwogICAgLy8gcHJpdmF0ZSBuZXdFc2Nyb3coZXNjcm93OiBzdHJpbmcpOiB1aW50NjQgewogICAgcHJvdG8gMSAxCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODQKICAgIC8vIGlmICh0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlICE9PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcykgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICAhPQogICAgYnogbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODcKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg3CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg4CiAgICAvLyByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICBnbG9iYWwgQ3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjYyCiAgICAvLyByZXR1cm4gTWluRXNjcm93c01CUiArIChCb3hDb3N0UGVyQnl0ZSAqIEJ5dGVzKGVzY3JvdykubGVuZ3RoKTsKICAgIGZyYW1lX2RpZyAtMQogICAgbGVuCiAgICBpbnRjIDQgLy8gNDAwCiAgICAqCiAgICBwdXNoaW50IDY1MDAgLy8gNjUwMAogICAgKwogICAgaXR4bl9maWVsZCBBbW91bnQKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6ODUtOTAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbkFkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiB0aGlzLmVzY3Jvd3NNYnIoZXNjcm93KQogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjg1LTkxCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzLAogICAgLy8gICAgIGFtb3VudDogdGhpcy5lc2Nyb3dzTWJyKGVzY3JvdykKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpCiAgICBpdHhuX3N1Ym1pdAoKbmV3RXNjcm93X2FmdGVyX2lmX2Vsc2VAMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo5NC0xMDQKICAgIC8vIGNvbnN0IGlkID0gYWJpQ2FsbDx0eXBlb2YgRXNjcm93RmFjdG9yeS5wcm90b3R5cGUubmV3Pih7CiAgICAvLyAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgYXBwSWQ6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZSwKICAgIC8vICAgYXJnczogWwogICAgLy8gICAgIGl0eG4ucGF5bWVudCh7CiAgICAvLyAgICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgICBhbW91bnQ6IE5ld0Nvc3RGb3JBUkM1OCArIEdsb2JhbC5taW5CYWxhbmNlLAogICAgLy8gICAgICAgcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICAvLyAgICAgfSksCiAgICAvLyAgIF0KICAgIC8vIH0pLnJldHVyblZhbHVlCiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjk5CiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMAogICAgLy8gYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIHB1c2hpbnQgMTUwMDAwIC8vIDE1MDAwMAogICAgZ2xvYmFsIE1pbkJhbGFuY2UKICAgICsKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDEKICAgIC8vIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNAogICAgLy8gZXNjcm93RmFjdG9yeSA9IEdsb2JhbFN0YXRlPEFwcGxpY2F0aW9uPih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzRXNjcm93RmFjdG9yeSB9KQogICAgYnl0ZWMgMTggLy8gImVzY3Jvd19mYWN0b3J5IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwMQogICAgLy8gcmVjZWl2ZXI6IHRoaXMuZXNjcm93RmFjdG9yeS52YWx1ZS5hZGRyZXNzCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICBpdHhuX2ZpZWxkIFJlY2VpdmVyCiAgICBzd2FwCiAgICBpdHhuX2ZpZWxkIEFtb3VudAogICAgZGlnIDEKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTgtMTAyCiAgICAvLyBpdHhuLnBheW1lbnQoewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFtb3VudDogTmV3Q29zdEZvckFSQzU4ICsgR2xvYmFsLm1pbkJhbGFuY2UsCiAgICAvLyAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gfSksCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OTQtMTA0CiAgICAvLyBjb25zdCBpZCA9IGFiaUNhbGw8dHlwZW9mIEVzY3Jvd0ZhY3RvcnkucHJvdG90eXBlLm5ldz4oewogICAgLy8gICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgIGFwcElkOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUsCiAgICAvLyAgIGFyZ3M6IFsKICAgIC8vICAgICBpdHhuLnBheW1lbnQoewogICAgLy8gICAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgICAgYW1vdW50OiBOZXdDb3N0Rm9yQVJDNTggKyBHbG9iYWwubWluQmFsYW5jZSwKICAgIC8vICAgICAgIHJlY2VpdmVyOiB0aGlzLmVzY3Jvd0ZhY3RvcnkudmFsdWUuYWRkcmVzcwogICAgLy8gICAgIH0pLAogICAgLy8gICBdCiAgICAvLyB9KS5yZXR1cm5WYWx1ZQogICAgaXR4bl9uZXh0CiAgICBwdXNoYnl0ZXMgMHhkODVjZjE4NCAvLyBtZXRob2QgIm5ldyhwYXkpdWludDY0IgogICAgaXR4bl9maWVsZCBBcHBsaWNhdGlvbkFyZ3MKICAgIGl0eG5fZmllbGQgQXBwbGljYXRpb25JRAogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIHB1c2hpbnQgNiAvLyBhcHBsCiAgICBpdHhuX2ZpZWxkIFR5cGVFbnVtCiAgICBpbnRjXzAgLy8gMAogICAgaXR4bl9maWVsZCBGZWUKICAgIGl0eG5fc3VibWl0CiAgICBnaXR4biAxIExhc3RMb2cKICAgIGR1cAogICAgZXh0cmFjdCA0IDAKICAgIHN3YXAKICAgIGV4dHJhY3QgMCA0CiAgICBieXRlYyA3IC8vIDB4MTUxZjdjNzUKICAgID09CiAgICBhc3NlcnQgLy8gQnl0ZXMgaGFzIHZhbGlkIHByZWZpeAogICAgZHVwCiAgICBsZW4KICAgIGludGNfMyAvLyA4CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbnVtYmVyIG9mIGJ5dGVzIGZvciB1aW50NjQKICAgIGJ0b2kKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMDYKICAgIC8vIHRoaXMuZXNjcm93cyhlc2Nyb3cpLnZhbHVlID0geyBpZCwgbG9ja2VkOiBmYWxzZSB9CiAgICBkdXAKICAgIGl0b2IKICAgIGJ5dGVjIDkgLy8gMHgwMAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcKICAgIC8vIGVzY3Jvd3MgPSBCb3hNYXA8c3RyaW5nLCBFc2Nyb3dJbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXNjcm93cyB9KQogICAgYnl0ZWMgNSAvLyAiZSIKICAgIGZyYW1lX2RpZyAtMQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTA2CiAgICAvLyB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZSA9IHsgaWQsIGxvY2tlZDogZmFsc2UgfQogICAgc3dhcAogICAgYm94X3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEwOAogICAgLy8gcmV0dXJuIGlkOwogICAgcmV0c3ViCgoKLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5wbHVnaW5DYWxsQWxsb3dlZChwbHVnaW46IHVpbnQ2NCwgY2FsbGVyOiBieXRlcywgZXNjcm93OiBieXRlcywgbWV0aG9kOiBieXRlcykgLT4gdWludDY0OgpwbHVnaW5DYWxsQWxsb3dlZDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMTEKICAgIC8vIHByaXZhdGUgcGx1Z2luQ2FsbEFsbG93ZWQocGx1Z2luOiB1aW50NjQsIGNhbGxlcjogQWNjb3VudCwgZXNjcm93OiBzdHJpbmcsIG1ldGhvZDogYnl0ZXM8ND4pOiBib29sZWFuIHsKICAgIHByb3RvIDQgMQogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiA1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTEyCiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTQKICAgIGl0b2IKICAgIGZyYW1lX2RpZyAtMwogICAgY29uY2F0CiAgICBmcmFtZV9kaWcgLTIKICAgIGxlbgogICAgaXRvYgogICAgZXh0cmFjdCA2IDIKICAgIGZyYW1lX2RpZyAtMgogICAgY29uY2F0CiAgICBzd2FwCiAgICBieXRlYyAxMiAvLyAweDAwMmEKICAgIGNvbmNhdAogICAgc3dhcAogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNAogICAgLy8gaWYgKCF0aGlzLnBsdWdpbnMoa2V5KS5leGlzdHMpIHsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYm56IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjExNQogICAgLy8gcmV0dXJuIGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDI6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTE4CiAgICAvLyBjb25zdCB7IG1ldGhvZHMsIHVzZVJvdW5kcywgbGFzdENhbGxlZCwgY29vbGRvd24sIHVzZUV4ZWN1dGlvbktleSB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUgYXMgUmVhZG9ubHk8UGx1Z2luSW5mbz4KICAgIGZyYW1lX2RpZyA2CiAgICBkdXAKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAwCiAgICBkdXAKICAgIHB1c2hpbnQgMjcgLy8gMjcKICAgIGludGNfMSAvLyAxCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDUKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIHN3YXAKICAgIHB1c2hpbnQgMjggLy8gMjgKICAgIGludGNfMyAvLyA4CiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTIwCiAgICAvLyBpZiAodXNlRXhlY3V0aW9uS2V5KSB7CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMjEKICAgIC8vIHJldHVybiBmYWxzZQogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI0CiAgICAvLyBsZXQgbWV0aG9kQWxsb3dlZCA9IG1ldGhvZHMubGVuZ3RoID4gMCA/IGZhbHNlIDogdHJ1ZTsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgICEKICAgIGZyYW1lX2J1cnkgNAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDIKCnBsdWdpbkNhbGxBbGxvd2VkX3doaWxlX3RvcEA1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNQogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IG1ldGhvZHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyA2CiAgICBwdXNoaW50IDQ0IC8vIDQ0CiAgICBpbnRjXzIgLy8gMgogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2RpZyAyCiAgICA+CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNgogICAgLy8gaWYgKG1ldGhvZHNbaV0uc2VsZWN0b3IgPT09IG1ldGhvZCkgewogICAgZnJhbWVfZGlnIDIKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICoKICAgIHB1c2hpbnQgNDYgLy8gNDYKICAgICsKICAgIGZyYW1lX2RpZyA2CiAgICBzd2FwCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZXh0cmFjdCAwIDQKICAgIGZyYW1lX2RpZyAtMQogICAgPT0KICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEyNwogICAgLy8gbWV0aG9kQWxsb3dlZCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSA0CgpwbHVnaW5DYWxsQWxsb3dlZF9ibG9ja0AxMDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyA1CiAgICBieiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X2ZhbHNlQDEyCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMQoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9tZXJnZUAxMzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIGZyYW1lX2RpZyAzCiAgICBmcmFtZV9kaWcgMQogICAgPj0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzUtMTM2CiAgICAvLyBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAoZXBvY2hSZWYgLSBsYXN0Q2FsbGVkKSA+PSBjb29sZG93biAmJgogICAgYnogcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9mYWxzZUAxNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGZyYW1lX2RpZyAxCiAgICBmcmFtZV9kaWcgMwogICAgLQogICAgZnJhbWVfZGlnIDAKICAgID49CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTM1LTEzNgogICAgLy8gbGFzdENhbGxlZCA+PSBlcG9jaFJlZiAmJgogICAgLy8gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPj0gY29vbGRvd24gJiYKICAgIGJ6IHBsdWdpbkNhbGxBbGxvd2VkX2Jvb2xfZmFsc2VAMTYKICAgIGludGNfMSAvLyAxCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX21lcmdlQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjEzNS0xMzcKICAgIC8vIGxhc3RDYWxsZWQgPj0gZXBvY2hSZWYgJiYKICAgIC8vIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyBtZXRob2RBbGxvd2VkCiAgICBmcmFtZV9kaWcgNAogICAgJiYKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzQtMTM4CiAgICAvLyByZXR1cm4gKAogICAgLy8gICBsYXN0Q2FsbGVkID49IGVwb2NoUmVmICYmCiAgICAvLyAgIChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpID49IGNvb2xkb3duICYmCiAgICAvLyAgIG1ldGhvZEFsbG93ZWQKICAgIC8vICkKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DYWxsQWxsb3dlZF9ib29sX2ZhbHNlQDE2OgogICAgaW50Y18wIC8vIDAKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfYm9vbF9tZXJnZUAxNwoKcGx1Z2luQ2FsbEFsbG93ZWRfdGVybmFyeV9mYWxzZUAxMjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMQogICAgYiBwbHVnaW5DYWxsQWxsb3dlZF90ZXJuYXJ5X21lcmdlQDEzCgpwbHVnaW5DYWxsQWxsb3dlZF9hZnRlcl9pZl9lbHNlQDg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTI1CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgbWV0aG9kcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIKICAgIGIgcGx1Z2luQ2FsbEFsbG93ZWRfd2hpbGVfdG9wQDUKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnR4blJla2V5c0JhY2sodHhuOiB1aW50NjQpIC0+IHVpbnQ2NDoKdHhuUmVrZXlzQmFjazoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDEKICAgIC8vIHByaXZhdGUgdHhuUmVrZXlzQmFjayh0eG46IGd0eG4uVHJhbnNhY3Rpb24pOiBib29sZWFuIHsKICAgIHByb3RvIDEgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NAogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTQ0LTE0NQogICAgLy8gdHhuLnNlbmRlciA9PT0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSAmJgogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBieiB0eG5SZWtleXNCYWNrX2FmdGVyX2lmX2Vsc2VAMwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NQogICAgLy8gdHhuLnJla2V5VG8gPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIFJla2V5VG8KICAgIGdsb2JhbCBDdXJyZW50QXBwbGljYXRpb25BZGRyZXNzCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE0NC0xNDUKICAgIC8vIHR4bi5zZW5kZXIgPT09IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUgJiYKICAgIC8vIHR4bi5yZWtleVRvID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uQWRkcmVzcwogICAgYnogdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNDcKICAgIC8vIHJldHVybiB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIHJldHN1YgoKdHhuUmVrZXlzQmFja19hZnRlcl9pZl9lbHNlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxCiAgICAvLyB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgZnJhbWVfZGlnIC0xCiAgICBndHhucyBUeXBlRW51bQogICAgcHVzaGludCA2IC8vIDYKICAgID09CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1MgogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MgogICAgLy8gJiYgdHhuLmFwcElkID09PSBHbG9iYWwuY3VycmVudEFwcGxpY2F0aW9uSWQKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTIKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgYnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTMKICAgIC8vICYmIHR4bi5udW1BcHBBcmdzID09PSAxCiAgICBmcmFtZV9kaWcgLTEKICAgIGd0eG5zIE51bUFwcEFyZ3MKICAgIGludGNfMSAvLyAxCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTMKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIGJ6IHR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTU0CiAgICAvLyAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIGZyYW1lX2RpZyAtMQogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTUxLTE1NAogICAgLy8gdHhuLnR5cGUgPT09IFRyYW5zYWN0aW9uVHlwZS5BcHBsaWNhdGlvbkNhbGwKICAgIC8vICYmIHR4bi5hcHBJZCA9PT0gR2xvYmFsLmN1cnJlbnRBcHBsaWNhdGlvbklkCiAgICAvLyAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gJiYgdHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wCiAgICBibnogdHhuUmVrZXlzQmFja19ib29sX2ZhbHNlQDkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTUKICAgIC8vICYmIHR4bi5hcHBBcmdzKDApID09PSBtZXRob2RTZWxlY3RvcignYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQnKQogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGJ5dGVjIDIyIC8vIG1ldGhvZCAiYXJjNThfdmVyaWZ5QXV0aEFkZHJlc3MoKXZvaWQiCiAgICA9PQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE1MS0xNTUKICAgIC8vIHR4bi50eXBlID09PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsCiAgICAvLyAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gJiYgdHhuLm51bUFwcEFyZ3MgPT09IDEKICAgIC8vICYmIHR4bi5vbkNvbXBsZXRpb24gPT09IE9uQ29tcGxldGVBY3Rpb24uTm9PcAogICAgLy8gJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICBieiB0eG5SZWtleXNCYWNrX2Jvb2xfZmFsc2VAOQogICAgaW50Y18xIC8vIDEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCnR4blJla2V5c0JhY2tfYm9vbF9mYWxzZUA5OgogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNTAtMTU2CiAgICAvLyByZXR1cm4gKAogICAgLy8gICB0eG4udHlwZSA9PT0gVHJhbnNhY3Rpb25UeXBlLkFwcGxpY2F0aW9uQ2FsbAogICAgLy8gICAmJiB0eG4uYXBwSWQgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZAogICAgLy8gICAmJiB0eG4ubnVtQXBwQXJncyA9PT0gMQogICAgLy8gICAmJiB0eG4ub25Db21wbGV0aW9uID09PSBPbkNvbXBsZXRlQWN0aW9uLk5vT3AKICAgIC8vICAgJiYgdHhuLmFwcEFyZ3MoMCkgPT09IG1ldGhvZFNlbGVjdG9yKCdhcmM1OF92ZXJpZnlBdXRoQWRkcmVzcygpdm9pZCcpCiAgICAvLyApCiAgICByZXRzdWIKCgovLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LnBsdWdpbkNoZWNrKGtleTogYnl0ZXMpIC0+IGJ5dGVzLCBieXRlczoKcGx1Z2luQ2hlY2s6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTczCiAgICAvLyBwcml2YXRlIHBsdWdpbkNoZWNrKGtleTogUGx1Z2luS2V5KTogUGx1Z2luVmFsaWRhdGlvbiB7CiAgICBwcm90byAxIDIKICAgIGJ5dGVjXzEgLy8gIiIKICAgIGR1cG4gMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIC0xCiAgICBjb25jYXQKICAgIGR1cAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NQogICAgLy8gY29uc3QgZXhpc3RzID0gdGhpcy5wbHVnaW5zKGtleSkuZXhpc3RzOwogICAgYm94X2xlbgogICAgZHVwCiAgICB1bmNvdmVyIDIKICAgIHBvcAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE3NgogICAgLy8gaWYgKCFleGlzdHMpIHsKICAgIGJueiBwbHVnaW5DaGVja19hZnRlcl9pZl9lbHNlQDIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxNzctMTgyCiAgICAvLyByZXR1cm4gewogICAgLy8gICBleGlzdHM6IGZhbHNlLAogICAgLy8gICBleHBpcmVkOiB0cnVlLAogICAgLy8gICBvbkNvb2xkb3duOiB0cnVlLAogICAgLy8gICBoYXNNZXRob2RSZXN0cmljdGlvbnM6IGZhbHNlLAogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4NjAKICAgIGZyYW1lX2RpZyAtMQogICAgZnJhbWVfYnVyeSAxCiAgICBmcmFtZV9idXJ5IDAKICAgIHJldHN1YgoKcGx1Z2luQ2hlY2tfYWZ0ZXJfaWZfZWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NQogICAgLy8gY29uc3QgeyB1c2VSb3VuZHMsIGxhc3RWYWxpZCwgY29vbGRvd24sIGxhc3RDYWxsZWQsIG1ldGhvZHMgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlIGFzIFJlYWRvbmx5PFBsdWdpbkluZm8+CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBwdXNoaW50IDkgLy8gOQogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDIKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgaW50Y18zIC8vIDgKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBmcmFtZV9idXJ5IDAKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBwdXNoaW50IDI4IC8vIDI4CiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGZyYW1lX2J1cnkgMQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4NgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgYnogcGx1Z2luQ2hlY2tfdGVybmFyeV9mYWxzZUA0CiAgICBnbG9iYWwgUm91bmQKCnBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOTAKICAgIC8vIGV4cGlyZWQ6IGVwb2NoUmVmID4gbGFzdFZhbGlkLAogICAgZHVwCiAgICBmcmFtZV9kaWcgMgogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MQogICAgLy8gb25Db29sZG93bjogKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93biwKICAgIHN3YXAKICAgIGZyYW1lX2RpZyAxCiAgICAtCiAgICBmcmFtZV9kaWcgMAogICAgPAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE5MgogICAgLy8gaGFzTWV0aG9kUmVzdHJpY3Rpb25zOiBtZXRob2RzLmxlbmd0aCA+IDAsCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCA0NCAvLyA0NAogICAgaW50Y18yIC8vIDIKICAgIGJveF9leHRyYWN0CiAgICBidG9pCiAgICBpbnRjXzAgLy8gMAogICAgPgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjE4OC0xOTMKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIGV4aXN0cywKICAgIC8vICAgZXhwaXJlZDogZXBvY2hSZWYgPiBsYXN0VmFsaWQsCiAgICAvLyAgIG9uQ29vbGRvd246IChlcG9jaFJlZiAtIGxhc3RDYWxsZWQpIDwgY29vbGRvd24sCiAgICAvLyAgIGhhc01ldGhvZFJlc3RyaWN0aW9uczogbWV0aG9kcy5sZW5ndGggPiAwLAogICAgLy8gfQogICAgYnl0ZWMgOSAvLyAweDAwCiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfZGlnIDQKICAgIHNldGJpdAogICAgaW50Y18xIC8vIDEKICAgIHVuY292ZXIgNAogICAgc2V0Yml0CiAgICBpbnRjXzIgLy8gMgogICAgdW5jb3ZlciAzCiAgICBzZXRiaXQKICAgIHB1c2hpbnQgMyAvLyAzCiAgICB1bmNvdmVyIDIKICAgIHNldGJpdAogICAgZnJhbWVfZGlnIC0xCiAgICBmcmFtZV9idXJ5IDEKICAgIGZyYW1lX2J1cnkgMAogICAgcmV0c3ViCgpwbHVnaW5DaGVja190ZXJuYXJ5X2ZhbHNlQDQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTg2CiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHBsdWdpbkNoZWNrX3Rlcm5hcnlfbWVyZ2VANQoKCi8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbihwbHVnaW46IHVpbnQ2NCwgZ2xvYmFsOiB1aW50NjQsIGVzY3JvdzogYnl0ZXMsIG1ldGhvZE9mZnNldHM6IGJ5dGVzLCBmdW5kc1JlcXVlc3Q6IGJ5dGVzKSAtPiBieXRlcywgYnl0ZXM6CnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1NjctNTczCiAgICAvLyBhcmM1OF9yZWtleVRvUGx1Z2luKAogICAgLy8gICBwbHVnaW46IHVpbnQ2NCwKICAgIC8vICAgZ2xvYmFsOiBib29sZWFuLAogICAgLy8gICBlc2Nyb3c6IHN0cmluZywKICAgIC8vICAgbWV0aG9kT2Zmc2V0czogdWludDY0W10sCiAgICAvLyAgIGZ1bmRzUmVxdWVzdDogRnVuZHNSZXF1ZXN0W10KICAgIC8vICk6IHZvaWQgewogICAgcHJvdG8gNSAyCiAgICBpbnRjXzAgLy8gMAogICAgZHVwbiAxMAogICAgYnl0ZWNfMSAvLyAiIgogICAgZHVwbiAxOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgZnJhbWVfZGlnIC00CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyCiAgICBnbG9iYWwgWmVyb0FkZHJlc3MKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTc2CiAgICAvLyBjb25zdCBrZXk6IFBsdWdpbktleSA9IHsgcGx1Z2luLCBjYWxsZXIsIGVzY3JvdyB9CiAgICBmcmFtZV9kaWcgLTUKICAgIGl0b2IKICAgIHN3YXAKICAgIGNvbmNhdAogICAgZnJhbWVfZGlnIC0zCiAgICBsZW4KICAgIGl0b2IKICAgIGV4dHJhY3QgNiAyCiAgICBmcmFtZV9kaWcgLTMKICAgIGNvbmNhdAogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEKICAgIHN3YXAKICAgIGJ5dGVjIDEyIC8vIDB4MDAyYQogICAgY29uY2F0CiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSA2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMKICAgIC8vIHBsdWdpbnMgPSBCb3hNYXA8UGx1Z2luS2V5LCBQbHVnaW5JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4UGx1Z2lucyB9KTsKICAgIGJ5dGVjIDQgLy8gInAiCiAgICBkaWcgMQogICAgY29uY2F0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OAogICAgLy8gYXNzZXJ0KHRoaXMucGx1Z2lucyhrZXkpLmV4aXN0cywgRVJSX1BMVUdJTl9ET0VTX05PVF9FWElTVCkKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIHBsdWdpbiBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4CiAgICAvLyBjdXJyZW50UGx1Z2luID0gR2xvYmFsU3RhdGU8UGx1Z2luS2V5Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ3VycmVudFBsdWdpbiB9KQogICAgYnl0ZWMgMTkgLy8gImN1cnJlbnRfcGx1Z2luIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3OQogICAgLy8gdGhpcy5jdXJyZW50UGx1Z2luLnZhbHVlID0gY2xvbmUoa2V5KQogICAgc3dhcAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODEKICAgIC8vIGlmIChlc2Nyb3cgIT09ICcnKSB7CiAgICBmcmFtZV9kaWcgLTMKICAgIGJ5dGVjXzEgLy8gIiIKICAgICE9CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDcKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNwogICAgLy8gZXNjcm93cyA9IEJveE1hcDxzdHJpbmcsIEVzY3Jvd0luZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFc2Nyb3dzIH0pCiAgICBieXRlYyA1IC8vICJlIgogICAgZnJhbWVfZGlnIC0zCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODIKICAgIC8vIGFzc2VydCh0aGlzLmVzY3Jvd3MoZXNjcm93KS5leGlzdHMsIEVSUl9FU0NST1dfRE9FU19OT1RfRVhJU1QpCiAgICBkdXAKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIGVzY3JvdyBkb2VzIG5vdCBleGlzdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4MwogICAgLy8gY29uc3QgZXNjcm93SUQgPSB0aGlzLmVzY3Jvd3MoZXNjcm93KS52YWx1ZS5pZAogICAgYm94X2dldAogICAgcG9wCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50NjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODUKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gc3BlbmRpbmdBcHAuYWRkcmVzcwogICAgZHVwCiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4NQogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSBzcGVuZGluZ0FwcC5hZGRyZXNzCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMxNgogICAgLy8gY29uc3QgZXNjcm93QWRkcmVzcyA9IEFwcGxpY2F0aW9uKGVzY3Jvd0lEKS5hZGRyZXNzOwogICAgYXBwX3BhcmFtc19nZXQgQXBwQWRkcmVzcwogICAgc3dhcAogICAgZnJhbWVfYnVyeSA1CiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTYKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BANTY6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIC0xCiAgICBpbnRjXzAgLy8gMAogICAgZXh0cmFjdF91aW50MTYKICAgIGZyYW1lX2RpZyAxNgogICAgPgogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyMgogICAgLy8gYXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIGZyYW1lX2RpZyAtMQogICAgZXh0cmFjdCAyIDAKICAgIGZyYW1lX2RpZyAxNgogICAgcHVzaGludCAxNiAvLyAxNgogICAgKgogICAgcHVzaGludCAxNiAvLyAxNgogICAgZXh0cmFjdDMgLy8gb24gZXJyb3I6IGluZGV4IGFjY2VzcyBpcyBvdXQgb2YgYm91bmRzCiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMAogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICBkdXAKICAgIGZyYW1lX2J1cnkgMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjAtMzIzCiAgICAvLyBjb25zdCBhbGxvd2FuY2VLZXk6IEFsbG93YW5jZUtleSA9IHsKICAgIC8vICAgZXNjcm93LAogICAgLy8gICBhc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gfQogICAgaXRvYgogICAgYnl0ZWMgMTMgLy8gMHgwMDBhCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGZyYW1lX2RpZyAxCiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozOQogICAgLy8gYWxsb3dhbmNlcyA9IEJveE1hcDxBbGxvd2FuY2VLZXksIEFsbG93YW5jZUluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhBbGxvd2FuY2VzIH0pIC8vIDM4XzUwMAogICAgYnl0ZWMgMTQgLy8gImEiCiAgICBzd2FwCiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzQ5CiAgICAvLyBhc3NlcnQodGhpcy5hbGxvd2FuY2VzKGtleSkuZXhpc3RzLCBFUlJfQUxMT1dBTkNFX0RPRVNfTk9UX0VYSVNUKTsKICAgIGR1cAogICAgYm94X2xlbgogICAgYnVyeSAxCiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzUwCiAgICAvLyBjb25zdCB7IHR5cGUsIHNwZW50LCBhbW91bnQsIGxhc3QsIG1heCwgaW50ZXJ2YWwsIHN0YXJ0LCB1c2VSb3VuZHMgfSA9IHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlCiAgICBib3hfZ2V0CiAgICBwb3AKICAgIGR1cAogICAgZXh0cmFjdCAwIDEKICAgIGZyYW1lX2J1cnkgMTAKICAgIGR1cAogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjYKICAgIGR1cAogICAgcHVzaGludCA5IC8vIDkKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDExCiAgICBkdXAKICAgIHB1c2hpbnQgMzMgLy8gMzMKICAgIGV4dHJhY3RfdWludDY0CiAgICBmcmFtZV9idXJ5IDE5CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyMQogICAgZHVwCiAgICBwdXNoaW50IDI1IC8vIDI1CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxNwogICAgZHVwCiAgICBwdXNoaW50IDQxIC8vIDQxCiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAyNwogICAgcHVzaGludCAzOTIgLy8gMzkyCiAgICBnZXRiaXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyOAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1MQogICAgLy8gY29uc3QgbmV3TGFzdCA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OQogICAgZ2xvYmFsIFJvdW5kCiAgICBmcmFtZV9idXJ5IDI0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTMKICAgIC8vIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVGbGF0KSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIGJ5dGVjIDE1IC8vIDB4MDEKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU0CiAgICAvLyBjb25zdCBsZWZ0b3ZlcjogdWludDY0ID0gYW1vdW50IC0gc3BlbnQ7CiAgICBmcmFtZV9kaWcgMTEKICAgIGZyYW1lX2RpZyAyNgogICAgLQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NQogICAgLy8gYXNzZXJ0KGxlZnRvdmVyID49IGZ1bmRSZXF1ZXN0LmFtb3VudCwgRVJSX0FMTE9XQU5DRV9FWENFRURFRCk7CiAgICBmcmFtZV9kaWcgMAogICAgaW50Y18zIC8vIDgKICAgIGV4dHJhY3RfdWludDY0CiAgICBzd2FwCiAgICBkaWcgMQogICAgPj0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTYKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ICs9IGZ1bmRSZXF1ZXN0LmFtb3VudAogICAgZnJhbWVfZGlnIDMKICAgIGR1cAogICAgY292ZXIgMgogICAgYm94X2dldAogICAgYXNzZXJ0IC8vIEJveCBtdXN0IGhhdmUgdmFsdWUKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIGV4dHJhY3RfdWludDY0CiAgICArCiAgICBpdG9iCiAgICBwdXNoaW50IDE3IC8vIDE3CiAgICBzd2FwCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzgxCiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5sYXN0ID0gbmV3TGFzdAogICAgZnJhbWVfZGlnIDI0CiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAzMyAvLyAzMwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyNwogICAgLy8gaWYgKGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQgIT09IDApIHsKICAgIGZyYW1lX2RpZyAyOQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA3MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMyOC0zMzUKICAgIC8vIGl0eG4KICAgIC8vICAgLmFzc2V0VHJhbnNmZXIoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICBhc3NldFJlY2VpdmVyOiBlc2Nyb3dBZGRyZXNzLAogICAgLy8gICAgIGFzc2V0QW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudCwKICAgIC8vICAgICB4ZmVyQXNzZXQ6IGZ1bmRzUmVxdWVzdHNbaV0uYXNzZXQKICAgIC8vICAgfSkKICAgIC8vICAgLnN1Ym1pdCgpOwogICAgaXR4bl9iZWdpbgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMAogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzMwCiAgICAvLyBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICBhcHBfZ2xvYmFsX2dldF9leAogICAgYXNzZXJ0IC8vIGNoZWNrIEdsb2JhbFN0YXRlIGV4aXN0cwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzMgogICAgLy8gYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgZnJhbWVfZGlnIDAKICAgIGludGNfMyAvLyA4CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfZGlnIDI5CiAgICBpdHhuX2ZpZWxkIFhmZXJBc3NldAogICAgaXR4bl9maWVsZCBBc3NldEFtb3VudAogICAgZnJhbWVfZGlnIDUKICAgIGl0eG5fZmllbGQgQXNzZXRSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMjgtMzM0CiAgICAvLyBpdHhuCiAgICAvLyAgIC5hc3NldFRyYW5zZmVyKHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgYXNzZXRSZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhc3NldEFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQsCiAgICAvLyAgICAgeGZlckFzc2V0OiBmdW5kc1JlcXVlc3RzW2ldLmFzc2V0CiAgICAvLyAgIH0pCiAgICBwdXNoaW50IDQgLy8gNAogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzI4LTMzNQogICAgLy8gaXR4bgogICAgLy8gICAuYXNzZXRUcmFuc2Zlcih7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIGFzc2V0UmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYXNzZXRBbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50LAogICAgLy8gICAgIHhmZXJBc3NldDogZnVuZHNSZXF1ZXN0c1tpXS5hc3NldAogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX3N1Ym1pdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzQ6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzE4CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZnVuZHNSZXF1ZXN0cy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDE2CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxNgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDU2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDczOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fYmVnaW4KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzkKICAgIC8vIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTgKICAgIC8vIGNvbnRyb2xsZWRBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0NvbnRyb2xsZWRBZGRyZXNzIH0pOwogICAgYnl0ZWNfMCAvLyAiY29udHJvbGxlZF9hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzOQogICAgLy8gc2VuZGVyOiB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNDEKICAgIC8vIGFtb3VudDogZnVuZHNSZXF1ZXN0c1tpXS5hbW91bnQKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGl0eG5fZmllbGQgQW1vdW50CiAgICBmcmFtZV9kaWcgNQogICAgaXR4bl9maWVsZCBSZWNlaXZlcgogICAgaXR4bl9maWVsZCBTZW5kZXIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMzctMzQyCiAgICAvLyBpdHhuCiAgICAvLyAgIC5wYXltZW50KHsKICAgIC8vICAgICBzZW5kZXI6IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IGVzY3Jvd0FkZHJlc3MsCiAgICAvLyAgICAgYW1vdW50OiBmdW5kc1JlcXVlc3RzW2ldLmFtb3VudAogICAgLy8gICB9KQogICAgaW50Y18xIC8vIDEKICAgIGl0eG5fZmllbGQgVHlwZUVudW0KICAgIGludGNfMCAvLyAwCiAgICBpdHhuX2ZpZWxkIEZlZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzNy0zNDMKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogZXNjcm93QWRkcmVzcywKICAgIC8vICAgICBhbW91bnQ6IGZ1bmRzUmVxdWVzdHNbaV0uYW1vdW50CiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc0CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDYyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM1NwogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVXaW5kb3cpIHsKICAgIGZyYW1lX2RpZyAxMAogICAgcHVzaGJ5dGVzIDB4MDIKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg1CiAgICAvLyBpZiAodXNlUm91bmRzKSB7CiAgICBmcmFtZV9kaWcgMjgKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDc3CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzg2CiAgICAvLyByZXR1cm4gR2xvYmFsLnJvdW5kIC0gKChHbG9iYWwucm91bmQgLSBzdGFydCkgJSBpbnRlcnZhbCkKICAgIGdsb2JhbCBSb3VuZAogICAgZHVwCiAgICBmcmFtZV9kaWcgMjcKICAgIC0KICAgIGZyYW1lX2RpZyAxNwogICAgJQogICAgLQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5nZXRMYXRlc3RXaW5kb3dTdGFydEA3ODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjAKICAgIC8vIGlmIChjdXJyZW50V2luZG93U3RhcnQgPiBsYXN0KSB7CiAgICBmcmFtZV9kaWcgMTkKICAgID4KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANjUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjEKICAgIC8vIGFzc2VydChhbW91bnQgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBkdXAKICAgIGV4dHJhY3QgOCA4CiAgICBzd2FwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2RpZyAxMQogICAgPD0KICAgIGFzc2VydCAvLyBhbGxvd2FuY2UgZXhjZWVkZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjIKICAgIC8vIHRoaXMuYWxsb3dhbmNlcyhrZXkpLnZhbHVlLnNwZW50ID0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Vsc2VfYm9keUA2NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNjUKICAgIC8vIGNvbnN0IGxlZnRvdmVyOiB1aW50NjQgPSBhbW91bnQgLSBzcGVudDsKICAgIGZyYW1lX2RpZyAxMQogICAgZnJhbWVfZGlnIDI2CiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzY2CiAgICAvLyBhc3NlcnQobGVmdG92ZXIgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIHN3YXAKICAgIGRpZyAxCiAgICA+PQogICAgYXNzZXJ0IC8vIGFsbG93YW5jZSBleGNlZWRlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2NwogICAgLy8gdGhpcy5hbGxvd2FuY2VzKGtleSkudmFsdWUuc3BlbnQgKz0gZnVuZFJlcXVlc3QuYW1vdW50CiAgICBmcmFtZV9kaWcgMwogICAgZHVwCiAgICBjb3ZlciAyCiAgICBib3hfZ2V0CiAgICBhc3NlcnQgLy8gQm94IG11c3QgaGF2ZSB2YWx1ZQogICAgcHVzaGludCAxNyAvLyAxNwogICAgZXh0cmFjdF91aW50NjQKICAgICsKICAgIGl0b2IKICAgIHB1c2hpbnQgMTcgLy8gMTcKICAgIHN3YXAKICAgIGJveF9yZXBsYWNlCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDcxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3NzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozODgKICAgIC8vIHJldHVybiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gKChHbG9iYWwubGF0ZXN0VGltZXN0YW1wIC0gc3RhcnQpICUgaW50ZXJ2YWwpCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyNwogICAgLQogICAgZnJhbWVfZGlnIDE3CiAgICAlCiAgICAtCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzU4CiAgICAvLyBjb25zdCBjdXJyZW50V2luZG93U3RhcnQgPSB0aGlzLmdldExhdGVzdFdpbmRvd1N0YXJ0KHVzZVJvdW5kcywgc3RhcnQsIGludGVydmFsKQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaW5saW5lZF9zbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmdldExhdGVzdFdpbmRvd1N0YXJ0QDc4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fZWxzZV9ib2R5QDY2OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjM2OQogICAgLy8gfSBlbHNlIGlmICh0eXBlID09PSBTcGVuZEFsbG93YW5jZVR5cGVEcmlwKSB7CiAgICBmcmFtZV9kaWcgMTAKICAgIHB1c2hieXRlcyAweDAzCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANzEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzAKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjkKICAgIGdsb2JhbCBSb3VuZAogICAgZnJhbWVfYnVyeSAxNAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANzA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcxCiAgICAvLyBjb25zdCBwYXNzZWQ6IHVpbnQ2NCA9IGVwb2NoUmVmIC0gbGFzdAogICAgZnJhbWVfZGlnIDE0CiAgICBmcmFtZV9kaWcgMTkKICAgIC0KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzUKICAgIC8vIGNvbnN0IGFjY3J1ZWQ6IHVpbnQ2NCA9IHNwZW50ICsgKChwYXNzZWQgLyBpbnRlcnZhbCkgKiBhbW91bnQpCiAgICBmcmFtZV9kaWcgMTcKICAgIC8KICAgIGZyYW1lX2RpZyAxMQogICAgKgogICAgZnJhbWVfZGlnIDI2CiAgICArCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc2CiAgICAvLyBjb25zdCBhdmFpbGFibGU6IHVpbnQ2NCA9IGFjY3J1ZWQgPiBtYXggPyBtYXggOiBhY2NydWVkCiAgICBkdXAKICAgIGZyYW1lX2RpZyAyMQogICAgZHVwCiAgICBjb3ZlciAzCiAgICA+CiAgICBzd2FwCiAgICBjb3ZlciAyCiAgICBzZWxlY3QKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNzgKICAgIC8vIGFzc2VydChhdmFpbGFibGUgPj0gZnVuZFJlcXVlc3QuYW1vdW50LCBFUlJfQUxMT1dBTkNFX0VYQ0VFREVEKTsKICAgIGZyYW1lX2RpZyAwCiAgICBpbnRjXzMgLy8gOAogICAgZXh0cmFjdF91aW50NjQKICAgIGR1cDIKICAgID49CiAgICBhc3NlcnQgLy8gYWxsb3dhbmNlIGV4Y2VlZGVkCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mzc5CiAgICAvLyB0aGlzLmFsbG93YW5jZXMoa2V5KS52YWx1ZS5zcGVudCA9IChhdmFpbGFibGUgLSBmdW5kUmVxdWVzdC5hbW91bnQpCiAgICAtCiAgICBpdG9iCiAgICBmcmFtZV9kaWcgMwogICAgcHVzaGludCAxNyAvLyAxNwogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA3MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANjk6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzcwCiAgICAvLyBjb25zdCBlcG9jaFJlZiA9IHVzZVJvdW5kcyA/IEdsb2JhbC5yb3VuZCA6IEdsb2JhbC5sYXRlc3RUaW1lc3RhbXA7CiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBmcmFtZV9idXJ5IDE0CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDcwCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA1OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozNTEKICAgIC8vIGNvbnN0IG5ld0xhc3QgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgZnJhbWVfYnVyeSAyNAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA2MAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAODoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDQKICAgIC8vIGNvbnN0IHsgdXNlUm91bmRzLCB1c2VFeGVjdXRpb25LZXkgfSA9IHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlCiAgICBmcmFtZV9kaWcgMgogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBkdXAKICAgIGludGNfMSAvLyAxCiAgICBnZXRiaXQKICAgIGZyYW1lX2J1cnkgMjgKICAgIGludGNfMiAvLyAyCiAgICBnZXRiaXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIHR4biBTZW5kZXIKICAgIGludGNfMCAvLyAwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MTYKICAgIC8vIGFkbWluID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0FkbWluIH0pCiAgICBieXRlY18yIC8vICJhZG1pbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDYKICAgIC8vIGlmICh1c2VFeGVjdXRpb25LZXkgJiYgIShUeG4uc2VuZGVyID09PSB0aGlzLmFkbWluLnZhbHVlKSkgewogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgID09CiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwNwogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLmV4aXN0cywgRVJSX0VYRUNVVElPTl9LRVlfTk9UX0ZPVU5EKTsKICAgIGJveF9sZW4KICAgIGJ1cnkgMQogICAgYXNzZXJ0IC8vIEV4ZWN1dGlvbiBrZXkgbm90IGZvdW5kCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgYnl0ZWMgOCAvLyAieCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMDgKICAgIC8vIGFzc2VydCh0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS52YWx1ZS5maXJzdFZhbGlkIDw9IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9OT1RfUkVBRFkpOwogICAgdHhuIExlYXNlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NDEKICAgIC8vIGV4ZWN1dGlvbnMgPSBCb3hNYXA8Ynl0ZXM8MzI+LCBFeGVjdXRpb25JbmZvPih7IGtleVByZWZpeDogQWJzdHJhY3RBY2NvdW50Qm94UHJlZml4RXhlY3V0aW9ucyB9KQogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA4CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZmlyc3RWYWxpZCA8PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fTk9UX1JFQURZKTsKICAgIGludGNfMiAvLyAyCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPD0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IG5vdCByZWFkeQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjA5CiAgICAvLyBhc3NlcnQodGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUubGFzdFZhbGlkID49IEdsb2JhbC5yb3VuZCwgRVJSX0VYRUNVVElPTl9FWFBJUkVEKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIwOQogICAgLy8gYXNzZXJ0KHRoaXMuZXhlY3V0aW9ucyhUeG4ubGVhc2UpLnZhbHVlLmxhc3RWYWxpZCA+PSBHbG9iYWwucm91bmQsIEVSUl9FWEVDVVRJT05fRVhQSVJFRCk7CiAgICBwdXNoaW50IDEwIC8vIDEwCiAgICBpbnRjXzMgLy8gOAogICAgYm94X2V4dHJhY3QKICAgIGJ0b2kKICAgIGdsb2JhbCBSb3VuZAogICAgPj0KICAgIGFzc2VydCAvLyBFeGVjdXRpb24ga2V5IGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0MQogICAgLy8gZXhlY3V0aW9ucyA9IEJveE1hcDxieXRlczwzMj4sIEV4ZWN1dGlvbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhFeGVjdXRpb25zIH0pCiAgICBieXRlYyA4IC8vICJ4IgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxMQogICAgLy8gY29uc3QgZ3JvdXBzID0gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkudmFsdWUuZ3JvdXBzIGFzIFJlYWRvbmx5PGJ5dGVzPDMyPltdPjsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgZnJhbWVfYnVyeSA0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjEzCiAgICAvLyBsZXQgZm91bmRHcm91cCA9IGZhbHNlOwogICAgaW50Y18wIC8vIDAKICAgIGZyYW1lX2J1cnkgMTUKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTQKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IDA7IGkgPCBncm91cHMubGVuZ3RoOyBpICs9IDEpIHsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDE2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDE3OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNAogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gMDsgaSA8IGdyb3Vwcy5sZW5ndGg7IGkgKz0gMSkgewogICAgZnJhbWVfZGlnIDQKICAgIHB1c2hpbnQgMTggLy8gMTgKICAgIGludGNfMiAvLyAyCiAgICBib3hfZXh0cmFjdAogICAgYnRvaQogICAgZnJhbWVfZGlnIDE2CiAgICA+CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfd2hpbGVAMjEKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMTUKICAgIC8vIGlmIChncm91cHNbaV0gPT09IEdsb2JhbC5ncm91cElkKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIHB1c2hpbnQgMzIgLy8gMzIKICAgICoKICAgIHB1c2hpbnQgMjAgLy8gMjAKICAgICsKICAgIGZyYW1lX2RpZyA0CiAgICBzd2FwCiAgICBwdXNoaW50IDMyIC8vIDMyCiAgICBib3hfZXh0cmFjdAogICAgZ2xvYmFsIEdyb3VwSUQKICAgID09CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAyMAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIxNgogICAgLy8gZm91bmRHcm91cCA9IHRydWU7CiAgICBpbnRjXzEgLy8gMQogICAgZnJhbWVfYnVyeSAxNQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjA6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjE0CiAgICAvLyBmb3IgKGxldCBpOiB1aW50NjQgPSAwOyBpIDwgZ3JvdXBzLmxlbmd0aDsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTYKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDE2CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl93aGlsZV90b3BAMTcKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl93aGlsZUAyMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjAKICAgIC8vIGFzc2VydChmb3VuZEdyb3VwLCBFUlJfR1JPVVBfTk9UX0ZPVU5EKTsKICAgIGZyYW1lX2RpZyAxNQogICAgYXNzZXJ0IC8vIEdyb3VwIG5vdCBmb3VuZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGJ5dGVjIDggLy8gIngiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjIxCiAgICAvLyB0aGlzLmV4ZWN1dGlvbnMoVHhuLmxlYXNlKS5kZWxldGUoKTsKICAgIHR4biBMZWFzZQogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjQxCiAgICAvLyBleGVjdXRpb25zID0gQm94TWFwPGJ5dGVzPDMyPiwgRXhlY3V0aW9uSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeEV4ZWN1dGlvbnMgfSkKICAgIGNvbmNhdAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyMQogICAgLy8gdGhpcy5leGVjdXRpb25zKFR4bi5sZWFzZSkuZGVsZXRlKCk7CiAgICBib3hfZGVsCiAgICBwb3AKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDIyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNAogICAgLy8gY29uc3QgaW5pdGlhbENoZWNrID0gdGhpcy5wbHVnaW5DaGVjayhrZXkpOwogICAgZnJhbWVfZGlnIDYKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIyNgogICAgLy8gYXNzZXJ0KGluaXRpYWxDaGVjay5leGlzdHMsIEVSUl9QTFVHSU5fRE9FU19OT1RfRVhJU1QpOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBhc3NlcnQgLy8gcGx1Z2luIGRvZXMgbm90IGV4aXN0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjI3CiAgICAvLyBhc3NlcnQoIWluaXRpYWxDaGVjay5leHBpcmVkLCBFUlJfUExVR0lOX0VYUElSRUQpOwogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICAhCiAgICBhc3NlcnQgLy8gcGx1Z2luIGV4cGlyZWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMjgKICAgIC8vIGFzc2VydCghaW5pdGlhbENoZWNrLm9uQ29vbGRvd24sIEVSUl9QTFVHSU5fT05fQ09PTERPV04pOwogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgIQogICAgYXNzZXJ0IC8vIHBsdWdpbiBvbiBjb29sZG93bgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzMC0yMzIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzCiAgICAvLyAgID8gR2xvYmFsLnJvdW5kCiAgICAvLyAgIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGZyYW1lX2RpZyAyOAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMjQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzEKICAgIC8vID8gR2xvYmFsLnJvdW5kCiAgICBnbG9iYWwgUm91bmQKICAgIGZyYW1lX2J1cnkgMTQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDI1OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNAogICAgLy8gbGV0IHJla2V5c0JhY2sgPSBmYWxzZTsKICAgIGludGNfMCAvLyAwCiAgICBmcmFtZV9idXJ5IDI1CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjM1CiAgICAvLyBsZXQgbWV0aG9kSW5kZXg6IHVpbnQ2NCA9IDA7CiAgICBpbnRjXzAgLy8gMAogICAgZnJhbWVfYnVyeSAyMgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIHR4biBHcm91cEluZGV4CiAgICBpbnRjXzEgLy8gMQogICAgKwogICAgZnJhbWVfYnVyeSAxOAogICAgZnJhbWVfZGlnIDYKICAgIGZyYW1lX2J1cnkgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3doaWxlX3RvcEAyNjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzcKICAgIC8vIGZvciAobGV0IGk6IHVpbnQ2NCA9IChUeG4uZ3JvdXBJbmRleCArIDEpOyBpIDwgR2xvYmFsLmdyb3VwU2l6ZTsgaSArPSAxKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGdsb2JhbCBHcm91cFNpemUKICAgIDwKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MwogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0MAogICAgLy8gaWYgKHRoaXMudHhuUmVrZXlzQmFjayh0eG4pKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGNhbGxzdWIgdHhuUmVrZXlzQmFjawogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMjkKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDEKICAgIC8vIHJla2V5c0JhY2sgPSB0cnVlOwogICAgaW50Y18xIC8vIDEKICAgIGZyYW1lX2J1cnkgMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNzEKICAgIC8vIGFzc2VydChyZWtleXNCYWNrLCBFUlJfTUlTU0lOR19SRUtFWV9CQUNLKTsKICAgIGZyYW1lX2RpZyAyNQogICAgYXNzZXJ0IC8vIG1pc3NpbmcgcmVrZXkgYmFjawogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU5My02MDAKICAgIC8vIGl0eG4KICAgIC8vICAgLnBheW1lbnQoewogICAgLy8gICAgIHNlbmRlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVjZWl2ZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgLy8gICAgIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgLy8gICAgIG5vdGU6ICdyZWtleWluZyB0byBwbHVnaW4gYXBwJwogICAgLy8gICB9KQogICAgLy8gICAuc3VibWl0KCk7CiAgICBpdHhuX2JlZ2luCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNgogICAgLy8gc3BlbmRpbmdBZGRyZXNzID0gR2xvYmFsU3RhdGU8QWNjb3VudD4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1NwZW5kaW5nQWRkcmVzcyB9KQogICAgYnl0ZWMgMTEgLy8gInNwZW5kaW5nX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk1CiAgICAvLyBzZW5kZXI6IHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlLAogICAgYXBwX2dsb2JhbF9nZXRfZXgKICAgIGFzc2VydCAvLyBjaGVjayBHbG9iYWxTdGF0ZSBleGlzdHMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1OTcKICAgIC8vIHJla2V5VG86IHBsdWdpbkFwcC5hZGRyZXNzLAogICAgZnJhbWVfZGlnIC01CiAgICBhcHBfcGFyYW1zX2dldCBBcHBBZGRyZXNzCiAgICBhc3NlcnQgLy8gYXBwbGljYXRpb24gZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTk4CiAgICAvLyBub3RlOiAncmVrZXlpbmcgdG8gcGx1Z2luIGFwcCcKICAgIHB1c2hieXRlcyAicmVrZXlpbmcgdG8gcGx1Z2luIGFwcCIKICAgIGl0eG5fZmllbGQgTm90ZQogICAgaXR4bl9maWVsZCBSZWtleVRvCiAgICBkdXAKICAgIGl0eG5fZmllbGQgUmVjZWl2ZXIKICAgIGl0eG5fZmllbGQgU2VuZGVyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTU5OQogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICBpbnRjXzEgLy8gMQogICAgaXR4bl9maWVsZCBUeXBlRW51bQogICAgaW50Y18wIC8vIDAKICAgIGl0eG5fZmllbGQgRmVlCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTkzLTYwMAogICAgLy8gaXR4bgogICAgLy8gICAucGF5bWVudCh7CiAgICAvLyAgICAgc2VuZGVyOiB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSwKICAgIC8vICAgICByZWNlaXZlcjogdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUsCiAgICAvLyAgICAgcmVrZXlUbzogcGx1Z2luQXBwLmFkZHJlc3MsCiAgICAvLyAgICAgbm90ZTogJ3Jla2V5aW5nIHRvIHBsdWdpbiBhcHAnCiAgICAvLyAgIH0pCiAgICAvLyAgIC5zdWJtaXQoKTsKICAgIGl0eG5fc3VibWl0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAKICAgIC8vIHJla2V5SW5kZXggPSBHbG9iYWxTdGF0ZTx1aW50NjQ+KHsgaW5pdGlhbFZhbHVlOiAwLCBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c1Jla2V5SW5kZXggfSkKICAgIGJ5dGVjIDE3IC8vICJyZWtleV9pbmRleCIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDMKICAgIC8vIHRoaXMucmVrZXlJbmRleC52YWx1ZSA9IFR4bi5ncm91cEluZGV4CiAgICB0eG4gR3JvdXBJbmRleAogICAgYXBwX2dsb2JhbF9wdXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA3CiAgICBjb25jYXQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo2MDUKICAgIC8vIGlmICh0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5kZWxlZ2F0aW9uVHlwZSA9PT0gRGVsZWdhdGlvblR5cGVTZWxmKSB7CiAgICBpbnRjXzMgLy8gOAogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBieXRlYyAxNSAvLyAweDAxCiAgICA9PQogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VAMTMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMAogICAgLy8gbGFzdFVzZXJJbnRlcmFjdGlvbiA9IEdsb2JhbFN0YXRlPHVpbnQ2ND4oeyBrZXk6IEFic3RyYWN0QWNjb3VudEdsb2JhbFN0YXRlS2V5c0xhc3RVc2VySW50ZXJhY3Rpb24gfSkKICAgIGJ5dGVjXzMgLy8gImxhc3RfdXNlcl9pbnRlcmFjdGlvbiIKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo0NAogICAgLy8gdGhpcy5sYXN0VXNlckludGVyYWN0aW9uLnZhbHVlID0gR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgZ2xvYmFsIExhdGVzdFRpbWVzdGFtcAogICAgYXBwX2dsb2JhbF9wdXQKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDEzOgogICAgZnJhbWVfZGlnIC0yCiAgICBmcmFtZV9kaWcgLTEKICAgIGZyYW1lX2J1cnkgMQogICAgZnJhbWVfYnVyeSAwCiAgICByZXRzdWIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDI5OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI0NQogICAgLy8gaWYgKHR4bi50eXBlICE9PSBUcmFuc2FjdGlvblR5cGUuQXBwbGljYXRpb25DYWxsKSB7CiAgICBmcmFtZV9kaWcgMTgKICAgIGd0eG5zIFR5cGVFbnVtCiAgICBwdXNoaW50IDYgLy8gNgogICAgIT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDMxCiAgICBmcmFtZV9kaWcgNwoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jsb2NrQDUxOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjIzNwogICAgLy8gZm9yIChsZXQgaTogdWludDY0ID0gKFR4bi5ncm91cEluZGV4ICsgMSk7IGkgPCBHbG9iYWwuZ3JvdXBTaXplOyBpICs9IDEpIHsKICAgIGZyYW1lX2RpZyAxOAogICAgaW50Y18xIC8vIDEKICAgICsKICAgIGZyYW1lX2J1cnkgMTgKICAgIGZyYW1lX2J1cnkgNwogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fd2hpbGVfdG9wQDI2CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUAzMToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNDkKICAgIC8vIGFzc2VydCh0eG4uYXBwSWQuaWQgPT09IGtleS5wbHVnaW4sIEVSUl9DQU5OT1RfQ0FMTF9PVEhFUl9BUFBTX0RVUklOR19SRUtFWSk7CiAgICBmcmFtZV9kaWcgMTgKICAgIGR1cAogICAgZ3R4bnMgQXBwbGljYXRpb25JRAogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMwogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDY0CiAgICA9PQogICAgYXNzZXJ0IC8vIGNhbm5vdCBjYWxsIG90aGVyIGFwcHMgZHVyaW5nIHJla2V5CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjUwCiAgICAvLyBhc3NlcnQodHhuLm9uQ29tcGxldGlvbiA9PT0gT25Db21wbGV0ZUFjdGlvbi5Ob09wLCBFUlJfSU5WQUxJRF9PTkNPTVBMRVRFKTsKICAgIGR1cAogICAgZ3R4bnMgT25Db21wbGV0aW9uCiAgICAhCiAgICBhc3NlcnQgLy8gaW52YWxpZCBvbmNvbXBsZXRlIG11c3QgYmUgbm8gb3AKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTMKICAgIC8vIGFzc2VydCh0eG4ubnVtQXBwQXJncyA+IDEsIEVSUl9JTlZBTElEX1NFTkRFUl9BUkcpOwogICAgZHVwCiAgICBndHhucyBOdW1BcHBBcmdzCiAgICBpbnRjXzEgLy8gMQogICAgPgogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIG11c3QgYmUgdGhpcyBhcHAgaWQKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNTQKICAgIC8vIGFzc2VydChBcHBsaWNhdGlvbihidG9pKHR4bi5hcHBBcmdzKDEpKSkgPT09IEdsb2JhbC5jdXJyZW50QXBwbGljYXRpb25JZCwgRVJSX0lOVkFMSURfU0VOREVSX1ZBTFVFKTsKICAgIGludGNfMSAvLyAxCiAgICBndHhuc2FzIEFwcGxpY2F0aW9uQXJncwogICAgYnRvaQogICAgZ2xvYmFsIEN1cnJlbnRBcHBsaWNhdGlvbklECiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgc2VuZGVyIGFwcCBpZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1NgogICAgLy8gY29uc3QgeyBleHBpcmVkLCBvbkNvb2xkb3duLCBoYXNNZXRob2RSZXN0cmljdGlvbnMgfSA9IHRoaXMucGx1Z2luQ2hlY2soa2V5KTsKICAgIGNhbGxzdWIgcGx1Z2luQ2hlY2sKICAgIGZyYW1lX2J1cnkgNgogICAgZHVwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkaWcgMQogICAgaW50Y18yIC8vIDIKICAgIGdldGJpdAogICAgdW5jb3ZlciAyCiAgICBwdXNoaW50IDMgLy8gMwogICAgZ2V0Yml0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjU4CiAgICAvLyBhc3NlcnQoIWV4cGlyZWQsIEVSUl9QTFVHSU5fRVhQSVJFRCk7CiAgICB1bmNvdmVyIDIKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gZXhwaXJlZAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI1OQogICAgLy8gYXNzZXJ0KCFvbkNvb2xkb3duLCBFUlJfUExVR0lOX09OX0NPT0xET1dOKTsKICAgIHN3YXAKICAgICEKICAgIGFzc2VydCAvLyBwbHVnaW4gb24gY29vbGRvd24KICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjEKICAgIC8vIGlmIChoYXNNZXRob2RSZXN0cmljdGlvbnMpIHsKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYyCiAgICAvLyBhc3NlcnQobWV0aG9kSW5kZXggPCBtZXRob2RPZmZzZXRzLmxlbmd0aCwgRVJSX01BTEZPUk1FRF9PRkZTRVRTKTsKICAgIGZyYW1lX2RpZyAtMgogICAgaW50Y18wIC8vIDAKICAgIGV4dHJhY3RfdWludDE2CiAgICBmcmFtZV9kaWcgMjIKICAgIGR1cAogICAgdW5jb3ZlciAyCiAgICA8CiAgICBhc3NlcnQgLy8gbWFsZm9ybWVkIG1ldGhvZCBvZmZzZXRzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYzCiAgICAvLyBjb25zdCB7IG1ldGhvZEFsbG93ZWQsIG1ldGhvZE9uQ29vbGRvd24gfSA9IHRoaXMubWV0aG9kQ2hlY2soa2V5LCB0eG4sIG1ldGhvZE9mZnNldHNbbWV0aG9kSW5kZXhdKTsKICAgIGZyYW1lX2RpZyAtMgogICAgZXh0cmFjdCAyIDAKICAgIHN3YXAKICAgIGludGNfMyAvLyA4CiAgICAqCiAgICBleHRyYWN0X3VpbnQ2NAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI4NAogICAgLy8gYXNzZXJ0KGxlbih0eG4uYXBwQXJncygwKSkgPT09IDQsIEVSUl9JTlZBTElEX01FVEhPRF9TSUdOQVRVUkVfTEVOR1RIKQogICAgZnJhbWVfZGlnIDE4CiAgICBpbnRjXzAgLy8gMAogICAgZ3R4bnNhcyBBcHBsaWNhdGlvbkFyZ3MKICAgIGR1cAogICAgZnJhbWVfYnVyeSA5CiAgICBsZW4KICAgIHB1c2hpbnQgNCAvLyA0CiAgICA9PQogICAgYXNzZXJ0IC8vIGludmFsaWQgbWV0aG9kIHNpZ25hdHVyZSBsZW5ndGgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czozMwogICAgLy8gcGx1Z2lucyA9IEJveE1hcDxQbHVnaW5LZXksIFBsdWdpbkluZm8+KHsga2V5UHJlZml4OiBBYnN0cmFjdEFjY291bnRCb3hQcmVmaXhQbHVnaW5zIH0pOwogICAgYnl0ZWMgNCAvLyAicCIKICAgIGZyYW1lX2RpZyA2CiAgICBjb25jYXQKICAgIGR1cAogICAgZnJhbWVfYnVyeSAyCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjg3CiAgICAvLyBjb25zdCB7IHVzZVJvdW5kcyB9ID0gdGhpcy5wbHVnaW5zKGtleSkudmFsdWUKICAgIGR1cAogICAgcHVzaGludCAyNyAvLyAyNwogICAgaW50Y18xIC8vIDEKICAgIGJveF9leHRyYWN0CiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBkdXAKICAgIGNvdmVyIDIKICAgIGZyYW1lX2J1cnkgMjgKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyODgKICAgIC8vIGNvbnN0IHsgc2VsZWN0b3IsIGNvb2xkb3duLCBsYXN0Q2FsbGVkIH0gPSB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5tZXRob2RzW29mZnNldF0KICAgIHVuY292ZXIgMgogICAgcHVzaGludCAyMCAvLyAyMAogICAgKgogICAgZHVwCiAgICBmcmFtZV9idXJ5IDEyCiAgICBwdXNoaW50IDQ2IC8vIDQ2CiAgICArCiAgICBwdXNoaW50IDIwIC8vIDIwCiAgICBib3hfZXh0cmFjdAogICAgZHVwCiAgICBleHRyYWN0IDAgNAogICAgZnJhbWVfYnVyeSA4CiAgICBkdXAKICAgIHB1c2hpbnQgNCAvLyA0CiAgICBleHRyYWN0X3VpbnQ2NAogICAgZnJhbWVfYnVyeSAxMwogICAgcHVzaGludCAxMiAvLyAxMgogICAgZXh0cmFjdF91aW50NjQKICAgIGZyYW1lX2J1cnkgMjAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTIKICAgIC8vIGNvbnN0IGVwb2NoUmVmID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcAogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VAMzQKICAgIGdsb2JhbCBSb3VuZAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMzU6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjkzCiAgICAvLyBjb25zdCBtZXRob2RPbkNvb2xkb3duID0gKGVwb2NoUmVmIC0gbGFzdENhbGxlZCkgPCBjb29sZG93bgogICAgZnJhbWVfZGlnIDIwCiAgICAtCiAgICBmcmFtZV9kaWcgMTMKICAgIDwKICAgIGZyYW1lX2J1cnkgMjMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTUKICAgIC8vIGlmIChzZWxlY3RvciA9PT0gc2VsZWN0b3JBcmcgJiYgKCFoYXNDb29sZG93biB8fCAhbWV0aG9kT25Db29sZG93bikpIHsKICAgIGZyYW1lX2RpZyA4CiAgICBmcmFtZV9kaWcgOQogICAgPT0KICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0CiAgICBmcmFtZV9kaWcgMTMKICAgIGJ6IHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9pZl9ib2R5QDM4CiAgICBmcmFtZV9kaWcgMjMKICAgIGJueiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA0NAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2lmX2JvZHlAMzg6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk3CiAgICAvLyBpZiAoaGFzQ29vbGRvd24pIHsKICAgIGZyYW1lX2RpZyAxMwogICAgYnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDMKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTgKICAgIC8vIGNvbnN0IGxhc3RDYWxsZWQgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wOwogICAgZnJhbWVfZGlnIDI4CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUA0MQogICAgZ2xvYmFsIFJvdW5kCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUA0MjoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyOTkKICAgIC8vIHRoaXMucGx1Z2lucyhrZXkpLnZhbHVlLm1ldGhvZHNbb2Zmc2V0XS5sYXN0Q2FsbGVkID0gbGFzdENhbGxlZAogICAgaXRvYgogICAgZnJhbWVfZGlnIDEyCiAgICBwdXNoaW50IDU4IC8vIDU4CiAgICArCiAgICBmcmFtZV9kaWcgMgogICAgc3dhcAogICAgdW5jb3ZlciAyCiAgICBib3hfcmVwbGFjZQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lmX2Vsc2VANDM6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MzAyLTMwNQogICAgLy8gcmV0dXJuIHsKICAgIC8vICAgbWV0aG9kQWxsb3dlZDogdHJ1ZSwKICAgIC8vICAgbWV0aG9kT25Db29sZG93bgogICAgLy8gfQogICAgcHVzaGJ5dGVzIDB4ODAKICAgIGludGNfMSAvLyAxCiAgICBmcmFtZV9kaWcgMjMKICAgIHNldGJpdAoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2FmdGVyX2lubGluZWRfc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5tZXRob2RDaGVja0A0NToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjMKICAgIC8vIGNvbnN0IHsgbWV0aG9kQWxsb3dlZCwgbWV0aG9kT25Db29sZG93biB9ID0gdGhpcy5tZXRob2RDaGVjayhrZXksIHR4biwgbWV0aG9kT2Zmc2V0c1ttZXRob2RJbmRleF0pOwogICAgZHVwCiAgICBpbnRjXzAgLy8gMAogICAgZ2V0Yml0CiAgICBzd2FwCiAgICBpbnRjXzEgLy8gMQogICAgZ2V0Yml0CiAgICBmcmFtZV9idXJ5IDIzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY0CiAgICAvLyBhc3NlcnQobWV0aG9kQWxsb3dlZCAmJiAhbWV0aG9kT25Db29sZG93biwgRVJSX01FVEhPRF9PTl9DT09MRE9XTik7CiAgICBieiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9mYWxzZUA0OAogICAgZnJhbWVfZGlnIDIzCiAgICBibnogc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDgKICAgIGludGNfMSAvLyAxCgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OToKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjQKICAgIC8vIGFzc2VydChtZXRob2RBbGxvd2VkICYmICFtZXRob2RPbkNvb2xkb3duLCBFUlJfTUVUSE9EX09OX0NPT0xET1dOKTsKICAgIGFzc2VydCAvLyBtZXRob2Qgb24gY29vbGRvd24KCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDUwOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMzCiAgICAvLyBwbHVnaW5zID0gQm94TWFwPFBsdWdpbktleSwgUGx1Z2luSW5mbz4oeyBrZXlQcmVmaXg6IEFic3RyYWN0QWNjb3VudEJveFByZWZpeFBsdWdpbnMgfSk7CiAgICBieXRlYyA0IC8vICJwIgogICAgZnJhbWVfZGlnIDYKICAgIGR1cAogICAgY292ZXIgMgogICAgY29uY2F0CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjY3CiAgICAvLyB0aGlzLnBsdWdpbnMoa2V5KS52YWx1ZS5sYXN0Q2FsbGVkID0gZXBvY2hSZWYKICAgIGZyYW1lX2RpZyAxNAogICAgaXRvYgogICAgcHVzaGludCAyOCAvLyAyOAogICAgc3dhcAogICAgYm94X3JlcGxhY2UKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyNjgKICAgIC8vIG1ldGhvZEluZGV4ICs9IDE7CiAgICBmcmFtZV9kaWcgMjIKICAgIGludGNfMSAvLyAxCiAgICArCiAgICBmcmFtZV9idXJ5IDIyCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9ibG9ja0A1MQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX2Jvb2xfZmFsc2VANDg6CiAgICBpbnRjXzAgLy8gMAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYm9vbF9tZXJnZUA0OQoKc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfZmFsc2VANDE6CiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6Mjk4CiAgICAvLyBjb25zdCBsYXN0Q2FsbGVkID0gdXNlUm91bmRzID8gR2xvYmFsLnJvdW5kIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VANDIKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pZl9lbHNlQDQ0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjMwOC0zMTEKICAgIC8vIHJldHVybiB7CiAgICAvLyAgIG1ldGhvZEFsbG93ZWQ6IGZhbHNlLAogICAgLy8gICBtZXRob2RPbkNvb2xkb3duOiB0cnVlCiAgICAvLyB9CiAgICBwdXNoYnl0ZXMgMHg0MAogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI2MwogICAgLy8gY29uc3QgeyBtZXRob2RBbGxvd2VkLCBtZXRob2RPbkNvb2xkb3duIH0gPSB0aGlzLm1ldGhvZENoZWNrKGtleSwgdHhuLCBtZXRob2RPZmZzZXRzW21ldGhvZEluZGV4XSk7CiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9hZnRlcl9pbmxpbmVkX3NtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQubWV0aG9kQ2hlY2tANDUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X2ZhbHNlQDM0OgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjI5MgogICAgLy8gY29uc3QgZXBvY2hSZWYgPSB1c2VSb3VuZHMgPyBHbG9iYWwucm91bmQgOiBHbG9iYWwubGF0ZXN0VGltZXN0YW1wCiAgICBnbG9iYWwgTGF0ZXN0VGltZXN0YW1wCiAgICBiIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl90ZXJuYXJ5X21lcmdlQDM1CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyNDoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoyMzIKICAgIC8vIDogR2xvYmFsLmxhdGVzdFRpbWVzdGFtcDsKICAgIGdsb2JhbCBMYXRlc3RUaW1lc3RhbXAKICAgIGZyYW1lX2J1cnkgMTQKICAgIGIgc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjpBYnN0cmFjdGVkQWNjb3VudC5hcmM1OF9yZWtleVRvUGx1Z2luX3Rlcm5hcnlfbWVyZ2VAMjUKCnNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo6QWJzdHJhY3RlZEFjY291bnQuYXJjNThfcmVrZXlUb1BsdWdpbl9lbHNlX2JvZHlANzoKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czo1ODgKICAgIC8vIHRoaXMuc3BlbmRpbmdBZGRyZXNzLnZhbHVlID0gdGhpcy5jb250cm9sbGVkQWRkcmVzcy52YWx1ZQogICAgaW50Y18wIC8vIDAKICAgIC8vIHNtYXJ0X2NvbnRyYWN0cy9hYnN0cmFjdGVkX2FjY291bnQvY29udHJhY3QuYWxnby50czoxOAogICAgLy8gY29udHJvbGxlZEFkZHJlc3MgPSBHbG9iYWxTdGF0ZTxBY2NvdW50Pih7IGtleTogQWJzdHJhY3RBY2NvdW50R2xvYmFsU3RhdGVLZXlzQ29udHJvbGxlZEFkZHJlc3MgfSk7CiAgICBieXRlY18wIC8vICJjb250cm9sbGVkX2FkZHJlc3MiCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6NTg4CiAgICAvLyB0aGlzLnNwZW5kaW5nQWRkcmVzcy52YWx1ZSA9IHRoaXMuY29udHJvbGxlZEFkZHJlc3MudmFsdWUKICAgIGFwcF9nbG9iYWxfZ2V0X2V4CiAgICBhc3NlcnQgLy8gY2hlY2sgR2xvYmFsU3RhdGUgZXhpc3RzCiAgICAvLyBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6MjYKICAgIC8vIHNwZW5kaW5nQWRkcmVzcyA9IEdsb2JhbFN0YXRlPEFjY291bnQ+KHsga2V5OiBBYnN0cmFjdEFjY291bnRHbG9iYWxTdGF0ZUtleXNTcGVuZGluZ0FkZHJlc3MgfSkKICAgIGJ5dGVjIDExIC8vICJzcGVuZGluZ19hZGRyZXNzIgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU4OAogICAgLy8gdGhpcy5zcGVuZGluZ0FkZHJlc3MudmFsdWUgPSB0aGlzLmNvbnRyb2xsZWRBZGRyZXNzLnZhbHVlCiAgICBzd2FwCiAgICBhcHBfZ2xvYmFsX3B1dAogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fYWZ0ZXJfaWZfZWxzZUA4CgpzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9mYWxzZUAyOgogICAgLy8gc21hcnRfY29udHJhY3RzL2Fic3RyYWN0ZWRfYWNjb3VudC9jb250cmFjdC5hbGdvLnRzOjU3NQogICAgLy8gY29uc3QgY2FsbGVyID0gZ2xvYmFsID8gR2xvYmFsLnplcm9BZGRyZXNzIDogVHhuLnNlbmRlcgogICAgdHhuIFNlbmRlcgogICAgYiBzbWFydF9jb250cmFjdHMvYWJzdHJhY3RlZF9hY2NvdW50L2NvbnRyYWN0LmFsZ28udHM6OkFic3RyYWN0ZWRBY2NvdW50LmFyYzU4X3Jla2V5VG9QbHVnaW5fdGVybmFyeV9tZXJnZUAzCg==","clear":"I3ByYWdtYSB2ZXJzaW9uIDExCiNwcmFnbWEgdHlwZXRyYWNrIGZhbHNlCgovLyBAYWxnb3JhbmRmb3VuZGF0aW9uL2FsZ29yYW5kLXR5cGVzY3JpcHQvYmFzZS1jb250cmFjdC5kLnRzOjpCYXNlQ29udHJhY3QuY2xlYXJTdGF0ZVByb2dyYW0oKSAtPiB1aW50NjQ6Cm1haW46CiAgICBwdXNoaW50IDEgLy8gMQogICAgcmV0dXJuCg=="},"byteCode":{"approval":"CyAHAAECCJADxKkBtNgBJhgSY29udHJvbGxlZF9hZGRyZXNzAAVhZG1pbhVsYXN0X3VzZXJfaW50ZXJhY3Rpb24BcAFlC2xhc3RfY2hhbmdlBBUffHUBeAEAAgAAEHNwZW5kaW5nX2FkZHJlc3MCACoCAAoBYQEBAW4LcmVrZXlfaW5kZXgOZXNjcm93X2ZhY3RvcnkOY3VycmVudF9wbHVnaW4CAAIwAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAAAAAAAAAAAAABGzD9gYCACwxGEAABCcRImcxGRREMRhBAMuCBAS9YJnlBNJLdVYEFHts1gQTvETkJxaCFwTJWl09BEcnryEEWC/zggTe/VzSBLPIDfkE7vRI/QQ49ZHqBONQudQECoyywgQltxPKBOuvFKAEH9o7TwSdP4kYBL9NfFcE1d04KwRc6+1DBNWGha8EfDcVbgSv+qToBKJAPd8EAv5FFQRBvcaABFDz41w2GgCOHAD0AU0BbAHaAeUCKgKsAw0DVgOxBVsF3AfCCEEIcgi7CakKWgt0DH8NKg3aDhYOng8+D74QgxERAIAE4YNi4jYaAI4BAIEAigQBKUmL/iQLi/wkCyKLBIsDDEEAHIv9iwRJTgJZiwIIFlcGAosBTFCMASQIjARC/9yL/RWMACKMBIsEiwIMQQAci/+LBElOAlmLAAgWVwYCiwFMUIwBJAiMBEL/3Iv8i/4IFlcGAosBUIv9iwOLAFJQi/8Vi/+LAk8CUlCMAIk2GgFHAhWBIBJENhoCSU4CFYEgEkQ2GgNJFSUSRBdMMQASQAAIMQBLAhJBADQjREsBSUsESU4DE0QqTGcyAxJBABoyCihMZycSSwFnJwsyA2crMgdnJwYyB2cjQ0sCQv/jIkL/yTYaAUkiWSQISwEVEkRXAgBJIkwpE0EAECcFSwJQSb1FAUS+SCJbRQGxIicSZURJcghEgcResgiyByOyECKyAbZLARaABGB+cEayGrIashiBBrIQIrIBsyNDNhoBSRWBIBJEMQAiKmVEEkQqTGcrMgdnJwYyB2cjQzYaAUkVgSASRCInE2VESSJbSwGBKFlLAhVLA04CUlcCACkSRDEASwFyCEQSRCIoZURzAkRMcghEEkQnBExQSb1FAUEAJUmBGyO6IlNBABsjRCpLAmdJJSO6Jw8SQQAEKzIHZycGMgdnI0MiQv/iIiplRCcHTFCwI0MiJwtlRElzAkxOAkQiKGVEEkEALCIoZUQyChJBACIyA0sBEkQnCzIDZzIKIhZMUIAEACoAAFAnE0xnJxEiZyNDMgpC/9spSTYaAUkVgSASRDYaAkkVIxJEIlMxACIqZUQSRLEiKGVEgBtyZWtleWluZyBhYnN0cmFjdGVkIGFjY291bnSyBUsCsiBPArIHsgAjshAisgGzQQAeIkUBMRYjCEUCSwEyBAxBAAtLAYgQk0EACyNFAUlEKzIHZyNDSwEjCEUCQv/cNhoBSRUlEkQXNhoCSRUjEkQiUzYaA0lOAhWBIBJENhoESSJZJAhLARUSRFcCAEw2GgVJTgIVgQQSREEADEsDMgNLA0sDiA95SEsDSwNLA0sDiA9tJwkiTwJUJwdMULAjQzYaAUkVJRJEFzYaAkkVIxJEIlM2GgNJIlkkCEsBFRJEVwIANhoESSJZJQskCEsBFRJENhoFSSJZgRALJAhLARUSRIgQm0YCI0M2GgFJIlkkCEsBFRJEVwIANhoCSRUjEkQiUzYaA0kiWSQISwEVEkRXAgA2GgRJIlklCyQISwEVEkQ2GgVJIlmBEAskCEsBFRJEJxBPBVAiJboXTgSIEEBGAiNDIkcDKUk2GgFJFSUSRBc2GgJJFYEgEkQ2GgNJIlkkCEsBFRJEVwIANhoESRUjEkQiUzYaBUcCFSMSRDYaBkkVJRJEF0w2GgdJFSUSRBdMNhoISU4CSSJZSU4DgQwLJAhMFRJENhoJSRUjEkQiU0w2GgpJFSMSRCJTTDYaC0kVIxJEIlNMMQAiKmVEEkQnDxJBARRLCjIDEkEBDCMUREsBQQEASwoyAxNBAPgjFERJQADmSwlFEUsLFksLUEsRSRUWVwYCTFBMJwxQTFBFECIWRRInCkUPIkUNSwxLBAxBAD1LBFcCAEsNSU4CgQwLgQxYSVcABExXBAhLARWBBBJEUEsTUEsQSU8CUEwiWSMIFlcGAlwARRAjCEUNQv+7SwJBAG4yBkUOIihlRDIKE0EAHrEiKGVEMgpLECJZSxNMiAy0sgiyB7IAI7IQIrIBs0sJiAy3FksIUEsHFlBLBhZQJxdQJwkiSwtUI0sFVCRLBFRQSxJQSw4WUEsPUCcESxFQSbxITL8rMgdnJwYyB2cjQzIHRQ5C/49LCSkTRClFEUL/EyJC/wUiQv7xNhoBSRUlEkQXNhoCSRWBIBJENhoDSSJZJAhLARUSRFcCAElOAzEAIiplRBJETwIWTwJQSwEVFlcGAk8CUEwnDFBMUCcETFBJvUUBREmBLCS6F0y8SCIoZUQyChNBABexIihlREsCSwKIC+CyCLIHI7IQIrIBsysyB2cnBjIHZyNDIkcDKUk2GgFJIlkkCEsBFRJEVwIASTYaAkkVJRJEF0w2GgNJTgIVgSASRDYaBEkiWSQISwEVEkRXAgBMNhoFSRUjEkQiU0w2GgZJTgJJFSMSRDYaB0kVJRJEF04CNhoISRUlEkQXTgI2GglJTgNJIllJTgSBDAskCEwVEkQ2GgpJFSMSRCJTTgI2GgtJFSMSRCJTTgI2GgxJFSMSRCJTTgIxACIqZUQSRCcQTwJQSU4CvUUBFEQnDxJBASZLCzIDEkEBHiMUREsCQQESSwsyAxNBAQojFERLAUAA90sKRRNLDBZLDFBLE0kVFlcGAkxQTCcMUExQSUUTSwFJvEhMvyIWRRQnCkURIkUPSw5LBQxBAD1LBVcCAEsPSU4CgQwLgQxYSVcABExXBAhLARWBBBJEUEsVUEsSSU8CUEwiWSMIFlcGAlwARRIjCEUPQv+7IihlRDIKE0EAKLEiKGVEMgpLEiJZSxVMiApfSxAVIQQLIQUICLIIsgeyACOyECKyAbNLCogKWEUQSwNBAEAyBksQFksKUEsJFlBLCBZQJxdQJwkiSw1UI0sHVCRLBlRQSxVQTBZQSxFQJwRLE1BJvEhMvysyB2cnBjIHZyNDMgdC/71LCikTRClFE0L/AiJC/vMiQv7fNhoBSSJZJAhLARUSRFcCAEkxACIqZUQSRCcQTFBJvUUBREm+SElOAicETFBJvUUBREmBLCS6F04CTLxIvEgiKGVEMgoTQQAssSIoZURLAxUhBAshBQhLA0mBKFlLARVSVwIASwOICXwIsgiyByOyECKyAbMrMgdnJwYyB2cjQzYaAUkiWSQISwEVEkRXAgAxACIqZUQSRCcFSwFQvUUBFERJKRNEiAl9FicHTFCwI0M2GgFJIlkkCEsBFRJEVwIAMQAiKmVEEkQnBUxQSb1FAURJvkiBQFMUSwElI7oiTwJUSwElTwK7KzIHZycGMgdnvkgnB0xQsCNDIkkpRwQ2GgFJIlkkCEsBFRJEVwIANhoCSU4CSSJZSU4DgRELJAhMFRJEIkwiTDEAIiplRBJEJwVMUEm9RQFEvkgiW3IIRCJJSwUMQQCeSwVXAgBLAYERC4ERWEkiW0lFDEAARCIoZUxFD0RJJVtFCiJFDIGAAVNBAAkiKGVEI0UMRQOxSwpBAARLArIJSwiyCEsMsgdLAbIAI7IQIrIBs0kjCEUBQv+fIihlTEUOREklW0UJIkUIgYABU0EACSIoZUQjRQhFBLFLBkEABEsDshVLCbIRSweyEksLshRLAbIAgQSyECKyAbNC/7QjQzYaAUkiWSQISwEVEkRXAgBJNhoCSU4CSSJZSU4DSSULJAhPAhUSRDEAIiplRBJEJwVPAlBJvUUBRL5ISSJbcghMSU4DTgREgUBTFESxIihlRDIQTwMLsgiyALIHI7IQIrIBsyJJSwMMQQBESwNXAgBLAUlOAiULW0sGSRUWVwYCTFBLARYnDUxQTFAnDkxQvUUBRLGyESKyEksCSbIUsgCBBLIQIrIBsyMIRQFC/7UjQyIpNhoBSRUlEkQXNhoCSU4CSRWBIBJENhoDSSJZJAhLARUSRFcCADYaBElOBEkiWUlOBSULJAhMFRJEMRYjCUlOBDgQIxJESwIWTwJQSwEVFlcGAksCUElOBEwnDFBMUCcETFC9RQFEJwVMUEm9RQFEvkhJgUBTFEQiW0wxAExyCEQSQAAQMQBLBhJAAAhLBTIDEkEAgCNESXIITElOAkUKREsDSTgHIihlRExLARJPAjgIMhBLCElOBAsSEESxMhALsgiyALIHI7IQIrIBsyJFB0sGSwQMQQA6SwRXAgBLB0lOAiULW0kWJw1MUEsEUCcOTFC9RQFEsbIRIrISSwhJshSyAIEEshAisgGzIwhFB0L/viNDIkL/fSJHBClJNhoBSSJZJAhLARUSRFcCAEk2GgJJTgJJIllJTgOBIgskCEwVEkQxACIqZUQSRCcFTFBJvUUBRL5IgUBTFEQiKGVEMgoTQQAgsSIoZUQyCksEFSEECyEGCEsDC7IIsgeyACOyECKyAbMiRQVLBEsBDEEAiEsBVwIASwWBIguBIlhJVwAISwFXCAFFCEsBVwkIRQxLAVcRCEULSwFXGQhFCkyBiAJTSU4CRQZLBEkVFlcGAkxQJw1PAlBMUCcOTFBJRQm9RQEUREEALDIGSwZLClBLC1AiFkxLAVBLClBMUEwWUCcJIksGVFBLB0y/SwQjCEUFQv91MgdC/9ErMgdnJwYyB2cjQyk2GgFJIlkkCEsBFRJEVwIASTYaAklOAkkiWUlOAyULJAhMFRJEMQAiKmVEEkQnBUxQSb1FAUS+SIFAUxREIihlRDIKE0EAHLEiKGVESwMVIQQLIQYISwILsgiyByOyECKyAbMiRQRLA0sBDEEAMUsBVwIASwRJTgIlCyVYSwRJFRZXBgJMUCcNTwJQTFAnDkxQSb1FAUS8SCMIRQRC/8crMgdnJwYyB2cjQzYaAUkVgSASRDYaAklOAkkiWYEgCyQITBUSRDYaA0kVJRJEF04CNhoESRUlEkQXTgIxACIqZUQSRCcITFBJTgO9RQFAACFLAxaAAgASTFBPAhZQTFBLAUm8SEy/KzIHZycGMgdnI0NLAkkkJboXSwUSREmBCiW6F08DEkRJvkhJIllLARVLAksCTwJSTwRXAgBQSVcCABWBIAoWVwYCXABPAiJPA1hMUEsBvEi/Qv+sNhoBSRWBIBJEJwhMUEm9RQFEMQAiKmVEEkAADEmBCiW6FzIGDEEAECNESbxIKzIHZycGMgdnI0MiQv/tIik2GgEnCiJLAiJZSUUFSwENQQBrSwJXAgBLAUlOAiQLSwFMWU8CIwhJRQRLBksBCUsDFU8CJAtLBExZTwJNUicETFBJRQa9RQFBAB9LBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jxkkUCQv+cSwFJIllMVwIAIycViPF+RQJC/4gnB0sCULAjQyJJKTYaAScKIksCIllLAQ1JRQVBAIJLAlcCAEsEREsBJAtLAUxZSlkkCFhXAgAnEExQSUUHvUUBQQBJSwW+RCcETFBJRQa9RQFBACRLBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jxC0UCSSMIRQFC/5lLAUkiWUxXAgAjJxWI8PJFAkL/5EsBSSJZTFcCACMnFYjw3kUCQv/QJwdLAlCwI0MiKTYaAScKIksCIllLAQ1JRQVBAGNLAlcCAEsEREsBJAtLAUxZSlkkCFhXAgAnBUxQSUUGvUUBQQAfSwS+REsCSU8CUEwiWSMIFlcGAlwARQJJIwhFAUL/r0sBSYAJAAAAAAAAAAAAUEwiWSMIFlcGAlwARQJC/9knB0sCULAjQyI2GgFJIlkkCEsBFRJEVwIANhoCRwIiWUlOAiULJAhMFRJEJwoiSUsDDEEAkEsDVwIASwElCyVYSwVJFRZXBgJMUCcNTwJQTFAnDkxQSUUHvUUBQQAfSwW+REsCSU8CUEwiWSMIFlcGAlwARQJJIwhFAUL/sUsBSYAyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQTCJZIwgWVwYCXABFAkL/sCcHSwJQsCNDIjYaAUcCIllJTgKBIAskCEwVEkQnCiJJSwMMQQBoSwNXAgBLAYEgC4EgWCcITFBJRQa9RQFBACRLBL5ESwJJIllMVwIAJxRPA1BOAiNPA4jvOkUCSSMIRQFC/7tLAUkiWUxXAgAjgBYAAgASAAAAAAAAAAAAAAAAAAAAAAAAiO8LRQJC/84nB0sCULAjQzYaAUkiWSQISwEVEkRXAgA2GgJJFSUSRBc2GgNJIlkkCEsBFRJEVwIANhoESRUlEkQXSwMVIQQLgeQySwEISwVPBYgAUE8EFSEECyEFCCEGTwQITwSBgGQLgZSgAQgnBU8GUL1OBkgyAYG08gkISwUITwQWTwQWUE8EFlBPAxZQTwIWUCcJIk8EVFBMFlAnB0xQsCNDigIBgRSL/wuL/hUIIQQLgfSvAgiJigEBIov/KRJBAAMiTIknBYv/UEmMAL1FAUEACIsAvkQiW0yJi/+IAANC//aKAQEiKGVEMgoTQQAesSIoZUQyCov/FSEEC4HkMgiyCLIHsgAjshAisgGzsSIoZUSB8JMJMgEIIicSZURJcghEsgdMsghLAbIAI7IQIrIBtoAE2FzxhLIashiyAIEGshAisgGztwE+SVcEAExXAAQnBxJESRUlEkQXSRYnCVAnBYv/UEy/iYoEASlHBYv8Fov9UIv+FRZXBgKL/lBMJwxQTFAnBExQSb1FAUAABCKMAImLBkmBESW6F4wASYEbI7pJI1OMBSRTTIEcJboXjANBAAQijACJiwaBLCS6FxSMBCKMAosGgSwkuheLAg1BABqLAoEUC4EuCIsGTIEUulcABIv/EkEAMSOMBIsFQQAiMgaMAYsDiwEPQQASiwGLAwmLAA9BAAcjiwQQjACJIkL/9jIHjAFC/9uLAiMIjAJC/6KKAQGL/zgAIihlRBJBAAyL/zggMgoSQQACI4mL/zgQgQYSQQAni/84GDIIEkEAHYv/OBsjEkEAFIv/OBlAAA2L/yLCGicWEkEAAiOJIomKAQIpRwInBIv/UEm9SU8CSEAACoABYIv/jAGMAImLA0mBCSW6F4wCSYERJboXjABJgRsjuiNTTIEcJboXjAFBADAyBkmLAg1MiwEJiwAMiwOBLCS6FyINJwkiiwRUI08EVCRPA1SBA08CVIv/jAGMAIkyB0L/zYoFAiJHCilHEov8QQQxMgOL+xZMUIv9FRZXBgKL/VBJjAFMJwxQTFBJjAYnBEsBUEmMAr1FAUQnE0xni/0pE0ED8icFi/1QSb1FAUS+SCJbSXIIRCcLTGdyCEyMBUQijBCL/yJZixANQQGHi/9XAgCLEIEQC4EQWEmMACJbSYwdFicNTFCLAVAnDkxQSYwDSb1FAUS+SElXAAGMCkmBEVuMGkmBCVuMC0mBIVuME0kjW4wVSYEZW4wRSYEpW4wbgYgDU0mMHEEBIjIGjBiLCicPEkEAbosLixoJiwAlW0xLAQ9EiwNJTgK+RIERWwgWgRFMu4sYFosDgSFPAruLHUEAJrEiKGVEiwAlW4sdshGyEosFshSyAIEEshAisgGzixAjCIwQQv85sSIoZUSLACVbsgiLBbIHsgAjshAisgGzQv/ciwqAAQISQQBaixxBAEgyBkmLGwmLERgJixMNQQAXiwBJVwgITCVbiwsORIsDgRFPArtC/3uLC4saCYsAJVtMSwEPRIsDSU4CvkSBEVsIFoERTLtC/1oyB0mLGwmLERgJQv+1iwqAAQMSQf9EixxBADAyBowOiw6LEwmLEQqLCwuLGghJixVJTgMNTE4CTYsAJVtKD0QJFosDgRFPArtC/w8yB4wOQv/NMgeMGEL+24sCgRsjukkjU4wcJFNBAHIxACIqZUQSQABoJwgxBlC9RQFEJwgxBlAkJboXMgYORCcIMQZQgQoluhcyBg9EJwgxBlCMBCKMDyKMEIsEgRIkuheLEA1BACCLEIEgC4EUCIsETIEgujILEkEAAyOMD4sQIwiMEEL/04sPRCcIMQZQvEiLBoj9EIwGSSJTREkjUxREJFMURIscQQGgMgaMDiKMGSKMFjEWIwiMEosGjAeLEjIEDEEAC4sSiPyNQQBZI4wZixlEsSInC2VEi/tyCESAFnJla2V5aW5nIHRvIHBsdWdpbiBhcHCyBbIgSbIHsgAjshAisgGzJxExFmcnBIsHUCUjuicPEkEABCsyB2eL/ov/jAGMAImLEjgQgQYTQQANiweLEiMIjBKMB0L/gIsSSTgYiwZJTgMiWxJESTgZFERJOBsjDUQjwhoXMggSRIj8RIwGSSNTSwEkU08CgQNTTwIUREwUREEApIv+IlmLFklPAgxEi/5XAgBMJQtbixIiwhpJjAkVgQQSRCcEiwZQSYwCSYEbI7ojU0lOAowcTwKBFAtJjAyBLgiBFLpJVwAEjAhJgQRbjA2BDFuMFEEAdDIGixQJiw0MjBeLCIsJEkEAXIsNQQAFixdAAFKLDUEAE4scQQBDMgYWiwyBOgiLAkxPAruAAYAjixdUSSJTTCNTjBdBAB+LF0AAGiNEJwSLBklOAlCLDhaBHEy7ixYjCIwWQv79IkL/4zIHQv+6gAFAQv/HMgdC/4kyB4wOQv5dIihlRCcLTGdC/bMxAEL7zA==","clear":"C4EBQw=="},"events":[],"templateVariables":{}} as unknown as Arc56Contract
+
+/**
+ * A state record containing binary data
+ */
+export interface BinaryState {
+ /**
+ * Gets the state value as a Uint8Array
+ */
+ asByteArray(): Uint8Array | undefined
+ /**
+ * Gets the state value as a string
+ */
+ asString(): string | undefined
+}
+
+class BinaryStateValue implements BinaryState {
+ constructor(private value: Uint8Array | undefined) {}
+
+ asByteArray(): Uint8Array | undefined {
+ return this.value
+ }
+
+ asString(): string | undefined {
+ return this.value !== undefined ? Buffer.from(this.value).toString('utf-8') : undefined
+ }
+}
+
+/**
+ * Expands types for IntelliSense so they are more human readable
+ * See https://stackoverflow.com/a/69288824
+ */
+export type Expand = T extends (...args: infer A) => infer R
+ ? (...args: Expand) => Expand
+ : T extends infer O
+ ? { [K in keyof O]: O[K] }
+ : never
+
+
+// Type definitions for ARC-56 structs
+
+export type AbstractAccountBoxMbrData = {
+ plugins: bigint,
+ namedPlugins: bigint,
+ escrows: bigint,
+ allowances: bigint,
+ executions: bigint,
+ escrowExists: boolean,
+ newEscrowMintCost: bigint
+}
+
+
+/**
+ * Converts the ABI tuple representation of a AbstractAccountBoxMBRData to the struct representation
+ */
+export function AbstractAccountBoxMbrDataFromTuple(abiTuple: [bigint, bigint, bigint, bigint, bigint, boolean, bigint]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.AbstractAccountBoxMBRData, APP_SPEC.structs) as AbstractAccountBoxMbrData
+}
+
+export type AllowanceInfo = {
+ type: number,
+ max: bigint,
+ amount: bigint,
+ spent: bigint,
+ interval: bigint,
+ last: bigint,
+ start: bigint,
+ useRounds: boolean
+}
+
+
+/**
+ * Converts the ABI tuple representation of a AllowanceInfo to the struct representation
+ */
+export function AllowanceInfoFromTuple(abiTuple: [number, bigint, bigint, bigint, bigint, bigint, bigint, boolean]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.AllowanceInfo, APP_SPEC.structs) as AllowanceInfo
+}
+
+export type AllowanceKey = {
+ escrow: string,
+ asset: bigint
+}
+
+
+/**
+ * Converts the ABI tuple representation of a AllowanceKey to the struct representation
+ */
+export function AllowanceKeyFromTuple(abiTuple: [string, bigint]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.AllowanceKey, APP_SPEC.structs) as AllowanceKey
+}
+
+export type EscrowInfo = {
+ id: bigint,
+ locked: boolean
+}
+
+
+/**
+ * Converts the ABI tuple representation of a EscrowInfo to the struct representation
+ */
+export function EscrowInfoFromTuple(abiTuple: [bigint, boolean]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.EscrowInfo, APP_SPEC.structs) as EscrowInfo
+}
+
+export type ExecutionInfo = {
+ groups: Uint8Array[],
+ firstValid: bigint,
+ lastValid: bigint
+}
+
+
+/**
+ * Converts the ABI tuple representation of a ExecutionInfo to the struct representation
+ */
+export function ExecutionInfoFromTuple(abiTuple: [Uint8Array[], bigint, bigint]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.ExecutionInfo, APP_SPEC.structs) as ExecutionInfo
+}
+
+export type PluginInfo = {
+ escrow: bigint,
+ delegationType: number,
+ lastValid: bigint,
+ cooldown: bigint,
+ methods: [Uint8Array, bigint, bigint][],
+ admin: boolean,
+ useRounds: boolean,
+ useExecutionKey: boolean,
+ lastCalled: bigint,
+ start: bigint
+}
+
+
+/**
+ * Converts the ABI tuple representation of a PluginInfo to the struct representation
+ */
+export function PluginInfoFromTuple(abiTuple: [bigint, number, bigint, bigint, [Uint8Array, bigint, bigint][], boolean, boolean, boolean, bigint, bigint]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.PluginInfo, APP_SPEC.structs) as PluginInfo
+}
+
+export type PluginKey = {
+ plugin: bigint,
+ caller: string,
+ escrow: string
+}
+
+
+/**
+ * Converts the ABI tuple representation of a PluginKey to the struct representation
+ */
+export function PluginKeyFromTuple(abiTuple: [bigint, string, string]) {
+ return getABIStructFromABITuple(abiTuple, APP_SPEC.structs.PluginKey, APP_SPEC.structs) as PluginKey
+}
+
+/**
+ * The argument types for the AbstractedAccount contract
+ */
+export type AbstractedAccountArgs = {
+ /**
+ * The object representation of the arguments for each method
+ */
+ obj: {
+ 'createApplication(address,address,uint64)void': {
+ /**
+ * The address of the abstracted account. If zeroAddress, then the address of the contract account will be used
+ */
+ controlledAddress: string
+ /**
+ * The admin for this app
+ */
+ admin: string
+ escrowFactory: bigint | number
+ }
+ 'register(string)void': {
+ escrow: string
+ }
+ 'arc58_changeAdmin(address)void': {
+ /**
+ * The new admin
+ */
+ newAdmin: string
+ }
+ 'arc58_pluginChangeAdmin(address)void': {
+ /**
+ * The new admin
+ */
+ newAdmin: string
+ }
+ 'arc58_getAdmin()address': Record
+ 'arc58_verifyAuthAddress()void': Record
+ 'arc58_rekeyTo(address,bool)void': {
+ /**
+ * The address to rekey to
+ */
+ address: string
+ /**
+ * Whether or not this should be a flash rekey. If true, the rekey back to the app address must done in the same txn group as this call
+ */
+ flash: boolean
+ }
+ 'arc58_canCall(uint64,bool,address,string,byte[4])bool': {
+ /**
+ * the plugin to be rekeyed to
+ */
+ plugin: bigint | number
+ /**
+ * whether this is callable globally
+ */
+ global: boolean
+ /**
+ * the address that will trigger the plugin
+ */
+ address: string
+ escrow: string
+ /**
+ * the method being called on the plugin, if applicable
+ */
+ method: Uint8Array
+ }
+ 'arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void': {
+ /**
+ * The app to rekey to
+ */
+ plugin: bigint | number
+ /**
+ * Whether the plugin is callable globally
+ */
+ global: boolean
+ escrow: string
+ /**
+ * The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group
+ */
+ methodOffsets: bigint[] | number[]
+ /**
+ * If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution
+ */
+ fundsRequest: [bigint | number, bigint | number][]
+ }
+ 'arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void': {
+ /**
+ * The name of the plugin to rekey to
+ */
+ name: string
+ /**
+ * Whether the plugin is callable globally
+ */
+ global: boolean
+ escrow: string
+ /**
+ * The indices of the methods being used in the group if the plugin has method restrictions these indices are required to match the methods used on each subsequent call to the plugin within the group
+ */
+ methodOffsets: bigint[] | number[]
+ /**
+ * If the plugin is using an escrow, this is the list of funds to transfer to the escrow for the plugin to be able to use during execution
+ */
+ fundsRequest: [bigint | number, bigint | number][]
+ }
+ 'arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': {
+ plugin: bigint | number
+ caller: string
+ /**
+ * The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created
+ */
+ escrow: string
+ /**
+ * Whether the plugin has permissions to change the admin account
+ */
+ admin: boolean
+ /**
+ * the ownership of the delegation for last_interval updates
+ */
+ delegationType: bigint | number
+ /**
+ * The timestamp or round when the permission expires
+ */
+ lastValid: bigint | number
+ /**
+ * The number of seconds or rounds that must pass before the plugin can be called again
+ */
+ cooldown: bigint | number
+ /**
+ * The methods that are allowed to be called for the plugin by the address
+ */
+ methods: [Uint8Array, bigint | number][]
+ /**
+ * Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp
+ */
+ useRounds: boolean
+ useExecutionKey: boolean
+ defaultToEscrow: boolean
+ }
+ 'arc58_removePlugin(uint64,address,string)void': {
+ plugin: bigint | number
+ caller: string
+ escrow: string
+ }
+ 'arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': {
+ /**
+ * The plugin name
+ */
+ name: string
+ plugin: bigint | number
+ caller: string
+ /**
+ * The escrow account to use for the plugin, if any. If empty, no escrow will be used, if the named escrow does not exist, it will be created
+ */
+ escrow: string
+ /**
+ * Whether the plugin has permissions to change the admin account
+ */
+ admin: boolean
+ /**
+ * the ownership of the delegation for last_interval updates
+ */
+ delegationType: bigint | number
+ /**
+ * The timestamp or round when the permission expires
+ */
+ lastValid: bigint | number
+ /**
+ * The number of seconds or rounds that must pass before the plugin can be called again
+ */
+ cooldown: bigint | number
+ /**
+ * The methods that are allowed to be called for the plugin by the address
+ */
+ methods: [Uint8Array, bigint | number][]
+ /**
+ * Whether the plugin uses rounds for cooldowns and lastValid, defaults to timestamp
+ */
+ useRounds: boolean
+ useExecutionKey: boolean
+ defaultToEscrow: boolean
+ }
+ 'arc58_removeNamedPlugin(string)void': {
+ /**
+ * The plugin name
+ */
+ name: string
+ }
+ 'arc58_newEscrow(string)uint64': {
+ /**
+ * The name of the escrow to create
+ */
+ escrow: string
+ }
+ 'arc58_toggleEscrowLock(string)(uint64,bool)': {
+ /**
+ * The escrow to lock or unlock
+ */
+ escrow: string
+ }
+ 'arc58_reclaim(string,(uint64,uint64,bool)[])void': {
+ /**
+ * The escrow to reclaim funds from
+ */
+ escrow: string
+ /**
+ * The list of reclaims to make from the escrow
+ */
+ reclaims: [bigint | number, bigint | number, boolean][]
+ }
+ 'arc58_optinEscrow(string,uint64[])void': {
+ /**
+ * The escrow to opt-in to
+ */
+ escrow: string
+ /**
+ * The list of assets to opt-in to
+ */
+ assets: bigint[] | number[]
+ }
+ 'arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void': {
+ plugin: bigint | number
+ caller: string
+ escrow: string
+ /**
+ * The list of assets to opt-in to
+ */
+ assets: bigint[] | number[]
+ /**
+ * The payment txn that is used to pay for the asset opt-in
+ */
+ mbrPayment: AppMethodCallTransactionArgument
+ }
+ 'arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void': {
+ /**
+ * The escrow to add the allowance for
+ */
+ escrow: string
+ /**
+ * The list of allowances to add
+ */
+ allowances: [bigint | number, bigint | number, bigint | number, bigint | number, bigint | number, boolean][]
+ }
+ 'arc58_removeAllowances(string,uint64[])void': {
+ /**
+ * The escrow to remove the allowance for
+ */
+ escrow: string
+ /**
+ * The list of assets to remove the allowance for
+ */
+ assets: bigint[] | number[]
+ }
+ 'arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void': {
+ lease: Uint8Array
+ groups: Uint8Array[]
+ firstValid: bigint | number
+ lastValid: bigint | number
+ }
+ 'arc58_removeExecutionKey(byte[32])void': {
+ lease: Uint8Array
+ }
+ 'arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': {
+ keys: [bigint | number, string, string][]
+ }
+ 'arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': {
+ names: string[]
+ }
+ 'arc58_getEscrows(string[])(uint64,bool)[]': {
+ escrows: string[]
+ }
+ 'arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]': {
+ escrow: string
+ assets: bigint[] | number[]
+ }
+ 'arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]': {
+ leases: Uint8Array[]
+ }
+ 'mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)': {
+ escrow: string
+ methodCount: bigint | number
+ plugin: string
+ groups: bigint | number
+ }
+ }
+ /**
+ * The tuple representation of the arguments for each method
+ */
+ tuple: {
+ 'createApplication(address,address,uint64)void': [controlledAddress: string, admin: string, escrowFactory: bigint | number]
+ 'register(string)void': [escrow: string]
+ 'arc58_changeAdmin(address)void': [newAdmin: string]
+ 'arc58_pluginChangeAdmin(address)void': [newAdmin: string]
+ 'arc58_getAdmin()address': []
+ 'arc58_verifyAuthAddress()void': []
+ 'arc58_rekeyTo(address,bool)void': [address: string, flash: boolean]
+ 'arc58_canCall(uint64,bool,address,string,byte[4])bool': [plugin: bigint | number, global: boolean, address: string, escrow: string, method: Uint8Array]
+ 'arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void': [plugin: bigint | number, global: boolean, escrow: string, methodOffsets: bigint[] | number[], fundsRequest: [bigint | number, bigint | number][]]
+ 'arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void': [name: string, global: boolean, escrow: string, methodOffsets: bigint[] | number[], fundsRequest: [bigint | number, bigint | number][]]
+ 'arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': [plugin: bigint | number, caller: string, escrow: string, admin: boolean, delegationType: bigint | number, lastValid: bigint | number, cooldown: bigint | number, methods: [Uint8Array, bigint | number][], useRounds: boolean, useExecutionKey: boolean, defaultToEscrow: boolean]
+ 'arc58_removePlugin(uint64,address,string)void': [plugin: bigint | number, caller: string, escrow: string]
+ 'arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': [name: string, plugin: bigint | number, caller: string, escrow: string, admin: boolean, delegationType: bigint | number, lastValid: bigint | number, cooldown: bigint | number, methods: [Uint8Array, bigint | number][], useRounds: boolean, useExecutionKey: boolean, defaultToEscrow: boolean]
+ 'arc58_removeNamedPlugin(string)void': [name: string]
+ 'arc58_newEscrow(string)uint64': [escrow: string]
+ 'arc58_toggleEscrowLock(string)(uint64,bool)': [escrow: string]
+ 'arc58_reclaim(string,(uint64,uint64,bool)[])void': [escrow: string, reclaims: [bigint | number, bigint | number, boolean][]]
+ 'arc58_optinEscrow(string,uint64[])void': [escrow: string, assets: bigint[] | number[]]
+ 'arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void': [plugin: bigint | number, caller: string, escrow: string, assets: bigint[] | number[], mbrPayment: AppMethodCallTransactionArgument]
+ 'arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void': [escrow: string, allowances: [bigint | number, bigint | number, bigint | number, bigint | number, bigint | number, boolean][]]
+ 'arc58_removeAllowances(string,uint64[])void': [escrow: string, assets: bigint[] | number[]]
+ 'arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void': [lease: Uint8Array, groups: Uint8Array[], firstValid: bigint | number, lastValid: bigint | number]
+ 'arc58_removeExecutionKey(byte[32])void': [lease: Uint8Array]
+ 'arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': [keys: [bigint | number, string, string][]]
+ 'arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': [names: string[]]
+ 'arc58_getEscrows(string[])(uint64,bool)[]': [escrows: string[]]
+ 'arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]': [escrow: string, assets: bigint[] | number[]]
+ 'arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]': [leases: Uint8Array[]]
+ 'mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)': [escrow: string, methodCount: bigint | number, plugin: string, groups: bigint | number]
+ }
+}
+
+/**
+ * The return type for each method
+ */
+export type AbstractedAccountReturns = {
+ 'createApplication(address,address,uint64)void': void
+ 'register(string)void': void
+ 'arc58_changeAdmin(address)void': void
+ 'arc58_pluginChangeAdmin(address)void': void
+ 'arc58_getAdmin()address': string
+ 'arc58_verifyAuthAddress()void': void
+ 'arc58_rekeyTo(address,bool)void': void
+ 'arc58_canCall(uint64,bool,address,string,byte[4])bool': boolean
+ 'arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void': void
+ 'arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void': void
+ 'arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': void
+ 'arc58_removePlugin(uint64,address,string)void': void
+ 'arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void': void
+ 'arc58_removeNamedPlugin(string)void': void
+ 'arc58_newEscrow(string)uint64': bigint
+ 'arc58_toggleEscrowLock(string)(uint64,bool)': EscrowInfo
+ 'arc58_reclaim(string,(uint64,uint64,bool)[])void': void
+ 'arc58_optinEscrow(string,uint64[])void': void
+ 'arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void': void
+ 'arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void': void
+ 'arc58_removeAllowances(string,uint64[])void': void
+ 'arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void': void
+ 'arc58_removeExecutionKey(byte[32])void': void
+ 'arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': [bigint, number, bigint, bigint, [Uint8Array, bigint, bigint][], boolean, boolean, boolean, bigint, bigint][]
+ 'arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]': [bigint, number, bigint, bigint, [Uint8Array, bigint, bigint][], boolean, boolean, boolean, bigint, bigint][]
+ 'arc58_getEscrows(string[])(uint64,bool)[]': [bigint, boolean][]
+ 'arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]': [number, bigint, bigint, bigint, bigint, bigint, bigint, boolean][]
+ 'arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]': [Uint8Array[], bigint, bigint][]
+ 'mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)': AbstractAccountBoxMbrData
+}
+
+/**
+ * Defines the types of available calls and state of the AbstractedAccount smart contract.
+ */
+export type AbstractedAccountTypes = {
+ /**
+ * Maps method signatures / names to their argument and return types.
+ */
+ methods:
+ & Record<'createApplication(address,address,uint64)void' | 'createApplication', {
+ argsObj: AbstractedAccountArgs['obj']['createApplication(address,address,uint64)void']
+ argsTuple: AbstractedAccountArgs['tuple']['createApplication(address,address,uint64)void']
+ returns: AbstractedAccountReturns['createApplication(address,address,uint64)void']
+ }>
+ & Record<'register(string)void' | 'register', {
+ argsObj: AbstractedAccountArgs['obj']['register(string)void']
+ argsTuple: AbstractedAccountArgs['tuple']['register(string)void']
+ returns: AbstractedAccountReturns['register(string)void']
+ }>
+ & Record<'arc58_changeAdmin(address)void' | 'arc58_changeAdmin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_changeAdmin(address)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_changeAdmin(address)void']
+ returns: AbstractedAccountReturns['arc58_changeAdmin(address)void']
+ }>
+ & Record<'arc58_pluginChangeAdmin(address)void' | 'arc58_pluginChangeAdmin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_pluginChangeAdmin(address)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_pluginChangeAdmin(address)void']
+ returns: AbstractedAccountReturns['arc58_pluginChangeAdmin(address)void']
+ }>
+ & Record<'arc58_getAdmin()address' | 'arc58_getAdmin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getAdmin()address']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getAdmin()address']
+ returns: AbstractedAccountReturns['arc58_getAdmin()address']
+ }>
+ & Record<'arc58_verifyAuthAddress()void' | 'arc58_verifyAuthAddress', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_verifyAuthAddress()void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_verifyAuthAddress()void']
+ returns: AbstractedAccountReturns['arc58_verifyAuthAddress()void']
+ }>
+ & Record<'arc58_rekeyTo(address,bool)void' | 'arc58_rekeyTo', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_rekeyTo(address,bool)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_rekeyTo(address,bool)void']
+ returns: AbstractedAccountReturns['arc58_rekeyTo(address,bool)void']
+ }>
+ & Record<'arc58_canCall(uint64,bool,address,string,byte[4])bool' | 'arc58_canCall', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_canCall(uint64,bool,address,string,byte[4])bool']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_canCall(uint64,bool,address,string,byte[4])bool']
+ /**
+ * whether the plugin can be called with these parameters
+ */
+ returns: AbstractedAccountReturns['arc58_canCall(uint64,bool,address,string,byte[4])bool']
+ }>
+ & Record<'arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void' | 'arc58_rekeyToPlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void']
+ returns: AbstractedAccountReturns['arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void']
+ }>
+ & Record<'arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void' | 'arc58_rekeyToNamedPlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void']
+ returns: AbstractedAccountReturns['arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void']
+ }>
+ & Record<'arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void' | 'arc58_addPlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ returns: AbstractedAccountReturns['arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ }>
+ & Record<'arc58_removePlugin(uint64,address,string)void' | 'arc58_removePlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_removePlugin(uint64,address,string)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_removePlugin(uint64,address,string)void']
+ returns: AbstractedAccountReturns['arc58_removePlugin(uint64,address,string)void']
+ }>
+ & Record<'arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void' | 'arc58_addNamedPlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ returns: AbstractedAccountReturns['arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void']
+ }>
+ & Record<'arc58_removeNamedPlugin(string)void' | 'arc58_removeNamedPlugin', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_removeNamedPlugin(string)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_removeNamedPlugin(string)void']
+ returns: AbstractedAccountReturns['arc58_removeNamedPlugin(string)void']
+ }>
+ & Record<'arc58_newEscrow(string)uint64' | 'arc58_newEscrow', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_newEscrow(string)uint64']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_newEscrow(string)uint64']
+ returns: AbstractedAccountReturns['arc58_newEscrow(string)uint64']
+ }>
+ & Record<'arc58_toggleEscrowLock(string)(uint64,bool)' | 'arc58_toggleEscrowLock', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_toggleEscrowLock(string)(uint64,bool)']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_toggleEscrowLock(string)(uint64,bool)']
+ returns: AbstractedAccountReturns['arc58_toggleEscrowLock(string)(uint64,bool)']
+ }>
+ & Record<'arc58_reclaim(string,(uint64,uint64,bool)[])void' | 'arc58_reclaim', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_reclaim(string,(uint64,uint64,bool)[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_reclaim(string,(uint64,uint64,bool)[])void']
+ returns: AbstractedAccountReturns['arc58_reclaim(string,(uint64,uint64,bool)[])void']
+ }>
+ & Record<'arc58_optinEscrow(string,uint64[])void' | 'arc58_optinEscrow', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_optinEscrow(string,uint64[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_optinEscrow(string,uint64[])void']
+ returns: AbstractedAccountReturns['arc58_optinEscrow(string,uint64[])void']
+ }>
+ & Record<'arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void' | 'arc58_pluginOptinEscrow', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void']
+ returns: AbstractedAccountReturns['arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void']
+ }>
+ & Record<'arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void' | 'arc58_addAllowances', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void']
+ returns: AbstractedAccountReturns['arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void']
+ }>
+ & Record<'arc58_removeAllowances(string,uint64[])void' | 'arc58_removeAllowances', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_removeAllowances(string,uint64[])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_removeAllowances(string,uint64[])void']
+ returns: AbstractedAccountReturns['arc58_removeAllowances(string,uint64[])void']
+ }>
+ & Record<'arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void' | 'arc58_addExecutionKey', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void']
+ returns: AbstractedAccountReturns['arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void']
+ }>
+ & Record<'arc58_removeExecutionKey(byte[32])void' | 'arc58_removeExecutionKey', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_removeExecutionKey(byte[32])void']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_removeExecutionKey(byte[32])void']
+ returns: AbstractedAccountReturns['arc58_removeExecutionKey(byte[32])void']
+ }>
+ & Record<'arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]' | 'arc58_getPlugins', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ returns: AbstractedAccountReturns['arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ }>
+ & Record<'arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]' | 'arc58_getNamedPlugins', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ returns: AbstractedAccountReturns['arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]']
+ }>
+ & Record<'arc58_getEscrows(string[])(uint64,bool)[]' | 'arc58_getEscrows', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getEscrows(string[])(uint64,bool)[]']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getEscrows(string[])(uint64,bool)[]']
+ returns: AbstractedAccountReturns['arc58_getEscrows(string[])(uint64,bool)[]']
+ }>
+ & Record<'arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]' | 'arc58_getAllowances', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]']
+ returns: AbstractedAccountReturns['arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]']
+ }>
+ & Record<'arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]' | 'arc58_getExecutions', {
+ argsObj: AbstractedAccountArgs['obj']['arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]']
+ argsTuple: AbstractedAccountArgs['tuple']['arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]']
+ returns: AbstractedAccountReturns['arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]']
+ }>
+ & Record<'mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)' | 'mbr', {
+ argsObj: AbstractedAccountArgs['obj']['mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)']
+ argsTuple: AbstractedAccountArgs['tuple']['mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)']
+ returns: AbstractedAccountReturns['mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)']
+ }>
+ /**
+ * Defines the shape of the state of the application.
+ */
+ state: {
+ global: {
+ keys: {
+ /**
+ * The admin of the abstracted account. This address can add plugins and initiate rekeys
+ */
+ admin: string
+ /**
+ * The address this app controls
+ */
+ controlledAddress: string
+ /**
+ * The last time the contract was interacted with in unix time
+ */
+ lastUserInteraction: bigint
+ /**
+ * The last time state has changed on the abstracted account (not including lastCalled for cooldowns) in unix time
+ */
+ lastChange: bigint
+ /**
+ * the escrow account factory to use for allowances
+ */
+ escrowFactory: bigint
+ /**
+ * [TEMPORARY STATE FIELD] The spending address for the currently active plugin
+ */
+ spendingAddress: string
+ /**
+ * [TEMPORARY STATE FIELD] The current plugin key being used
+ */
+ currentPlugin: PluginKey
+ /**
+ * [TEMPORARY STATE FIELD] The index of the transaction that created the rekey sandwich
+ */
+ rekeyIndex: bigint
+ }
+ maps: {}
+ }
+ box: {
+ keys: {}
+ maps: {
+ /**
+ * Plugins that add functionality to the controlledAddress and the account that has permission to use it.
+ */
+ plugins: Map
+ /**
+ * Plugins that have been given a name for discoverability
+ */
+ namedPlugins: Map
+ /**
+ * the escrows that this wallet has created for specific callers with allowances
+ */
+ escrows: Map
+ /**
+ * The Allowances for plugins installed on the smart contract with useAllowance set to true
+ */
+ allowances: Map
+ /**
+ * execution keys
+ */
+ executions: Map
+ }
+ }
+ }
+}
+
+/**
+ * Defines the possible abi call signatures.
+ */
+export type AbstractedAccountSignatures = keyof AbstractedAccountTypes['methods']
+/**
+ * Defines the possible abi call signatures for methods that return a non-void value.
+ */
+export type AbstractedAccountNonVoidMethodSignatures = keyof AbstractedAccountTypes['methods'] extends infer T ? T extends keyof AbstractedAccountTypes['methods'] ? MethodReturn extends void ? never : T : never : never
+/**
+ * Defines an object containing all relevant parameters for a single call to the contract.
+ */
+export type CallParams = Expand<
+ Omit &
+ {
+ /** The args for the ABI method call, either as an ordered array or an object */
+ args: Expand
+ }
+>
+/**
+ * Maps a method signature from the AbstractedAccount smart contract to the method's arguments in either tuple or struct form
+ */
+export type MethodArgs = AbstractedAccountTypes['methods'][TSignature]['argsObj' | 'argsTuple']
+/**
+ * Maps a method signature from the AbstractedAccount smart contract to the method's return type
+ */
+export type MethodReturn = AbstractedAccountTypes['methods'][TSignature]['returns']
+
+/**
+ * Defines the shape of the keyed global state of the application.
+ */
+export type GlobalKeysState = AbstractedAccountTypes['state']['global']['keys']
+
+/**
+ * Defines the shape of the keyed box state of the application.
+ */
+export type BoxKeysState = AbstractedAccountTypes['state']['box']['keys']
+
+
+/**
+ * Defines supported create method params for this smart contract
+ */
+export type AbstractedAccountCreateCallParams =
+ | Expand & {method: 'createApplication'} & {onComplete?: OnApplicationComplete.NoOpOC} & CreateSchema>
+ | Expand & {method: 'createApplication(address,address,uint64)void'} & {onComplete?: OnApplicationComplete.NoOpOC} & CreateSchema>
+/**
+ * Defines arguments required for the deploy method.
+ */
+export type AbstractedAccountDeployParams = Expand & {
+ /**
+ * Create transaction parameters to use if a create needs to be issued as part of deployment; use `method` to define ABI call (if available) or leave out for a bare call (if available)
+ */
+ createParams?: AbstractedAccountCreateCallParams
+}>
+
+
+/**
+ * Exposes methods for constructing `AppClient` params objects for ABI calls to the AbstractedAccount smart contract
+ */
+export abstract class AbstractedAccountParamsFactory {
+ /**
+ * Gets available create ABI call param factories
+ */
+ static get create() {
+ return {
+ _resolveByMethod(params: TParams) {
+ switch(params.method) {
+ case 'createApplication':
+ case 'createApplication(address,address,uint64)void':
+ return AbstractedAccountParamsFactory.create.createApplication(params)
+ }
+ throw new Error(`Unknown ' + verb + ' method`)
+ },
+
+ /**
+ * Constructs create ABI call params for the AbstractedAccount smart contract using the createApplication(address,address,uint64)void ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ createApplication(params: CallParams & AppClientCompilationParams & {onComplete?: OnApplicationComplete.NoOpOC}): AppClientMethodCallParams & AppClientCompilationParams & {onComplete?: OnApplicationComplete.NoOpOC} {
+ return {
+ ...params,
+ method: 'createApplication(address,address,uint64)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.controlledAddress, params.args.admin, params.args.escrowFactory],
+ }
+ },
+ }
+ }
+
+ /**
+ * Constructs a no op call for the register(string)void ABI method
+ *
+ * Register the abstracted account with the escrow factory.
+ This allows apps to correlate the account with the app without needing
+ it to be explicitly provided.
+
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static register(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'register(string)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_changeAdmin(address)void ABI method
+ *
+ * Attempt to change the admin for this app. Some implementations MAY not support this.
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58ChangeAdmin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_changeAdmin(address)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.newAdmin],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_pluginChangeAdmin(address)void ABI method
+ *
+ * Attempt to change the admin via plugin.
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58PluginChangeAdmin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_pluginChangeAdmin(address)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.newAdmin],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getAdmin()address ABI method
+ *
+ * Get the admin of this app. This method SHOULD always be used rather than reading directly from state
+ because different implementations may have different ways of determining the admin.
+
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetAdmin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getAdmin()address' as const,
+ args: Array.isArray(params.args) ? params.args : [],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_verifyAuthAddress()void ABI method
+ *
+ * Verify the abstracted account is rekeyed to this app
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58VerifyAuthAddress(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_verifyAuthAddress()void' as const,
+ args: Array.isArray(params.args) ? params.args : [],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_rekeyTo(address,bool)void ABI method
+ *
+ * Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RekeyTo(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_rekeyTo(address,bool)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.address, params.args.flash],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_canCall(uint64,bool,address,string,byte[4])bool ABI method
+ *
+ * check whether the plugin can be used
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58CanCall(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_canCall(uint64,bool,address,string,byte[4])bool' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.plugin, params.args.global, params.args.address, params.args.escrow, params.args.method],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void ABI method
+ *
+ * Temporarily rekey to an approved plugin app address
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RekeyToPlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.plugin, params.args.global, params.args.escrow, params.args.methodOffsets, params.args.fundsRequest],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void ABI method
+ *
+ * Temporarily rekey to a named plugin app address
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RekeyToNamedPlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.name, params.args.global, params.args.escrow, params.args.methodOffsets, params.args.fundsRequest],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void ABI method
+ *
+ * Add an app to the list of approved plugins
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58AddPlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.plugin, params.args.caller, params.args.escrow, params.args.admin, params.args.delegationType, params.args.lastValid, params.args.cooldown, params.args.methods, params.args.useRounds, params.args.useExecutionKey, params.args.defaultToEscrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_removePlugin(uint64,address,string)void ABI method
+ *
+ * Remove an app from the list of approved plugins
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RemovePlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_removePlugin(uint64,address,string)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.plugin, params.args.caller, params.args.escrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void ABI method
+ *
+ * Add a named plugin
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58AddNamedPlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.name, params.args.plugin, params.args.caller, params.args.escrow, params.args.admin, params.args.delegationType, params.args.lastValid, params.args.cooldown, params.args.methods, params.args.useRounds, params.args.useExecutionKey, params.args.defaultToEscrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_removeNamedPlugin(string)void ABI method
+ *
+ * Remove a named plugin
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RemoveNamedPlugin(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_removeNamedPlugin(string)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.name],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_newEscrow(string)uint64 ABI method
+ *
+ * Create a new escrow for the controlled address
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58NewEscrow(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_newEscrow(string)uint64' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_toggleEscrowLock(string)(uint64,bool) ABI method
+ *
+ * Lock or Unlock an escrow account
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58ToggleEscrowLock(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_toggleEscrowLock(string)(uint64,bool)' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_reclaim(string,(uint64,uint64,bool)[])void ABI method
+ *
+ * Transfer funds from an escrow back to the controlled address.
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58Reclaim(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_reclaim(string,(uint64,uint64,bool)[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.reclaims],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_optinEscrow(string,uint64[])void ABI method
+ *
+ * Opt-in an escrow account to assets
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58OptinEscrow(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_optinEscrow(string,uint64[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.assets],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void ABI method
+ *
+ * Opt-in an escrow account to assets via a plugin / allowed caller
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58PluginOptinEscrow(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.plugin, params.args.caller, params.args.escrow, params.args.assets, params.args.mbrPayment],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void ABI method
+ *
+ * Add an allowance for an escrow account
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58AddAllowances(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.allowances],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_removeAllowances(string,uint64[])void ABI method
+ *
+ * Remove an allowances for an escrow account
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RemoveAllowances(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_removeAllowances(string,uint64[])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.assets],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58AddExecutionKey(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.lease, params.args.groups, params.args.firstValid, params.args.lastValid],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_removeExecutionKey(byte[32])void ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58RemoveExecutionKey(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_removeExecutionKey(byte[32])void' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.lease],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[] ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetPlugins(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getPlugins((uint64,address,string)[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.keys],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[] ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetNamedPlugins(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getNamedPlugins(string[])(uint64,uint8,uint64,uint64,(byte[4],uint64,uint64)[],bool,bool,bool,uint64,uint64)[]' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.names],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getEscrows(string[])(uint64,bool)[] ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetEscrows(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getEscrows(string[])(uint64,bool)[]' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrows],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[] ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetAllowances(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getAllowances(string,uint64[])(uint8,uint64,uint64,uint64,uint64,uint64,uint64,bool)[]' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.assets],
+ }
+ }
+ /**
+ * Constructs a no op call for the arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[] ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static arc58GetExecutions(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'arc58_getExecutions(byte[32][])(byte[32][],uint64,uint64)[]' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.leases],
+ }
+ }
+ /**
+ * Constructs a no op call for the mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64) ABI method
+ *
+ * @param params Parameters for the call
+ * @returns An `AppClientMethodCallParams` object for the call
+ */
+ static mbr(params: CallParams & CallOnComplete): AppClientMethodCallParams & CallOnComplete {
+ return {
+ ...params,
+ method: 'mbr(string,uint64,string,uint64)(uint64,uint64,uint64,uint64,uint64,bool,uint64)' as const,
+ args: Array.isArray(params.args) ? params.args : [params.args.escrow, params.args.methodCount, params.args.plugin, params.args.groups],
+ }
+ }
+}
+
+/**
+ * A factory to create and deploy one or more instance of the AbstractedAccount smart contract and to create one or more app clients to interact with those (or other) app instances
+ */
+export class AbstractedAccountFactory {
+ /**
+ * The underlying `AppFactory` for when you want to have more flexibility
+ */
+ public readonly appFactory: _AppFactory
+
+ /**
+ * Creates a new instance of `AbstractedAccountFactory`
+ *
+ * @param params The parameters to initialise the app factory with
+ */
+ constructor(params: Omit) {
+ this.appFactory = new _AppFactory({
+ ...params,
+ appSpec: APP_SPEC,
+ })
+ }
+
+ /** The name of the app (from the ARC-32 / ARC-56 app spec or override). */
+ public get appName() {
+ return this.appFactory.appName
+ }
+
+ /** The ARC-56 app spec being used */
+ get appSpec() {
+ return APP_SPEC
+ }
+
+ /** A reference to the underlying `AlgorandClient` this app factory is using. */
+ public get algorand(): AlgorandClient {
+ return this.appFactory.algorand
+ }
+
+ /**
+ * Returns a new `AppClient` client for an app instance of the given ID.
+ *
+ * Automatically populates appName, defaultSender and source maps from the factory
+ * if not specified in the params.
+ * @param params The parameters to create the app client
+ * @returns The `AppClient`
+ */
+ public getAppClientById(params: AppFactoryAppClientParams) {
+ return new AbstractedAccountClient(this.appFactory.getAppClientById(params))
+ }
+
+ /**
+ * Returns a new `AppClient` client, resolving the app by creator address and name
+ * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note).
+ *
+ * Automatically populates appName, defaultSender and source maps from the factory
+ * if not specified in the params.
+ * @param params The parameters to create the app client
+ * @returns The `AppClient`
+ */
+ public async getAppClientByCreatorAndName(
+ params: AppFactoryResolveAppClientByCreatorAndNameParams,
+ ) {
+ return new AbstractedAccountClient(await this.appFactory.getAppClientByCreatorAndName(params))
+ }
+
+ /**
+ * Idempotently deploys the AbstractedAccount smart contract.
+ *
+ * @param params The arguments for the contract calls and any additional parameters for the call
+ * @returns The deployment result
+ */
+ public async deploy(params: AbstractedAccountDeployParams = {}) {
+ const result = await this.appFactory.deploy({
+ ...params,
+ createParams: params.createParams?.method ? AbstractedAccountParamsFactory.create._resolveByMethod(params.createParams) : params.createParams ? params.createParams as (AbstractedAccountCreateCallParams & { args: Uint8Array[] }) : undefined,
+ })
+ return { result: result.result, appClient: new AbstractedAccountClient(result.appClient) }
+ }
+
+ /**
+ * Get parameters to create transactions (create and deploy related calls) for the current app. A good mental model for this is that these parameters represent a deferred transaction creation.
+ */
+ readonly params = {
+ /**
+ * Gets available create methods
+ */
+ create: {
+ /**
+ * Creates a new instance of the AbstractedAccount smart contract using the createApplication(address,address,uint64)void ABI method.
+ *
+ * Create an abstracted account application.
+ This is not part of ARC58 and implementation specific.
+
+ *
+ * @param params The params for the smart contract call
+ * @returns The create params
+ */
+ createApplication: (params: CallParams & AppClientCompilationParams & CreateSchema & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appFactory.params.create(AbstractedAccountParamsFactory.create.createApplication(params))
+ },
+ },
+
+ }
+
+ /**
+ * Create transactions for the current app
+ */
+ readonly createTransaction = {
+ /**
+ * Gets available create methods
+ */
+ create: {
+ /**
+ * Creates a new instance of the AbstractedAccount smart contract using the createApplication(address,address,uint64)void ABI method.
+ *
+ * Create an abstracted account application.
+ This is not part of ARC58 and implementation specific.
+
+ *
+ * @param params The params for the smart contract call
+ * @returns The create transaction
+ */
+ createApplication: (params: CallParams & AppClientCompilationParams & CreateSchema & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appFactory.createTransaction.create(AbstractedAccountParamsFactory.create.createApplication(params))
+ },
+ },
+
+ }
+
+ /**
+ * Send calls to the current app
+ */
+ readonly send = {
+ /**
+ * Gets available create methods
+ */
+ create: {
+ /**
+ * Creates a new instance of the AbstractedAccount smart contract using an ABI method call using the createApplication(address,address,uint64)void ABI method.
+ *
+ * Create an abstracted account application.
+ This is not part of ARC58 and implementation specific.
+
+ *
+ * @param params The params for the smart contract call
+ * @returns The create result
+ */
+ createApplication: async (params: CallParams & AppClientCompilationParams & CreateSchema & SendParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ const result = await this.appFactory.send.create(AbstractedAccountParamsFactory.create.createApplication(params))
+ return { result: { ...result.result, return: result.result.return as unknown as (undefined | AbstractedAccountReturns['createApplication(address,address,uint64)void']) }, appClient: new AbstractedAccountClient(result.appClient) }
+ },
+ },
+
+ }
+
+}
+/**
+ * A client to make calls to the AbstractedAccount smart contract
+ */
+export class AbstractedAccountClient {
+ /**
+ * The underlying `AppClient` for when you want to have more flexibility
+ */
+ public readonly appClient: _AppClient
+
+ /**
+ * Creates a new instance of `AbstractedAccountClient`
+ *
+ * @param appClient An `AppClient` instance which has been created with the AbstractedAccount app spec
+ */
+ constructor(appClient: _AppClient)
+ /**
+ * Creates a new instance of `AbstractedAccountClient`
+ *
+ * @param params The parameters to initialise the app client with
+ */
+ constructor(params: Omit)
+ constructor(appClientOrParams: _AppClient | Omit) {
+ this.appClient = appClientOrParams instanceof _AppClient ? appClientOrParams : new _AppClient({
+ ...appClientOrParams,
+ appSpec: APP_SPEC,
+ })
+ }
+
+ /**
+ * Checks for decode errors on the given return value and maps the return value to the return type for the given method
+ * @returns The typed return value or undefined if there was no value
+ */
+ decodeReturnValue(method: TSignature, returnValue: ABIReturn | undefined) {
+ return returnValue !== undefined ? getArc56ReturnValue>(returnValue, this.appClient.getABIMethod(method), APP_SPEC.structs) : undefined
+ }
+
+ /**
+ * Returns a new `AbstractedAccountClient` client, resolving the app by creator address and name
+ * using AlgoKit app deployment semantics (i.e. looking for the app creation transaction note).
+ * @param params The parameters to create the app client
+ */
+ public static async fromCreatorAndName(params: Omit): Promise {
+ return new AbstractedAccountClient(await _AppClient.fromCreatorAndName({...params, appSpec: APP_SPEC}))
+ }
+
+ /**
+ * Returns an `AbstractedAccountClient` instance for the current network based on
+ * pre-determined network-specific app IDs specified in the ARC-56 app spec.
+ *
+ * If no IDs are in the app spec or the network isn't recognised, an error is thrown.
+ * @param params The parameters to create the app client
+ */
+ static async fromNetwork(
+ params: Omit
+ ): Promise {
+ return new AbstractedAccountClient(await _AppClient.fromNetwork({...params, appSpec: APP_SPEC}))
+ }
+
+ /** The ID of the app instance this client is linked to. */
+ public get appId() {
+ return this.appClient.appId
+ }
+
+ /** The app address of the app instance this client is linked to. */
+ public get appAddress() {
+ return this.appClient.appAddress
+ }
+
+ /** The name of the app. */
+ public get appName() {
+ return this.appClient.appName
+ }
+
+ /** The ARC-56 app spec being used */
+ public get appSpec() {
+ return this.appClient.appSpec
+ }
+
+ /** A reference to the underlying `AlgorandClient` this app client is using. */
+ public get algorand(): AlgorandClient {
+ return this.appClient.algorand
+ }
+
+ /**
+ * Get parameters to create transactions for the current app. A good mental model for this is that these parameters represent a deferred transaction creation.
+ */
+ readonly params = {
+ /**
+ * Makes a clear_state call to an existing instance of the AbstractedAccount smart contract.
+ *
+ * @param params The params for the bare (raw) call
+ * @returns The clearState result
+ */
+ clearState: (params?: Expand) => {
+ return this.appClient.params.bare.clearState(params)
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `register(string)void` ABI method.
+ *
+ * Register the abstracted account with the escrow factory.
+ This allows apps to correlate the account with the app without needing
+ it to be explicitly provided.
+
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ register: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.register(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_changeAdmin(address)void` ABI method.
+ *
+ * Attempt to change the admin for this app. Some implementations MAY not support this.
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58ChangeAdmin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58ChangeAdmin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_pluginChangeAdmin(address)void` ABI method.
+ *
+ * Attempt to change the admin via plugin.
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58PluginChangeAdmin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58PluginChangeAdmin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_getAdmin()address` ABI method.
+ *
+ * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
+ *
+ * Get the admin of this app. This method SHOULD always be used rather than reading directly from state
+ because different implementations may have different ways of determining the admin.
+
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58GetAdmin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58GetAdmin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_verifyAuthAddress()void` ABI method.
+ *
+ * Verify the abstracted account is rekeyed to this app
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58VerifyAuthAddress: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC} = {args: []}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58VerifyAuthAddress(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_rekeyTo(address,bool)void` ABI method.
+ *
+ * Rekey the abstracted account to another address. Primarily useful for rekeying to an EOA.
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RekeyTo: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RekeyTo(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_canCall(uint64,bool,address,string,byte[4])bool` ABI method.
+ *
+ * This method is a readonly method; calling it with onComplete of NoOp will result in a simulated transaction rather than a real transaction.
+ *
+ * check whether the plugin can be used
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params: whether the plugin can be called with these parameters
+ */
+ arc58CanCall: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58CanCall(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_rekeyToPlugin(uint64,bool,string,uint64[],(uint64,uint64)[])void` ABI method.
+ *
+ * Temporarily rekey to an approved plugin app address
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RekeyToPlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RekeyToPlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_rekeyToNamedPlugin(string,bool,string,uint64[],(uint64,uint64)[])void` ABI method.
+ *
+ * Temporarily rekey to a named plugin app address
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RekeyToNamedPlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RekeyToNamedPlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_addPlugin(uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void` ABI method.
+ *
+ * Add an app to the list of approved plugins
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58AddPlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58AddPlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_removePlugin(uint64,address,string)void` ABI method.
+ *
+ * Remove an app from the list of approved plugins
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RemovePlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RemovePlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_addNamedPlugin(string,uint64,address,string,bool,uint8,uint64,uint64,(byte[4],uint64)[],bool,bool,bool)void` ABI method.
+ *
+ * Add a named plugin
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58AddNamedPlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58AddNamedPlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_removeNamedPlugin(string)void` ABI method.
+ *
+ * Remove a named plugin
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RemoveNamedPlugin: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RemoveNamedPlugin(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_newEscrow(string)uint64` ABI method.
+ *
+ * Create a new escrow for the controlled address
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58NewEscrow: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58NewEscrow(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_toggleEscrowLock(string)(uint64,bool)` ABI method.
+ *
+ * Lock or Unlock an escrow account
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58ToggleEscrowLock: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58ToggleEscrowLock(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_reclaim(string,(uint64,uint64,bool)[])void` ABI method.
+ *
+ * Transfer funds from an escrow back to the controlled address.
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58Reclaim: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58Reclaim(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_optinEscrow(string,uint64[])void` ABI method.
+ *
+ * Opt-in an escrow account to assets
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58OptinEscrow: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58OptinEscrow(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_pluginOptinEscrow(uint64,address,string,uint64[],pay)void` ABI method.
+ *
+ * Opt-in an escrow account to assets via a plugin / allowed caller
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58PluginOptinEscrow: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58PluginOptinEscrow(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_addAllowances(string,(uint64,uint8,uint64,uint64,uint64,bool)[])void` ABI method.
+ *
+ * Add an allowance for an escrow account
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58AddAllowances: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58AddAllowances(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_removeAllowances(string,uint64[])void` ABI method.
+ *
+ * Remove an allowances for an escrow account
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58RemoveAllowances: (params: CallParams & {onComplete?: OnApplicationComplete.NoOpOC}) => {
+ return this.appClient.params.call(AbstractedAccountParamsFactory.arc58RemoveAllowances(params))
+ },
+
+ /**
+ * Makes a call to the AbstractedAccount smart contract using the `arc58_addExecutionKey(byte[32],byte[32][],uint64,uint64)void` ABI method.
+ *
+ * @param params The params for the smart contract call
+ * @returns The call params
+ */
+ arc58AddExecutionKey: (params: CallParams