@aztec/prover-client 0.60.0 → 0.62.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dest/orchestrator/block-building-helpers.d.ts +2 -3
- package/dest/orchestrator/block-building-helpers.d.ts.map +1 -1
- package/dest/orchestrator/block-building-helpers.js +5 -12
- package/dest/orchestrator/orchestrator.d.ts +2 -12
- package/dest/orchestrator/orchestrator.d.ts.map +1 -1
- package/dest/orchestrator/orchestrator.js +83 -168
- package/dest/orchestrator/tx-proving-state.d.ts +17 -27
- package/dest/orchestrator/tx-proving-state.d.ts.map +1 -1
- package/dest/orchestrator/tx-proving-state.js +74 -112
- package/dest/prover-agent/memory-proving-queue.d.ts +4 -22
- package/dest/prover-agent/memory-proving-queue.d.ts.map +1 -1
- package/dest/prover-agent/memory-proving-queue.js +6 -28
- package/dest/prover-agent/prover-agent.d.ts.map +1 -1
- package/dest/prover-agent/prover-agent.js +5 -11
- package/dest/prover-agent/rpc.d.ts.map +1 -1
- package/dest/prover-agent/rpc.js +6 -10
- package/dest/test/mock_prover.d.ts +4 -6
- package/dest/test/mock_prover.d.ts.map +1 -1
- package/dest/test/mock_prover.js +8 -14
- package/package.json +11 -11
- package/src/orchestrator/block-building-helpers.ts +4 -29
- package/src/orchestrator/orchestrator.ts +99 -277
- package/src/orchestrator/tx-proving-state.ts +113 -153
- package/src/prover-agent/memory-proving-queue.ts +15 -51
- package/src/prover-agent/prover-agent.ts +4 -12
- package/src/prover-agent/rpc.ts +6 -12
- package/src/test/mock_prover.ts +13 -36
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { type Body, MerkleTreeId, type MerkleTreeWriteOperations, type ProcessedTx } from '@aztec/circuit-types';
|
|
2
|
-
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs,
|
|
2
|
+
import { AppendOnlyTreeSnapshot, type BaseOrMergeRollupPublicInputs, BaseRollupHints, BlockMergeRollupInputs, type BlockRootOrBlockMergePublicInputs, ConstantRollupData, Fr, type GlobalVariables, Header, MembershipWitness, MergeRollupInputs, type NESTED_RECURSIVE_PROOF_LENGTH, type ParityPublicInputs, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataTreeLeaf, type PublicDataTreeLeafPreimage, type RecursiveProof, RootRollupInputs, StateReference, type VerificationKeyAsFields } from '@aztec/circuits.js';
|
|
3
3
|
import { type DebugLogger } from '@aztec/foundation/log';
|
|
4
4
|
import { type Tuple } from '@aztec/foundation/serialize';
|
|
5
5
|
import { type MerkleTreeReadOperations } from '@aztec/world-state';
|
|
@@ -11,7 +11,7 @@ type BaseTreeNames = 'NoteHashTree' | 'ContractTree' | 'NullifierTree' | 'Public
|
|
|
11
11
|
* Type representing the names of the trees.
|
|
12
12
|
*/
|
|
13
13
|
export type TreeNames = BaseTreeNames | 'L1ToL2MessageTree' | 'Archive';
|
|
14
|
-
export declare function
|
|
14
|
+
export declare function buildBaseRollupHints(tx: ProcessedTx, globalVariables: GlobalVariables, db: MerkleTreeWriteOperations): Promise<BaseRollupHints>;
|
|
15
15
|
export declare function createMergeRollupInputs(left: [BaseOrMergeRollupPublicInputs, RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, VerificationKeyAsFields], right: [BaseOrMergeRollupPublicInputs, RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, VerificationKeyAsFields]): MergeRollupInputs;
|
|
16
16
|
export declare function createBlockMergeRollupInputs(left: [
|
|
17
17
|
BlockRootOrBlockMergePublicInputs,
|
|
@@ -38,7 +38,6 @@ export declare function getPreviousRollupDataFromPublicInputs(rollupOutput: Base
|
|
|
38
38
|
export declare function getPreviousRollupBlockDataFromPublicInputs(rollupOutput: BlockRootOrBlockMergePublicInputs, rollupProof: RecursiveProof<typeof NESTED_RECURSIVE_PROOF_LENGTH>, vk: VerificationKeyAsFields): PreviousRollupBlockData;
|
|
39
39
|
export declare function getConstantRollupData(globalVariables: GlobalVariables, db: MerkleTreeReadOperations): Promise<ConstantRollupData>;
|
|
40
40
|
export declare function getTreeSnapshot(id: MerkleTreeId, db: MerkleTreeReadOperations): Promise<AppendOnlyTreeSnapshot>;
|
|
41
|
-
export declare function getKernelDataFor(tx: ProcessedTx, vk: VerificationKeyData, proof: RecursiveProof<typeof RECURSIVE_PROOF_LENGTH>): KernelData;
|
|
42
41
|
export declare function makeEmptyMembershipWitness<N extends number>(height: N): MembershipWitness<N>;
|
|
43
42
|
export declare function processPublicDataUpdateRequests(tx: ProcessedTx, db: MerkleTreeWriteOperations): Promise<{
|
|
44
43
|
lowPublicDataWritesPreimages: [PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage, PublicDataTreeLeafPreimage];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,IAAI,EACT,YAAY,EACZ,KAAK,yBAAyB,EAC9B,KAAK,WAAW,EAGjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAEL,sBAAsB,EACtB,KAAK,6BAA6B,EAClC,
|
|
1
|
+
{"version":3,"file":"block-building-helpers.d.ts","sourceRoot":"","sources":["../../src/orchestrator/block-building-helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { MerkleTreeId, TxEffect, getTreeHeight, } from '@aztec/circuit-types';
|
|
2
|
-
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot,
|
|
2
|
+
import { ARCHIVE_HEIGHT, AppendOnlyTreeSnapshot, BaseRollupHints, BlockMergeRollupInputs, ConstantRollupData, ContentCommitment, Fr, Header, MAX_NULLIFIERS_PER_TX, MAX_TOTAL_PUBLIC_DATA_UPDATE_REQUESTS_PER_TX, MembershipWitness, MergeRollupInputs, MerkleTreeCalculator, NOTE_HASH_SUBTREE_HEIGHT, NOTE_HASH_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_SUBTREE_HEIGHT, NULLIFIER_SUBTREE_SIBLING_PATH_LENGTH, NULLIFIER_TREE_HEIGHT, NUMBER_OF_L1_L2_MESSAGES_PER_ROLLUP, NullifierLeafPreimage, PUBLIC_DATA_SUBTREE_HEIGHT, PUBLIC_DATA_SUBTREE_SIBLING_PATH_LENGTH, PUBLIC_DATA_TREE_HEIGHT, PartialStateReference, PreviousRollupBlockData, PreviousRollupData, PublicDataHint, PublicDataTreeLeaf, PublicDataUpdateRequest, RootRollupInputs, StateDiffHints, StateReference, VK_TREE_HEIGHT, } from '@aztec/circuits.js';
|
|
3
3
|
import { assertPermutation, makeTuple } from '@aztec/foundation/array';
|
|
4
4
|
import { padArrayEnd } from '@aztec/foundation/collection';
|
|
5
5
|
import { sha256Trunc } from '@aztec/foundation/crypto';
|
|
@@ -9,8 +9,8 @@ import { getVKIndex, getVKSiblingPath, getVKTreeRoot } from '@aztec/noir-protoco
|
|
|
9
9
|
import { protocolContractTreeRoot } from '@aztec/protocol-contracts';
|
|
10
10
|
import { HintsBuilder, computeFeePayerBalanceLeafSlot } from '@aztec/simulator';
|
|
11
11
|
import { inspect } from 'util';
|
|
12
|
-
// Builds the base rollup
|
|
13
|
-
export async function
|
|
12
|
+
// Builds the hints for base rollup. Updating the contract, nullifier, and data trees in the process.
|
|
13
|
+
export async function buildBaseRollupHints(tx, globalVariables, db) {
|
|
14
14
|
// Get trees info before any changes hit
|
|
15
15
|
const constants = await getConstantRollupData(globalVariables, db);
|
|
16
16
|
const start = new PartialStateReference(await getTreeSnapshot(MerkleTreeId.NOTE_HASH_TREE, db), await getTreeSnapshot(MerkleTreeId.NULLIFIER_TREE, db), await getTreeSnapshot(MerkleTreeId.PUBLIC_DATA_TREE, db));
|
|
@@ -58,8 +58,7 @@ export async function buildBaseRollupInput(tx, proof, globalVariables, db, kerne
|
|
|
58
58
|
});
|
|
59
59
|
const blockHash = tx.data.constants.historicalHeader.hash();
|
|
60
60
|
const archiveRootMembershipWitness = await getMembershipWitnessFor(blockHash, MerkleTreeId.ARCHIVE, ARCHIVE_HEIGHT, db);
|
|
61
|
-
return
|
|
62
|
-
kernelData: getKernelDataFor(tx, kernelVk, proof),
|
|
61
|
+
return BaseRollupHints.from({
|
|
63
62
|
start,
|
|
64
63
|
stateDiffHints,
|
|
65
64
|
feePayerFeeJuiceBalanceReadHint: feePayerFeeJuiceBalanceReadHint,
|
|
@@ -160,12 +159,6 @@ export async function getTreeSnapshot(id, db) {
|
|
|
160
159
|
const treeInfo = await db.getTreeInfo(id);
|
|
161
160
|
return new AppendOnlyTreeSnapshot(Fr.fromBuffer(treeInfo.root), Number(treeInfo.size));
|
|
162
161
|
}
|
|
163
|
-
export function getKernelDataFor(tx, vk, proof) {
|
|
164
|
-
const leafIndex = getVKIndex(vk);
|
|
165
|
-
return new KernelData(tx.data, proof,
|
|
166
|
-
// VK for the kernel circuit
|
|
167
|
-
vk, leafIndex, getVKSiblingPath(leafIndex));
|
|
168
|
-
}
|
|
169
162
|
export function makeEmptyMembershipWitness(height) {
|
|
170
163
|
return new MembershipWitness(height, 0n, makeTuple(height, () => Fr.ZERO));
|
|
171
164
|
}
|
|
@@ -254,4 +247,4 @@ export function validateTx(tx) {
|
|
|
254
247
|
throw new Error(`Empty public data tree in tx: ${toFriendlyJSON(tx)}`);
|
|
255
248
|
}
|
|
256
249
|
}
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUdaLFFBQVEsRUFDUixhQUFhLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsY0FBYyxFQUNkLHNCQUFzQixFQUV0QixnQkFBZ0IsRUFDaEIsc0JBQXNCLEVBRXRCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsRUFBRSxFQUVGLE1BQU0sRUFDTixVQUFVLEVBQ1YscUJBQXFCLEVBQ3JCLDRDQUE0QyxFQUM1QyxpQkFBaUIsRUFDakIsaUJBQWlCLEVBQ2pCLG9CQUFvQixFQUVwQix3QkFBd0IsRUFDeEIscUNBQXFDLEVBQ3JDLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMscUJBQXFCLEVBQ3JCLG1DQUFtQyxFQUNuQyxxQkFBcUIsRUFDckIsMEJBQTBCLEVBQzFCLHVDQUF1QyxFQUN2Qyx1QkFBdUIsRUFFdkIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixrQkFBa0IsRUFDbEIsY0FBYyxFQUNkLGtCQUFrQixFQUVsQix1QkFBdUIsRUFHdkIsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxjQUFjLEVBQ2QsY0FBYyxHQUdmLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFNBQVMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFjLFlBQVksRUFBRSxjQUFjLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN2RixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx5QkFBeUIsQ0FB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
|
|
250
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmxvY2stYnVpbGRpbmctaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9vcmNoZXN0cmF0b3IvYmxvY2stYnVpbGRpbmctaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsWUFBWSxFQUdaLFFBQVEsRUFDUixhQUFhLEdBQ2QsTUFBTSxzQkFBc0IsQ0FBQztBQUM5QixPQUFPLEVBQ0wsY0FBYyxFQUNkLHNCQUFzQixFQUV0QixlQUFlLEVBQ2Ysc0JBQXNCLEVBRXRCLGtCQUFrQixFQUNsQixpQkFBaUIsRUFDakIsRUFBRSxFQUVGLE1BQU0sRUFDTixxQkFBcUIsRUFDckIsNENBQTRDLEVBQzVDLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsb0JBQW9CLEVBRXBCLHdCQUF3QixFQUN4QixxQ0FBcUMsRUFDckMsd0JBQXdCLEVBQ3hCLHFDQUFxQyxFQUNyQyxxQkFBcUIsRUFDckIsbUNBQW1DLEVBQ25DLHFCQUFxQixFQUNyQiwwQkFBMEIsRUFDMUIsdUNBQXVDLEVBQ3ZDLHVCQUF1QixFQUV2QixxQkFBcUIsRUFDckIsdUJBQXVCLEVBQ3ZCLGtCQUFrQixFQUNsQixjQUFjLEVBQ2Qsa0JBQWtCLEVBRWxCLHVCQUF1QixFQUV2QixnQkFBZ0IsRUFDaEIsY0FBYyxFQUNkLGNBQWMsRUFDZCxjQUFjLEdBRWYsTUFBTSxvQkFBb0IsQ0FBQztBQUM1QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV2RCxPQUFPLEVBQWMsWUFBWSxFQUFFLGNBQWMsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3ZGLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3RFLE9BQU8s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
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { L2Block, type ProcessedTx, type ServerCircuitProver } from '@aztec/circuit-types';
|
|
2
2
|
import { type EpochProver, type MerkleTreeWriteOperations } from '@aztec/circuit-types/interfaces';
|
|
3
|
-
import { Fr, type GlobalVariables, type Header
|
|
3
|
+
import { Fr, type GlobalVariables, type Header } from '@aztec/circuits.js';
|
|
4
4
|
import { type TelemetryClient, type Tracer } from '@aztec/telemetry-client';
|
|
5
5
|
/**
|
|
6
6
|
* Implements an event driven proving scheduler to build the recursive proof tree. The idea being:
|
|
@@ -76,7 +76,7 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
76
76
|
* Returns the proof for the current epoch.
|
|
77
77
|
*/
|
|
78
78
|
finaliseEpoch(): Promise<{
|
|
79
|
-
proof: Proof;
|
|
79
|
+
proof: import("@aztec/circuits.js").Proof;
|
|
80
80
|
publicInputs: import("@aztec/circuits.js").RootRollupPublicInputs;
|
|
81
81
|
}>;
|
|
82
82
|
/**
|
|
@@ -125,18 +125,8 @@ export declare class ProvingOrchestrator implements EpochProver {
|
|
|
125
125
|
* previous kernel is ready
|
|
126
126
|
* @param provingState - The proving state being operated on
|
|
127
127
|
* @param txIndex - The index of the transaction being proven
|
|
128
|
-
* @param functionIndex - The index of the function/kernel being proven
|
|
129
128
|
*/
|
|
130
129
|
private enqueueVM;
|
|
131
|
-
private checkAndEnqueuePublicKernelFromVMProof;
|
|
132
130
|
private checkAndEnqueueNextTxCircuit;
|
|
133
|
-
/**
|
|
134
|
-
* Executes the kernel circuit for a public function, will enqueue the next kernel circuit if it's VM is already proven
|
|
135
|
-
* or the base rollup circuit if there are no more kernels to be proven
|
|
136
|
-
* @param provingState - The proving state being operated on
|
|
137
|
-
* @param txIndex - The index of the transaction being proven
|
|
138
|
-
* @param functionIndex - The index of the function/kernel being proven
|
|
139
|
-
*/
|
|
140
|
-
private enqueuePublicKernel;
|
|
141
131
|
}
|
|
142
132
|
//# sourceMappingURL=orchestrator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"orchestrator.d.ts","sourceRoot":"","sources":["../../src/orchestrator/orchestrator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,OAAO,EAGP,KAAK,WAAW,EAChB,KAAK,mBAAmB,EAKzB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAEnG,OAAO,EASL,EAAE,EACF,KAAK,eAAe,EACpB,KAAK,MAAM,EAcZ,MAAM,oBAAoB,CAAC;AAW5B,OAAO,EAAc,KAAK,eAAe,EAAE,KAAK,MAAM,EAAiC,MAAM,yBAAyB,CAAC;AA8BvH;;;;;;;;;GASG;AAEH;;GAEG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IASnD,OAAO,CAAC,EAAE;IACV,OAAO,CAAC,MAAM;IAEd,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAX3B,OAAO,CAAC,YAAY,CAA4C;IAChE,OAAO,CAAC,kBAAkB,CAAyB;IACnD,OAAO,CAAC,SAAS,CAA6C;IAE9D,OAAO,CAAC,cAAc,CAAiD;IACvE,OAAO,CAAC,OAAO,CAA6B;gBAGlC,EAAE,EAAE,yBAAyB,EAC7B,MAAM,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EACf,QAAQ,GAAE,EAAY;IAKzC,IAAI,MAAM,IAAI,MAAM,CAEnB;IAEM,WAAW,IAAI,EAAE;IAIxB;;OAEG;IACI,KAAK;IAIL,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM;IAWhE;;;;;;;OAOG;IAKU,aAAa,CAAC,MAAM,EAAE,MAAM,EAAE,eAAe,EAAE,eAAe,EAAE,cAAc,EAAE,EAAE,EAAE;IAwFjG;;;OAGG;IAIU,QAAQ,CAAC,EAAE,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IA+BrD;;;OAGG;IAYU,iBAAiB,CAAC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDzE,oDAAoD;IAC7C,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAiBvC,OAAO,CAAC,QAAQ;YAoDF,UAAU;IA2CxB,OAAO,CAAC,iBAAiB;IA6CzB;;;;;OAKG;IACH,OAAO,CAAC,wBAAwB;IAgBhC;;OAEG;IACI,MAAM;IAQb;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAmB1C;;OAEG;IACU,aAAa;;;;IAwB1B;;;;OAIG;YACW,kBAAkB;IAShC,OAAO,CAAC,kBAAkB;IAsB1B;;;;;OAKG;IACH,OAAO,CAAC,eAAe;YA4DT,uBAAuB;IAiCrC,OAAO,CAAC,iBAAiB;IAqDzB,OAAO,CAAC,WAAW;IAkCnB,OAAO,CAAC,kBAAkB;IAiC1B,OAAO,CAAC,sBAAsB;IA4E9B,OAAO,CAAC,wBAAwB;IA6BhC,OAAO,CAAC,wBAAwB;IAqBhC,OAAO,CAAC,uBAAuB;IAiC/B,OAAO,CAAC,iBAAiB;IAuCzB,OAAO,CAAC,8BAA8B;IAYtC,OAAO,CAAC,yBAAyB;IAQjC;;;;;;OAMG;IACH,OAAO,CAAC,6BAA6B;IA+BrC;;;;;;OAMG;IACH,OAAO,CAAC,kCAAkC;IAqC1C;;;;;OAKG;IACH,OAAO,CAAC,SAAS;IA2CjB,OAAO,CAAC,4BAA4B;CAWrC"}
|