@aztec/stdlib 4.0.0-nightly.20260112 → 4.0.0-nightly.20260114
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/abi/utils.d.ts +7 -1
- package/dest/abi/utils.d.ts.map +1 -1
- package/dest/abi/utils.js +7 -0
- package/dest/avm/avm.d.ts +300 -300
- package/dest/block/attestation_info.d.ts +5 -5
- package/dest/block/attestation_info.d.ts.map +1 -1
- package/dest/block/attestation_info.js +4 -4
- package/dest/block/body.d.ts +1 -1
- package/dest/block/body.d.ts.map +1 -1
- package/dest/block/body.js +2 -1
- package/dest/block/checkpointed_l2_block.d.ts +1 -1
- package/dest/block/checkpointed_l2_block.d.ts.map +1 -1
- package/dest/block/checkpointed_l2_block.js +5 -4
- package/dest/block/l2_block.d.ts +6 -3
- package/dest/block/l2_block.d.ts.map +1 -1
- package/dest/block/l2_block.js +3 -3
- package/dest/block/l2_block_code_to_purge.d.ts +1 -1
- package/dest/block/l2_block_code_to_purge.d.ts.map +1 -1
- package/dest/block/l2_block_code_to_purge.js +1 -1
- package/dest/block/l2_block_header.d.ts +6 -2
- package/dest/block/l2_block_header.d.ts.map +1 -1
- package/dest/block/l2_block_header.js +14 -7
- package/dest/block/l2_block_new.d.ts +1 -2
- package/dest/block/l2_block_new.d.ts.map +1 -1
- package/dest/block/l2_block_new.js +4 -1
- package/dest/block/l2_block_source.d.ts +247 -42
- package/dest/block/l2_block_source.d.ts.map +1 -1
- package/dest/block/l2_block_source.js +23 -5
- package/dest/block/l2_block_stream/index.d.ts +2 -1
- package/dest/block/l2_block_stream/index.d.ts.map +1 -1
- package/dest/block/l2_block_stream/index.js +1 -0
- package/dest/block/l2_block_stream/interfaces.d.ts +16 -5
- package/dest/block/l2_block_stream/interfaces.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.d.ts +4 -2
- package/dest/block/l2_block_stream/l2_block_stream.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_block_stream.js +102 -30
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts +24 -16
- package/dest/block/l2_block_stream/l2_tips_memory_store.d.ts.map +1 -1
- package/dest/block/l2_block_stream/l2_tips_memory_store.js +55 -61
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts +49 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.d.ts.map +1 -0
- package/dest/block/l2_block_stream/l2_tips_store_base.js +179 -0
- package/dest/block/test/l2_tips_store_test_suite.d.ts +1 -1
- package/dest/block/test/l2_tips_store_test_suite.d.ts.map +1 -1
- package/dest/block/test/l2_tips_store_test_suite.js +483 -38
- package/dest/block/validate_block_result.d.ts +24 -24
- package/dest/block/validate_block_result.d.ts.map +1 -1
- package/dest/block/validate_block_result.js +18 -17
- package/dest/checkpoint/checkpoint.d.ts +2 -1
- package/dest/checkpoint/checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint.js +11 -1
- package/dest/checkpoint/checkpoint_info.d.ts +32 -3
- package/dest/checkpoint/checkpoint_info.d.ts.map +1 -1
- package/dest/checkpoint/checkpoint_info.js +34 -1
- package/dest/checkpoint/index.d.ts +2 -1
- package/dest/checkpoint/index.d.ts.map +1 -1
- package/dest/checkpoint/index.js +1 -0
- package/dest/checkpoint/published_checkpoint.d.ts +1 -1
- package/dest/checkpoint/published_checkpoint.d.ts.map +1 -1
- package/dest/checkpoint/published_checkpoint.js +4 -3
- package/dest/contract/index.d.ts +1 -3
- package/dest/contract/index.d.ts.map +1 -1
- package/dest/contract/index.js +0 -2
- package/dest/deserialization/index.d.ts +11 -0
- package/dest/deserialization/index.d.ts.map +1 -0
- package/dest/deserialization/index.js +10 -0
- package/dest/interfaces/api_limit.d.ts +2 -1
- package/dest/interfaces/api_limit.d.ts.map +1 -1
- package/dest/interfaces/api_limit.js +1 -0
- package/dest/interfaces/archiver.d.ts +6 -6
- package/dest/interfaces/archiver.d.ts.map +1 -1
- package/dest/interfaces/archiver.js +6 -4
- package/dest/interfaces/aztec-node-admin.d.ts +12 -9
- package/dest/interfaces/aztec-node-admin.d.ts.map +1 -1
- package/dest/interfaces/aztec-node-admin.js +2 -2
- package/dest/interfaces/aztec-node.d.ts +2 -2
- package/dest/interfaces/aztec-node.d.ts.map +1 -1
- package/dest/interfaces/aztec-node.js +8 -3
- package/dest/interfaces/block-builder.d.ts +2 -2
- package/dest/interfaces/block-builder.d.ts.map +1 -1
- package/dest/interfaces/configs.d.ts +6 -1
- package/dest/interfaces/configs.d.ts.map +1 -1
- package/dest/interfaces/configs.js +2 -1
- package/dest/interfaces/p2p.d.ts +7 -9
- package/dest/interfaces/p2p.d.ts.map +1 -1
- package/dest/interfaces/p2p.js +3 -4
- package/dest/interfaces/validator.d.ts +41 -15
- package/dest/interfaces/validator.d.ts.map +1 -1
- package/dest/interfaces/validator.js +3 -2
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts +6 -5
- package/dest/kernel/hints/build_note_hash_read_request_hints.d.ts.map +1 -1
- package/dest/kernel/hints/build_note_hash_read_request_hints.js +5 -6
- package/dest/messaging/l2_to_l1_membership.d.ts +1 -1
- package/dest/messaging/l2_to_l1_membership.d.ts.map +1 -1
- package/dest/messaging/l2_to_l1_membership.js +5 -3
- package/dest/messaging/out_hash.d.ts +41 -4
- package/dest/messaging/out_hash.d.ts.map +1 -1
- package/dest/messaging/out_hash.js +52 -26
- package/dest/note/note_dao.d.ts +8 -5
- package/dest/note/note_dao.d.ts.map +1 -1
- package/dest/note/note_dao.js +15 -12
- package/dest/p2p/attestation_utils.d.ts +3 -3
- package/dest/p2p/attestation_utils.d.ts.map +1 -1
- package/dest/p2p/attestation_utils.js +1 -1
- package/dest/p2p/block_proposal.d.ts +85 -21
- package/dest/p2p/block_proposal.d.ts.map +1 -1
- package/dest/p2p/block_proposal.js +126 -38
- package/dest/p2p/checkpoint_attestation.d.ts +78 -0
- package/dest/p2p/checkpoint_attestation.d.ts.map +1 -0
- package/dest/p2p/{block_attestation.js → checkpoint_attestation.js} +22 -19
- package/dest/p2p/checkpoint_proposal.d.ts +155 -0
- package/dest/p2p/checkpoint_proposal.d.ts.map +1 -0
- package/dest/p2p/checkpoint_proposal.js +222 -0
- package/dest/p2p/consensus_payload.d.ts +5 -2
- package/dest/p2p/consensus_payload.d.ts.map +1 -1
- package/dest/p2p/consensus_payload.js +3 -2
- package/dest/p2p/index.d.ts +4 -2
- package/dest/p2p/index.d.ts.map +1 -1
- package/dest/p2p/index.js +3 -1
- package/dest/p2p/signature_utils.d.ts +5 -3
- package/dest/p2p/signature_utils.d.ts.map +1 -1
- package/dest/p2p/signature_utils.js +3 -1
- package/dest/p2p/signed_txs.d.ts +40 -0
- package/dest/p2p/signed_txs.d.ts.map +1 -0
- package/dest/p2p/signed_txs.js +75 -0
- package/dest/p2p/topic_type.d.ts +3 -2
- package/dest/p2p/topic_type.d.ts.map +1 -1
- package/dest/p2p/topic_type.js +8 -2
- package/dest/rollup/block_headers_hash.js +1 -1
- package/dest/rollup/block_rollup_public_inputs.d.ts +2 -2
- package/dest/rollup/block_rollup_public_inputs.js +2 -2
- package/dest/rollup/checkpoint_header.d.ts +16 -2
- package/dest/rollup/checkpoint_header.d.ts.map +1 -1
- package/dest/rollup/checkpoint_header.js +25 -5
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts +11 -6
- package/dest/rollup/checkpoint_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_rollup_public_inputs.js +10 -6
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts +14 -3
- package/dest/rollup/checkpoint_root_rollup_private_inputs.d.ts.map +1 -1
- package/dest/rollup/checkpoint_root_rollup_private_inputs.js +13 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts +5 -2
- package/dest/rollup/root_rollup_public_inputs.d.ts.map +1 -1
- package/dest/rollup/root_rollup_public_inputs.js +4 -1
- package/dest/tests/factories.d.ts +13 -1
- package/dest/tests/factories.d.ts.map +1 -1
- package/dest/tests/factories.js +53 -3
- package/dest/tests/mocks.d.ts +55 -9
- package/dest/tests/mocks.d.ts.map +1 -1
- package/dest/tests/mocks.js +84 -35
- package/dest/tx/private_execution_result.d.ts +1 -5
- package/dest/tx/private_execution_result.d.ts.map +1 -1
- package/dest/tx/private_execution_result.js +3 -20
- package/dest/tx/tx_effect.d.ts +1 -6
- package/dest/tx/tx_effect.d.ts.map +1 -1
- package/dest/tx/tx_effect.js +0 -7
- package/package.json +9 -8
- package/src/abi/utils.ts +17 -0
- package/src/block/attestation_info.ts +9 -6
- package/src/block/body.ts +2 -1
- package/src/block/checkpointed_l2_block.ts +5 -4
- package/src/block/l2_block.ts +4 -3
- package/src/block/l2_block_code_to_purge.ts +1 -0
- package/src/block/l2_block_header.ts +13 -0
- package/src/block/l2_block_new.ts +5 -1
- package/src/block/l2_block_source.ts +69 -17
- package/src/block/l2_block_stream/index.ts +1 -0
- package/src/block/l2_block_stream/interfaces.ts +16 -4
- package/src/block/l2_block_stream/l2_block_stream.ts +121 -38
- package/src/block/l2_block_stream/l2_tips_memory_store.ts +62 -56
- package/src/block/l2_block_stream/l2_tips_store_base.ts +226 -0
- package/src/block/test/l2_tips_store_test_suite.ts +485 -36
- package/src/block/validate_block_result.ts +40 -35
- package/src/checkpoint/checkpoint.ts +12 -1
- package/src/checkpoint/checkpoint_info.ts +45 -2
- package/src/checkpoint/index.ts +1 -0
- package/src/checkpoint/published_checkpoint.ts +4 -3
- package/src/contract/index.ts +0 -2
- package/src/deserialization/index.ts +21 -0
- package/src/interfaces/api_limit.ts +1 -0
- package/src/interfaces/archiver.ts +14 -6
- package/src/interfaces/aztec-node-admin.ts +5 -2
- package/src/interfaces/aztec-node.ts +30 -3
- package/src/interfaces/block-builder.ts +1 -0
- package/src/interfaces/configs.ts +5 -0
- package/src/interfaces/p2p.ts +8 -12
- package/src/interfaces/validator.ts +57 -11
- package/src/kernel/hints/build_note_hash_read_request_hints.ts +5 -8
- package/src/messaging/l2_to_l1_membership.ts +5 -3
- package/src/messaging/out_hash.ts +60 -29
- package/src/note/note_dao.ts +18 -13
- package/src/p2p/attestation_utils.ts +3 -3
- package/src/p2p/block_proposal.ts +191 -42
- package/src/p2p/{block_attestation.ts → checkpoint_attestation.ts} +31 -25
- package/src/p2p/checkpoint_proposal.ts +342 -0
- package/src/p2p/consensus_payload.ts +5 -2
- package/src/p2p/index.ts +3 -1
- package/src/p2p/signature_utils.ts +3 -1
- package/src/p2p/signed_txs.ts +88 -0
- package/src/p2p/topic_type.ts +3 -2
- package/src/rollup/block_headers_hash.ts +1 -1
- package/src/rollup/block_rollup_public_inputs.ts +2 -2
- package/src/rollup/checkpoint_header.ts +33 -0
- package/src/rollup/checkpoint_rollup_public_inputs.ts +12 -6
- package/src/rollup/checkpoint_root_rollup_private_inputs.ts +14 -1
- package/src/rollup/root_rollup_public_inputs.ts +4 -1
- package/src/tests/factories.ts +46 -2
- package/src/tests/mocks.ts +146 -50
- package/src/tx/private_execution_result.ts +0 -15
- package/src/tx/tx_effect.ts +0 -9
- package/dest/contract/contract_class_metadata.d.ts +0 -8
- package/dest/contract/contract_class_metadata.d.ts.map +0 -1
- package/dest/contract/contract_class_metadata.js +0 -1
- package/dest/contract/contract_metadata.d.ts +0 -7
- package/dest/contract/contract_metadata.d.ts.map +0 -1
- package/dest/contract/contract_metadata.js +0 -1
- package/dest/p2p/block_attestation.d.ts +0 -77
- package/dest/p2p/block_attestation.d.ts.map +0 -1
- package/src/contract/contract_class_metadata.ts +0 -8
- package/src/contract/contract_metadata.ts +0 -7
|
@@ -8,16 +8,19 @@ import type { FieldsOf } from '@aztec/foundation/types';
|
|
|
8
8
|
import { inspect } from 'util';
|
|
9
9
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
10
10
|
import { GasFees } from '../gas/index.js';
|
|
11
|
+
import type { GlobalVariables } from '../tx/global_variables.js';
|
|
11
12
|
import type { UInt64 } from '../types/shared.js';
|
|
12
13
|
/**
|
|
13
14
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
14
15
|
* TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
|
|
16
|
+
* TODO(palla/mbps): What about CheckpointNumber?
|
|
15
17
|
*/
|
|
16
18
|
export declare class CheckpointHeader {
|
|
17
19
|
lastArchiveRoot: Fr;
|
|
18
20
|
blockHeadersHash: Fr;
|
|
19
21
|
blobsHash: Fr;
|
|
20
22
|
inHash: Fr;
|
|
23
|
+
epochOutHash: Fr;
|
|
21
24
|
slotNumber: SlotNumber;
|
|
22
25
|
timestamp: UInt64;
|
|
23
26
|
coinbase: EthAddress;
|
|
@@ -33,6 +36,14 @@ export declare class CheckpointHeader {
|
|
|
33
36
|
blobsHash: Fr,
|
|
34
37
|
/** Root of the l1 to l2 messages subtree. */
|
|
35
38
|
inHash: Fr,
|
|
39
|
+
/**
|
|
40
|
+
* The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
|
|
41
|
+
* index 0, the second at index 1, and so on.
|
|
42
|
+
* Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and
|
|
43
|
+
* including the current checkpoint. Any subsequent checkpoints added to the same epoch are not reflected in this
|
|
44
|
+
* value.
|
|
45
|
+
*/
|
|
46
|
+
epochOutHash: Fr,
|
|
36
47
|
/** Slot number of the L2 block */
|
|
37
48
|
slotNumber: SlotNumber,
|
|
38
49
|
/** Timestamp of the L2 block. */
|
|
@@ -46,10 +57,12 @@ export declare class CheckpointHeader {
|
|
|
46
57
|
/** Total mana used in the block, computed by the root rollup circuit */
|
|
47
58
|
totalManaUsed: Fr);
|
|
48
59
|
static get schema(): ZodFor<CheckpointHeader>;
|
|
49
|
-
static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
|
|
60
|
+
static getFields(fields: FieldsOf<CheckpointHeader>): readonly [Fr, Fr, Fr, Fr, Fr, SlotNumber, bigint, EthAddress, AztecAddress, GasFees, Fr];
|
|
50
61
|
static from(fields: FieldsOf<CheckpointHeader>): CheckpointHeader;
|
|
51
62
|
static fromBuffer(buffer: Buffer | BufferReader): CheckpointHeader;
|
|
52
63
|
equals(other: CheckpointHeader): boolean;
|
|
64
|
+
/** Returns true if the global variables match those in the checkpoint header. */
|
|
65
|
+
matchesGlobalVariables(other: GlobalVariables): boolean;
|
|
53
66
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
54
67
|
hash(): Fr;
|
|
55
68
|
static empty(fields?: Partial<FieldsOf<CheckpointHeader>>): CheckpointHeader;
|
|
@@ -73,6 +86,7 @@ export declare class CheckpointHeader {
|
|
|
73
86
|
blockHeadersHash: `0x${string}`;
|
|
74
87
|
blobsHash: `0x${string}`;
|
|
75
88
|
inHash: `0x${string}`;
|
|
89
|
+
epochOutHash: `0x${string}`;
|
|
76
90
|
slotNumber: SlotNumber;
|
|
77
91
|
timestamp: bigint;
|
|
78
92
|
coinbase: `0x${string}`;
|
|
@@ -85,4 +99,4 @@ export declare class CheckpointHeader {
|
|
|
85
99
|
};
|
|
86
100
|
[inspect.custom](): string;
|
|
87
101
|
}
|
|
88
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
102
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9oZWFkZXIuZC50cyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9yb2xsdXAvY2hlY2twb2ludF9oZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRTdELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFlBQVksRUFBdUMsTUFBTSw2QkFBNkIsQ0FBQztBQUVoRyxPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUMsT0FBTyxLQUFLLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFakQ7Ozs7R0FJRztBQUNILHFCQUFhLGdCQUFnQjtJQUdsQixlQUFlLEVBQUUsRUFBRTtJQUVuQixnQkFBZ0IsRUFBRSxFQUFFO0lBRXBCLFNBQVMsRUFBRSxFQUFFO0lBRWIsTUFBTSxFQUFFLEVBQUU7SUFRVixZQUFZLEVBQUUsRUFBRTtJQUVoQixVQUFVLEVBQUUsVUFBVTtJQUV0QixTQUFTLEVBQUUsTUFBTTtJQUVqQixRQUFRLEVBQUUsVUFBVTtJQUVwQixZQUFZLEVBQUUsWUFBWTtJQUUxQixPQUFPLEVBQUUsT0FBTztJQUVoQixhQUFhLEVBQUUsRUFBRTtJQTVCMUI7SUFDRSwyREFBMkQ7SUFDcEQsZUFBZSxFQUFFLEVBQUU7SUFDMUIsNERBQTREO0lBQ3JELGdCQUFnQixFQUFFLEVBQUU7SUFDM0IsMkNBQTJDO0lBQ3BDLFNBQVMsRUFBRSxFQUFFO0lBQ3BCLDZDQUE2QztJQUN0QyxNQUFNLEVBQUUsRUFBRTtJQUNqQjs7Ozs7O09BTUc7SUFDSSxZQUFZLEVBQUUsRUFBRTtJQUN2QixrQ0FBa0M7SUFDM0IsVUFBVSxFQUFFLFVBQVU7SUFDN0IsaUNBQWlDO0lBQzFCLFNBQVMsRUFBRSxNQUFNO0lBQ3hCLGlDQUFpQztJQUMxQixRQUFRLEVBQUUsVUFBVTtJQUMzQiwrQkFBK0I7SUFDeEIsWUFBWSxFQUFFLFlBQVk7SUFDakMsd0NBQXdDO0lBQ2pDLE9BQU8sRUFBRSxPQUFPO0lBQ3ZCLHdFQUF3RTtJQUNqRSxhQUFhLEVBQUUsRUFBRSxFQUN0QjtJQUVKLE1BQU0sS0FBSyxNQUFNLElBQUksTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBZ0I1QztJQUVELE1BQU0sQ0FBQyxTQUFTLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyw0RkFjbEQ7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsZ0JBQWdCLENBQUMsb0JBRTdDO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxHQUFHLFlBQVksb0JBZ0I5QztJQUVELE1BQU0sQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLFdBYzdCO0lBRUQsaUZBQWlGO0lBQ2pGLHNCQUFzQixDQUFDLEtBQUssRUFBRSxlQUFlLFdBUTVDO0lBRUQsUUFBUSw0QkFlUDtJQUVELElBQUksSUFBSSxFQUFFLENBRVQ7SUFFRCxNQUFNLENBQUMsS0FBSyxDQUFDLE1BQU0sR0FBRSxPQUFPLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQU0sb0JBZTVEO0lBRUQsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFNLEdBQUcsZ0JBQWdCLENBZW5GO0lBRUQsT0FBTyxJQUFJLE9BQU8sQ0FjakI7SUFFRDs7O09BR0c7SUFDSSxRQUFRLGtCQUVkO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxvQkFFNUI7SUFFRCxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxVQUFVLG9CQWNqQztJQUVEOzs7T0FHRztJQUNILGFBQWEsSUFBSSxVQUFVLENBRTFCO0lBRUQsTUFBTSxJQUFJLFVBQVUsQ0FpQm5CO0lBRUQsU0FBUzs7Ozs7Ozs7Ozs7Ozs7O01BY1I7SUFFRCxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FjZjtDQUNGIn0=
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAC5D,OAAO,EAAE,UAAU,EAAE,MAAM,iCAAiC,CAAC;AAE7D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,EAAE,YAAY,EAAuC,MAAM,6BAA6B,CAAC;AAEhG,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAG/B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAEjD
|
|
1
|
+
{"version":3,"file":"checkpoint_header.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_header.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,22 +14,31 @@ _computedKey = inspect.custom;
|
|
|
14
14
|
/**
|
|
15
15
|
* Header of a checkpoint. A checkpoint is a collection of blocks submitted to L1 all within the same slot.
|
|
16
16
|
* TODO(palla/mbps): Should this include chainId and version as well? Is this used just in circuits?
|
|
17
|
+
* TODO(palla/mbps): What about CheckpointNumber?
|
|
17
18
|
*/ export class CheckpointHeader {
|
|
18
19
|
lastArchiveRoot;
|
|
19
20
|
blockHeadersHash;
|
|
20
21
|
blobsHash;
|
|
21
22
|
inHash;
|
|
23
|
+
epochOutHash;
|
|
22
24
|
slotNumber;
|
|
23
25
|
timestamp;
|
|
24
26
|
coinbase;
|
|
25
27
|
feeRecipient;
|
|
26
28
|
gasFees;
|
|
27
29
|
totalManaUsed;
|
|
28
|
-
constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /** Hash of the blobs in the checkpoint. */ blobsHash, /** Root of the l1 to l2 messages subtree. */ inHash, /**
|
|
30
|
+
constructor(/** Root of the archive tree before this block is added. */ lastArchiveRoot, /** Hash of the headers of all blocks in this checkpoint. */ blockHeadersHash, /** Hash of the blobs in the checkpoint. */ blobsHash, /** Root of the l1 to l2 messages subtree. */ inHash, /**
|
|
31
|
+
* The root of the epoch out hash balanced tree. The out hash of the first checkpoint in the epoch is inserted at
|
|
32
|
+
* index 0, the second at index 1, and so on.
|
|
33
|
+
* Note: This is not necessarily the final epoch out hash. It includes only the out hashes of checkpoints up to and
|
|
34
|
+
* including the current checkpoint. Any subsequent checkpoints added to the same epoch are not reflected in this
|
|
35
|
+
* value.
|
|
36
|
+
*/ epochOutHash, /** Slot number of the L2 block */ slotNumber, /** Timestamp of the L2 block. */ timestamp, /** Recipient of block reward. */ coinbase, /** Address to receive fees. */ feeRecipient, /** Global gas prices for this block. */ gasFees, /** Total mana used in the block, computed by the root rollup circuit */ totalManaUsed){
|
|
29
37
|
this.lastArchiveRoot = lastArchiveRoot;
|
|
30
38
|
this.blockHeadersHash = blockHeadersHash;
|
|
31
39
|
this.blobsHash = blobsHash;
|
|
32
40
|
this.inHash = inHash;
|
|
41
|
+
this.epochOutHash = epochOutHash;
|
|
33
42
|
this.slotNumber = slotNumber;
|
|
34
43
|
this.timestamp = timestamp;
|
|
35
44
|
this.coinbase = coinbase;
|
|
@@ -43,6 +52,7 @@ _computedKey = inspect.custom;
|
|
|
43
52
|
blockHeadersHash: schemas.Fr,
|
|
44
53
|
blobsHash: schemas.Fr,
|
|
45
54
|
inHash: schemas.Fr,
|
|
55
|
+
epochOutHash: schemas.Fr,
|
|
46
56
|
slotNumber: schemas.SlotNumber,
|
|
47
57
|
timestamp: schemas.BigInt,
|
|
48
58
|
coinbase: schemas.EthAddress,
|
|
@@ -57,6 +67,7 @@ _computedKey = inspect.custom;
|
|
|
57
67
|
fields.blockHeadersHash,
|
|
58
68
|
fields.blobsHash,
|
|
59
69
|
fields.inHash,
|
|
70
|
+
fields.epochOutHash,
|
|
60
71
|
fields.slotNumber,
|
|
61
72
|
fields.timestamp,
|
|
62
73
|
fields.coinbase,
|
|
@@ -70,10 +81,13 @@ _computedKey = inspect.custom;
|
|
|
70
81
|
}
|
|
71
82
|
static fromBuffer(buffer) {
|
|
72
83
|
const reader = BufferReader.asReader(buffer);
|
|
73
|
-
return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), reader.readObject(AztecAddress), reader.readObject(GasFees), reader.readObject(Fr));
|
|
84
|
+
return new CheckpointHeader(reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), reader.readObject(Fr), SlotNumber(Fr.fromBuffer(reader).toNumber()), reader.readUInt64(), reader.readObject(EthAddress), reader.readObject(AztecAddress), reader.readObject(GasFees), reader.readObject(Fr));
|
|
74
85
|
}
|
|
75
86
|
equals(other) {
|
|
76
|
-
return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.totalManaUsed.equals(other.totalManaUsed);
|
|
87
|
+
return this.lastArchiveRoot.equals(other.lastArchiveRoot) && this.blockHeadersHash.equals(other.blockHeadersHash) && this.blobsHash.equals(other.blobsHash) && this.inHash.equals(other.inHash) && this.epochOutHash.equals(other.epochOutHash) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp && this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.totalManaUsed.equals(other.totalManaUsed);
|
|
88
|
+
}
|
|
89
|
+
/** Returns true if the global variables match those in the checkpoint header. */ matchesGlobalVariables(other) {
|
|
90
|
+
return this.coinbase.equals(other.coinbase) && this.feeRecipient.equals(other.feeRecipient) && this.gasFees.equals(other.gasFees) && this.slotNumber === other.slotNumber && this.timestamp === other.timestamp;
|
|
77
91
|
}
|
|
78
92
|
toBuffer() {
|
|
79
93
|
// Note: The order here must match the order in the ProposedHeaderLib solidity library.
|
|
@@ -82,6 +96,7 @@ _computedKey = inspect.custom;
|
|
|
82
96
|
this.blockHeadersHash,
|
|
83
97
|
this.blobsHash,
|
|
84
98
|
this.inHash,
|
|
99
|
+
this.epochOutHash,
|
|
85
100
|
new Fr(this.slotNumber),
|
|
86
101
|
bigintToUInt64BE(this.timestamp),
|
|
87
102
|
this.coinbase,
|
|
@@ -101,6 +116,7 @@ _computedKey = inspect.custom;
|
|
|
101
116
|
blockHeadersHash: Fr.ZERO,
|
|
102
117
|
blobsHash: Fr.ZERO,
|
|
103
118
|
inHash: Fr.ZERO,
|
|
119
|
+
epochOutHash: Fr.ZERO,
|
|
104
120
|
slotNumber: SlotNumber.ZERO,
|
|
105
121
|
timestamp: 0n,
|
|
106
122
|
coinbase: EthAddress.ZERO,
|
|
@@ -116,6 +132,7 @@ _computedKey = inspect.custom;
|
|
|
116
132
|
blockHeadersHash: Fr.random(),
|
|
117
133
|
blobsHash: Fr.random(),
|
|
118
134
|
inHash: Fr.random(),
|
|
135
|
+
epochOutHash: Fr.random(),
|
|
119
136
|
slotNumber: SlotNumber(Math.floor(Math.random() * 1000) + 1),
|
|
120
137
|
timestamp: BigInt(Math.floor(Date.now() / 1000)),
|
|
121
138
|
coinbase: EthAddress.random(),
|
|
@@ -126,7 +143,7 @@ _computedKey = inspect.custom;
|
|
|
126
143
|
});
|
|
127
144
|
}
|
|
128
145
|
isEmpty() {
|
|
129
|
-
return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
|
|
146
|
+
return this.lastArchiveRoot.isZero() && this.blockHeadersHash.isZero() && this.blobsHash.isZero() && this.inHash.isZero() && this.epochOutHash.isZero() && this.slotNumber === 0 && this.timestamp === 0n && this.coinbase.isZero() && this.feeRecipient.isZero() && this.gasFees.isEmpty() && this.totalManaUsed.isZero();
|
|
130
147
|
}
|
|
131
148
|
/**
|
|
132
149
|
* Serializes this instance into a string.
|
|
@@ -138,7 +155,7 @@ _computedKey = inspect.custom;
|
|
|
138
155
|
return CheckpointHeader.fromBuffer(hexToBuffer(str));
|
|
139
156
|
}
|
|
140
157
|
static fromViem(header) {
|
|
141
|
-
return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, new EthAddress(hexToBuffer(header.coinbase)), new AztecAddress(hexToBuffer(header.feeRecipient)), new GasFees(header.gasFees.feePerDaGas, header.gasFees.feePerL2Gas), new Fr(header.totalManaUsed));
|
|
158
|
+
return new CheckpointHeader(Fr.fromString(header.lastArchiveRoot), Fr.fromString(header.blockHeadersHash), Fr.fromString(header.blobsHash), Fr.fromString(header.inHash), Fr.fromString(header.outHash), SlotNumber.fromBigInt(header.slotNumber), header.timestamp, new EthAddress(hexToBuffer(header.coinbase)), new AztecAddress(hexToBuffer(header.feeRecipient)), new GasFees(header.gasFees.feePerDaGas, header.gasFees.feePerL2Gas), new Fr(header.totalManaUsed));
|
|
142
159
|
}
|
|
143
160
|
/**
|
|
144
161
|
* Returns the slot number as a SlotNumber branded type.
|
|
@@ -152,6 +169,7 @@ _computedKey = inspect.custom;
|
|
|
152
169
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
153
170
|
blobsHash: this.blobsHash.toString(),
|
|
154
171
|
inHash: this.inHash.toString(),
|
|
172
|
+
outHash: this.epochOutHash.toString(),
|
|
155
173
|
slotNumber: BigInt(this.slotNumber),
|
|
156
174
|
timestamp: this.timestamp,
|
|
157
175
|
coinbase: this.coinbase.toString(),
|
|
@@ -169,6 +187,7 @@ _computedKey = inspect.custom;
|
|
|
169
187
|
blockHeadersHash: this.blockHeadersHash.toString(),
|
|
170
188
|
blobsHash: this.blobsHash.toString(),
|
|
171
189
|
inHash: this.inHash.toString(),
|
|
190
|
+
epochOutHash: this.epochOutHash.toString(),
|
|
172
191
|
slotNumber: this.slotNumber,
|
|
173
192
|
timestamp: this.timestamp,
|
|
174
193
|
coinbase: this.coinbase.toString(),
|
|
@@ -183,6 +202,7 @@ _computedKey = inspect.custom;
|
|
|
183
202
|
blockHeadersHash: ${this.blockHeadersHash.toString()},
|
|
184
203
|
blobsHash: ${inspect(this.blobsHash)},
|
|
185
204
|
inHash: ${inspect(this.inHash)},
|
|
205
|
+
epochOutHash: ${inspect(this.epochOutHash)},
|
|
186
206
|
slotNumber: ${this.slotNumber},
|
|
187
207
|
timestamp: ${this.timestamp},
|
|
188
208
|
coinbase: ${this.coinbase.toString()},
|
|
@@ -13,8 +13,9 @@ export declare class CheckpointRollupPublicInputs {
|
|
|
13
13
|
constants: EpochConstantData;
|
|
14
14
|
previousArchive: AppendOnlyTreeSnapshot;
|
|
15
15
|
newArchive: AppendOnlyTreeSnapshot;
|
|
16
|
+
previousOutHash: AppendOnlyTreeSnapshot;
|
|
17
|
+
newOutHash: AppendOnlyTreeSnapshot;
|
|
16
18
|
checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
17
|
-
outHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
18
19
|
fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>;
|
|
19
20
|
startBlobAccumulator: BlobAccumulator;
|
|
20
21
|
endBlobAccumulator: BlobAccumulator;
|
|
@@ -33,13 +34,17 @@ export declare class CheckpointRollupPublicInputs {
|
|
|
33
34
|
*/
|
|
34
35
|
newArchive: AppendOnlyTreeSnapshot,
|
|
35
36
|
/**
|
|
36
|
-
* The
|
|
37
|
+
* The out hash tree snapshot immediately before this checkpoint range.
|
|
37
38
|
*/
|
|
38
|
-
|
|
39
|
+
previousOutHash: AppendOnlyTreeSnapshot,
|
|
40
|
+
/**
|
|
41
|
+
* The out hash tree snapshot after applying this checkpoint range.
|
|
42
|
+
*/
|
|
43
|
+
newOutHash: AppendOnlyTreeSnapshot,
|
|
39
44
|
/**
|
|
40
|
-
* The
|
|
45
|
+
* The hashes of the headers of the constituent checkpoints.
|
|
41
46
|
*/
|
|
42
|
-
|
|
47
|
+
checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>,
|
|
43
48
|
/**
|
|
44
49
|
* The summed transaction fees and recipients of the constituent checkpoints.
|
|
45
50
|
*/
|
|
@@ -84,4 +89,4 @@ export declare class FeeRecipient {
|
|
|
84
89
|
};
|
|
85
90
|
static random(): FeeRecipient;
|
|
86
91
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTNELE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxLQUFLLEVBQXdDLE1BQU0sNkJBQTZCLENBQUM7QUFFN0csT0FBTyxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFeEQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFN0Q7O0dBRUc7QUFDSCxxQkFBYSw0QkFBNEI7SUFLOUIsU0FBUyxFQUFFLGlCQUFpQjtJQUk1QixlQUFlLEVBQUUsc0JBQXNCO0lBSXZDLFVBQVUsRUFBRSxzQkFBc0I7SUFJbEMsZUFBZSxFQUFFLHNCQUFzQjtJQUl2QyxVQUFVLEVBQUUsc0JBQXNCO0lBSWxDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUlsRSxJQUFJLEVBQUUsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLHdCQUF3QixDQUFDO0lBSTFELG9CQUFvQixFQUFFLGVBQWU7SUFJckMsa0JBQWtCLEVBQUUsZUFBZTtJQUluQyxtQkFBbUIsRUFBRSwyQkFBMkI7SUF4Q3pEO0lBQ0U7O09BRUc7SUFDSSxTQUFTLEVBQUUsaUJBQWlCO0lBQ25DOztPQUVHO0lBQ0ksZUFBZSxFQUFFLHNCQUFzQjtJQUM5Qzs7T0FFRztJQUNJLFVBQVUsRUFBRSxzQkFBc0I7SUFDekM7O09BRUc7SUFDSSxlQUFlLEVBQUUsc0JBQXNCO0lBQzlDOztPQUVHO0lBQ0ksVUFBVSxFQUFFLHNCQUFzQjtJQUN6Qzs7T0FFRztJQUNJLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUN6RTs7T0FFRztJQUNJLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDakU7O09BRUc7SUFDSSxvQkFBb0IsRUFBRSxlQUFlO0lBQzVDOztPQUVHO0lBQ0ksa0JBQWtCLEVBQUUsZUFBZTtJQUMxQzs7T0FFRztJQUNJLG1CQUFtQixFQUFFLDJCQUEyQixFQUNyRDtJQUVKLE1BQU0sQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLGdDQWM5QztJQUVELFFBQVEsNEJBYVA7SUFFRCxRQUFRLGtCQUVQO0lBRUQsTUFBTSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsTUFBTSxnQ0FFNUI7SUFFRCw4REFBOEQ7SUFDOUQsTUFBTSw0QkFFTDtJQUVELDZDQUE2QztJQUM3QyxNQUFNLEtBQUssTUFBTSxxRUFFaEI7Q0FDRjtBQUVELHFCQUFhLFlBQVk7SUFFZCxTQUFTLEVBQUUsVUFBVTtJQUNyQixLQUFLLEVBQUUsRUFBRTtJQUZsQixZQUNTLFNBQVMsRUFBRSxVQUFVLEVBQ3JCLEtBQUssRUFBRSxFQUFFLEVBQ2Q7SUFFSixNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsWUFBWSxHQUFHLFlBQVksQ0FHN0Q7SUFFRCxRQUFRLDRCQUVQO0lBRUQsTUFBTSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQyw2QkFFOUM7SUFFRCxRQUFRLFNBRVA7SUFFRCxNQUFNLENBQUMsS0FBSyxpQkFFWDtJQUVELE9BQU8sWUFFTjtJQUVELGNBQWM7Ozs7OztNQUtiO0lBRUQsTUFBTSxDQUFDLE1BQU0saUJBRVo7Q0FDRiJ9
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,
|
|
1
|
+
{"version":3,"file":"checkpoint_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAC5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAE3D,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;GAEG;AACH,qBAAa,4BAA4B;IAK9B,SAAS,EAAE,iBAAiB;IAI5B,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,eAAe,EAAE,sBAAsB;IAIvC,UAAU,EAAE,sBAAsB;IAIlC,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAIlE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAI1D,oBAAoB,EAAE,eAAe;IAIrC,kBAAkB,EAAE,eAAe;IAInC,mBAAmB,EAAE,2BAA2B;IAxCzD;IACE;;OAEG;IACI,SAAS,EAAE,iBAAiB;IACnC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,eAAe,EAAE,sBAAsB;IAC9C;;OAEG;IACI,UAAU,EAAE,sBAAsB;IACzC;;OAEG;IACI,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IACzE;;OAEG;IACI,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IACjE;;OAEG;IACI,oBAAoB,EAAE,eAAe;IAC5C;;OAEG;IACI,kBAAkB,EAAE,eAAe;IAC1C;;OAEG;IACI,mBAAmB,EAAE,2BAA2B,EACrD;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,gCAc9C;IAED,QAAQ,4BAaP;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,gCAE5B;IAED,8DAA8D;IAC9D,MAAM,4BAEL;IAED,6CAA6C;IAC7C,MAAM,KAAK,MAAM,qEAEhB;CACF;AAED,qBAAa,YAAY;IAEd,SAAS,EAAE,UAAU;IACrB,KAAK,EAAE,EAAE;IAFlB,YACS,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,EAAE,EACd;IAEJ,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,YAAY,CAG7D;IAED,QAAQ,4BAEP;IAED,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,YAAY,CAAC,6BAE9C;IAED,QAAQ,SAEP;IAED,MAAM,CAAC,KAAK,iBAEX;IAED,OAAO,YAEN;IAED,cAAc;;;;;;MAKb;IAED,MAAM,CAAC,MAAM,iBAEZ;CACF"}
|
|
@@ -13,8 +13,9 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
13
13
|
constants;
|
|
14
14
|
previousArchive;
|
|
15
15
|
newArchive;
|
|
16
|
+
previousOutHash;
|
|
17
|
+
newOutHash;
|
|
16
18
|
checkpointHeaderHashes;
|
|
17
|
-
outHashes;
|
|
18
19
|
fees;
|
|
19
20
|
startBlobAccumulator;
|
|
20
21
|
endBlobAccumulator;
|
|
@@ -26,10 +27,12 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
26
27
|
*/ previousArchive, /**
|
|
27
28
|
* Archive tree after adding this checkpoint range.
|
|
28
29
|
*/ newArchive, /**
|
|
30
|
+
* The out hash tree snapshot immediately before this checkpoint range.
|
|
31
|
+
*/ previousOutHash, /**
|
|
32
|
+
* The out hash tree snapshot after applying this checkpoint range.
|
|
33
|
+
*/ newOutHash, /**
|
|
29
34
|
* The hashes of the headers of the constituent checkpoints.
|
|
30
35
|
*/ checkpointHeaderHashes, /**
|
|
31
|
-
* The `out_hash` values from all checkpoints in this checkpoint range.
|
|
32
|
-
*/ outHashes, /**
|
|
33
36
|
* The summed transaction fees and recipients of the constituent checkpoints.
|
|
34
37
|
*/ fees, /**
|
|
35
38
|
* Accumulated opening proofs for all blobs before this checkpoint range.
|
|
@@ -41,8 +44,9 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
41
44
|
this.constants = constants;
|
|
42
45
|
this.previousArchive = previousArchive;
|
|
43
46
|
this.newArchive = newArchive;
|
|
47
|
+
this.previousOutHash = previousOutHash;
|
|
48
|
+
this.newOutHash = newOutHash;
|
|
44
49
|
this.checkpointHeaderHashes = checkpointHeaderHashes;
|
|
45
|
-
this.outHashes = outHashes;
|
|
46
50
|
this.fees = fees;
|
|
47
51
|
this.startBlobAccumulator = startBlobAccumulator;
|
|
48
52
|
this.endBlobAccumulator = endBlobAccumulator;
|
|
@@ -50,10 +54,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
50
54
|
}
|
|
51
55
|
static fromBuffer(buffer) {
|
|
52
56
|
const reader = BufferReader.asReader(buffer);
|
|
53
|
-
return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.
|
|
57
|
+
return new CheckpointRollupPublicInputs(reader.readObject(EpochConstantData), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(AZTEC_MAX_EPOCH_DURATION, Fr), reader.readArray(AZTEC_MAX_EPOCH_DURATION, FeeRecipient), reader.readObject(BlobAccumulator), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges));
|
|
54
58
|
}
|
|
55
59
|
toBuffer() {
|
|
56
|
-
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.
|
|
60
|
+
return serializeToBuffer(this.constants, this.previousArchive, this.newArchive, this.previousOutHash, this.newOutHash, this.checkpointHeaderHashes, this.fees, this.startBlobAccumulator, this.endBlobAccumulator, this.finalBlobChallenges);
|
|
57
61
|
}
|
|
58
62
|
toString() {
|
|
59
63
|
return bufferToHex(this.toBuffer());
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
|
-
import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT } from '@aztec/constants';
|
|
2
|
+
import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, OUT_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { BufferReader, type Tuple } from '@aztec/foundation/serialize';
|
|
6
6
|
import type { FieldsOf } from '@aztec/foundation/types';
|
|
7
7
|
import { type RollupHonkProofData } from '../proofs/proof_data.js';
|
|
8
|
+
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
8
9
|
import { BlockHeader } from '../tx/block_header.js';
|
|
9
10
|
import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
|
|
10
11
|
export declare class CheckpointRootRollupHints {
|
|
11
12
|
previousBlockHeader: BlockHeader;
|
|
12
13
|
previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>;
|
|
14
|
+
previousOutHash: AppendOnlyTreeSnapshot;
|
|
15
|
+
newOutHashSiblingPath: Tuple<Fr, typeof OUT_HASH_TREE_HEIGHT>;
|
|
13
16
|
startBlobAccumulator: BlobAccumulator;
|
|
14
17
|
finalBlobChallenges: FinalBlobBatchingChallenges;
|
|
15
18
|
blobFields: Fr[];
|
|
@@ -24,6 +27,14 @@ export declare class CheckpointRootRollupHints {
|
|
|
24
27
|
* Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
|
|
25
28
|
*/
|
|
26
29
|
previousArchiveSiblingPath: Tuple<Fr, typeof ARCHIVE_HEIGHT>,
|
|
30
|
+
/**
|
|
31
|
+
* The out hash tree snapshot immediately before this checkpoint.
|
|
32
|
+
*/
|
|
33
|
+
previousOutHash: AppendOnlyTreeSnapshot,
|
|
34
|
+
/**
|
|
35
|
+
* Hint for inserting the new out hash into the out hash tree.
|
|
36
|
+
*/
|
|
37
|
+
newOutHashSiblingPath: Tuple<Fr, typeof OUT_HASH_TREE_HEIGHT>,
|
|
27
38
|
/**
|
|
28
39
|
* The current blob accumulation state across the epoch.
|
|
29
40
|
*/
|
|
@@ -48,7 +59,7 @@ export declare class CheckpointRootRollupHints {
|
|
|
48
59
|
*/
|
|
49
60
|
blobsHash: Fr);
|
|
50
61
|
static from(fields: FieldsOf<CheckpointRootRollupHints>): CheckpointRootRollupHints;
|
|
51
|
-
static getFields(fields: FieldsOf<CheckpointRootRollupHints>): readonly [BlockHeader, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], BlobAccumulator, FinalBlobBatchingChallenges, Fr[], [BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point], Fr];
|
|
62
|
+
static getFields(fields: FieldsOf<CheckpointRootRollupHints>): readonly [BlockHeader, [Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr, Fr], AppendOnlyTreeSnapshot, [Fr, Fr, Fr, Fr, Fr, Fr], BlobAccumulator, FinalBlobBatchingChallenges, Fr[], [BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point, BLS12Point], Fr];
|
|
52
63
|
toBuffer(): Buffer<ArrayBufferLike>;
|
|
53
64
|
static fromBuffer(buffer: Buffer | BufferReader): CheckpointRootRollupHints;
|
|
54
65
|
toString(): `0x${string}`;
|
|
@@ -97,4 +108,4 @@ export declare class CheckpointPaddingRollupPrivateInputs {
|
|
|
97
108
|
toJSON(): Buffer<ArrayBuffer>;
|
|
98
109
|
static get schema(): import("zod").ZodType<CheckpointPaddingRollupPrivateInputs, any, string>;
|
|
99
110
|
}
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2twb2ludF9yb290X3JvbGx1cF9wcml2YXRlX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9jaGVja3BvaW50X3Jvb3Rfcm9sbHVwX3ByaXZhdGVfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNyRixPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFtQixvQkFBb0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQy9HLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFcEQsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEtBQUssRUFBcUIsTUFBTSw2QkFBNkIsQ0FBQztBQUUxRixPQUFPLEtBQUssRUFBRSxRQUFRLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV4RCxPQUFPLEVBQWEsS0FBSyxtQkFBbUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQzlFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUUxRSxxQkFBYSx5QkFBeUI7SUFLM0IsbUJBQW1CLEVBQUUsV0FBVztJQUloQywwQkFBMEIsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sY0FBYyxDQUFDO0lBSTVELGVBQWUsRUFBRSxzQkFBc0I7SUFJdkMscUJBQXFCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLG9CQUFvQixDQUFDO0lBSTdELG9CQUFvQixFQUFFLGVBQWU7SUFJckMsbUJBQW1CLEVBQUUsMkJBQTJCO0lBTWhE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
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"checkpoint_root_rollup_private_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_root_rollup_private_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAmB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"checkpoint_root_rollup_private_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/checkpoint_root_rollup_private_inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,19 @@
|
|
|
1
1
|
import { BlobAccumulator, FinalBlobBatchingChallenges } from '@aztec/blob-lib/types';
|
|
2
|
-
import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB } from '@aztec/constants';
|
|
2
|
+
import { ARCHIVE_HEIGHT, BLOBS_PER_CHECKPOINT, FIELDS_PER_BLOB, OUT_HASH_TREE_HEIGHT } from '@aztec/constants';
|
|
3
3
|
import { BLS12Point } from '@aztec/foundation/curves/bls12';
|
|
4
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
5
5
|
import { bufferSchemaFor } from '@aztec/foundation/schemas';
|
|
6
6
|
import { BufferReader, serializeToBuffer } from '@aztec/foundation/serialize';
|
|
7
7
|
import { bufferToHex, hexToBuffer } from '@aztec/foundation/string';
|
|
8
8
|
import { ProofData } from '../proofs/proof_data.js';
|
|
9
|
+
import { AppendOnlyTreeSnapshot } from '../trees/append_only_tree_snapshot.js';
|
|
9
10
|
import { BlockHeader } from '../tx/block_header.js';
|
|
10
11
|
import { BlockRollupPublicInputs } from './block_rollup_public_inputs.js';
|
|
11
12
|
export class CheckpointRootRollupHints {
|
|
12
13
|
previousBlockHeader;
|
|
13
14
|
previousArchiveSiblingPath;
|
|
15
|
+
previousOutHash;
|
|
16
|
+
newOutHashSiblingPath;
|
|
14
17
|
startBlobAccumulator;
|
|
15
18
|
finalBlobChallenges;
|
|
16
19
|
blobFields;
|
|
@@ -21,6 +24,10 @@ export class CheckpointRootRollupHints {
|
|
|
21
24
|
*/ previousBlockHeader, /**
|
|
22
25
|
* Hint for checking the hash of previous_block_header is the last leaf of the previous archive.
|
|
23
26
|
*/ previousArchiveSiblingPath, /**
|
|
27
|
+
* The out hash tree snapshot immediately before this checkpoint.
|
|
28
|
+
*/ previousOutHash, /**
|
|
29
|
+
* Hint for inserting the new out hash into the out hash tree.
|
|
30
|
+
*/ newOutHashSiblingPath, /**
|
|
24
31
|
* The current blob accumulation state across the epoch.
|
|
25
32
|
*/ startBlobAccumulator, /**
|
|
26
33
|
* Finalized challenges z and gamma for performing blob batching. Shared value across the epoch.
|
|
@@ -36,6 +43,8 @@ export class CheckpointRootRollupHints {
|
|
|
36
43
|
*/ blobsHash){
|
|
37
44
|
this.previousBlockHeader = previousBlockHeader;
|
|
38
45
|
this.previousArchiveSiblingPath = previousArchiveSiblingPath;
|
|
46
|
+
this.previousOutHash = previousOutHash;
|
|
47
|
+
this.newOutHashSiblingPath = newOutHashSiblingPath;
|
|
39
48
|
this.startBlobAccumulator = startBlobAccumulator;
|
|
40
49
|
this.finalBlobChallenges = finalBlobChallenges;
|
|
41
50
|
this.blobFields = blobFields;
|
|
@@ -49,6 +58,8 @@ export class CheckpointRootRollupHints {
|
|
|
49
58
|
return [
|
|
50
59
|
fields.previousBlockHeader,
|
|
51
60
|
fields.previousArchiveSiblingPath,
|
|
61
|
+
fields.previousOutHash,
|
|
62
|
+
fields.newOutHashSiblingPath,
|
|
52
63
|
fields.startBlobAccumulator,
|
|
53
64
|
fields.finalBlobChallenges,
|
|
54
65
|
fields.blobFields,
|
|
@@ -61,7 +72,7 @@ export class CheckpointRootRollupHints {
|
|
|
61
72
|
}
|
|
62
73
|
static fromBuffer(buffer) {
|
|
63
74
|
const reader = BufferReader.asReader(buffer);
|
|
64
|
-
return new CheckpointRootRollupHints(BlockHeader.fromBuffer(reader), reader.readArray(ARCHIVE_HEIGHT, Fr), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges), // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
75
|
+
return new CheckpointRootRollupHints(BlockHeader.fromBuffer(reader), reader.readArray(ARCHIVE_HEIGHT, Fr), reader.readObject(AppendOnlyTreeSnapshot), reader.readArray(OUT_HASH_TREE_HEIGHT, Fr), reader.readObject(BlobAccumulator), reader.readObject(FinalBlobBatchingChallenges), // Below line gives error 'Type instantiation is excessively deep and possibly infinite. ts(2589)'
|
|
65
76
|
// reader.readArray(FIELDS_PER_BLOB, Fr),
|
|
66
77
|
Array.from({
|
|
67
78
|
length: FIELDS_PER_BLOB * BLOBS_PER_CHECKPOINT
|
|
@@ -23,7 +23,10 @@ export declare class RootRollupPublicInputs {
|
|
|
23
23
|
previousArchiveRoot: Fr,
|
|
24
24
|
/** Root of the archive tree after this rollup is processed */
|
|
25
25
|
endArchiveRoot: Fr,
|
|
26
|
-
/**
|
|
26
|
+
/**
|
|
27
|
+
* Root of the balanced merkle tree consisting of the out hashes of all checkpoints in this epoch.
|
|
28
|
+
* The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on.
|
|
29
|
+
*/
|
|
27
30
|
outHash: Fr,
|
|
28
31
|
/** Hashes of checkpoint headers for this rollup. */
|
|
29
32
|
checkpointHeaderHashes: Tuple<Fr, typeof AZTEC_MAX_EPOCH_DURATION>, fees: Tuple<FeeRecipient, typeof AZTEC_MAX_EPOCH_DURATION>, constants: EpochConstantData, blobPublicInputs: FinalBlobAccumulator);
|
|
@@ -46,4 +49,4 @@ export declare class RootRollupPublicInputs {
|
|
|
46
49
|
/** Creates a random instance. Used for testing only - will not prove/verify. */
|
|
47
50
|
static random(): RootRollupPublicInputs;
|
|
48
51
|
}
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdF9yb2xsdXBfcHVibGljX2lucHV0cy5kLnRzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3JvbGx1cC9yb290X3JvbGx1cF9wdWJsaWNfaW5wdXRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRTVELE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVwRCxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssS0FBSyxFQUF3QyxNQUFNLDZCQUE2QixDQUFDO0FBRTdHLE9BQU8sS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRXhELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUNwRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUU3RDs7OztHQUlHO0FBQ0gscUJBQWEsc0JBQXNCO0lBR3hCLG1CQUFtQixFQUFFLEVBQUU7SUFFdkIsY0FBYyxFQUFFLEVBQUU7SUFLbEIsT0FBTyxFQUFFLEVBQUU7SUFFWCxzQkFBc0IsRUFBRSxLQUFLLENBQUMsRUFBRSxFQUFFLE9BQU8sd0JBQXdCLENBQUM7SUFDbEUsSUFBSSxFQUFFLEtBQUssQ0FBQyxZQUFZLEVBQUUsT0FBTyx3QkFBd0IsQ0FBQztJQUMxRCxTQUFTLEVBQUUsaUJBQWlCO0lBQzVCLGdCQUFnQixFQUFFLG9CQUFvQjtJQWQvQztJQUNFLCtEQUErRDtJQUN4RCxtQkFBbUIsRUFBRSxFQUFFO0lBQzlCLDhEQUE4RDtJQUN2RCxjQUFjLEVBQUUsRUFBRTtJQUN6Qjs7O09BR0c7SUFDSSxPQUFPLEVBQUUsRUFBRTtJQUNsQixvREFBb0Q7SUFDN0Msc0JBQXNCLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxPQUFPLHdCQUF3QixDQUFDLEVBQ2xFLElBQUksRUFBRSxLQUFLLENBQUMsWUFBWSxFQUFFLE9BQU8sd0JBQXdCLENBQUMsRUFDMUQsU0FBUyxFQUFFLGlCQUFpQixFQUM1QixnQkFBZ0IsRUFBRSxvQkFBb0IsRUFDM0M7SUFFSixNQUFNLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsczZCQVV4RDtJQUVELFFBQVEsNEJBRVA7SUFFRCxRQUFRLElBQUksRUFBRSxFQUFFLENBRWY7SUFFRCxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsR0FBRyxzQkFBc0IsQ0FFNUU7SUFFRDs7OztPQUlHO0lBQ0gsT0FBYyxVQUFVLENBQUMsTUFBTSxFQUFFLE1BQU0sR0FBRyxZQUFZLEdBQUcsc0JBQXNCLENBVzlFO0lBRUQsUUFBUSxrQkFFUDtJQUVELE1BQU0sQ0FBQyxVQUFVLENBQUMsR0FBRyxFQUFFLE1BQU0sMEJBRTVCO0lBRUQsdURBQXVEO0lBQ3ZELE1BQU0sNEJBRUw7SUFFRCx5Q0FBeUM7SUFDekMsTUFBTSxLQUFLLE1BQU0sK0RBRWhCO0lBRUQsZ0ZBQWdGO0lBQ2hGLE1BQU0sQ0FBQyxNQUFNLDJCQVVaO0NBQ0YifQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"root_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/root_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,sBAAsB;IAGxB,mBAAmB,EAAE,EAAE;IAEvB,cAAc,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"root_rollup_public_inputs.d.ts","sourceRoot":"","sources":["../../src/rollup/root_rollup_public_inputs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,EAAE,EAAE,MAAM,gCAAgC,CAAC;AAEpD,OAAO,EAAE,YAAY,EAAE,KAAK,KAAK,EAAwC,MAAM,6BAA6B,CAAC;AAE7G,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AAExD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAE7D;;;;GAIG;AACH,qBAAa,sBAAsB;IAGxB,mBAAmB,EAAE,EAAE;IAEvB,cAAc,EAAE,EAAE;IAKlB,OAAO,EAAE,EAAE;IAEX,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC;IAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC;IAC1D,SAAS,EAAE,iBAAiB;IAC5B,gBAAgB,EAAE,oBAAoB;IAd/C;IACE,+DAA+D;IACxD,mBAAmB,EAAE,EAAE;IAC9B,8DAA8D;IACvD,cAAc,EAAE,EAAE;IACzB;;;OAGG;IACI,OAAO,EAAE,EAAE;IAClB,oDAAoD;IAC7C,sBAAsB,EAAE,KAAK,CAAC,EAAE,EAAE,OAAO,wBAAwB,CAAC,EAClE,IAAI,EAAE,KAAK,CAAC,YAAY,EAAE,OAAO,wBAAwB,CAAC,EAC1D,SAAS,EAAE,iBAAiB,EAC5B,gBAAgB,EAAE,oBAAoB,EAC3C;IAEJ,MAAM,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,s6BAUxD;IAED,QAAQ,4BAEP;IAED,QAAQ,IAAI,EAAE,EAAE,CAEf;IAED,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,sBAAsB,CAAC,GAAG,sBAAsB,CAE5E;IAED;;;;OAIG;IACH,OAAc,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,sBAAsB,CAW9E;IAED,QAAQ,kBAEP;IAED,MAAM,CAAC,UAAU,CAAC,GAAG,EAAE,MAAM,0BAE5B;IAED,uDAAuD;IACvD,MAAM,4BAEL;IAED,yCAAyC;IACzC,MAAM,KAAK,MAAM,+DAEhB;IAED,gFAAgF;IAChF,MAAM,CAAC,MAAM,2BAUZ;CACF"}
|
|
@@ -19,7 +19,10 @@ import { EpochConstantData } from './epoch_constant_data.js';
|
|
|
19
19
|
fees;
|
|
20
20
|
constants;
|
|
21
21
|
blobPublicInputs;
|
|
22
|
-
constructor(/** Root of the archive tree before this rollup is processed */ previousArchiveRoot, /** Root of the archive tree after this rollup is processed */ endArchiveRoot, /**
|
|
22
|
+
constructor(/** Root of the archive tree before this rollup is processed */ previousArchiveRoot, /** Root of the archive tree after this rollup is processed */ endArchiveRoot, /**
|
|
23
|
+
* Root of the balanced merkle tree consisting of the out hashes of all checkpoints in this epoch.
|
|
24
|
+
* The out hash of the first checkpoint in the epoch is inserted at index 0, the second at index 1, and so on.
|
|
25
|
+
*/ outHash, /** Hashes of checkpoint headers for this rollup. */ checkpointHeaderHashes, fees, constants, blobPublicInputs){
|
|
23
26
|
this.previousArchiveRoot = previousArchiveRoot;
|
|
24
27
|
this.endArchiveRoot = endArchiveRoot;
|
|
25
28
|
this.outHash = outHash;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { type FieldsOf } from '@aztec/foundation/array';
|
|
2
|
+
import { BlockNumber, CheckpointNumber } from '@aztec/foundation/branded-types';
|
|
2
3
|
import { SchnorrSignature } from '@aztec/foundation/crypto/schnorr';
|
|
3
4
|
import { Fr } from '@aztec/foundation/curves/bn254';
|
|
4
5
|
import { GrumpkinScalar, Point } from '@aztec/foundation/curves/grumpkin';
|
|
@@ -13,6 +14,7 @@ import { PublicDataRead } from '../avm/public_data_read.js';
|
|
|
13
14
|
import { PublicDataWrite } from '../avm/public_data_write.js';
|
|
14
15
|
import { AztecAddress } from '../aztec-address/index.js';
|
|
15
16
|
import { L2BlockHeader } from '../block/l2_block_header.js';
|
|
17
|
+
import type { L2Tips } from '../block/l2_block_source.js';
|
|
16
18
|
import { type ContractClassPublic, ContractDeploymentData, type ContractInstanceWithAddress, type ExecutablePrivateFunctionWithMembershipProof, type UtilityFunctionWithMembershipProof } from '../contract/index.js';
|
|
17
19
|
import { Gas, GasSettings } from '../gas/index.js';
|
|
18
20
|
import { PrivateKernelTailCircuitPublicInputs, PrivateToPublicAccumulatedData, PrivateToPublicKernelCircuitPublicInputs, PrivateToRollupAccumulatedData } from '../kernel/index.js';
|
|
@@ -395,4 +397,14 @@ export declare function randomTxScopedPublicL2Log(opts?: {
|
|
|
395
397
|
noteHashes?: Fr[];
|
|
396
398
|
firstNullifier?: Fr;
|
|
397
399
|
}): Promise<TxScopedL2Log>;
|
|
398
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUtuRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVwRSxPQUFPLEVBQU0sRUFBRSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUMxRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDM0QsT0FBTyxLQUFLLEVBQUUsVUFBVSxFQUF1QixNQUFNLDZCQUE2QixDQUFDO0FBQ25GLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBRTVELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBQ3pGLE9BQU8sRUFHTCxtQkFBbUIsRUFDbkIseUJBQXlCLEVBQ3pCLGdCQUFnQixFQUVoQix1QkFBdUIsRUFDdkIsb0JBQW9CLEVBQ3BCLGlDQUFpQyxFQUNqQyxpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLHVCQUF1QixFQUN2Qix1QkFBdUIsRUFDdkIsd0JBQXdCLEVBQ3hCLGlCQUFpQixFQUNqQixtQ0FBbUMsRUFDbkMsb0NBQW9DLEVBQ3BDLG1CQUFtQixFQUNuQiw0QkFBNEIsRUFDNUIscUJBQXFCLEVBQ3JCLHVCQUF1QixFQUN2QixvQ0FBb0MsRUFDcEMscUNBQXFDLEVBQ3JDLFNBQVMsRUFDVixNQUFNLGlCQUFpQixDQUFDO0FBQ3pCLE9BQU8sRUFBRSxj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
|
|
400
|
+
/**
|
|
401
|
+
* Creates L2Tips with all tips pointing to the same block number.
|
|
402
|
+
* Useful for mocking aztecNode.getL2Tips() in tests.
|
|
403
|
+
* @param blockNumber - The block number to use for all tips.
|
|
404
|
+
* @param hash - Optional hash for the block (defaults to empty string).
|
|
405
|
+
* @param checkpointNumber - Optional checkpoint number (defaults to blockNumber).
|
|
406
|
+
* @param checkpointHash - Optional checkpoint hash (defaults to block hash).
|
|
407
|
+
* @returns L2Tips object with all tips at the same block.
|
|
408
|
+
*/
|
|
409
|
+
export declare function makeL2Tips(blockNumber: number | BlockNumber, hash?: string, checkpointNumber?: number | CheckpointNumber, checkpointHash?: string): L2Tips;
|
|
410
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFjdG9yaWVzLmQudHMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdGVzdHMvZmFjdG9yaWVzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRDQSxPQUFPLEVBQUUsS0FBSyxRQUFRLEVBQWEsTUFBTSx5QkFBeUIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFjLE1BQU0saUNBQWlDLENBQUM7QUFJNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFcEUsT0FBTyxFQUFNLEVBQUUsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsS0FBSyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDMUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQzNELE9BQU8sS0FBSyxFQUFFLFVBQVUsRUFBdUIsTUFBTSw2QkFBNkIsQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUU1RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMvRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSwyQ0FBMkMsQ0FBQztBQUN6RixPQUFPLEVBR0wsbUJBQW1CLEVBQ25CLHlCQUF5QixFQUN6QixnQkFBZ0IsRUFFaEIsdUJBQXVCLEVBQ3ZCLG9CQUFvQixFQUNwQixpQ0FBaUMsRUFDakMsaUNBQWlDLEVBQ2pDLGlDQUFpQyxFQUNqQyx1QkFBdUIsRUFDdkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4QixpQkFBaUIsRUFDakIsbUNBQW1DLEVBQ25DLG9DQUFvQyxFQUNwQyxtQkFBbUIsRUFDbkIsNEJBQTRCLEVBQzVCLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsb0NBQW9DLEVBQ3BDLHFDQUFxQyxFQUNyQyxTQUFTLEVBQ1YsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDNUQsT0FBTyxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDMUQsT0FBTyxFQUNMLEtBQUssbUJBQW1CLEVBQ3hCLHNCQUFzQixFQUN0QixLQUFLLDJCQUEyQixFQUNoQyxLQUFLLDRDQUE0QyxFQUdqRCxLQUFLLGtDQUFrQyxFQUd4QyxNQUFNLHNCQUFzQixDQUFDO0FBQzlCLE9BQU8sRUFBRSxHQUFHLEVBQVcsV0FBVyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFLNUQsT0FBTyxFQUlMLG9DQUFvQyxFQUdwQyw4QkFBOEIsRUFDOUIsd0NBQXdDLEVBQ3hDLDhCQUE4QixFQUMvQixNQUFNLG9CQUFvQixDQUFDO0FBSzVCLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBRXhGLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBQ3ZILE9BQU8sRUFFTCxpQkFBaUIsRUFDakIsNkJBQTZCLEVBQzlCLE1BQU0sa0NBQWtDLENBQUM7QUFDMUMsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxrQkFBa0IsQ0FBQztBQUM5RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQTBCLE1BQU0sa0JBQWtCLENBQUM7QUFHNUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzVELE9BQU8sRUFBd0IsYUFBYSxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUcsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDdkUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBdUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNwRSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFJM0MsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFDL0YsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDbEYsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQyxvQ0FBb0MsRUFDckMsTUFBTSwrQ0FBK0MsQ0FBQztBQUV2RCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNsRSxPQUFPLEVBQUUsNEJBQTRCLEVBQWdCLE1BQU0sOENBQThDLENBQUM7QUFFMUcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sb0RBQW9ELENBQUM7QUFDdEcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDbkcsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDcEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0NBQXdDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDOUUsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDekYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDNUUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFL0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2xGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzlGLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzVELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQzNGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUcxRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSx1QkFBdUIsRUFBdUIsTUFBTSw0QkFBNEIsQ0FBQztBQTBDM0c7Ozs7R0FJRztBQUNILHdCQUFnQixhQUFhLENBQUMsSUFBSSxHQUFFLE1BQVUsR0FBRyxTQUFTLENBR3pEO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsZUFBZSxnQkFFOUI7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFlBQVksQ0FBQyxJQUFJLEVBQUUsTUFBTSxHQUFHLGdCQUFnQixDQUUzRDtBQXdCRCx3QkFBZ0IsbUJBQW1CLENBQUMsSUFBSSxTQUFJLG1CQUUzQztBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isa0JBQWtCLENBQUMsSUFBSSxTQUFJLEdBQUcsY0FBYyxDQUUzRDtBQUVEOzs7R0FHRztBQUNILHdCQUFnQix1QkFBdUIsSUFBSSxjQUFjLENBRXhEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixnQ0FBZ0MsQ0FBQyxJQUFJLFNBQUksR0FBRyw0QkFBNEIsQ0FFdkY7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHVCQUF1QixDQUFDLElBQUksU0FBSSxHQUFHLG1CQUFtQixDQUVyRTtBQXFCRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGtDQUFrQyxDQUNoRCxJQUFJLFNBQUksRUFDUixFQUNFLGFBQXNDLEVBQ3RDLGFBQXFDLEVBQ3JDLGlCQUE0QyxFQUM1QyxjQUF3QyxFQUN4QyxvQkFBcUQsRUFDdEQsR0FBRTtJQUNELGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixhQUFhLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDdkIsaUJBQWlCLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDM0IsY0FBYyxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3hCLG9CQUFvQixDQUFDLEVBQUUsTUFBTSxDQUFDO0NBQzFCLEdBQ0wsOEJBQThCLENBb0JoQztBQUVELHdCQUFnQixrQ0FBa0MsQ0FDaEQsSUFBSSxTQUFJLEVBQ1IsRUFDRSxhQUFzQyxFQUN0QyxhQUFxQyxFQUNyQyxpQkFBNEMsRUFDNUMsY0FBd0MsRUFDeEMsb0JBQXFELEVBQ3JELGdCQUE0QyxFQUM3QyxHQUFFO0lBQ0QsYUFBYSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ3ZCLGFBQWEsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUN2QixpQkFBaUIsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUMzQixjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsb0JBQW9CLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDOUIsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLENBQUM7Q0FDdEIsa0NBNEJQO0FBNEJELHdCQUFnQixPQUFPLENBQUMsSUFBSSxTQUFJLE9BSy9CO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixlQUFlLENBQUMsSUFBSSxTQUFJLEVBQUUsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQU0sR0FBRyxXQUFXLENBUXJHO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQix3Q0FBd0MsQ0FDdEQsSUFBSSxTQUFJLEVBQ1IsV0FBVyxVQUFPLEdBQ2pCLG9DQUFvQyxDQW1CdEM7QUFFRCx3QkFBZ0IsNENBQTRDLENBQUMsSUFBSSxTQUFJLDRDQVVwRTtBQUVELHdCQUFnQixtQ0FBbUMsQ0FBQyxJQUFJLFNBQUksbUNBRTNEO0FBRUQsd0JBQWdCLHFCQUFxQixDQUFDLElBQUksU0FBSSxxQkFFN0M7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLDRDQUE0QyxDQUFDLElBQUksU0FBSSxHQUFHLHdDQUF3QyxDQVEvRztBQWlDRDs7Ozs7R0FLRztBQUNILHdCQUFnQixxQkFBcUIsQ0FBQyxDQUFDLFNBQVMsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FFcEc7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxFQUFFLE1BQU0sR0FBRyx1QkFBdUIsQ0FFakY7QUFFRDs7O0dBR0c7QUFDSCx3QkFBZ0IsbUJBQW1CLElBQUksZUFBZSxDQUVyRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsU0FBUyxDQUFDLElBQUksU0FBSSxHQUFHLEtBQUssQ0FFekM7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGtCQUFrQixDQUFDLElBQUksU0FBSSxHQUFHLGNBQWMsQ0FFM0Q7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLFNBQVMsQ0FBQyxJQUFJLFNBQUksU0FFakM7QUFNRCx3QkFBZ0IscUJBQXFCLENBQUMsSUFBSSxTQUFJLHFCQUU3QztBQUVELHdCQUFnQixpQ0FBaUMsQ0FBQyxJQUFJLFNBQUksaUNBRXpEO0FBTUQ7Ozs7R0FJRztBQUNILHdCQUFnQixhQUFhLENBQUMsSUFBSSxTQUFJLEdBQUcsU0FBUyxDQVFqRDtBQVdEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsOEJBQThCLENBQUMsSUFBSSxTQUFJLEdBQUcsMEJBQTBCLENBMENuRjtBQUVELHdCQUFnQixtQkFBbUIsQ0FBQyxJQUFJLFNBQUksRUFBRSxTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBTSxHQUFHLGVBQWUsQ0FZakg7QUFVRDs7OztHQUlHO0FBQ0gsd0JBQWdCLDBCQUEwQixDQUFDLElBQUksU0FBSSxHQUFHLHNCQUFzQixDQUkzRTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsY0FBYyxDQUFDLElBQUksU0FBSSxHQUFHLFVBQVUsQ0FFbkQ7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixTQUFTLENBQUMsSUFBSSxTQUFLLEVBQUUsSUFBSSxTQUFJLEdBQUcsTUFBTSxDQUVyRDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsZ0JBQWdCLENBQUMsSUFBSSxTQUFJLEdBQUcsWUFBWSxDQUV2RDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0Isb0JBQW9CLENBQUMsSUFBSSxTQUFJLEdBQUcsZ0JBQWdCLENBRS9EO0FBK0JEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLHdCQUF3QixDQUN0QyxJQUFJLFNBQUksRUFDUixlQUFlLEdBQUUsZUFBZSxHQUFHLFNBQXFCLEdBQ3ZELG9CQUFvQixDQVl0QjtBQUVEOzs7OztHQUtHO0FBQ0gsd0JBQWdCLDJCQUEyQixDQUFDLElBQUksU0FBSSxHQUFHLHVCQUF1QixDQWdCN0U7QUFFRCx3QkFBZ0IsZ0NBQWdDLENBQUMsSUFBSSxTQUFJLGdDQWF4RDtBQUVELHdCQUFnQixzQkFBc0IsQ0FBQyxJQUFJLFNBQUksR0FBRyxrQkFBa0IsQ0FNbkU7QUFFRCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxTQUFJLEdBQUcsdUJBQXVCLENBRTdFO0FBRUQsd0JBQWdCLDJCQUEyQixDQUFDLElBQUksU0FBSSwyQkFJbkQ7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQiwwQkFBMEIsQ0FBQyxJQUFJLFNBQUksR0FBRyxzQkFBc0IsQ0FVM0U7QUFFRCx3QkFBZ0IsZUFBZSxDQUM3QixJQUFJLFNBQUksRUFDUixTQUFTLEdBQUUsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLGlCQUFpQixDQUFDLENBQUMsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQU0sR0FDM0csV0FBVyxDQVViO0FBRUQsd0JBQWdCLGlCQUFpQixDQUMvQixJQUFJLFNBQUksRUFDUixXQUFXLENBQUMsRUFBRSxNQUFNLEVBQ3BCLFVBQVUsQ0FBQyxFQUFFLE1BQU0sRUFDbkIsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQU0saUJBaUJqRDtBQUVELHdCQUFnQixvQkFBb0IsQ0FBQyxJQUFJLFNBQUksb0JBYzVDO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixrQkFBa0IsQ0FBQyxJQUFJLFNBQUksR0FBRyxjQUFjLENBSzNEO0FBV0Q7Ozs7R0FJRztBQUNILHdCQUFnQixpQkFBaUIsQ0FBQyxJQUFJLFNBQUksR0FBRyxhQUFhLENBS3pEO0FBTUQsd0JBQWdCLHVCQUF1QixDQUFDLElBQUksU0FBSSx1QkFFL0M7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLElBQUksU0FBSSxHQUFHLHFCQUFxQixDQU16RTtBQUVELHdCQUFnQiw4QkFBOEIsQ0FBQyxJQUFJLFNBQUksR0FBRywwQkFBMEIsQ0FLbkY7QUFFRCx3QkFBZ0IscUNBQXFDLENBQUMsSUFBSSxTQUFJLHFDQVE3RDtBQUVELHdCQUFnQix3Q0FBd0MsQ0FBQyxJQUFJLFNBQUksd0NBS2hFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixpQ0FBaUMsQ0FBQyxJQUFJLFNBQUksaUNBS3pEO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQixzQkFBc0IsQ0FBQyxJQUFJLFNBQUksR0FBRyxrQkFBa0IsQ0FFbkU7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLGlCQUFpQixDQUFDLElBQUksU0FBSSxHQUFHLGFBQWEsQ0FFekQ7QUFFRDs7OztHQUlHO0FBQ0gsd0JBQWdCLHlCQUF5QixDQUFDLElBQUksU0FBSSxHQUFHLHFCQUFxQixDQUV6RTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsOEJBQThCLENBQUMsSUFBSSxTQUFJLEdBQUcsMEJBQTBCLENBRW5GO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFnQix5QkFBeUIsQ0FBQyxJQUFJLFNBQUksR0FBRyxxQkFBcUIsQ0FnQ3pFO0FBTUQsd0JBQWdCLGFBQWEsQ0FBQyxDQUFDLFNBQVMsVUFBVSxFQUFFLFlBQVksU0FBUyxNQUFNLEVBQzdFLElBQUksb0JBQUksRUFDUixnQkFBZ0IsRUFBRSxDQUFDLElBQUksRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUNyQyxTQUFTLEdBQUUsWUFBd0UsOEJBT3BGO0FBaURELHdCQUFnQixvQ0FBb0MsQ0FBQyxJQUFJLFNBQUksb0NBSzVEO0FBRUQsd0JBQWdCLG1DQUFtQyxDQUFDLElBQUksU0FBSSxtQ0FrQjNEO0FBRUQsd0JBQWdCLGdEQUFnRCxDQUM5RCxJQUFJLFNBQUksR0FDUCw0Q0FBNEMsQ0FhOUM7QUFFRCx3QkFBZ0Isc0NBQXNDLENBQUMsSUFBSSxTQUFJLEdBQUcsa0NBQWtDLENBVW5HO0FBRUQsd0JBQXNCLHVCQUF1QixDQUFDLElBQUksU0FBSSxFQUFFLGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxPQUFPLENBQUMsbUJBQW1CLENBQUMsQ0FlN0c7QUFVRCx3QkFBZ0IsU0FBUyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLE1BQU0sU0FBSSxPQUU1RTtBQUVELHdCQUFnQixjQUFjLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxTQUFJLHlCQU0xRjtBQUVELHdCQUFnQixVQUFVLENBQUMsQ0FBQyxTQUFTLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxFQUFFLE1BQU0sU0FBSSxhQUVoRztBQUVELHdCQUFzQixlQUFlLENBQUMsQ0FBQyxTQUFTLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLE1BQU0sU0FBSSwrQkFFcEg7QUFFRCx3QkFBZ0IsT0FBTyxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxNQUFNLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLEVBQUUsTUFBTSxTQUFJLGtCQUVsRjtBQUVELHdCQUFzQixZQUFZLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sS0FBSyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLFNBQUksMkJBRXRHO0FBRUQsd0JBQXNCLGNBQWMsQ0FBQyxJQUFJLFNBQUksR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLENBSWxFO0FBRUQsd0JBQXNCLCtCQUErQixDQUNuRCxPQUFPLEVBQUUsRUFBRSxFQUNYLElBQUksU0FBSSxFQUNSLFNBQVMsQ0FBQyxFQUFFO0lBQ1YsUUFBUSxDQUFDLEVBQUUsWUFBWSxDQUFDO0lBQ3hCLGtCQUFrQixDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ3hCLFVBQVUsQ0FBQyxFQUFFLFVBQVUsQ0FBQztJQUN4QixjQUFjLENBQUMsRUFBRSxFQUFFLENBQUM7Q0FDckIsR0FDQSxPQUFPLENBQUMsMkJBQTJCLENBQUMsQ0F3QnRDO0FBRUQsd0JBQWdCLHlCQUF5QixDQUFDLElBQUksU0FBSSxHQUFHLHFCQUFxQixDQVN6RTtBQUVELHdCQUFnQixnQ0FBZ0MsQ0FBQyxJQUFJLFNBQUksR0FBRyw0QkFBNEIsQ0FXdkY7QUFFRCx3QkFBZ0Isd0NBQXdDLENBQUMsSUFBSSxTQUFJLEdBQUcsb0NBQW9DLENBUXZHO0FBRUQsd0JBQWdCLHVDQUF1QyxDQUFDLElBQUksU0FBSSxHQUFHLG1DQUFtQyxDQVFyRztBQUVELHdCQUFnQix1QkFBdUIsQ0FBQyxJQUFJLFNBQUksR0FBRyxtQkFBbUIsQ0FTckU7QUFFRCx3QkFBZ0IseUNBQXlDLENBQUMsSUFBSSxTQUFJLEdBQUcscUNBQXFDLENBb0J6RztBQUVELHdCQUFnQix3Q0FBd0MsQ0FBQyxJQUFJLFNBQUksR0FBRyxvQ0FBb0MsQ0FvQnZHO0FBRUQsd0JBQWdCLHVCQUF1QixDQUFDLElBQUksU0FBSSxHQUFHLG1CQUFtQixDQVFyRTtBQUVELHdCQUFnQiwyQ0FBMkMsQ0FBQyxJQUFJLFNBQUksR0FBRyx1QkFBdUIsQ0FNN0Y7QUFFRCx3QkFBZ0IsMkNBQTJDLENBQUMsSUFBSSxTQUFJLEdBQUcsdUJBQXVCLENBTTdGO0FBRUQsd0JBQWdCLDJDQUEyQyxDQUFDLElBQUksU0FBSSxHQUFHLHVCQUF1QixDQVE3RjtBQUVELHdCQUFnQixxREFBcUQsQ0FBQyxJQUFJLFNBQUksR0FBRyxpQ0FBaUMsQ0FNakg7QUFFRCx3QkFBZ0IscURBQXFELENBQUMsSUFBSSxTQUFJLEdBQUcsaUNBQWlDLENBTWpIO0FBRUQsd0JBQWdCLHFEQUFxRCxDQUFDLElBQUksU0FBSSxHQUFHLGlDQUFpQyxDQU1qSDtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsMkJBQTJCLENBQUMsSUFBSSxTQUFJLEdBQUcsdUJBQXVCLENBZ0I3RTtBQUVEOzs7O0dBSUc7QUFDSCx3QkFBZ0IsNEJBQTRCLENBQUMsSUFBSSxTQUFJLEdBQUcsd0JBQXdCLENBRS9FO0FBTUQsd0JBQWdCLHdCQUF3QixDQUFDLElBQUksU0FBSSxHQUFHLG9CQUFvQixDQUd2RTtBQUVELHdCQUFzQiw2QkFBNkIsQ0FBQyxJQUFJLFNBQUksR0FBRyxPQUFPLENBQUMseUJBQXlCLENBQUMsQ0FJaEc7QUFFRCx3QkFBc0IsaUNBQWlDLENBQUMsSUFBSSxTQUFJLEdBQUcsT0FBTyxDQUFDLDZCQUE2QixDQUFDLENBVXhHO0FBRUQsd0JBQWdCLG9CQUFvQixDQUFDLElBQUksU0FBSSxHQUFHLGdCQUFnQixDQUUvRDtBQUVELHdCQUFnQiwwQkFBMEIsQ0FBQyxJQUFJLFNBQUksR0FBRyxzQkFBc0IsQ0FJM0U7QUFFRCx3QkFBc0IsYUFBYSxDQUFDLElBQUksU0FBSSxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0F1QmhFO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixxQkFBcUIsQ0FDekMsSUFBSSxTQUFJLEVBQ1IsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBTSxHQUNuRCxPQUFPLENBQUMsaUJBQWlCLENBQUMsQ0ErRTVCO0FBRUQ7Ozs7R0FJRztBQUNILHdCQUFzQixvQkFBb0IsQ0FDeEMsSUFBSSxTQUFJLEVBQ1IsU0FBUyxHQUFFLE9BQU8sQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBTSxHQUNsRCxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FRM0I7QUFFRDs7Ozs7R0FLRztBQUNILHdCQUFnQixFQUFFLENBQUMsQ0FBQyxFQUFFLE1BQU0sR0FBRyxFQUFFLENBRWhDO0FBRUQ7O0dBRUc7QUFDSCx3QkFBZ0IsMEJBQTBCLENBQUMsSUFBSSxDQUFDLEVBQUU7SUFDaEQsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDO0lBQ1QsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO0NBQ3JCLGlCQVVBO0FBRUQ7O0dBRUc7QUFDSCx3QkFBc0IseUJBQXlCLENBQUMsSUFBSSxDQUFDLEVBQUU7SUFDckQsTUFBTSxDQUFDLEVBQUUsTUFBTSxDQUFDO0lBQ2hCLFdBQVcsQ0FBQyxFQUFFLE1BQU0sQ0FBQztJQUNyQixjQUFjLENBQUMsRUFBRSxNQUFNLENBQUM7SUFDeEIsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUM7SUFDbEIsY0FBYyxDQUFDLEVBQUUsRUFBRSxDQUFDO0NBQ3JCLDBCQVVBO0FBRUQ7Ozs7Ozs7O0dBUUc7QUFDSCx3QkFBZ0IsVUFBVSxDQUN4QixXQUFXLEVBQUUsTUFBTSxHQUFHLFdBQVcsRUFDakMsSUFBSSxTQUFLLEVBQ1QsZ0JBQWdCLENBQUMsRUFBRSxNQUFNLEdBQUcsZ0JBQWdCLEVBQzVDLGNBQWMsQ0FBQyxFQUFFLE1BQU0sR0FDdEIsTUFBTSxDQXdCUiJ9
|