@bitgo-beta/sdk-coin-sui 3.0.3-beta.98 → 3.0.3-beta.981
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/CHANGELOG.md +817 -0
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +7 -2
- package/dist/src/lib/compareTransactionBlocks.js +2 -3
- package/dist/src/lib/constants.d.ts +9 -2
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +18 -2
- package/dist/src/lib/customTransaction.d.ts +57 -0
- package/dist/src/lib/customTransaction.d.ts.map +1 -0
- package/dist/src/lib/customTransaction.js +159 -0
- package/dist/src/lib/customTransactionBuilder.d.ts +46 -0
- package/dist/src/lib/customTransactionBuilder.d.ts.map +1 -0
- package/dist/src/lib/customTransactionBuilder.js +117 -0
- package/dist/src/lib/iface.d.ts +76 -10
- package/dist/src/lib/iface.d.ts.map +1 -1
- package/dist/src/lib/iface.js +40 -5
- package/dist/src/lib/index.d.ts +8 -0
- package/dist/src/lib/index.d.ts.map +1 -1
- package/dist/src/lib/index.js +40 -10
- package/dist/src/lib/keyPair.js +24 -10
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts +9 -9
- package/dist/src/lib/mystenlab/builder/Inputs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Inputs.js +18 -19
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts +40 -354
- package/dist/src/lib/mystenlab/builder/TransactionBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionBlock.js +22 -25
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts +74 -74
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/TransactionDataBlock.js +41 -44
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts +133 -188
- package/dist/src/lib/mystenlab/builder/Transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/Transactions.js +52 -53
- package/dist/src/lib/mystenlab/builder/bcs.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/bcs.js +2 -2
- package/dist/src/lib/mystenlab/builder/index.js +6 -2
- package/dist/src/lib/mystenlab/builder/serializer.js +6 -8
- package/dist/src/lib/mystenlab/builder/utils.d.ts +1 -1
- package/dist/src/lib/mystenlab/builder/utils.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/builder/utils.js +4 -4
- package/dist/src/lib/mystenlab/cryptography/hash.js +3 -4
- package/dist/src/lib/mystenlab/framework/framework.d.ts +6 -6
- package/dist/src/lib/mystenlab/framework/framework.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/framework/framework.js +22 -25
- package/dist/src/lib/mystenlab/framework/index.js +6 -2
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +2 -2
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
- package/dist/src/lib/mystenlab/types/coin.d.ts +10 -10
- package/dist/src/lib/mystenlab/types/coin.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/coin.js +19 -19
- package/dist/src/lib/mystenlab/types/common.d.ts +8 -8
- package/dist/src/lib/mystenlab/types/common.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/common.js +22 -22
- package/dist/src/lib/mystenlab/types/events.d.ts +14 -14
- package/dist/src/lib/mystenlab/types/events.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/events.js +17 -17
- package/dist/src/lib/mystenlab/types/index.js +6 -2
- package/dist/src/lib/mystenlab/types/normalized.d.ts +21 -21
- package/dist/src/lib/mystenlab/types/normalized.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/normalized.js +41 -41
- package/dist/src/lib/mystenlab/types/objects.d.ts +51 -51
- package/dist/src/lib/mystenlab/types/objects.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/objects.js +96 -106
- package/dist/src/lib/mystenlab/types/option.d.ts +1 -1
- package/dist/src/lib/mystenlab/types/option.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/option.js +2 -3
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts +8 -8
- package/dist/src/lib/mystenlab/types/sui-bcs.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/sui-bcs.js +5 -5
- package/dist/src/lib/mystenlab/types/transactions.d.ts +625 -625
- package/dist/src/lib/mystenlab/types/transactions.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/transactions.js +178 -194
- package/dist/src/lib/mystenlab/types/validator.d.ts +9 -9
- package/dist/src/lib/mystenlab/types/validator.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/types/validator.js +124 -124
- package/dist/src/lib/resources/walrusConfig.d.ts +22 -0
- package/dist/src/lib/resources/walrusConfig.d.ts.map +1 -0
- package/dist/src/lib/resources/walrusConfig.js +37 -0
- package/dist/src/lib/rpcClient.d.ts +5 -0
- package/dist/src/lib/rpcClient.d.ts.map +1 -0
- package/dist/src/lib/rpcClient.js +74 -0
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +23 -7
- package/dist/src/lib/stakingTransaction.d.ts +1 -1
- package/dist/src/lib/stakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/stakingTransaction.js +26 -15
- package/dist/src/lib/tokenTransferBuilder.d.ts +38 -0
- package/dist/src/lib/tokenTransferBuilder.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferBuilder.js +132 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts +57 -0
- package/dist/src/lib/tokenTransferTransaction.d.ts.map +1 -0
- package/dist/src/lib/tokenTransferTransaction.js +250 -0
- package/dist/src/lib/transaction.d.ts +12 -4
- package/dist/src/lib/transaction.d.ts.map +1 -1
- package/dist/src/lib/transaction.js +91 -18
- package/dist/src/lib/transactionBuilder.d.ts +2 -3
- package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilder.js +4 -4
- package/dist/src/lib/transactionBuilderFactory.d.ts +14 -2
- package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
- package/dist/src/lib/transactionBuilderFactory.js +42 -1
- package/dist/src/lib/transferBuilder.d.ts.map +1 -1
- package/dist/src/lib/transferBuilder.js +21 -5
- package/dist/src/lib/transferTransaction.d.ts +1 -1
- package/dist/src/lib/transferTransaction.d.ts.map +1 -1
- package/dist/src/lib/transferTransaction.js +31 -8
- package/dist/src/lib/unstakingBuilder.js +6 -6
- package/dist/src/lib/unstakingTransaction.d.ts +1 -1
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/unstakingTransaction.js +31 -17
- package/dist/src/lib/utils.d.ts +16 -4
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +269 -29
- package/dist/src/lib/walrusStakingBuilder.d.ts +66 -0
- package/dist/src/lib/walrusStakingBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingBuilder.js +200 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts +52 -0
- package/dist/src/lib/walrusStakingTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusStakingTransaction.js +269 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts +36 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeBuilder.js +173 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts +21 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.d.ts.map +1 -0
- package/dist/src/lib/walrusWithdrawStakeTransaction.js +190 -0
- package/dist/src/register.d.ts.map +1 -1
- package/dist/src/register.js +5 -1
- package/dist/src/sui.d.ts +46 -8
- package/dist/src/sui.d.ts.map +1 -1
- package/dist/src/sui.js +479 -32
- package/dist/src/suiToken.d.ts +22 -0
- package/dist/src/suiToken.d.ts.map +1 -0
- package/dist/src/suiToken.js +61 -0
- package/dist/src/tsui.js +1 -1
- package/package.json +10 -8
|
@@ -1,222 +1,247 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
exports.
|
|
3
|
+
exports.DryRunTransactionBlockResponse = exports.PaginatedTransactionResponse = exports.SuiTransactionBlockResponseOptions = exports.SuiTransactionBlockResponse = exports.BalanceChange = exports.SuiObjectChange = exports.SuiObjectChangeCreated = exports.SuiObjectChangeWrapped = exports.SuiObjectChangeDeleted = exports.SuiObjectChangeMutated = exports.SuiObjectChangeTransferred = exports.SuiObjectChangePublished = exports.SuiTransactionBlock = exports.AuthorityName = exports.DevInspectResults = exports.TransactionEvents = exports.TransactionEffects = exports.TransactionEffectsModifiedAtVersions = exports.OwnedObjectRef = exports.ExecutionStatus = exports.ExecutionStatusType = exports.GasCostSummary = exports.AuthorityQuorumSignInfo = exports.GenericAuthoritySignature = exports.AuthoritySignature = exports.SuiTransactionBlockData = exports.SuiTransactionBlockKind = exports.ProgrammableTransaction = exports.SuiCallArg = exports.SuiTransaction = exports.MoveCallSuiTransaction = exports.SuiArgument = exports.Genesis = exports.SuiConsensusCommitPrologue = exports.SuiChangeEpoch = exports.EpochId = void 0;
|
|
4
|
+
exports.getTransaction = getTransaction;
|
|
5
|
+
exports.getTransactionDigest = getTransactionDigest;
|
|
6
|
+
exports.getTransactionSignature = getTransactionSignature;
|
|
7
|
+
exports.getTransactionSender = getTransactionSender;
|
|
8
|
+
exports.getGasData = getGasData;
|
|
9
|
+
exports.getTransactionGasObject = getTransactionGasObject;
|
|
10
|
+
exports.getTransactionGasPrice = getTransactionGasPrice;
|
|
11
|
+
exports.getTransactionGasBudget = getTransactionGasBudget;
|
|
12
|
+
exports.getChangeEpochTransaction = getChangeEpochTransaction;
|
|
13
|
+
exports.getConsensusCommitPrologueTransaction = getConsensusCommitPrologueTransaction;
|
|
14
|
+
exports.getTransactionKind = getTransactionKind;
|
|
15
|
+
exports.getTransactionKindName = getTransactionKindName;
|
|
16
|
+
exports.getProgrammableTransaction = getProgrammableTransaction;
|
|
17
|
+
exports.getExecutionStatusType = getExecutionStatusType;
|
|
18
|
+
exports.getExecutionStatus = getExecutionStatus;
|
|
19
|
+
exports.getExecutionStatusError = getExecutionStatusError;
|
|
20
|
+
exports.getExecutionStatusGasSummary = getExecutionStatusGasSummary;
|
|
21
|
+
exports.getTotalGasUsed = getTotalGasUsed;
|
|
22
|
+
exports.getTotalGasUsedUpperBound = getTotalGasUsedUpperBound;
|
|
23
|
+
exports.getTransactionEffects = getTransactionEffects;
|
|
24
|
+
exports.getEvents = getEvents;
|
|
25
|
+
exports.getCreatedObjects = getCreatedObjects;
|
|
26
|
+
exports.getTimestampFromTransactionResponse = getTimestampFromTransactionResponse;
|
|
27
|
+
exports.getNewlyCreatedCoinRefsAfterSplit = getNewlyCreatedCoinRefsAfterSplit;
|
|
28
|
+
exports.getObjectChanges = getObjectChanges;
|
|
29
|
+
exports.getPublishedObjectChanges = getPublishedObjectChanges;
|
|
5
30
|
const superstruct_1 = require("superstruct");
|
|
6
31
|
const common_1 = require("./common");
|
|
7
32
|
const events_1 = require("./events");
|
|
8
33
|
const objects_1 = require("./objects");
|
|
9
|
-
exports.EpochId = superstruct_1.string();
|
|
10
|
-
exports.SuiChangeEpoch = superstruct_1.object({
|
|
34
|
+
exports.EpochId = (0, superstruct_1.string)();
|
|
35
|
+
exports.SuiChangeEpoch = (0, superstruct_1.object)({
|
|
11
36
|
epoch: exports.EpochId,
|
|
12
|
-
storage_charge: superstruct_1.number(),
|
|
13
|
-
computation_charge: superstruct_1.number(),
|
|
14
|
-
storage_rebate: superstruct_1.number(),
|
|
15
|
-
epoch_start_timestamp_ms: superstruct_1.optional(superstruct_1.number()),
|
|
37
|
+
storage_charge: (0, superstruct_1.number)(),
|
|
38
|
+
computation_charge: (0, superstruct_1.number)(),
|
|
39
|
+
storage_rebate: (0, superstruct_1.number)(),
|
|
40
|
+
epoch_start_timestamp_ms: (0, superstruct_1.optional)((0, superstruct_1.number)()),
|
|
16
41
|
});
|
|
17
|
-
exports.SuiConsensusCommitPrologue = superstruct_1.object({
|
|
18
|
-
epoch: superstruct_1.number(),
|
|
19
|
-
round: superstruct_1.number(),
|
|
20
|
-
commit_timestamp_ms: superstruct_1.number(),
|
|
42
|
+
exports.SuiConsensusCommitPrologue = (0, superstruct_1.object)({
|
|
43
|
+
epoch: (0, superstruct_1.number)(),
|
|
44
|
+
round: (0, superstruct_1.number)(),
|
|
45
|
+
commit_timestamp_ms: (0, superstruct_1.number)(),
|
|
21
46
|
});
|
|
22
|
-
exports.Genesis = superstruct_1.object({
|
|
23
|
-
objects: superstruct_1.array(common_1.ObjectId),
|
|
47
|
+
exports.Genesis = (0, superstruct_1.object)({
|
|
48
|
+
objects: (0, superstruct_1.array)(common_1.ObjectId),
|
|
24
49
|
});
|
|
25
|
-
exports.SuiArgument = superstruct_1.union([
|
|
26
|
-
superstruct_1.literal('GasCoin'),
|
|
27
|
-
superstruct_1.object({ Input: superstruct_1.number() }),
|
|
28
|
-
superstruct_1.object({ Result: superstruct_1.number() }),
|
|
29
|
-
superstruct_1.object({ NestedResult: superstruct_1.tuple([superstruct_1.number(), superstruct_1.number()]) }),
|
|
50
|
+
exports.SuiArgument = (0, superstruct_1.union)([
|
|
51
|
+
(0, superstruct_1.literal)('GasCoin'),
|
|
52
|
+
(0, superstruct_1.object)({ Input: (0, superstruct_1.number)() }),
|
|
53
|
+
(0, superstruct_1.object)({ Result: (0, superstruct_1.number)() }),
|
|
54
|
+
(0, superstruct_1.object)({ NestedResult: (0, superstruct_1.tuple)([(0, superstruct_1.number)(), (0, superstruct_1.number)()]) }),
|
|
30
55
|
]);
|
|
31
|
-
exports.MoveCallSuiTransaction = superstruct_1.object({
|
|
32
|
-
arguments: superstruct_1.optional(superstruct_1.array(exports.SuiArgument)),
|
|
33
|
-
type_arguments: superstruct_1.optional(superstruct_1.array(superstruct_1.string())),
|
|
56
|
+
exports.MoveCallSuiTransaction = (0, superstruct_1.object)({
|
|
57
|
+
arguments: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.SuiArgument)),
|
|
58
|
+
type_arguments: (0, superstruct_1.optional)((0, superstruct_1.array)((0, superstruct_1.string)())),
|
|
34
59
|
package: common_1.ObjectId,
|
|
35
|
-
module: superstruct_1.string(),
|
|
36
|
-
function: superstruct_1.string(),
|
|
60
|
+
module: (0, superstruct_1.string)(),
|
|
61
|
+
function: (0, superstruct_1.string)(),
|
|
37
62
|
});
|
|
38
|
-
exports.SuiTransaction = superstruct_1.union([
|
|
39
|
-
superstruct_1.object({ MoveCall: exports.MoveCallSuiTransaction }),
|
|
40
|
-
superstruct_1.object({ TransferObjects: superstruct_1.tuple([superstruct_1.array(exports.SuiArgument), exports.SuiArgument]) }),
|
|
41
|
-
superstruct_1.object({ SplitCoins: superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(exports.SuiArgument)]) }),
|
|
42
|
-
superstruct_1.object({ MergeCoins: superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(exports.SuiArgument)]) }),
|
|
43
|
-
superstruct_1.object({ Publish: objects_1.SuiMovePackage }),
|
|
44
|
-
superstruct_1.object({ MakeMoveVec: superstruct_1.tuple([superstruct_1.nullable(superstruct_1.string()), superstruct_1.array(exports.SuiArgument)]) }),
|
|
63
|
+
exports.SuiTransaction = (0, superstruct_1.union)([
|
|
64
|
+
(0, superstruct_1.object)({ MoveCall: exports.MoveCallSuiTransaction }),
|
|
65
|
+
(0, superstruct_1.object)({ TransferObjects: (0, superstruct_1.tuple)([(0, superstruct_1.array)(exports.SuiArgument), exports.SuiArgument]) }),
|
|
66
|
+
(0, superstruct_1.object)({ SplitCoins: (0, superstruct_1.tuple)([exports.SuiArgument, (0, superstruct_1.array)(exports.SuiArgument)]) }),
|
|
67
|
+
(0, superstruct_1.object)({ MergeCoins: (0, superstruct_1.tuple)([exports.SuiArgument, (0, superstruct_1.array)(exports.SuiArgument)]) }),
|
|
68
|
+
(0, superstruct_1.object)({ Publish: objects_1.SuiMovePackage }),
|
|
69
|
+
(0, superstruct_1.object)({ MakeMoveVec: (0, superstruct_1.tuple)([(0, superstruct_1.nullable)((0, superstruct_1.string)()), (0, superstruct_1.array)(exports.SuiArgument)]) }),
|
|
45
70
|
]);
|
|
46
|
-
exports.SuiCallArg = superstruct_1.union([
|
|
47
|
-
superstruct_1.object({
|
|
48
|
-
type: superstruct_1.literal('pure'),
|
|
49
|
-
valueType: superstruct_1.optional(superstruct_1.string()),
|
|
71
|
+
exports.SuiCallArg = (0, superstruct_1.union)([
|
|
72
|
+
(0, superstruct_1.object)({
|
|
73
|
+
type: (0, superstruct_1.literal)('pure'),
|
|
74
|
+
valueType: (0, superstruct_1.optional)((0, superstruct_1.string)()),
|
|
50
75
|
value: common_1.SuiJsonValue,
|
|
51
76
|
}),
|
|
52
|
-
superstruct_1.object({
|
|
53
|
-
type: superstruct_1.literal('object'),
|
|
54
|
-
objectType: superstruct_1.literal('immOrOwnedObject'),
|
|
77
|
+
(0, superstruct_1.object)({
|
|
78
|
+
type: (0, superstruct_1.literal)('object'),
|
|
79
|
+
objectType: (0, superstruct_1.literal)('immOrOwnedObject'),
|
|
55
80
|
objectId: common_1.ObjectId,
|
|
56
81
|
version: common_1.SequenceNumber,
|
|
57
82
|
digest: objects_1.ObjectDigest,
|
|
58
83
|
}),
|
|
59
|
-
superstruct_1.object({
|
|
60
|
-
type: superstruct_1.literal('object'),
|
|
61
|
-
objectType: superstruct_1.literal('sharedObject'),
|
|
84
|
+
(0, superstruct_1.object)({
|
|
85
|
+
type: (0, superstruct_1.literal)('object'),
|
|
86
|
+
objectType: (0, superstruct_1.literal)('sharedObject'),
|
|
62
87
|
objectId: common_1.ObjectId,
|
|
63
88
|
initialSharedVersion: common_1.SequenceNumber,
|
|
64
|
-
mutable: superstruct_1.boolean(),
|
|
89
|
+
mutable: (0, superstruct_1.boolean)(),
|
|
65
90
|
}),
|
|
66
91
|
]);
|
|
67
|
-
exports.ProgrammableTransaction = superstruct_1.object({
|
|
68
|
-
transactions: superstruct_1.array(exports.SuiTransaction),
|
|
69
|
-
inputs: superstruct_1.array(exports.SuiCallArg),
|
|
92
|
+
exports.ProgrammableTransaction = (0, superstruct_1.object)({
|
|
93
|
+
transactions: (0, superstruct_1.array)(exports.SuiTransaction),
|
|
94
|
+
inputs: (0, superstruct_1.array)(exports.SuiCallArg),
|
|
70
95
|
});
|
|
71
|
-
exports.SuiTransactionBlockKind = superstruct_1.union([
|
|
72
|
-
superstruct_1.assign(exports.SuiChangeEpoch, superstruct_1.object({ kind: superstruct_1.literal('ChangeEpoch') })),
|
|
73
|
-
superstruct_1.assign(exports.SuiConsensusCommitPrologue, superstruct_1.object({
|
|
74
|
-
kind: superstruct_1.literal('ConsensusCommitPrologue'),
|
|
96
|
+
exports.SuiTransactionBlockKind = (0, superstruct_1.union)([
|
|
97
|
+
(0, superstruct_1.assign)(exports.SuiChangeEpoch, (0, superstruct_1.object)({ kind: (0, superstruct_1.literal)('ChangeEpoch') })),
|
|
98
|
+
(0, superstruct_1.assign)(exports.SuiConsensusCommitPrologue, (0, superstruct_1.object)({
|
|
99
|
+
kind: (0, superstruct_1.literal)('ConsensusCommitPrologue'),
|
|
75
100
|
})),
|
|
76
|
-
superstruct_1.assign(exports.Genesis, superstruct_1.object({ kind: superstruct_1.literal('Genesis') })),
|
|
77
|
-
superstruct_1.assign(exports.ProgrammableTransaction, superstruct_1.object({ kind: superstruct_1.literal('ProgrammableTransaction') })),
|
|
101
|
+
(0, superstruct_1.assign)(exports.Genesis, (0, superstruct_1.object)({ kind: (0, superstruct_1.literal)('Genesis') })),
|
|
102
|
+
(0, superstruct_1.assign)(exports.ProgrammableTransaction, (0, superstruct_1.object)({ kind: (0, superstruct_1.literal)('ProgrammableTransaction') })),
|
|
78
103
|
]);
|
|
79
|
-
exports.SuiTransactionBlockData = superstruct_1.object({
|
|
104
|
+
exports.SuiTransactionBlockData = (0, superstruct_1.object)({
|
|
80
105
|
// Eventually this will become union(literal('v1'), literal('v2'), ...)
|
|
81
|
-
messageVersion: superstruct_1.literal('v1'),
|
|
106
|
+
messageVersion: (0, superstruct_1.literal)('v1'),
|
|
82
107
|
transaction: exports.SuiTransactionBlockKind,
|
|
83
108
|
sender: common_1.SuiAddress,
|
|
84
109
|
gasData: objects_1.SuiGasData,
|
|
85
110
|
});
|
|
86
|
-
exports.AuthoritySignature = superstruct_1.string();
|
|
87
|
-
exports.GenericAuthoritySignature = superstruct_1.union([exports.AuthoritySignature, superstruct_1.array(exports.AuthoritySignature)]);
|
|
88
|
-
exports.AuthorityQuorumSignInfo = superstruct_1.object({
|
|
111
|
+
exports.AuthoritySignature = (0, superstruct_1.string)();
|
|
112
|
+
exports.GenericAuthoritySignature = (0, superstruct_1.union)([exports.AuthoritySignature, (0, superstruct_1.array)(exports.AuthoritySignature)]);
|
|
113
|
+
exports.AuthorityQuorumSignInfo = (0, superstruct_1.object)({
|
|
89
114
|
epoch: exports.EpochId,
|
|
90
115
|
signature: exports.GenericAuthoritySignature,
|
|
91
|
-
signers_map: superstruct_1.array(superstruct_1.number()),
|
|
116
|
+
signers_map: (0, superstruct_1.array)((0, superstruct_1.number)()),
|
|
92
117
|
});
|
|
93
|
-
exports.GasCostSummary = superstruct_1.object({
|
|
94
|
-
computationCost: superstruct_1.string(),
|
|
95
|
-
storageCost: superstruct_1.string(),
|
|
96
|
-
storageRebate: superstruct_1.string(),
|
|
97
|
-
nonRefundableStorageFee: superstruct_1.string(),
|
|
118
|
+
exports.GasCostSummary = (0, superstruct_1.object)({
|
|
119
|
+
computationCost: (0, superstruct_1.string)(),
|
|
120
|
+
storageCost: (0, superstruct_1.string)(),
|
|
121
|
+
storageRebate: (0, superstruct_1.string)(),
|
|
122
|
+
nonRefundableStorageFee: (0, superstruct_1.string)(),
|
|
98
123
|
});
|
|
99
|
-
exports.ExecutionStatusType = superstruct_1.union([superstruct_1.literal('success'), superstruct_1.literal('failure')]);
|
|
100
|
-
exports.ExecutionStatus = superstruct_1.object({
|
|
124
|
+
exports.ExecutionStatusType = (0, superstruct_1.union)([(0, superstruct_1.literal)('success'), (0, superstruct_1.literal)('failure')]);
|
|
125
|
+
exports.ExecutionStatus = (0, superstruct_1.object)({
|
|
101
126
|
status: exports.ExecutionStatusType,
|
|
102
|
-
error: superstruct_1.optional(superstruct_1.string()),
|
|
127
|
+
error: (0, superstruct_1.optional)((0, superstruct_1.string)()),
|
|
103
128
|
});
|
|
104
|
-
exports.OwnedObjectRef = superstruct_1.object({
|
|
129
|
+
exports.OwnedObjectRef = (0, superstruct_1.object)({
|
|
105
130
|
owner: common_1.ObjectOwner,
|
|
106
131
|
reference: objects_1.SuiObjectRef,
|
|
107
132
|
});
|
|
108
|
-
exports.TransactionEffectsModifiedAtVersions = superstruct_1.object({
|
|
133
|
+
exports.TransactionEffectsModifiedAtVersions = (0, superstruct_1.object)({
|
|
109
134
|
objectId: common_1.ObjectId,
|
|
110
135
|
sequenceNumber: common_1.SequenceNumber,
|
|
111
136
|
});
|
|
112
|
-
exports.TransactionEffects = superstruct_1.object({
|
|
137
|
+
exports.TransactionEffects = (0, superstruct_1.object)({
|
|
113
138
|
// Eventually this will become union(literal('v1'), literal('v2'), ...)
|
|
114
|
-
messageVersion: superstruct_1.literal('v1'),
|
|
139
|
+
messageVersion: (0, superstruct_1.literal)('v1'),
|
|
115
140
|
/** The status of the execution */
|
|
116
141
|
status: exports.ExecutionStatus,
|
|
117
142
|
/** The epoch when this transaction was executed */
|
|
118
143
|
executedEpoch: exports.EpochId,
|
|
119
144
|
/** The version that every modified (mutated or deleted) object had before it was modified by this transaction. **/
|
|
120
|
-
modifiedAtVersions: superstruct_1.optional(superstruct_1.array(exports.TransactionEffectsModifiedAtVersions)),
|
|
145
|
+
modifiedAtVersions: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.TransactionEffectsModifiedAtVersions)),
|
|
121
146
|
gasUsed: exports.GasCostSummary,
|
|
122
147
|
/** The object references of the shared objects used in this transaction. Empty if no shared objects were used. */
|
|
123
|
-
sharedObjects: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
|
|
148
|
+
sharedObjects: (0, superstruct_1.optional)((0, superstruct_1.array)(objects_1.SuiObjectRef)),
|
|
124
149
|
/** The transaction digest */
|
|
125
150
|
transactionDigest: common_1.TransactionDigest,
|
|
126
151
|
/** ObjectRef and owner of new objects created */
|
|
127
|
-
created: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
|
|
152
|
+
created: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.OwnedObjectRef)),
|
|
128
153
|
/** ObjectRef and owner of mutated objects, including gas object */
|
|
129
|
-
mutated: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
|
|
154
|
+
mutated: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.OwnedObjectRef)),
|
|
130
155
|
/**
|
|
131
156
|
* ObjectRef and owner of objects that are unwrapped in this transaction.
|
|
132
157
|
* Unwrapped objects are objects that were wrapped into other objects in the past,
|
|
133
158
|
* and just got extracted out.
|
|
134
159
|
*/
|
|
135
|
-
unwrapped: superstruct_1.optional(superstruct_1.array(exports.OwnedObjectRef)),
|
|
160
|
+
unwrapped: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.OwnedObjectRef)),
|
|
136
161
|
/** Object Refs of objects now deleted (the old refs) */
|
|
137
|
-
deleted: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
|
|
162
|
+
deleted: (0, superstruct_1.optional)((0, superstruct_1.array)(objects_1.SuiObjectRef)),
|
|
138
163
|
/** Object Refs of objects now deleted (the old refs) */
|
|
139
|
-
unwrapped_then_deleted: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
|
|
164
|
+
unwrapped_then_deleted: (0, superstruct_1.optional)((0, superstruct_1.array)(objects_1.SuiObjectRef)),
|
|
140
165
|
/** Object refs of objects now wrapped in other objects */
|
|
141
|
-
wrapped: superstruct_1.optional(superstruct_1.array(objects_1.SuiObjectRef)),
|
|
166
|
+
wrapped: (0, superstruct_1.optional)((0, superstruct_1.array)(objects_1.SuiObjectRef)),
|
|
142
167
|
/**
|
|
143
168
|
* The updated gas object reference. Have a dedicated field for convenient access.
|
|
144
169
|
* It's also included in mutated.
|
|
145
170
|
*/
|
|
146
171
|
gasObject: exports.OwnedObjectRef,
|
|
147
172
|
/** The events emitted during execution. Note that only successful transactions emit events */
|
|
148
|
-
eventsDigest: superstruct_1.optional(common_1.TransactionEventDigest),
|
|
173
|
+
eventsDigest: (0, superstruct_1.optional)(common_1.TransactionEventDigest),
|
|
149
174
|
/** The set of transaction digests this transaction depends on */
|
|
150
|
-
dependencies: superstruct_1.optional(superstruct_1.array(common_1.TransactionDigest)),
|
|
175
|
+
dependencies: (0, superstruct_1.optional)((0, superstruct_1.array)(common_1.TransactionDigest)),
|
|
151
176
|
});
|
|
152
|
-
exports.TransactionEvents = superstruct_1.array(events_1.SuiEvent);
|
|
153
|
-
const ReturnValueType = superstruct_1.tuple([superstruct_1.array(superstruct_1.number()), superstruct_1.string()]);
|
|
154
|
-
const MutableReferenceOutputType = superstruct_1.tuple([exports.SuiArgument, superstruct_1.array(superstruct_1.number()), superstruct_1.string()]);
|
|
155
|
-
const ExecutionResultType = superstruct_1.object({
|
|
156
|
-
mutableReferenceOutputs: superstruct_1.optional(superstruct_1.array(MutableReferenceOutputType)),
|
|
157
|
-
returnValues: superstruct_1.optional(superstruct_1.array(ReturnValueType)),
|
|
177
|
+
exports.TransactionEvents = (0, superstruct_1.array)(events_1.SuiEvent);
|
|
178
|
+
const ReturnValueType = (0, superstruct_1.tuple)([(0, superstruct_1.array)((0, superstruct_1.number)()), (0, superstruct_1.string)()]);
|
|
179
|
+
const MutableReferenceOutputType = (0, superstruct_1.tuple)([exports.SuiArgument, (0, superstruct_1.array)((0, superstruct_1.number)()), (0, superstruct_1.string)()]);
|
|
180
|
+
const ExecutionResultType = (0, superstruct_1.object)({
|
|
181
|
+
mutableReferenceOutputs: (0, superstruct_1.optional)((0, superstruct_1.array)(MutableReferenceOutputType)),
|
|
182
|
+
returnValues: (0, superstruct_1.optional)((0, superstruct_1.array)(ReturnValueType)),
|
|
158
183
|
});
|
|
159
|
-
exports.DevInspectResults = superstruct_1.object({
|
|
184
|
+
exports.DevInspectResults = (0, superstruct_1.object)({
|
|
160
185
|
effects: exports.TransactionEffects,
|
|
161
186
|
events: exports.TransactionEvents,
|
|
162
|
-
results: superstruct_1.optional(superstruct_1.array(ExecutionResultType)),
|
|
163
|
-
error: superstruct_1.optional(superstruct_1.string()),
|
|
187
|
+
results: (0, superstruct_1.optional)((0, superstruct_1.array)(ExecutionResultType)),
|
|
188
|
+
error: (0, superstruct_1.optional)((0, superstruct_1.string)()),
|
|
164
189
|
});
|
|
165
|
-
exports.AuthorityName = superstruct_1.string();
|
|
166
|
-
exports.SuiTransactionBlock = superstruct_1.object({
|
|
190
|
+
exports.AuthorityName = (0, superstruct_1.string)();
|
|
191
|
+
exports.SuiTransactionBlock = (0, superstruct_1.object)({
|
|
167
192
|
data: exports.SuiTransactionBlockData,
|
|
168
|
-
txSignatures: superstruct_1.array(superstruct_1.string()),
|
|
193
|
+
txSignatures: (0, superstruct_1.array)((0, superstruct_1.string)()),
|
|
169
194
|
});
|
|
170
|
-
exports.SuiObjectChangePublished = superstruct_1.object({
|
|
171
|
-
type: superstruct_1.literal('published'),
|
|
195
|
+
exports.SuiObjectChangePublished = (0, superstruct_1.object)({
|
|
196
|
+
type: (0, superstruct_1.literal)('published'),
|
|
172
197
|
packageId: common_1.ObjectId,
|
|
173
198
|
version: common_1.SequenceNumber,
|
|
174
199
|
digest: objects_1.ObjectDigest,
|
|
175
|
-
modules: superstruct_1.array(superstruct_1.string()),
|
|
200
|
+
modules: (0, superstruct_1.array)((0, superstruct_1.string)()),
|
|
176
201
|
});
|
|
177
|
-
exports.SuiObjectChangeTransferred = superstruct_1.object({
|
|
178
|
-
type: superstruct_1.literal('transferred'),
|
|
202
|
+
exports.SuiObjectChangeTransferred = (0, superstruct_1.object)({
|
|
203
|
+
type: (0, superstruct_1.literal)('transferred'),
|
|
179
204
|
sender: common_1.SuiAddress,
|
|
180
205
|
recipient: common_1.ObjectOwner,
|
|
181
|
-
objectType: superstruct_1.string(),
|
|
206
|
+
objectType: (0, superstruct_1.string)(),
|
|
182
207
|
objectId: common_1.ObjectId,
|
|
183
208
|
version: common_1.SequenceNumber,
|
|
184
209
|
digest: objects_1.ObjectDigest,
|
|
185
210
|
});
|
|
186
|
-
exports.SuiObjectChangeMutated = superstruct_1.object({
|
|
187
|
-
type: superstruct_1.literal('mutated'),
|
|
211
|
+
exports.SuiObjectChangeMutated = (0, superstruct_1.object)({
|
|
212
|
+
type: (0, superstruct_1.literal)('mutated'),
|
|
188
213
|
sender: common_1.SuiAddress,
|
|
189
214
|
owner: common_1.ObjectOwner,
|
|
190
|
-
objectType: superstruct_1.string(),
|
|
215
|
+
objectType: (0, superstruct_1.string)(),
|
|
191
216
|
objectId: common_1.ObjectId,
|
|
192
217
|
version: common_1.SequenceNumber,
|
|
193
218
|
previousVersion: common_1.SequenceNumber,
|
|
194
219
|
digest: objects_1.ObjectDigest,
|
|
195
220
|
});
|
|
196
|
-
exports.SuiObjectChangeDeleted = superstruct_1.object({
|
|
197
|
-
type: superstruct_1.literal('deleted'),
|
|
221
|
+
exports.SuiObjectChangeDeleted = (0, superstruct_1.object)({
|
|
222
|
+
type: (0, superstruct_1.literal)('deleted'),
|
|
198
223
|
sender: common_1.SuiAddress,
|
|
199
|
-
objectType: superstruct_1.string(),
|
|
224
|
+
objectType: (0, superstruct_1.string)(),
|
|
200
225
|
objectId: common_1.ObjectId,
|
|
201
226
|
version: common_1.SequenceNumber,
|
|
202
227
|
});
|
|
203
|
-
exports.SuiObjectChangeWrapped = superstruct_1.object({
|
|
204
|
-
type: superstruct_1.literal('wrapped'),
|
|
228
|
+
exports.SuiObjectChangeWrapped = (0, superstruct_1.object)({
|
|
229
|
+
type: (0, superstruct_1.literal)('wrapped'),
|
|
205
230
|
sender: common_1.SuiAddress,
|
|
206
|
-
objectType: superstruct_1.string(),
|
|
231
|
+
objectType: (0, superstruct_1.string)(),
|
|
207
232
|
objectId: common_1.ObjectId,
|
|
208
233
|
version: common_1.SequenceNumber,
|
|
209
234
|
});
|
|
210
|
-
exports.SuiObjectChangeCreated = superstruct_1.object({
|
|
211
|
-
type: superstruct_1.literal('created'),
|
|
235
|
+
exports.SuiObjectChangeCreated = (0, superstruct_1.object)({
|
|
236
|
+
type: (0, superstruct_1.literal)('created'),
|
|
212
237
|
sender: common_1.SuiAddress,
|
|
213
238
|
owner: common_1.ObjectOwner,
|
|
214
|
-
objectType: superstruct_1.string(),
|
|
239
|
+
objectType: (0, superstruct_1.string)(),
|
|
215
240
|
objectId: common_1.ObjectId,
|
|
216
241
|
version: common_1.SequenceNumber,
|
|
217
242
|
digest: objects_1.ObjectDigest,
|
|
218
243
|
});
|
|
219
|
-
exports.SuiObjectChange = superstruct_1.union([
|
|
244
|
+
exports.SuiObjectChange = (0, superstruct_1.union)([
|
|
220
245
|
exports.SuiObjectChangePublished,
|
|
221
246
|
exports.SuiObjectChangeTransferred,
|
|
222
247
|
exports.SuiObjectChangeMutated,
|
|
@@ -224,47 +249,47 @@ exports.SuiObjectChange = superstruct_1.union([
|
|
|
224
249
|
exports.SuiObjectChangeWrapped,
|
|
225
250
|
exports.SuiObjectChangeCreated,
|
|
226
251
|
]);
|
|
227
|
-
exports.BalanceChange = superstruct_1.object({
|
|
252
|
+
exports.BalanceChange = (0, superstruct_1.object)({
|
|
228
253
|
owner: common_1.ObjectOwner,
|
|
229
|
-
coinType: superstruct_1.string(),
|
|
254
|
+
coinType: (0, superstruct_1.string)(),
|
|
230
255
|
/* Coin balance change(positive means receive, negative means send) */
|
|
231
|
-
amount: superstruct_1.string(),
|
|
256
|
+
amount: (0, superstruct_1.string)(),
|
|
232
257
|
});
|
|
233
|
-
exports.SuiTransactionBlockResponse = superstruct_1.object({
|
|
258
|
+
exports.SuiTransactionBlockResponse = (0, superstruct_1.object)({
|
|
234
259
|
digest: common_1.TransactionDigest,
|
|
235
|
-
transaction: superstruct_1.optional(exports.SuiTransactionBlock),
|
|
236
|
-
effects: superstruct_1.optional(exports.TransactionEffects),
|
|
237
|
-
events: superstruct_1.optional(exports.TransactionEvents),
|
|
238
|
-
timestampMs: superstruct_1.optional(superstruct_1.number()),
|
|
239
|
-
checkpoint: superstruct_1.optional(superstruct_1.number()),
|
|
240
|
-
confirmedLocalExecution: superstruct_1.optional(superstruct_1.boolean()),
|
|
241
|
-
objectChanges: superstruct_1.optional(superstruct_1.array(exports.SuiObjectChange)),
|
|
242
|
-
balanceChanges: superstruct_1.optional(superstruct_1.array(exports.BalanceChange)),
|
|
260
|
+
transaction: (0, superstruct_1.optional)(exports.SuiTransactionBlock),
|
|
261
|
+
effects: (0, superstruct_1.optional)(exports.TransactionEffects),
|
|
262
|
+
events: (0, superstruct_1.optional)(exports.TransactionEvents),
|
|
263
|
+
timestampMs: (0, superstruct_1.optional)((0, superstruct_1.number)()),
|
|
264
|
+
checkpoint: (0, superstruct_1.optional)((0, superstruct_1.number)()),
|
|
265
|
+
confirmedLocalExecution: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
266
|
+
objectChanges: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.SuiObjectChange)),
|
|
267
|
+
balanceChanges: (0, superstruct_1.optional)((0, superstruct_1.array)(exports.BalanceChange)),
|
|
243
268
|
/* Errors that occurred in fetching/serializing the transaction. */
|
|
244
|
-
errors: superstruct_1.optional(superstruct_1.array(superstruct_1.string())),
|
|
269
|
+
errors: (0, superstruct_1.optional)((0, superstruct_1.array)((0, superstruct_1.string)())),
|
|
245
270
|
});
|
|
246
|
-
exports.SuiTransactionBlockResponseOptions = superstruct_1.object({
|
|
271
|
+
exports.SuiTransactionBlockResponseOptions = (0, superstruct_1.object)({
|
|
247
272
|
/* Whether to show transaction input data. Default to be false. */
|
|
248
|
-
showInput: superstruct_1.optional(superstruct_1.boolean()),
|
|
273
|
+
showInput: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
249
274
|
/* Whether to show transaction effects. Default to be false. */
|
|
250
|
-
showEffects: superstruct_1.optional(superstruct_1.boolean()),
|
|
275
|
+
showEffects: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
251
276
|
/* Whether to show transaction events. Default to be false. */
|
|
252
|
-
showEvents: superstruct_1.optional(superstruct_1.boolean()),
|
|
277
|
+
showEvents: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
253
278
|
/* Whether to show object changes. Default to be false. */
|
|
254
|
-
showObjectChanges: superstruct_1.optional(superstruct_1.boolean()),
|
|
279
|
+
showObjectChanges: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
255
280
|
/* Whether to show coin balance changes. Default to be false. */
|
|
256
|
-
showBalanceChanges: superstruct_1.optional(superstruct_1.boolean()),
|
|
281
|
+
showBalanceChanges: (0, superstruct_1.optional)((0, superstruct_1.boolean)()),
|
|
257
282
|
});
|
|
258
|
-
exports.PaginatedTransactionResponse = superstruct_1.object({
|
|
259
|
-
data: superstruct_1.array(exports.SuiTransactionBlockResponse),
|
|
260
|
-
nextCursor: superstruct_1.union([common_1.TransactionDigest, superstruct_1.literal(null)]),
|
|
261
|
-
hasNextPage: superstruct_1.boolean(),
|
|
283
|
+
exports.PaginatedTransactionResponse = (0, superstruct_1.object)({
|
|
284
|
+
data: (0, superstruct_1.array)(exports.SuiTransactionBlockResponse),
|
|
285
|
+
nextCursor: (0, superstruct_1.union)([common_1.TransactionDigest, (0, superstruct_1.literal)(null)]),
|
|
286
|
+
hasNextPage: (0, superstruct_1.boolean)(),
|
|
262
287
|
});
|
|
263
|
-
exports.DryRunTransactionBlockResponse = superstruct_1.object({
|
|
288
|
+
exports.DryRunTransactionBlockResponse = (0, superstruct_1.object)({
|
|
264
289
|
effects: exports.TransactionEffects,
|
|
265
290
|
events: exports.TransactionEvents,
|
|
266
|
-
objectChanges: superstruct_1.array(exports.SuiObjectChange),
|
|
267
|
-
balanceChanges: superstruct_1.array(exports.BalanceChange),
|
|
291
|
+
objectChanges: (0, superstruct_1.array)(exports.SuiObjectChange),
|
|
292
|
+
balanceChanges: (0, superstruct_1.array)(exports.BalanceChange),
|
|
268
293
|
});
|
|
269
294
|
/* -------------------------------------------------------------------------- */
|
|
270
295
|
/* Helper functions */
|
|
@@ -272,134 +297,93 @@ exports.DryRunTransactionBlockResponse = superstruct_1.object({
|
|
|
272
297
|
function getTransaction(tx) {
|
|
273
298
|
return tx.transaction;
|
|
274
299
|
}
|
|
275
|
-
exports.getTransaction = getTransaction;
|
|
276
300
|
function getTransactionDigest(tx) {
|
|
277
301
|
return tx.digest;
|
|
278
302
|
}
|
|
279
|
-
exports.getTransactionDigest = getTransactionDigest;
|
|
280
303
|
function getTransactionSignature(tx) {
|
|
281
|
-
|
|
282
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.txSignatures;
|
|
304
|
+
return tx.transaction?.txSignatures;
|
|
283
305
|
}
|
|
284
|
-
exports.getTransactionSignature = getTransactionSignature;
|
|
285
306
|
/* ----------------------------- TransactionData ---------------------------- */
|
|
286
307
|
function getTransactionSender(tx) {
|
|
287
|
-
|
|
288
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.sender;
|
|
308
|
+
return tx.transaction?.data.sender;
|
|
289
309
|
}
|
|
290
|
-
exports.getTransactionSender = getTransactionSender;
|
|
291
310
|
function getGasData(tx) {
|
|
292
|
-
|
|
293
|
-
return (_a = tx.transaction) === null || _a === void 0 ? void 0 : _a.data.gasData;
|
|
311
|
+
return tx.transaction?.data.gasData;
|
|
294
312
|
}
|
|
295
|
-
exports.getGasData = getGasData;
|
|
296
313
|
function getTransactionGasObject(tx) {
|
|
297
|
-
|
|
298
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.payment;
|
|
314
|
+
return getGasData(tx)?.payment;
|
|
299
315
|
}
|
|
300
|
-
exports.getTransactionGasObject = getTransactionGasObject;
|
|
301
316
|
function getTransactionGasPrice(tx) {
|
|
302
|
-
|
|
303
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.price;
|
|
317
|
+
return getGasData(tx)?.price;
|
|
304
318
|
}
|
|
305
|
-
exports.getTransactionGasPrice = getTransactionGasPrice;
|
|
306
319
|
function getTransactionGasBudget(tx) {
|
|
307
|
-
|
|
308
|
-
return (_a = getGasData(tx)) === null || _a === void 0 ? void 0 : _a.budget;
|
|
320
|
+
return getGasData(tx)?.budget;
|
|
309
321
|
}
|
|
310
|
-
exports.getTransactionGasBudget = getTransactionGasBudget;
|
|
311
322
|
function getChangeEpochTransaction(data) {
|
|
312
323
|
return data.kind === 'ChangeEpoch' ? data : undefined;
|
|
313
324
|
}
|
|
314
|
-
exports.getChangeEpochTransaction = getChangeEpochTransaction;
|
|
315
325
|
function getConsensusCommitPrologueTransaction(data) {
|
|
316
326
|
return data.kind === 'ConsensusCommitPrologue' ? data : undefined;
|
|
317
327
|
}
|
|
318
|
-
exports.getConsensusCommitPrologueTransaction = getConsensusCommitPrologueTransaction;
|
|
319
328
|
function getTransactionKind(data) {
|
|
320
|
-
|
|
321
|
-
return (_a = data.transaction) === null || _a === void 0 ? void 0 : _a.data.transaction;
|
|
329
|
+
return data.transaction?.data.transaction;
|
|
322
330
|
}
|
|
323
|
-
exports.getTransactionKind = getTransactionKind;
|
|
324
331
|
function getTransactionKindName(data) {
|
|
325
332
|
return data.kind;
|
|
326
333
|
}
|
|
327
|
-
exports.getTransactionKindName = getTransactionKindName;
|
|
328
334
|
function getProgrammableTransaction(data) {
|
|
329
335
|
return data.kind === 'ProgrammableTransaction' ? data : undefined;
|
|
330
336
|
}
|
|
331
|
-
exports.getProgrammableTransaction = getProgrammableTransaction;
|
|
332
337
|
/* ----------------------------- ExecutionStatus ---------------------------- */
|
|
333
338
|
function getExecutionStatusType(data) {
|
|
334
|
-
|
|
335
|
-
return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.status;
|
|
339
|
+
return getExecutionStatus(data)?.status;
|
|
336
340
|
}
|
|
337
|
-
exports.getExecutionStatusType = getExecutionStatusType;
|
|
338
341
|
function getExecutionStatus(data) {
|
|
339
|
-
|
|
340
|
-
return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.status;
|
|
342
|
+
return getTransactionEffects(data)?.status;
|
|
341
343
|
}
|
|
342
|
-
exports.getExecutionStatus = getExecutionStatus;
|
|
343
344
|
function getExecutionStatusError(data) {
|
|
344
|
-
|
|
345
|
-
return (_a = getExecutionStatus(data)) === null || _a === void 0 ? void 0 : _a.error;
|
|
345
|
+
return getExecutionStatus(data)?.error;
|
|
346
346
|
}
|
|
347
|
-
exports.getExecutionStatusError = getExecutionStatusError;
|
|
348
347
|
function getExecutionStatusGasSummary(data) {
|
|
349
|
-
|
|
350
|
-
if (superstruct_1.is(data, exports.TransactionEffects)) {
|
|
348
|
+
if ((0, superstruct_1.is)(data, exports.TransactionEffects)) {
|
|
351
349
|
return data.gasUsed;
|
|
352
350
|
}
|
|
353
|
-
return
|
|
351
|
+
return getTransactionEffects(data)?.gasUsed;
|
|
354
352
|
}
|
|
355
|
-
exports.getExecutionStatusGasSummary = getExecutionStatusGasSummary;
|
|
356
353
|
function getTotalGasUsed(data) {
|
|
357
354
|
const gasSummary = getExecutionStatusGasSummary(data);
|
|
358
355
|
return gasSummary
|
|
359
356
|
? BigInt(gasSummary.computationCost) + BigInt(gasSummary.storageCost) - BigInt(gasSummary.storageRebate)
|
|
360
357
|
: undefined;
|
|
361
358
|
}
|
|
362
|
-
exports.getTotalGasUsed = getTotalGasUsed;
|
|
363
359
|
function getTotalGasUsedUpperBound(data) {
|
|
364
360
|
const gasSummary = getExecutionStatusGasSummary(data);
|
|
365
361
|
return gasSummary ? BigInt(gasSummary.computationCost) + BigInt(gasSummary.storageCost) : undefined;
|
|
366
362
|
}
|
|
367
|
-
exports.getTotalGasUsedUpperBound = getTotalGasUsedUpperBound;
|
|
368
363
|
function getTransactionEffects(data) {
|
|
369
364
|
return data.effects;
|
|
370
365
|
}
|
|
371
|
-
exports.getTransactionEffects = getTransactionEffects;
|
|
372
366
|
/* ---------------------------- Transaction Effects --------------------------- */
|
|
373
367
|
function getEvents(data) {
|
|
374
368
|
return data.events;
|
|
375
369
|
}
|
|
376
|
-
exports.getEvents = getEvents;
|
|
377
370
|
function getCreatedObjects(data) {
|
|
378
|
-
|
|
379
|
-
return (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created;
|
|
371
|
+
return getTransactionEffects(data)?.created;
|
|
380
372
|
}
|
|
381
|
-
exports.getCreatedObjects = getCreatedObjects;
|
|
382
373
|
/* --------------------------- TransactionResponse -------------------------- */
|
|
383
374
|
function getTimestampFromTransactionResponse(data) {
|
|
384
|
-
|
|
385
|
-
return (_a = data.timestampMs) !== null && _a !== void 0 ? _a : undefined;
|
|
375
|
+
return data.timestampMs ?? undefined;
|
|
386
376
|
}
|
|
387
|
-
exports.getTimestampFromTransactionResponse = getTimestampFromTransactionResponse;
|
|
388
377
|
/**
|
|
389
378
|
* Get the newly created coin refs after a split.
|
|
390
379
|
*/
|
|
391
380
|
function getNewlyCreatedCoinRefsAfterSplit(data) {
|
|
392
|
-
|
|
393
|
-
return (_b = (_a = getTransactionEffects(data)) === null || _a === void 0 ? void 0 : _a.created) === null || _b === void 0 ? void 0 : _b.map((c) => c.reference);
|
|
381
|
+
return getTransactionEffects(data)?.created?.map((c) => c.reference);
|
|
394
382
|
}
|
|
395
|
-
exports.getNewlyCreatedCoinRefsAfterSplit = getNewlyCreatedCoinRefsAfterSplit;
|
|
396
383
|
function getObjectChanges(data) {
|
|
397
384
|
return data.objectChanges;
|
|
398
385
|
}
|
|
399
|
-
exports.getObjectChanges = getObjectChanges;
|
|
400
386
|
function getPublishedObjectChanges(data) {
|
|
401
|
-
|
|
402
|
-
return (_b = (_a = data.objectChanges) === null || _a === void 0 ? void 0 : _a.filter((a) => superstruct_1.is(a, exports.SuiObjectChangePublished))) !== null && _b !== void 0 ? _b : [];
|
|
387
|
+
return data.objectChanges?.filter((a) => (0, superstruct_1.is)(a, exports.SuiObjectChangePublished)) ?? [];
|
|
403
388
|
}
|
|
404
|
-
exports.getPublishedObjectChanges = getPublishedObjectChanges;
|
|
405
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdHJhbnNhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSw2Q0FjcUI7QUFFckIscUNBUWtCO0FBQ2xCLHFDQUFvQztBQUNwQyx1Q0FBbUY7QUFFdEUsUUFBQSxPQUFPLEdBQUcsb0JBQU0sRUFBRSxDQUFDO0FBRW5CLFFBQUEsY0FBYyxHQUFHLG9CQUFNLENBQUM7SUFDbkMsS0FBSyxFQUFFLGVBQU87SUFDZCxjQUFjLEVBQUUsb0JBQU0sRUFBRTtJQUN4QixrQkFBa0IsRUFBRSxvQkFBTSxFQUFFO0lBQzVCLGNBQWMsRUFBRSxvQkFBTSxFQUFFO0lBQ3hCLHdCQUF3QixFQUFFLHNCQUFRLENBQUMsb0JBQU0sRUFBRSxDQUFDO0NBQzdDLENBQUMsQ0FBQztBQUdVLFFBQUEsMEJBQTBCLEdBQUcsb0JBQU0sQ0FBQztJQUMvQyxLQUFLLEVBQUUsb0JBQU0sRUFBRTtJQUNmLEtBQUssRUFBRSxvQkFBTSxFQUFFO0lBQ2YsbUJBQW1CLEVBQUUsb0JBQU0sRUFBRTtDQUM5QixDQUFDLENBQUM7QUFHVSxRQUFBLE9BQU8sR0FBRyxvQkFBTSxDQUFDO0lBQzVCLE9BQU8sRUFBRSxtQkFBSyxDQUFDLGlCQUFRLENBQUM7Q0FDekIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxXQUFXLEdBQUcsbUJBQUssQ0FBQztJQUMvQixxQkFBTyxDQUFDLFNBQVMsQ0FBQztJQUNsQixvQkFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLG9CQUFNLEVBQUUsRUFBRSxDQUFDO0lBQzNCLG9CQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsb0JBQU0sRUFBRSxFQUFFLENBQUM7SUFDNUIsb0JBQU0sQ0FBQyxFQUFFLFlBQVksRUFBRSxtQkFBSyxDQUFDLENBQUMsb0JBQU0sRUFBRSxFQUFFLG9CQUFNLEVBQUUsQ0FBQyxDQUFDLEVB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QUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE9BQU8sQ0FBQztBQUM5QyxDQUFDO0FBRkQsOENBRUM7QUFFRCxnRkFBZ0Y7QUFFaEYsU0FBZ0IsbUNBQW1DLENBQUMsSUFBaUM7O0lBQ25GLE9BQU8sTUFBQSxJQUFJLENBQUMsV0FBVyxtQ0FBSSxTQUFTLENBQUM7QUFDdkMsQ0FBQztBQUZELGtGQUVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixpQ0FBaUMsQ0FBQyxJQUFpQzs7SUFDakYsT0FBTyxNQUFBLE1BQUEscUJBQXFCLENBQUMsSUFBSSxDQUFDLDBDQUFFLE9BQU8sMENBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUM7QUFDdkUsQ0FBQztBQUZELDhFQUVDO0FBRUQsU0FBZ0IsZ0JBQWdCLENBQUMsSUFBaUM7SUFDaEUsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0FBQzVCLENBQUM7QUFGRCw0Q0FFQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQWlDOztJQUN6RSxPQUFPLE1BQUMsTUFBQSxJQUFJLENBQUMsYUFBYSwwQ0FBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGdCQUFFLENBQUMsQ0FBQyxFQUFFLGdDQUF3QixDQUFDLENBQWdDLG1DQUFJLEVBQUUsQ0FBQztBQUNsSCxDQUFDO0FBRkQsOERBRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBpcyxcbiAgYXJyYXksXG4gIEluZmVyLFxuICBsaXRlcmFsLFxuICBudW1iZXIsXG4gIG9iamVjdCxcbiAgb3B0aW9uYWwsXG4gIHN0cmluZyxcbiAgdW5pb24sXG4gIGJvb2xlYW4sXG4gIHR1cGxlLFxuICBhc3NpZ24sXG4gIG51bGxhYmxlLFxufSBmcm9tICdzdXBlcnN0cnVjdCc7XG5cbmltcG9ydCB7XG4gIE9iamVjdElkLFxuICBPYmplY3RPd25lcixcbiAgU2VxdWVuY2VOdW1iZXIsXG4gIFN1aUFkZHJlc3MsXG4gIFN1aUpzb25WYWx1ZSxcbiAgVHJhbnNhY3Rpb25EaWdlc3QsXG4gIFRyYW5zYWN0aW9uRXZlbnREaWdlc3QsXG59IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IFN1aUV2ZW50IH0gZnJvbSAnLi9ldmVudHMnO1xuaW1wb3J0IHsgT2JqZWN0RGlnZXN0LCBTdWlHYXNEYXRhLCBTdWlNb3ZlUGFja2FnZSwgU3VpT2JqZWN0UmVmIH0gZnJvbSAnLi9vYmplY3RzJztcblxuZXhwb3J0IGNvbnN0IEVwb2NoSWQgPSBzdHJpbmcoKTtcblxuZXhwb3J0IGNvbnN0IFN1aUNoYW5nZUVwb2NoID0gb2JqZWN0KHtcbiAgZXBvY2g6IEVwb2NoSWQsXG4gIHN0b3JhZ2VfY2hhcmdlOiBudW1iZXIoKSxcbiAgY29tcHV0YXRpb25fY2hhcmdlOiBudW1iZXIoKSxcbiAgc3RvcmFnZV9yZWJhdGU6IG51bWJlcigpLFxuICBlcG9jaF9zdGFydF90aW1lc3RhbXBfbXM6IG9wdGlvbmFsKG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpQ2hhbmdlRXBvY2ggPSBJbmZlcjx0eXBlb2YgU3VpQ2hhbmdlRXBvY2g+O1xuXG5leHBvcnQgY29uc3QgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgPSBvYmplY3Qoe1xuICBlcG9jaDogbnVtYmVyKCksXG4gIHJvdW5kOiBudW1iZXIoKSxcbiAgY29tbWl0X3RpbWVzdGFtcF9tczogbnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlID0gSW5mZXI8dHlwZW9mIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlPjtcblxuZXhwb3J0IGNvbnN0IEdlbmVzaXMgPSBvYmplY3Qoe1xuICBvYmplY3RzOiBhcnJheShPYmplY3RJZCksXG59KTtcbmV4cG9ydCB0eXBlIEdlbmVzaXMgPSBJbmZlcjx0eXBlb2YgR2VuZXNpcz47XG5cbmV4cG9ydCBjb25zdCBTdWlBcmd1bWVudCA9IHVuaW9uKFtcbiAgbGl0ZXJhbCgnR2FzQ29pbicpLFxuICBvYmplY3QoeyBJbnB1dDogbnVtYmVyKCkgfSksXG4gIG9iamVjdCh7IFJlc3VsdDogbnVtYmVyKCkgfSksXG4gIG9iamVjdCh7IE5lc3RlZFJlc3VsdDogdHVwbGUoW251bWJlcigpLCBudW1iZXIoKV0pIH0pLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlBcmd1bWVudCA9IEluZmVyPHR5cGVvZiBTdWlBcmd1bWVudD47XG5cbmV4cG9ydCBjb25zdCBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAgYXJndW1lbnRzOiBvcHRpb25hbChhcnJheShTdWlBcmd1bWVudCkpLFxuICB0eXBlX2FyZ3VtZW50czogb3B0aW9uYWwoYXJyYXkoc3RyaW5nKCkpKSxcbiAgcGFja2FnZTogT2JqZWN0SWQsXG4gIG1vZHVsZTogc3RyaW5nKCksXG4gIGZ1bmN0aW9uOiBzdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgTW92ZUNhbGxTdWlUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uID0gdW5pb24oW1xuICBvYmplY3QoeyBNb3ZlQ2FsbDogTW92ZUNhbGxTdWlUcmFuc2FjdGlvbiB9KSxcbiAgb2JqZWN0KHsgVHJhbnNmZXJPYmplY3RzOiB0dXBsZShbYXJyYXkoU3VpQXJndW1lbnQpLCBTdWlBcmd1bWVudF0pIH0pLFxuICBvYmplY3QoeyBTcGxpdENvaW5zOiB0dXBsZShbU3VpQXJndW1lbnQsIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuICBvYmplY3QoeyBNZXJnZUNvaW5zOiB0dXBsZShbU3VpQXJndW1lbnQsIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuICBvYmplY3QoeyBQdWJsaXNoOiBTdWlNb3ZlUGFja2FnZSB9KSxcbiAgb2JqZWN0KHsgTWFrZU1vdmVWZWM6IHR1cGxlKFtudWxsYWJsZShzdHJpbmcoKSksIGFycmF5KFN1aUFyZ3VtZW50KV0pIH0pLFxuXSk7XG5cbmV4cG9ydCBjb25zdCBTdWlDYWxsQXJnID0gdW5pb24oW1xuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ3B1cmUnKSxcbiAgICB2YWx1ZVR5cGU6IG9wdGlvbmFsKHN0cmluZygpKSxcbiAgICB2YWx1ZTogU3VpSnNvblZhbHVlLFxuICB9KSxcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBsaXRlcmFsKCdvYmplY3QnKSxcbiAgICBvYmplY3RUeXBlOiBsaXRlcmFsKCdpbW1Pck93bmVkT2JqZWN0JyksXG4gICAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICAgIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICAgIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICB9KSxcbiAgb2JqZWN0KHtcbiAgICB0eXBlOiBsaXRlcmFsKCdvYmplY3QnKSxcbiAgICBvYmplY3RUeXBlOiBsaXRlcmFsKCdzaGFyZWRPYmplY3QnKSxcbiAgICBvYmplY3RJZDogT2JqZWN0SWQsXG4gICAgaW5pdGlhbFNoYXJlZFZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICAgIG11dGFibGU6IGJvb2xlYW4oKSxcbiAgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aUNhbGxBcmcgPSBJbmZlcjx0eXBlb2YgU3VpQ2FsbEFyZz47XG5cbmV4cG9ydCBjb25zdCBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiA9IG9iamVjdCh7XG4gIHRyYW5zYWN0aW9uczogYXJyYXkoU3VpVHJhbnNhY3Rpb24pLFxuICBpbnB1dHM6IGFycmF5KFN1aUNhbGxBcmcpLFxufSk7XG5leHBvcnQgdHlwZSBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbj47XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbiA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbj47XG5cbi8qKlxuICogMS4gV2FpdEZvckVmZmVjdHNDZXJ0OiB3YWl0cyBmb3IgVHJhbnNhY3Rpb25FZmZlY3RzQ2VydCBhbmQgdGhlbiByZXR1cm5zIHRvIHRoZSBjbGllbnQuXG4gKiAgICBUaGlzIG1vZGUgaXMgYSBwcm94eSBmb3IgdHJhbnNhY3Rpb24gZmluYWxpdHkuXG4gKiAyLiBXYWl0Rm9yTG9jYWxFeGVjdXRpb246IHdhaXRzIGZvciBUcmFuc2FjdGlvbkVmZmVjdHNDZXJ0IGFuZCBtYWtlcyBzdXJlIHRoZSBub2RlXG4gKiAgICBleGVjdXRlZCB0aGUgdHJhbnNhY3Rpb24gbG9jYWxseSBiZWZvcmUgcmV0dXJuaW5nIHRvIHRoZSBjbGllbnQuIFRoZSBsb2NhbCBleGVjdXRpb25cbiAqICAgIG1ha2VzIHN1cmUgdGhpcyBub2RlIGlzIGF3YXJlIG9mIHRoaXMgdHJhbnNhY3Rpb24gd2hlbiB0aGUgY2xpZW50IGZpcmVzIHN1YnNlcXVlbnQgcXVlcmllcy5cbiAqICAgIEhvd2V2ZXIsIGlmIHRoZSBub2RlIGZhaWxzIHRvIGV4ZWN1dGUgdGhlIHRyYW5zYWN0aW9uIGxvY2FsbHkgaW4gYSB0aW1lbHkgbWFubmVyLFxuICogICAgYSBib29sIHR5cGUgaW4gdGhlIHJlc3BvbnNlIGlzIHNldCB0byBmYWxzZSB0byBpbmRpY2F0ZSB0aGUgY2FzZS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhlY3V0ZVRyYW5zYWN0aW9uUmVxdWVzdFR5cGUgPSAnV2FpdEZvckVmZmVjdHNDZXJ0JyB8ICdXYWl0Rm9yTG9jYWxFeGVjdXRpb24nO1xuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbktpbmROYW1lID0gJ0NoYW5nZUVwb2NoJyB8ICdDb25zZW5zdXNDb21taXRQcm9sb2d1ZScgfCAnR2VuZXNpcycgfCAnUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24nO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgPSB1bmlvbihbXG4gIGFzc2lnbihTdWlDaGFuZ2VFcG9jaCwgb2JqZWN0KHsga2luZDogbGl0ZXJhbCgnQ2hhbmdlRXBvY2gnKSB9KSksXG4gIGFzc2lnbihcbiAgICBTdWlDb25zZW5zdXNDb21taXRQcm9sb2d1ZSxcbiAgICBvYmplY3Qoe1xuICAgICAga2luZDogbGl0ZXJhbCgnQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUnKSxcbiAgICB9KVxuICApLFxuICBhc3NpZ24oR2VuZXNpcywgb2JqZWN0KHsga2luZDogbGl0ZXJhbCgnR2VuZXNpcycpIH0pKSxcbiAgYXNzaWduKFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicpIH0pKSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQ+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGEgPSBvYmplY3Qoe1xuICAvLyBFdmVudHVhbGx5IHRoaXMgd2lsbCBiZWNvbWUgdW5pb24obGl0ZXJhbCgndjEnKSwgbGl0ZXJhbCgndjInKSwgLi4uKVxuICBtZXNzYWdlVmVyc2lvbjogbGl0ZXJhbCgndjEnKSxcbiAgdHJhbnNhY3Rpb246IFN1aVRyYW5zYWN0aW9uQmxvY2tLaW5kLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIGdhc0RhdGE6IFN1aUdhc0RhdGEsXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhID0gSW5mZXI8dHlwZW9mIFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhPjtcblxuZXhwb3J0IGNvbnN0IEF1dGhvcml0eVNpZ25hdHVyZSA9IHN0cmluZygpO1xuZXhwb3J0IGNvbnN0IEdlbmVyaWNBdXRob3JpdHlTaWduYXR1cmUgPSB1bmlvbihbQXV0aG9yaXR5U2lnbmF0dXJlLCBhcnJheShBdXRob3JpdHlTaWduYXR1cmUpXSk7XG5cbmV4cG9ydCBjb25zdCBBdXRob3JpdHlRdW9ydW1TaWduSW5mbyA9IG9iamVjdCh7XG4gIGVwb2NoOiBFcG9jaElkLFxuICBzaWduYXR1cmU6IEdlbmVyaWNBdXRob3JpdHlTaWduYXR1cmUsXG4gIHNpZ25lcnNfbWFwOiBhcnJheShudW1iZXIoKSksXG59KTtcbmV4cG9ydCB0eXBlIEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvID0gSW5mZXI8dHlwZW9mIEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvPjtcblxuZXhwb3J0IGNvbnN0IEdhc0Nvc3RTdW1tYXJ5ID0gb2JqZWN0KHtcbiAgY29tcHV0YXRpb25Db3N0OiBzdHJpbmcoKSxcbiAgc3RvcmFnZUNvc3Q6IHN0cmluZygpLFxuICBzdG9yYWdlUmViYXRlOiBzdHJpbmcoKSxcbiAgbm9uUmVmdW5kYWJsZVN0b3JhZ2VGZWU6IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBHYXNDb3N0U3VtbWFyeSA9IEluZmVyPHR5cGVvZiBHYXNDb3N0U3VtbWFyeT47XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25TdGF0dXNUeXBlID0gdW5pb24oW2xpdGVyYWwoJ3N1Y2Nlc3MnKSwgbGl0ZXJhbCgnZmFpbHVyZScpXSk7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGF0dXNUeXBlID0gSW5mZXI8dHlwZW9mIEV4ZWN1dGlvblN0YXR1c1R5cGU+O1xuXG5leHBvcnQgY29uc3QgRXhlY3V0aW9uU3RhdHVzID0gb2JqZWN0KHtcbiAgc3RhdHVzOiBFeGVjdXRpb25TdGF0dXNUeXBlLFxuICBlcnJvcjogb3B0aW9uYWwoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBFeGVjdXRpb25TdGF0dXMgPSBJbmZlcjx0eXBlb2YgRXhlY3V0aW9uU3RhdHVzPjtcblxuZXhwb3J0IGNvbnN0IE93bmVkT2JqZWN0UmVmID0gb2JqZWN0KHtcbiAgb3duZXI6IE9iamVjdE93bmVyLFxuICByZWZlcmVuY2U6IFN1aU9iamVjdFJlZixcbn0pO1xuZXhwb3J0IHR5cGUgT3duZWRPYmplY3RSZWYgPSBJbmZlcjx0eXBlb2YgT3duZWRPYmplY3RSZWY+O1xuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0c01vZGlmaWVkQXRWZXJzaW9ucyA9IG9iamVjdCh7XG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgc2VxdWVuY2VOdW1iZXI6IFNlcXVlbmNlTnVtYmVyLFxufSk7XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkVmZmVjdHMgPSBvYmplY3Qoe1xuICAvLyBFdmVudHVhbGx5IHRoaXMgd2lsbCBiZWNvbWUgdW5pb24obGl0ZXJhbCgndjEnKSwgbGl0ZXJhbCgndjInKSwgLi4uKVxuICBtZXNzYWdlVmVyc2lvbjogbGl0ZXJhbCgndjEnKSxcblxuICAvKiogVGhlIHN0YXR1cyBvZiB0aGUgZXhlY3V0aW9uICovXG4gIHN0YXR1czogRXhlY3V0aW9uU3RhdHVzLFxuICAvKiogVGhlIGVwb2NoIHdoZW4gdGhpcyB0cmFuc2FjdGlvbiB3YXMgZXhlY3V0ZWQgKi9cbiAgZXhlY3V0ZWRFcG9jaDogRXBvY2hJZCxcbiAgLyoqIFRoZSB2ZXJzaW9uIHRoYXQgZXZlcnkgbW9kaWZpZWQgKG11dGF0ZWQgb3IgZGVsZXRlZCkgb2JqZWN0IGhhZCBiZWZvcmUgaXQgd2FzIG1vZGlmaWVkIGJ5IHRoaXMgdHJhbnNhY3Rpb24uICoqL1xuICBtb2RpZmllZEF0VmVyc2lvbnM6IG9wdGlvbmFsKGFycmF5KFRyYW5zYWN0aW9uRWZmZWN0c01vZGlmaWVkQXRWZXJzaW9ucykpLFxuICBnYXNVc2VkOiBHYXNDb3N0U3VtbWFyeSxcbiAgLyoqIFRoZSBvYmplY3QgcmVmZXJlbmNlcyBvZiB0aGUgc2hhcmVkIG9iamVjdHMgdXNlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLiBFbXB0eSBpZiBubyBzaGFyZWQgb2JqZWN0cyB3ZXJlIHVzZWQuICovXG4gIHNoYXJlZE9iamVjdHM6IG9wdGlvbmFsKGFycmF5KFN1aU9iamVjdFJlZikpLFxuICAvKiogVGhlIHRyYW5zYWN0aW9uIGRpZ2VzdCAqL1xuICB0cmFuc2FjdGlvbkRpZ2VzdDogVHJhbnNhY3Rpb25EaWdlc3QsXG4gIC8qKiBPYmplY3RSZWYgYW5kIG93bmVyIG9mIG5ldyBvYmplY3RzIGNyZWF0ZWQgKi9cbiAgY3JlYXRlZDogb3B0aW9uYWwoYXJyYXkoT3duZWRPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdFJlZiBhbmQgb3duZXIgb2YgbXV0YXRlZCBvYmplY3RzLCBpbmNsdWRpbmcgZ2FzIG9iamVjdCAqL1xuICBtdXRhdGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKipcbiAgICogT2JqZWN0UmVmIGFuZCBvd25lciBvZiBvYmplY3RzIHRoYXQgYXJlIHVud3JhcHBlZCBpbiB0aGlzIHRyYW5zYWN0aW9uLlxuICAgKiBVbndyYXBwZWQgb2JqZWN0cyBhcmUgb2JqZWN0cyB0aGF0IHdlcmUgd3JhcHBlZCBpbnRvIG90aGVyIG9iamVjdHMgaW4gdGhlIHBhc3QsXG4gICAqIGFuZCBqdXN0IGdvdCBleHRyYWN0ZWQgb3V0LlxuICAgKi9cbiAgdW53cmFwcGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0IFJlZnMgb2Ygb2JqZWN0cyBub3cgZGVsZXRlZCAodGhlIG9sZCByZWZzKSAqL1xuICBkZWxldGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdCBSZWZzIG9mIG9iamVjdHMgbm93IGRlbGV0ZWQgKHRoZSBvbGQgcmVmcykgKi9cbiAgdW53cmFwcGVkX3RoZW5fZGVsZXRlZDogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKiBPYmplY3QgcmVmcyBvZiBvYmplY3RzIG5vdyB3cmFwcGVkIGluIG90aGVyIG9iamVjdHMgKi9cbiAgd3JhcHBlZDogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKlxuICAgKiBUaGUgdXBkYXRlZCBnYXMgb2JqZWN0IHJlZmVyZW5jZS4gSGF2ZSBhIGRlZGljYXRlZCBmaWVsZCBmb3IgY29udmVuaWVudCBhY2Nlc3MuXG4gICAqIEl0J3MgYWxzbyBpbmNsdWRlZCBpbiBtdXRhdGVkLlxuICAgKi9cbiAgZ2FzT2JqZWN0OiBPd25lZE9iamVjdFJlZixcbiAgLyoqIFRoZSBldmVudHMgZW1pdHRlZCBkdXJpbmcgZXhlY3V0aW9uLiBOb3RlIHRoYXQgb25seSBzdWNjZXNzZnVsIHRyYW5zYWN0aW9ucyBlbWl0IGV2ZW50cyAqL1xuICBldmVudHNEaWdlc3Q6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRXZlbnREaWdlc3QpLFxuICAvKiogVGhlIHNldCBvZiB0cmFuc2FjdGlvbiBkaWdlc3RzIHRoaXMgdHJhbnNhY3Rpb24gZGVwZW5kcyBvbiAqL1xuICBkZXBlbmRlbmNpZXM6IG9wdGlvbmFsKGFycmF5KFRyYW5zYWN0aW9uRGlnZXN0KSksXG59KTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRWZmZWN0cyA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvbkVmZmVjdHM+O1xuXG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25FdmVudHMgPSBhcnJheShTdWlFdmVudCk7XG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkV2ZW50cyA9IEluZmVyPHR5cGVvZiBUcmFuc2FjdGlvbkV2ZW50cz47XG5cbmNvbnN0IFJldHVyblZhbHVlVHlwZSA9IHR1cGxlKFthcnJheShudW1iZXIoKSksIHN0cmluZygpXSk7XG5jb25zdCBNdXRhYmxlUmVmZXJlbmNlT3V0cHV0VHlwZSA9IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkobnVtYmVyKCkpLCBzdHJpbmcoKV0pO1xuY29uc3QgRXhlY3V0aW9uUmVzdWx0VHlwZSA9IG9iamVjdCh7XG4gIG11dGFibGVSZWZlcmVuY2VPdXRwdXRzOiBvcHRpb25hbChhcnJheShNdXRhYmxlUmVmZXJlbmNlT3V0cHV0VHlwZSkpLFxuICByZXR1cm5WYWx1ZXM6IG9wdGlvbmFsKGFycmF5KFJldHVyblZhbHVlVHlwZSkpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBEZXZJbnNwZWN0UmVzdWx0cyA9IG9iamVjdCh7XG4gIGVmZmVjdHM6IFRyYW5zYWN0aW9uRWZmZWN0cyxcbiAgZXZlbnRzOiBUcmFuc2FjdGlvbkV2ZW50cyxcbiAgcmVzdWx0czogb3B0aW9uYWwoYXJyYXkoRXhlY3V0aW9uUmVzdWx0VHlwZSkpLFxuICBlcnJvcjogb3B0aW9uYWwoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBEZXZJbnNwZWN0UmVzdWx0cyA9IEluZmVyPHR5cGVvZiBEZXZJbnNwZWN0UmVzdWx0cz47XG5cbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZVF1ZXJ5ID0ge1xuICBmaWx0ZXI/OiBUcmFuc2FjdGlvbkZpbHRlcjtcbiAgb3B0aW9ucz86IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnM7XG59O1xuXG5leHBvcnQgdHlwZSBUcmFuc2FjdGlvbkZpbHRlciA9XG4gIHwge1xuICAgICAgTW92ZUZ1bmN0aW9uOiB7XG4gICAgICAgIHBhY2thZ2U6IE9iamVjdElkO1xuICAgICAgICBtb2R1bGU6IHN0cmluZyB8IG51bGw7XG4gICAgICAgIGZ1bmN0aW9uOiBzdHJpbmcgfCBudWxsO1xuICAgICAgfTtcbiAgICB9XG4gIHwgeyBJbnB1dE9iamVjdDogT2JqZWN0SWQgfVxuICB8IHsgQ2hhbmdlZE9iamVjdDogT2JqZWN0SWQgfVxuICB8IHsgRnJvbUFkZHJlc3M6IFN1aUFkZHJlc3MgfVxuICB8IHsgVG9BZGRyZXNzOiBTdWlBZGRyZXNzIH07XG5cbmV4cG9ydCB0eXBlIEVtcHR5U2lnbkluZm8gPSBvYmplY3Q7XG5leHBvcnQgdHlwZSBBdXRob3JpdHlOYW1lID0gSW5mZXI8dHlwZW9mIEF1dGhvcml0eU5hbWU+O1xuZXhwb3J0IGNvbnN0IEF1dGhvcml0eU5hbWUgPSBzdHJpbmcoKTtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uQmxvY2sgPSBvYmplY3Qoe1xuICBkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrRGF0YSxcbiAgdHhTaWduYXR1cmVzOiBhcnJheShzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2sgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9jaz47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCdwdWJsaXNoZWQnKSxcbiAgcGFja2FnZUlkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxuICBtb2R1bGVzOiBhcnJheShzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCd0cmFuc2ZlcnJlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIHJlY2lwaWVudDogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlVHJhbnNmZXJyZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ211dGF0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBwcmV2aW91c1ZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZURlbGV0ZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCdkZWxldGVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZURlbGV0ZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnd3JhcHBlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZVdyYXBwZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ2NyZWF0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIG9iamVjdFR5cGU6IHN0cmluZygpLFxuICBvYmplY3RJZDogT2JqZWN0SWQsXG4gIHZlcnNpb246IFNlcXVlbmNlTnVtYmVyLFxuICBkaWdlc3Q6IE9iamVjdERpZ2VzdCxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZSA9IHVuaW9uKFtcbiAgU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkLFxuICBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlTXV0YXRlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlV3JhcHBlZCxcbiAgU3VpT2JqZWN0Q2hhbmdlQ3JlYXRlZCxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZT47XG5cbmV4cG9ydCBjb25zdCBCYWxhbmNlQ2hhbmdlID0gb2JqZWN0KHtcbiAgb3duZXI6IE9iamVjdE93bmVyLFxuICBjb2luVHlwZTogc3RyaW5nKCksXG4gIC8qIENvaW4gYmFsYW5jZSBjaGFuZ2UocG9zaXRpdmUgbWVhbnMgcmVjZWl2ZSwgbmVnYXRpdmUgbWVhbnMgc2VuZCkgKi9cbiAgYW1vdW50OiBzdHJpbmcoKSxcbn0pO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgdHJhbnNhY3Rpb246IG9wdGlvbmFsKFN1aVRyYW5zYWN0aW9uQmxvY2spLFxuICBlZmZlY3RzOiBvcHRpb25hbChUcmFuc2FjdGlvbkVmZmVjdHMpLFxuICBldmVudHM6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRXZlbnRzKSxcbiAgdGltZXN0YW1wTXM6IG9wdGlvbmFsKG51bWJlcigpKSxcbiAgY2hlY2twb2ludDogb3B0aW9uYWwobnVtYmVyKCkpLFxuICBjb25maXJtZWRMb2NhbEV4ZWN1dGlvbjogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgb2JqZWN0Q2hhbmdlczogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0Q2hhbmdlKSksXG4gIGJhbGFuY2VDaGFuZ2VzOiBvcHRpb25hbChhcnJheShCYWxhbmNlQ2hhbmdlKSksXG4gIC8qIEVycm9ycyB0aGF0IG9jY3VycmVkIGluIGZldGNoaW5nL3NlcmlhbGl6aW5nIHRoZSB0cmFuc2FjdGlvbi4gKi9cbiAgZXJyb3JzOiBvcHRpb25hbChhcnJheShzdHJpbmcoKSkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlPjtcblxuZXhwb3J0IGNvbnN0IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnMgPSBvYmplY3Qoe1xuICAvKiBXaGV0aGVyIHRvIHNob3cgdHJhbnNhY3Rpb24gaW5wdXQgZGF0YS4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0lucHV0OiBvcHRpb25hbChib29sZWFuKCkpLFxuICAvKiBXaGV0aGVyIHRvIHNob3cgdHJhbnNhY3Rpb24gZWZmZWN0cy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0VmZmVjdHM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBldmVudHMuIERlZmF1bHQgdG8gYmUgZmFsc2UuICovXG4gIHNob3dFdmVudHM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyBvYmplY3QgY2hhbmdlcy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd09iamVjdENoYW5nZXM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyBjb2luIGJhbGFuY2UgY2hhbmdlcy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0JhbGFuY2VDaGFuZ2VzOiBvcHRpb25hbChib29sZWFuKCkpLFxufSk7XG5cbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZU9wdGlvbnMgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucz47XG5cbmV4cG9ydCBjb25zdCBQYWdpbmF0ZWRUcmFuc2FjdGlvblJlc3BvbnNlID0gb2JqZWN0KHtcbiAgZGF0YTogYXJyYXkoU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSxcbiAgbmV4dEN1cnNvcjogdW5pb24oW1RyYW5zYWN0aW9uRGlnZXN0LCBsaXRlcmFsKG51bGwpXSksXG4gIGhhc05leHRQYWdlOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFBhZ2luYXRlZFRyYW5zYWN0aW9uUmVzcG9uc2UgPSBJbmZlcjx0eXBlb2YgUGFnaW5hdGVkVHJhbnNhY3Rpb25SZXNwb25zZT47XG5leHBvcnQgY29uc3QgRHJ5UnVuVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gb2JqZWN0KHtcbiAgZWZmZWN0czogVHJhbnNhY3Rpb25FZmZlY3RzLFxuICBldmVudHM6IFRyYW5zYWN0aW9uRXZlbnRzLFxuICBvYmplY3RDaGFuZ2VzOiBhcnJheShTdWlPYmplY3RDaGFuZ2UpLFxuICBiYWxhbmNlQ2hhbmdlczogYXJyYXkoQmFsYW5jZUNoYW5nZSksXG59KTtcbmV4cG9ydCB0eXBlIERyeVJ1blRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBEcnlSdW5UcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2U+O1xuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuLyogICAgICAgICAgICAgICAgICAgICAgICAgICAgICBIZWxwZXIgZnVuY3Rpb25zICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKi9cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbih0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpVHJhbnNhY3Rpb25CbG9jayB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uRGlnZXN0KHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBUcmFuc2FjdGlvbkRpZ2VzdCB7XG4gIHJldHVybiB0eC5kaWdlc3Q7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvblNpZ25hdHVyZSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LnR4U2lnbmF0dXJlcztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhbnNhY3Rpb25EYXRhIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uU2VuZGVyKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlBZGRyZXNzIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR4LnRyYW5zYWN0aW9uPy5kYXRhLnNlbmRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEdhc0RhdGEodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUdhc0RhdGEgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LmRhdGEuZ2FzRGF0YTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uR2FzT2JqZWN0KHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlPYmplY3RSZWZbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8ucGF5bWVudDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uR2FzUHJpY2UodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSkge1xuICByZXR1cm4gZ2V0R2FzRGF0YSh0eCk/LnByaWNlO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNCdWRnZXQodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSkge1xuICByZXR1cm4gZ2V0R2FzRGF0YSh0eCk/LmJ1ZGdldDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldENoYW5nZUVwb2NoVHJhbnNhY3Rpb24oZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBTdWlDaGFuZ2VFcG9jaCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmtpbmQgPT09ICdDaGFuZ2VFcG9jaCcgPyBkYXRhIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q29uc2Vuc3VzQ29tbWl0UHJvbG9ndWVUcmFuc2FjdGlvbihcbiAgZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmRcbik6IFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEua2luZCA9PT0gJ0NvbnNlbnN1c0NvbW1pdFByb2xvZ3VlJyA/IGRhdGEgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbktpbmQoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS50cmFuc2FjdGlvbj8uZGF0YS50cmFuc2FjdGlvbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uS2luZE5hbWUoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBUcmFuc2FjdGlvbktpbmROYW1lIHtcbiAgcmV0dXJuIGRhdGEua2luZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tLaW5kKTogUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5raW5kID09PSAnUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24nID8gZGF0YSA6IHVuZGVmaW5lZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gRXhlY3V0aW9uU3RhdHVzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c1R5cGUoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogRXhlY3V0aW9uU3RhdHVzVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRFeGVjdXRpb25TdGF0dXMoZGF0YSk/LnN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBFeGVjdXRpb25TdGF0dXMgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5zdGF0dXM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRFeGVjdXRpb25TdGF0dXNFcnJvcihkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0RXhlY3V0aW9uU3RhdHVzKGRhdGEpPy5lcnJvcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c0dhc1N1bW1hcnkoXG4gIGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0c1xuKTogR2FzQ29zdFN1bW1hcnkgfCB1bmRlZmluZWQge1xuICBpZiAoaXMoZGF0YSwgVHJhbnNhY3Rpb25FZmZlY3RzKSkge1xuICAgIHJldHVybiBkYXRhLmdhc1VzZWQ7XG4gIH1cbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uZ2FzVXNlZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRvdGFsR2FzVXNlZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgfCBUcmFuc2FjdGlvbkVmZmVjdHMpOiBiaWdpbnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBnYXNTdW1tYXJ5ID0gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShkYXRhKTtcbiAgcmV0dXJuIGdhc1N1bW1hcnlcbiAgICA/IEJpZ0ludChnYXNTdW1tYXJ5LmNvbXB1dGF0aW9uQ29zdCkgKyBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlQ29zdCkgLSBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlUmViYXRlKVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxHYXNVc2VkVXBwZXJCb3VuZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgfCBUcmFuc2FjdGlvbkVmZmVjdHMpOiBiaWdpbnQgfCB1bmRlZmluZWQge1xuICBjb25zdCBnYXNTdW1tYXJ5ID0gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShkYXRhKTtcbiAgcmV0dXJuIGdhc1N1bW1hcnkgPyBCaWdJbnQoZ2FzU3VtbWFyeS5jb21wdXRhdGlvbkNvc3QpICsgQmlnSW50KGdhc1N1bW1hcnkuc3RvcmFnZUNvc3QpIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFRyYW5zYWN0aW9uRWZmZWN0cyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmVmZmVjdHM7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gVHJhbnNhY3Rpb24gRWZmZWN0cyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV2ZW50cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlFdmVudFtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEuZXZlbnRzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q3JlYXRlZE9iamVjdHMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogT3duZWRPYmplY3RSZWZbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YSk/LmNyZWF0ZWQ7XG59XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvblJlc3BvbnNlIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUaW1lc3RhbXBGcm9tVHJhbnNhY3Rpb25SZXNwb25zZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS50aW1lc3RhbXBNcyA/PyB1bmRlZmluZWQ7XG59XG5cbi8qKlxuICogR2V0IHRoZSBuZXdseSBjcmVhdGVkIGNvaW4gcmVmcyBhZnRlciBhIHNwbGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0TmV3bHlDcmVhdGVkQ29pblJlZnNBZnRlclNwbGl0KGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uY3JlYXRlZD8ubWFwKChjKSA9PiBjLnJlZmVyZW5jZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRPYmplY3RDaGFuZ2VzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdENoYW5nZVtdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEub2JqZWN0Q2hhbmdlcztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFB1Ymxpc2hlZE9iamVjdENoYW5nZXMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkW10ge1xuICByZXR1cm4gKGRhdGEub2JqZWN0Q2hhbmdlcz8uZmlsdGVyKChhKSA9PiBpcyhhLCBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQpKSBhcyBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWRbXSkgPz8gW107XG59XG4iXX0=
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNhY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9teXN0ZW5sYWIvdHlwZXMvdHJhbnNhY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQTBZQSx3Q0FFQztBQUVELG9EQUVDO0FBRUQsMERBRUM7QUFJRCxvREFFQztBQUVELGdDQUVDO0FBRUQsMERBRUM7QUFFRCx3REFFQztBQUVELDBEQUVDO0FBRUQsOERBRUM7QUFFRCxzRkFJQztBQUVELGdEQUVDO0FBRUQsd0RBRUM7QUFFRCxnRUFFQztBQUlELHdEQUVDO0FBRUQsZ0RBRUM7QUFFRCwwREFFQztBQUVELG9FQU9DO0FBRUQsMENBS0M7QUFFRCw4REFHQztBQUVELHNEQUVDO0FBSUQsOEJBRUM7QUFFRCw4Q0FFQztBQUlELGtGQUVDO0FBS0QsOEVBRUM7QUFFRCw0Q0FFQztBQUVELDhEQUVDO0FBdGdCRCw2Q0FjcUI7QUFFckIscUNBUWtCO0FBQ2xCLHFDQUFvQztBQUNwQyx1Q0FBbUY7QUFFdEUsUUFBQSxPQUFPLEdBQUcsSUFBQSxvQkFBTSxHQUFFLENBQUM7QUFFbkIsUUFBQSxjQUFjLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25DLEtBQUssRUFBRSxlQUFPO0lBQ2QsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4QixrQkFBa0IsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDNUIsY0FBYyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUN4Qix3QkFBd0IsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDN0MsQ0FBQyxDQUFDO0FBR1UsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0MsS0FBSyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNmLEtBQUssRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDZixtQkFBbUIsRUFBRSxJQUFBLG9CQUFNLEdBQUU7Q0FDOUIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxPQUFPLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzVCLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsaUJBQVEsQ0FBQztDQUN6QixDQUFDLENBQUM7QUFHVSxRQUFBLFdBQVcsR0FBRyxJQUFBLG1CQUFLLEVBQUM7SUFDL0IsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQztJQUNsQixJQUFBLG9CQUFNLEVBQUMsRUFBRSxLQUFLLEVBQUUsSUFBQSxvQkFBTSxHQUFFLEVBQUUsQ0FBQztJQUMzQixJQUFBLG9CQUFNLEVBQUMsRUFBRSxNQUFNLEVBQUUsSUFBQSxvQkFBTSxHQUFFLEVBQUUsQ0FBQztJQUM1QixJQUFBLG9CQUFNLEVBQUMsRUFBRSxZQUFZLEVBQUUsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxvQkFBTSxHQUFFLENBQUMsQ0FBQyxFQUFFLENBQUM7Q0FDdEQsQ0FBQyxDQUFDO0FBR1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDM0MsU0FBUyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMsbUJBQVcsQ0FBQyxDQUFDO0lBQ3ZDLGNBQWMsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDLENBQUM7SUFDekMsT0FBTyxFQUFFLGlCQUFRO0lBQ2pCLE1BQU0sRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDaEIsUUFBUSxFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNuQixDQUFDLENBQUM7QUFHVSxRQUFBLGNBQWMsR0FBRyxJQUFBLG1CQUFLLEVBQUM7SUFDbEMsSUFBQSxvQkFBTSxFQUFDLEVBQUUsUUFBUSxFQUFFLDhCQUFzQixFQUFFLENBQUM7SUFDNUMsSUFBQSxvQkFBTSxFQUFDLEVBQUUsZUFBZSxFQUFFLElBQUEsbUJBQUssRUFBQyxDQUFDLElBQUEsbUJBQUssRUFBQyxtQkFBVyxDQUFDLEVBQUUsbUJBQVcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNyRSxJQUFBLG9CQUFNLEVBQUMsRUFBRSxVQUFVLEVBQUUsSUFBQSxtQkFBSyxFQUFDLENBQUMsbUJBQVcsRUFBRSxJQUFBLG1CQUFLLEVBQUMsbUJBQVcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO0lBQ2hFLElBQUEsb0JBQU0sRUFBQyxFQUFFLFVBQVUsRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxtQkFBVyxFQUFFLElBQUEsbUJBQUssRUFBQyxtQkFBVyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDaEUsSUFBQSxvQkFBTSxFQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUFjLEVBQUUsQ0FBQztJQUNuQyxJQUFBLG9CQUFNLEVBQUMsRUFBRSxXQUFXLEVBQUUsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxzQkFBUSxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG1CQUFXLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztDQUN6RSxDQUFDLENBQUM7QUFFVSxRQUFBLFVBQVUsR0FBRyxJQUFBLG1CQUFLLEVBQUM7SUFDOUIsSUFBQSxvQkFBTSxFQUFDO1FBQ0wsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxNQUFNLENBQUM7UUFDckIsU0FBUyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztRQUM3QixLQUFLLEVBQUUscUJBQVk7S0FDcEIsQ0FBQztJQUNGLElBQUEsb0JBQU0sRUFBQztRQUNMLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsUUFBUSxDQUFDO1FBQ3ZCLFVBQVUsRUFBRSxJQUFBLHFCQUFPLEVBQUMsa0JBQWtCLENBQUM7UUFDdkMsUUFBUSxFQUFFLGlCQUFRO1FBQ2xCLE9BQU8sRUFBRSx1QkFBYztRQUN2QixNQUFNLEVBQUUsc0JBQVk7S0FDckIsQ0FBQztJQUNGLElBQUEsb0JBQU0sRUFBQztRQUNMLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsUUFBUSxDQUFDO1FBQ3ZCLFVBQVUsRUFBRSxJQUFBLHFCQUFPLEVBQUMsY0FBYyxDQUFDO1FBQ25DLFFBQVEsRUFBRSxpQkFBUTtRQUNsQixvQkFBb0IsRUFBRSx1QkFBYztRQUNwQyxPQUFPLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0tBQ25CLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUM1QyxZQUFZLEVBQUUsSUFBQSxtQkFBSyxFQUFDLHNCQUFjLENBQUM7SUFDbkMsTUFBTSxFQUFFLElBQUEsbUJBQUssRUFBQyxrQkFBVSxDQUFDO0NBQzFCLENBQUMsQ0FBQztBQWlCVSxRQUFBLHVCQUF1QixHQUFHLElBQUEsbUJBQUssRUFBQztJQUMzQyxJQUFBLG9CQUFNLEVBQUMsc0JBQWMsRUFBRSxJQUFBLG9CQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSxxQkFBTyxFQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNoRSxJQUFBLG9CQUFNLEVBQ0osa0NBQTBCLEVBQzFCLElBQUEsb0JBQU0sRUFBQztRQUNMLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMseUJBQXlCLENBQUM7S0FDekMsQ0FBQyxDQUNIO0lBQ0QsSUFBQSxvQkFBTSxFQUFDLGVBQU8sRUFBRSxJQUFBLG9CQUFNLEVBQUMsRUFBRSxJQUFJLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztJQUNyRCxJQUFBLG9CQUFNLEVBQUMsK0JBQXVCLEVBQUUsSUFBQSxvQkFBTSxFQUFDLEVBQUUsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyx5QkFBeUIsQ0FBQyxFQUFFLENBQUMsQ0FBQztDQUN0RixDQUFDLENBQUM7QUFHVSxRQUFBLHVCQUF1QixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUM1Qyx1RUFBdUU7SUFDdkUsY0FBYyxFQUFFLElBQUEscUJBQU8sRUFBQyxJQUFJLENBQUM7SUFDN0IsV0FBVyxFQUFFLCtCQUF1QjtJQUNwQyxNQUFNLEVBQUUsbUJBQVU7SUFDbEIsT0FBTyxFQUFFLG9CQUFVO0NBQ3BCLENBQUMsQ0FBQztBQUdVLFFBQUEsa0JBQWtCLEdBQUcsSUFBQSxvQkFBTSxHQUFFLENBQUM7QUFDOUIsUUFBQSx5QkFBeUIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQywwQkFBa0IsRUFBRSxJQUFBLG1CQUFLLEVBQUMsMEJBQWtCLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFbkYsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDNUMsS0FBSyxFQUFFLGVBQU87SUFDZCxTQUFTLEVBQUUsaUNBQXlCO0lBQ3BDLFdBQVcsRUFBRSxJQUFBLG1CQUFLLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDN0IsQ0FBQyxDQUFDO0FBR1UsUUFBQSxjQUFjLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25DLGVBQWUsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDekIsV0FBVyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNyQixhQUFhLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ3ZCLHVCQUF1QixFQUFFLElBQUEsb0JBQU0sR0FBRTtDQUNsQyxDQUFDLENBQUM7QUFHVSxRQUFBLG1CQUFtQixHQUFHLElBQUEsbUJBQUssRUFBQyxDQUFDLElBQUEscUJBQU8sRUFBQyxTQUFTLENBQUMsRUFBRSxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBR3RFLFFBQUEsZUFBZSxHQUFHLElBQUEsb0JBQU0sRUFBQztJQUNwQyxNQUFNLEVBQUUsMkJBQW1CO0lBQzNCLEtBQUssRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDMUIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxjQUFjLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25DLEtBQUssRUFBRSxvQkFBVztJQUNsQixTQUFTLEVBQUUsc0JBQVk7Q0FDeEIsQ0FBQyxDQUFDO0FBRVUsUUFBQSxvQ0FBb0MsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDekQsUUFBUSxFQUFFLGlCQUFRO0lBQ2xCLGNBQWMsRUFBRSx1QkFBYztDQUMvQixDQUFDLENBQUM7QUFFVSxRQUFBLGtCQUFrQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUN2Qyx1RUFBdUU7SUFDdkUsY0FBYyxFQUFFLElBQUEscUJBQU8sRUFBQyxJQUFJLENBQUM7SUFFN0Isa0NBQWtDO0lBQ2xDLE1BQU0sRUFBRSx1QkFBZTtJQUN2QixtREFBbUQ7SUFDbkQsYUFBYSxFQUFFLGVBQU87SUFDdEIsbUhBQW1IO0lBQ25ILGtCQUFrQixFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMsNENBQW9DLENBQUMsQ0FBQztJQUN6RSxPQUFPLEVBQUUsc0JBQWM7SUFDdkIsa0hBQWtIO0lBQ2xILGFBQWEsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLHNCQUFZLENBQUMsQ0FBQztJQUM1Qyw2QkFBNkI7SUFDN0IsaUJBQWlCLEVBQUUsMEJBQWlCO0lBQ3BDLGlEQUFpRDtJQUNqRCxPQUFPLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQyxzQkFBYyxDQUFDLENBQUM7SUFDeEMsbUVBQW1FO0lBQ25FLE9BQU8sRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLHNCQUFjLENBQUMsQ0FBQztJQUN4Qzs7OztPQUlHO0lBQ0gsU0FBUyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMsc0JBQWMsQ0FBQyxDQUFDO0lBQzFDLHdEQUF3RDtJQUN4RCxPQUFPLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQyxzQkFBWSxDQUFDLENBQUM7SUFDdEMsd0RBQXdEO0lBQ3hELHNCQUFzQixFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMsc0JBQVksQ0FBQyxDQUFDO0lBQ3JELDBEQUEwRDtJQUMxRCxPQUFPLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQyxzQkFBWSxDQUFDLENBQUM7SUFDdEM7OztPQUdHO0lBQ0gsU0FBUyxFQUFFLHNCQUFjO0lBQ3pCLDhGQUE4RjtJQUM5RixZQUFZLEVBQUUsSUFBQSxzQkFBUSxFQUFDLCtCQUFzQixDQUFDO0lBQzlDLGlFQUFpRTtJQUNqRSxZQUFZLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQywwQkFBaUIsQ0FBQyxDQUFDO0NBQ2pELENBQUMsQ0FBQztBQUdVLFFBQUEsaUJBQWlCLEdBQUcsSUFBQSxtQkFBSyxFQUFDLGlCQUFRLENBQUMsQ0FBQztBQUdqRCxNQUFNLGVBQWUsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLG1CQUFLLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUMsRUFBRSxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUM7QUFDM0QsTUFBTSwwQkFBMEIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxtQkFBVyxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxFQUFFLElBQUEsb0JBQU0sR0FBRSxDQUFDLENBQUMsQ0FBQztBQUNuRixNQUFNLG1CQUFtQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUNqQyx1QkFBdUIsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLDBCQUEwQixDQUFDLENBQUM7SUFDcEUsWUFBWSxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMsZUFBZSxDQUFDLENBQUM7Q0FDL0MsQ0FBQyxDQUFDO0FBRVUsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDdEMsT0FBTyxFQUFFLDBCQUFrQjtJQUMzQixNQUFNLEVBQUUseUJBQWlCO0lBQ3pCLE9BQU8sRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxtQkFBSyxFQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDN0MsS0FBSyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztDQUMxQixDQUFDLENBQUM7QUF1QlUsUUFBQSxhQUFhLEdBQUcsSUFBQSxvQkFBTSxHQUFFLENBQUM7QUFFekIsUUFBQSxtQkFBbUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDeEMsSUFBSSxFQUFFLCtCQUF1QjtJQUM3QixZQUFZLEVBQUUsSUFBQSxtQkFBSyxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDO0NBQzlCLENBQUMsQ0FBQztBQUdVLFFBQUEsd0JBQXdCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzdDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsV0FBVyxDQUFDO0lBQzFCLFNBQVMsRUFBRSxpQkFBUTtJQUNuQixPQUFPLEVBQUUsdUJBQWM7SUFDdkIsTUFBTSxFQUFFLHNCQUFZO0lBQ3BCLE9BQU8sRUFBRSxJQUFBLG1CQUFLLEVBQUMsSUFBQSxvQkFBTSxHQUFFLENBQUM7Q0FDekIsQ0FBQyxDQUFDO0FBR1UsUUFBQSwwQkFBMEIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDL0MsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxhQUFhLENBQUM7SUFDNUIsTUFBTSxFQUFFLG1CQUFVO0lBQ2xCLFNBQVMsRUFBRSxvQkFBVztJQUN0QixVQUFVLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ3BCLFFBQVEsRUFBRSxpQkFBUTtJQUNsQixPQUFPLEVBQUUsdUJBQWM7SUFDdkIsTUFBTSxFQUFFLHNCQUFZO0NBQ3JCLENBQUMsQ0FBQztBQUdVLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzNDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxtQkFBVTtJQUNsQixLQUFLLEVBQUUsb0JBQVc7SUFDbEIsVUFBVSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNwQixRQUFRLEVBQUUsaUJBQVE7SUFDbEIsT0FBTyxFQUFFLHVCQUFjO0lBQ3ZCLGVBQWUsRUFBRSx1QkFBYztJQUMvQixNQUFNLEVBQUUsc0JBQVk7Q0FDckIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxzQkFBc0IsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDM0MsSUFBSSxFQUFFLElBQUEscUJBQU8sRUFBQyxTQUFTLENBQUM7SUFDeEIsTUFBTSxFQUFFLG1CQUFVO0lBQ2xCLFVBQVUsRUFBRSxJQUFBLG9CQUFNLEdBQUU7SUFDcEIsUUFBUSxFQUFFLGlCQUFRO0lBQ2xCLE9BQU8sRUFBRSx1QkFBYztDQUN4QixDQUFDLENBQUM7QUFHVSxRQUFBLHNCQUFzQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMzQyxJQUFJLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFNBQVMsQ0FBQztJQUN4QixNQUFNLEVBQUUsbUJBQVU7SUFDbEIsVUFBVSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNwQixRQUFRLEVBQUUsaUJBQVE7SUFDbEIsT0FBTyxFQUFFLHVCQUFjO0NBQ3hCLENBQUMsQ0FBQztBQUdVLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQzNDLElBQUksRUFBRSxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDO0lBQ3hCLE1BQU0sRUFBRSxtQkFBVTtJQUNsQixLQUFLLEVBQUUsb0JBQVc7SUFDbEIsVUFBVSxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNwQixRQUFRLEVBQUUsaUJBQVE7SUFDbEIsT0FBTyxFQUFFLHVCQUFjO0lBQ3ZCLE1BQU0sRUFBRSxzQkFBWTtDQUNyQixDQUFDLENBQUM7QUFHVSxRQUFBLGVBQWUsR0FBRyxJQUFBLG1CQUFLLEVBQUM7SUFDbkMsZ0NBQXdCO0lBQ3hCLGtDQUEwQjtJQUMxQiw4QkFBc0I7SUFDdEIsOEJBQXNCO0lBQ3RCLDhCQUFzQjtJQUN0Qiw4QkFBc0I7Q0FDdkIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxhQUFhLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ2xDLEtBQUssRUFBRSxvQkFBVztJQUNsQixRQUFRLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0lBQ2xCLHNFQUFzRTtJQUN0RSxNQUFNLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0NBQ2pCLENBQUMsQ0FBQztBQUVVLFFBQUEsMkJBQTJCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ2hELE1BQU0sRUFBRSwwQkFBaUI7SUFDekIsV0FBVyxFQUFFLElBQUEsc0JBQVEsRUFBQywyQkFBbUIsQ0FBQztJQUMxQyxPQUFPLEVBQUUsSUFBQSxzQkFBUSxFQUFDLDBCQUFrQixDQUFDO0lBQ3JDLE1BQU0sRUFBRSxJQUFBLHNCQUFRLEVBQUMseUJBQWlCLENBQUM7SUFDbkMsV0FBVyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztJQUMvQixVQUFVLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsb0JBQU0sR0FBRSxDQUFDO0lBQzlCLHVCQUF1QixFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLHFCQUFPLEdBQUUsQ0FBQztJQUM1QyxhQUFhLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQyx1QkFBZSxDQUFDLENBQUM7SUFDL0MsY0FBYyxFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLG1CQUFLLEVBQUMscUJBQWEsQ0FBQyxDQUFDO0lBQzlDLG1FQUFtRTtJQUNuRSxNQUFNLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEsbUJBQUssRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQyxDQUFDO0NBQ2xDLENBQUMsQ0FBQztBQUdVLFFBQUEsa0NBQWtDLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ3ZELGtFQUFrRTtJQUNsRSxTQUFTLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEscUJBQU8sR0FBRSxDQUFDO0lBQzlCLCtEQUErRDtJQUMvRCxXQUFXLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEscUJBQU8sR0FBRSxDQUFDO0lBQ2hDLDhEQUE4RDtJQUM5RCxVQUFVLEVBQUUsSUFBQSxzQkFBUSxFQUFDLElBQUEscUJBQU8sR0FBRSxDQUFDO0lBQy9CLDBEQUEwRDtJQUMxRCxpQkFBaUIsRUFBRSxJQUFBLHNCQUFRLEVBQUMsSUFBQSxxQkFBTyxHQUFFLENBQUM7SUFDdEMsZ0VBQWdFO0lBQ2hFLGtCQUFrQixFQUFFLElBQUEsc0JBQVEsRUFBQyxJQUFBLHFCQUFPLEdBQUUsQ0FBQztDQUN4QyxDQUFDLENBQUM7QUFJVSxRQUFBLDRCQUE0QixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUNqRCxJQUFJLEVBQUUsSUFBQSxtQkFBSyxFQUFDLG1DQUEyQixDQUFDO0lBQ3hDLFVBQVUsRUFBRSxJQUFBLG1CQUFLLEVBQUMsQ0FBQywwQkFBaUIsRUFBRSxJQUFBLHFCQUFPLEVBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztJQUNyRCxXQUFXLEVBQUUsSUFBQSxxQkFBTyxHQUFFO0NBQ3ZCLENBQUMsQ0FBQztBQUVVLFFBQUEsOEJBQThCLEdBQUcsSUFBQSxvQkFBTSxFQUFDO0lBQ25ELE9BQU8sRUFBRSwwQkFBa0I7SUFDM0IsTUFBTSxFQUFFLHlCQUFpQjtJQUN6QixhQUFhLEVBQUUsSUFBQSxtQkFBSyxFQUFDLHVCQUFlLENBQUM7SUFDckMsY0FBYyxFQUFFLElBQUEsbUJBQUssRUFBQyxxQkFBYSxDQUFDO0NBQ3JDLENBQUMsQ0FBQztBQUdILGdGQUFnRjtBQUNoRixnRkFBZ0Y7QUFDaEYsZ0ZBQWdGO0FBRWhGLFNBQWdCLGNBQWMsQ0FBQyxFQUErQjtJQUM1RCxPQUFPLEVBQUUsQ0FBQyxXQUFXLENBQUM7QUFDeEIsQ0FBQztBQUVELFNBQWdCLG9CQUFvQixDQUFDLEVBQStCO0lBQ2xFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsRUFBK0I7SUFDckUsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLFlBQVksQ0FBQztBQUN0QyxDQUFDO0FBRUQsZ0ZBQWdGO0FBRWhGLFNBQWdCLG9CQUFvQixDQUFDLEVBQStCO0lBQ2xFLE9BQU8sRUFBRSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDO0FBQ3JDLENBQUM7QUFFRCxTQUFnQixVQUFVLENBQUMsRUFBK0I7SUFDeEQsT0FBTyxFQUFFLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUM7QUFDdEMsQ0FBQztBQUVELFNBQWdCLHVCQUF1QixDQUFDLEVBQStCO0lBQ3JFLE9BQU8sVUFBVSxDQUFDLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQztBQUNqQyxDQUFDO0FBRUQsU0FBZ0Isc0JBQXNCLENBQUMsRUFBK0I7SUFDcEUsT0FBTyxVQUFVLENBQUMsRUFBRSxDQUFDLEVBQUUsS0FBSyxDQUFDO0FBQy9CLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxFQUErQjtJQUNyRSxPQUFPLFVBQVUsQ0FBQyxFQUFFLENBQUMsRUFBRSxNQUFNLENBQUM7QUFDaEMsQ0FBQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQTZCO0lBQ3JFLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxhQUFhLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0FBQ3hELENBQUM7QUFFRCxTQUFnQixxQ0FBcUMsQ0FDbkQsSUFBNkI7SUFFN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsU0FBZ0Isa0JBQWtCLENBQUMsSUFBaUM7SUFDbEUsT0FBTyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUM7QUFDNUMsQ0FBQztBQUVELFNBQWdCLHNCQUFzQixDQUFDLElBQTZCO0lBQ2xFLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztBQUNuQixDQUFDO0FBRUQsU0FBZ0IsMEJBQTBCLENBQUMsSUFBNkI7SUFDdEUsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUNwRSxDQUFDO0FBRUQsZ0ZBQWdGO0FBRWhGLFNBQWdCLHNCQUFzQixDQUFDLElBQWlDO0lBQ3RFLE9BQU8sa0JBQWtCLENBQUMsSUFBSSxDQUFDLEVBQUUsTUFBTSxDQUFDO0FBQzFDLENBQUM7QUFFRCxTQUFnQixrQkFBa0IsQ0FBQyxJQUFpQztJQUNsRSxPQUFPLHFCQUFxQixDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sQ0FBQztBQUM3QyxDQUFDO0FBRUQsU0FBZ0IsdUJBQXVCLENBQUMsSUFBaUM7SUFDdkUsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLENBQUM7QUFDekMsQ0FBQztBQUVELFNBQWdCLDRCQUE0QixDQUMxQyxJQUFzRDtJQUV0RCxJQUFJLElBQUEsZ0JBQUUsRUFBQyxJQUFJLEVBQUUsMEJBQWtCLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7QUFDOUMsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxJQUFzRDtJQUNwRixNQUFNLFVBQVUsR0FBRyw0QkFBNEIsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN0RCxPQUFPLFVBQVU7UUFDZixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQUMsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLFdBQVcsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO1FBQ3hHLENBQUMsQ0FBQyxTQUFTLENBQUM7QUFDaEIsQ0FBQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQXNEO0lBQzlGLE1BQU0sVUFBVSxHQUFHLDRCQUE0QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RELE9BQU8sVUFBVSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLGVBQWUsQ0FBQyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztBQUN0RyxDQUFDO0FBRUQsU0FBZ0IscUJBQXFCLENBQUMsSUFBaUM7SUFDckUsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0FBQ3RCLENBQUM7QUFFRCxrRkFBa0Y7QUFFbEYsU0FBZ0IsU0FBUyxDQUFDLElBQWlDO0lBQ3pELE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztBQUNyQixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQUMsSUFBaUM7SUFDakUsT0FBTyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLENBQUM7QUFDOUMsQ0FBQztBQUVELGdGQUFnRjtBQUVoRixTQUFnQixtQ0FBbUMsQ0FBQyxJQUFpQztJQUNuRixPQUFPLElBQUksQ0FBQyxXQUFXLElBQUksU0FBUyxDQUFDO0FBQ3ZDLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLGlDQUFpQyxDQUFDLElBQWlDO0lBQ2pGLE9BQU8scUJBQXFCLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDO0FBQ3ZFLENBQUM7QUFFRCxTQUFnQixnQkFBZ0IsQ0FBQyxJQUFpQztJQUNoRSxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUM7QUFDNUIsQ0FBQztBQUVELFNBQWdCLHlCQUF5QixDQUFDLElBQWlDO0lBQ3pFLE9BQVEsSUFBSSxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUEsZ0JBQUUsRUFBQyxDQUFDLEVBQUUsZ0NBQXdCLENBQUMsQ0FBZ0MsSUFBSSxFQUFFLENBQUM7QUFDbEgsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIGlzLFxuICBhcnJheSxcbiAgSW5mZXIsXG4gIGxpdGVyYWwsXG4gIG51bWJlcixcbiAgb2JqZWN0LFxuICBvcHRpb25hbCxcbiAgc3RyaW5nLFxuICB1bmlvbixcbiAgYm9vbGVhbixcbiAgdHVwbGUsXG4gIGFzc2lnbixcbiAgbnVsbGFibGUsXG59IGZyb20gJ3N1cGVyc3RydWN0JztcblxuaW1wb3J0IHtcbiAgT2JqZWN0SWQsXG4gIE9iamVjdE93bmVyLFxuICBTZXF1ZW5jZU51bWJlcixcbiAgU3VpQWRkcmVzcyxcbiAgU3VpSnNvblZhbHVlLFxuICBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgVHJhbnNhY3Rpb25FdmVudERpZ2VzdCxcbn0gZnJvbSAnLi9jb21tb24nO1xuaW1wb3J0IHsgU3VpRXZlbnQgfSBmcm9tICcuL2V2ZW50cyc7XG5pbXBvcnQgeyBPYmplY3REaWdlc3QsIFN1aUdhc0RhdGEsIFN1aU1vdmVQYWNrYWdlLCBTdWlPYmplY3RSZWYgfSBmcm9tICcuL29iamVjdHMnO1xuXG5leHBvcnQgY29uc3QgRXBvY2hJZCA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpQ2hhbmdlRXBvY2ggPSBvYmplY3Qoe1xuICBlcG9jaDogRXBvY2hJZCxcbiAgc3RvcmFnZV9jaGFyZ2U6IG51bWJlcigpLFxuICBjb21wdXRhdGlvbl9jaGFyZ2U6IG51bWJlcigpLFxuICBzdG9yYWdlX3JlYmF0ZTogbnVtYmVyKCksXG4gIGVwb2NoX3N0YXJ0X3RpbWVzdGFtcF9tczogb3B0aW9uYWwobnVtYmVyKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlDaGFuZ2VFcG9jaCA9IEluZmVyPHR5cGVvZiBTdWlDaGFuZ2VFcG9jaD47XG5cbmV4cG9ydCBjb25zdCBTdWlDb25zZW5zdXNDb21taXRQcm9sb2d1ZSA9IG9iamVjdCh7XG4gIGVwb2NoOiBudW1iZXIoKSxcbiAgcm91bmQ6IG51bWJlcigpLFxuICBjb21taXRfdGltZXN0YW1wX21zOiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgPSBJbmZlcjx0eXBlb2YgU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWU+O1xuXG5leHBvcnQgY29uc3QgR2VuZXNpcyA9IG9iamVjdCh7XG4gIG9iamVjdHM6IGFycmF5KE9iamVjdElkKSxcbn0pO1xuZXhwb3J0IHR5cGUgR2VuZXNpcyA9IEluZmVyPHR5cGVvZiBHZW5lc2lzPjtcblxuZXhwb3J0IGNvbnN0IFN1aUFyZ3VtZW50ID0gdW5pb24oW1xuICBsaXRlcmFsKCdHYXNDb2luJyksXG4gIG9iamVjdCh7IElucHV0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgUmVzdWx0OiBudW1iZXIoKSB9KSxcbiAgb2JqZWN0KHsgTmVzdGVkUmVzdWx0OiB0dXBsZShbbnVtYmVyKCksIG51bWJlcigpXSkgfSksXG5dKTtcbmV4cG9ydCB0eXBlIFN1aUFyZ3VtZW50ID0gSW5mZXI8dHlwZW9mIFN1aUFyZ3VtZW50PjtcblxuZXhwb3J0IGNvbnN0IE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24gPSBvYmplY3Qoe1xuICBhcmd1bWVudHM6IG9wdGlvbmFsKGFycmF5KFN1aUFyZ3VtZW50KSksXG4gIHR5cGVfYXJndW1lbnRzOiBvcHRpb25hbChhcnJheShzdHJpbmcoKSkpLFxuICBwYWNrYWdlOiBPYmplY3RJZCxcbiAgbW9kdWxlOiBzdHJpbmcoKSxcbiAgZnVuY3Rpb246IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIE1vdmVDYWxsU3VpVHJhbnNhY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb24gPSB1bmlvbihbXG4gIG9iamVjdCh7IE1vdmVDYWxsOiBNb3ZlQ2FsbFN1aVRyYW5zYWN0aW9uIH0pLFxuICBvYmplY3QoeyBUcmFuc2Zlck9iamVjdHM6IHR1cGxlKFthcnJheShTdWlBcmd1bWVudCksIFN1aUFyZ3VtZW50XSkgfSksXG4gIG9iamVjdCh7IFNwbGl0Q29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IE1lcmdlQ29pbnM6IHR1cGxlKFtTdWlBcmd1bWVudCwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG4gIG9iamVjdCh7IFB1Ymxpc2g6IFN1aU1vdmVQYWNrYWdlIH0pLFxuICBvYmplY3QoeyBNYWtlTW92ZVZlYzogdHVwbGUoW251bGxhYmxlKHN0cmluZygpKSwgYXJyYXkoU3VpQXJndW1lbnQpXSkgfSksXG5dKTtcblxuZXhwb3J0IGNvbnN0IFN1aUNhbGxBcmcgPSB1bmlvbihbXG4gIG9iamVjdCh7XG4gICAgdHlwZTogbGl0ZXJhbCgncHVyZScpLFxuICAgIHZhbHVlVHlwZTogb3B0aW9uYWwoc3RyaW5nKCkpLFxuICAgIHZhbHVlOiBTdWlKc29uVmFsdWUsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ2ltbU9yT3duZWRPYmplY3QnKSxcbiAgICBvYmplY3RJZDogT2JqZWN0SWQsXG4gICAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIH0pLFxuICBvYmplY3Qoe1xuICAgIHR5cGU6IGxpdGVyYWwoJ29iamVjdCcpLFxuICAgIG9iamVjdFR5cGU6IGxpdGVyYWwoJ3NoYXJlZE9iamVjdCcpLFxuICAgIG9iamVjdElkOiBPYmplY3RJZCxcbiAgICBpbml0aWFsU2hhcmVkVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gICAgbXV0YWJsZTogYm9vbGVhbigpLFxuICB9KSxcbl0pO1xuZXhwb3J0IHR5cGUgU3VpQ2FsbEFyZyA9IEluZmVyPHR5cGVvZiBTdWlDYWxsQXJnPjtcblxuZXhwb3J0IGNvbnN0IFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gb2JqZWN0KHtcbiAgdHJhbnNhY3Rpb25zOiBhcnJheShTdWlUcmFuc2FjdGlvbiksXG4gIGlucHV0czogYXJyYXkoU3VpQ2FsbEFyZyksXG59KTtcbmV4cG9ydCB0eXBlIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFByb2dyYW1tYWJsZVRyYW5zYWN0aW9uPjtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uID0gSW5mZXI8dHlwZW9mIFN1aVRyYW5zYWN0aW9uPjtcblxuLyoqXG4gKiAxLiBXYWl0Rm9yRWZmZWN0c0NlcnQ6IHdhaXRzIGZvciBUcmFuc2FjdGlvbkVmZmVjdHNDZXJ0IGFuZCB0aGVuIHJldHVybnMgdG8gdGhlIGNsaWVudC5cbiAqICAgIFRoaXMgbW9kZSBpcyBhIHByb3h5IGZvciB0cmFuc2FjdGlvbiBmaW5hbGl0eS5cbiAqIDIuIFdhaXRGb3JMb2NhbEV4ZWN1dGlvbjogd2FpdHMgZm9yIFRyYW5zYWN0aW9uRWZmZWN0c0NlcnQgYW5kIG1ha2VzIHN1cmUgdGhlIG5vZGVcbiAqICAgIGV4ZWN1dGVkIHRoZSB0cmFuc2FjdGlvbiBsb2NhbGx5IGJlZm9yZSByZXR1cm5pbmcgdG8gdGhlIGNsaWVudC4gVGhlIGxvY2FsIGV4ZWN1dGlvblxuICogICAgbWFrZXMgc3VyZSB0aGlzIG5vZGUgaXMgYXdhcmUgb2YgdGhpcyB0cmFuc2FjdGlvbiB3aGVuIHRoZSBjbGllbnQgZmlyZXMgc3Vic2VxdWVudCBxdWVyaWVzLlxuICogICAgSG93ZXZlciwgaWYgdGhlIG5vZGUgZmFpbHMgdG8gZXhlY3V0ZSB0aGUgdHJhbnNhY3Rpb24gbG9jYWxseSBpbiBhIHRpbWVseSBtYW5uZXIsXG4gKiAgICBhIGJvb2wgdHlwZSBpbiB0aGUgcmVzcG9uc2UgaXMgc2V0IHRvIGZhbHNlIHRvIGluZGljYXRlIHRoZSBjYXNlLlxuICovXG5leHBvcnQgdHlwZSBFeGVjdXRlVHJhbnNhY3Rpb25SZXF1ZXN0VHlwZSA9ICdXYWl0Rm9yRWZmZWN0c0NlcnQnIHwgJ1dhaXRGb3JMb2NhbEV4ZWN1dGlvbic7XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uS2luZE5hbWUgPSAnQ2hhbmdlRXBvY2gnIHwgJ0NvbnNlbnN1c0NvbW1pdFByb2xvZ3VlJyB8ICdHZW5lc2lzJyB8ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbic7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IHVuaW9uKFtcbiAgYXNzaWduKFN1aUNoYW5nZUVwb2NoLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdDaGFuZ2VFcG9jaCcpIH0pKSxcbiAgYXNzaWduKFxuICAgIFN1aUNvbnNlbnN1c0NvbW1pdFByb2xvZ3VlLFxuICAgIG9iamVjdCh7XG4gICAgICBraW5kOiBsaXRlcmFsKCdDb25zZW5zdXNDb21taXRQcm9sb2d1ZScpLFxuICAgIH0pXG4gICksXG4gIGFzc2lnbihHZW5lc2lzLCBvYmplY3QoeyBraW5kOiBsaXRlcmFsKCdHZW5lc2lzJykgfSkpLFxuICBhc3NpZ24oUHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24sIG9iamVjdCh7IGtpbmQ6IGxpdGVyYWwoJ1Byb2dyYW1tYWJsZVRyYW5zYWN0aW9uJykgfSkpLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZD47XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrRGF0YSA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuICB0cmFuc2FjdGlvbjogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQsXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgZ2FzRGF0YTogU3VpR2FzRGF0YSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGEgPSBJbmZlcjx0eXBlb2YgU3VpVHJhbnNhY3Rpb25CbG9ja0RhdGE+O1xuXG5leHBvcnQgY29uc3QgQXV0aG9yaXR5U2lnbmF0dXJlID0gc3RyaW5nKCk7XG5leHBvcnQgY29uc3QgR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSA9IHVuaW9uKFtBdXRob3JpdHlTaWduYXR1cmUsIGFycmF5KEF1dGhvcml0eVNpZ25hdHVyZSldKTtcblxuZXhwb3J0IGNvbnN0IEF1dGhvcml0eVF1b3J1bVNpZ25JbmZvID0gb2JqZWN0KHtcbiAgZXBvY2g6IEVwb2NoSWQsXG4gIHNpZ25hdHVyZTogR2VuZXJpY0F1dGhvcml0eVNpZ25hdHVyZSxcbiAgc2lnbmVyc19tYXA6IGFycmF5KG51bWJlcigpKSxcbn0pO1xuZXhwb3J0IHR5cGUgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8gPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5UXVvcnVtU2lnbkluZm8+O1xuXG5leHBvcnQgY29uc3QgR2FzQ29zdFN1bW1hcnkgPSBvYmplY3Qoe1xuICBjb21wdXRhdGlvbkNvc3Q6IHN0cmluZygpLFxuICBzdG9yYWdlQ29zdDogc3RyaW5nKCksXG4gIHN0b3JhZ2VSZWJhdGU6IHN0cmluZygpLFxuICBub25SZWZ1bmRhYmxlU3RvcmFnZUZlZTogc3RyaW5nKCksXG59KTtcbmV4cG9ydCB0eXBlIEdhc0Nvc3RTdW1tYXJ5ID0gSW5mZXI8dHlwZW9mIEdhc0Nvc3RTdW1tYXJ5PjtcblxuZXhwb3J0IGNvbnN0IEV4ZWN1dGlvblN0YXR1c1R5cGUgPSB1bmlvbihbbGl0ZXJhbCgnc3VjY2VzcycpLCBsaXRlcmFsKCdmYWlsdXJlJyldKTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1c1R5cGUgPSBJbmZlcjx0eXBlb2YgRXhlY3V0aW9uU3RhdHVzVHlwZT47XG5cbmV4cG9ydCBjb25zdCBFeGVjdXRpb25TdGF0dXMgPSBvYmplY3Qoe1xuICBzdGF0dXM6IEV4ZWN1dGlvblN0YXR1c1R5cGUsXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblN0YXR1cyA9IEluZmVyPHR5cGVvZiBFeGVjdXRpb25TdGF0dXM+O1xuXG5leHBvcnQgY29uc3QgT3duZWRPYmplY3RSZWYgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIHJlZmVyZW5jZTogU3VpT2JqZWN0UmVmLFxufSk7XG5leHBvcnQgdHlwZSBPd25lZE9iamVjdFJlZiA9IEluZmVyPHR5cGVvZiBPd25lZE9iamVjdFJlZj47XG5leHBvcnQgY29uc3QgVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zID0gb2JqZWN0KHtcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICBzZXF1ZW5jZU51bWJlcjogU2VxdWVuY2VOdW1iZXIsXG59KTtcblxuZXhwb3J0IGNvbnN0IFRyYW5zYWN0aW9uRWZmZWN0cyA9IG9iamVjdCh7XG4gIC8vIEV2ZW50dWFsbHkgdGhpcyB3aWxsIGJlY29tZSB1bmlvbihsaXRlcmFsKCd2MScpLCBsaXRlcmFsKCd2MicpLCAuLi4pXG4gIG1lc3NhZ2VWZXJzaW9uOiBsaXRlcmFsKCd2MScpLFxuXG4gIC8qKiBUaGUgc3RhdHVzIG9mIHRoZSBleGVjdXRpb24gKi9cbiAgc3RhdHVzOiBFeGVjdXRpb25TdGF0dXMsXG4gIC8qKiBUaGUgZXBvY2ggd2hlbiB0aGlzIHRyYW5zYWN0aW9uIHdhcyBleGVjdXRlZCAqL1xuICBleGVjdXRlZEVwb2NoOiBFcG9jaElkLFxuICAvKiogVGhlIHZlcnNpb24gdGhhdCBldmVyeSBtb2RpZmllZCAobXV0YXRlZCBvciBkZWxldGVkKSBvYmplY3QgaGFkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQgYnkgdGhpcyB0cmFuc2FjdGlvbi4gKiovXG4gIG1vZGlmaWVkQXRWZXJzaW9uczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25FZmZlY3RzTW9kaWZpZWRBdFZlcnNpb25zKSksXG4gIGdhc1VzZWQ6IEdhc0Nvc3RTdW1tYXJ5LFxuICAvKiogVGhlIG9iamVjdCByZWZlcmVuY2VzIG9mIHRoZSBzaGFyZWQgb2JqZWN0cyB1c2VkIGluIHRoaXMgdHJhbnNhY3Rpb24uIEVtcHR5IGlmIG5vIHNoYXJlZCBvYmplY3RzIHdlcmUgdXNlZC4gKi9cbiAgc2hhcmVkT2JqZWN0czogb3B0aW9uYWwoYXJyYXkoU3VpT2JqZWN0UmVmKSksXG4gIC8qKiBUaGUgdHJhbnNhY3Rpb24gZGlnZXN0ICovXG4gIHRyYW5zYWN0aW9uRGlnZXN0OiBUcmFuc2FjdGlvbkRpZ2VzdCxcbiAgLyoqIE9iamVjdFJlZiBhbmQgb3duZXIgb2YgbmV3IG9iamVjdHMgY3JlYXRlZCAqL1xuICBjcmVhdGVkOiBvcHRpb25hbChhcnJheShPd25lZE9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0UmVmIGFuZCBvd25lciBvZiBtdXRhdGVkIG9iamVjdHMsIGluY2x1ZGluZyBnYXMgb2JqZWN0ICovXG4gIG11dGF0ZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKlxuICAgKiBPYmplY3RSZWYgYW5kIG93bmVyIG9mIG9iamVjdHMgdGhhdCBhcmUgdW53cmFwcGVkIGluIHRoaXMgdHJhbnNhY3Rpb24uXG4gICAqIFVud3JhcHBlZCBvYmplY3RzIGFyZSBvYmplY3RzIHRoYXQgd2VyZSB3cmFwcGVkIGludG8gb3RoZXIgb2JqZWN0cyBpbiB0aGUgcGFzdCxcbiAgICogYW5kIGp1c3QgZ290IGV4dHJhY3RlZCBvdXQuXG4gICAqL1xuICB1bndyYXBwZWQ6IG9wdGlvbmFsKGFycmF5KE93bmVkT2JqZWN0UmVmKSksXG4gIC8qKiBPYmplY3QgUmVmcyBvZiBvYmplY3RzIG5vdyBkZWxldGVkICh0aGUgb2xkIHJlZnMpICovXG4gIGRlbGV0ZWQ6IG9wdGlvbmFsKGFycmF5KFN1aU9iamVjdFJlZikpLFxuICAvKiogT2JqZWN0IFJlZnMgb2Ygb2JqZWN0cyBub3cgZGVsZXRlZCAodGhlIG9sZCByZWZzKSAqL1xuICB1bndyYXBwZWRfdGhlbl9kZWxldGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqIE9iamVjdCByZWZzIG9mIG9iamVjdHMgbm93IHdyYXBwZWQgaW4gb3RoZXIgb2JqZWN0cyAqL1xuICB3cmFwcGVkOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RSZWYpKSxcbiAgLyoqXG4gICAqIFRoZSB1cGRhdGVkIGdhcyBvYmplY3QgcmVmZXJlbmNlLiBIYXZlIGEgZGVkaWNhdGVkIGZpZWxkIGZvciBjb252ZW5pZW50IGFjY2Vzcy5cbiAgICogSXQncyBhbHNvIGluY2x1ZGVkIGluIG11dGF0ZWQuXG4gICAqL1xuICBnYXNPYmplY3Q6IE93bmVkT2JqZWN0UmVmLFxuICAvKiogVGhlIGV2ZW50cyBlbWl0dGVkIGR1cmluZyBleGVjdXRpb24uIE5vdGUgdGhhdCBvbmx5IHN1Y2Nlc3NmdWwgdHJhbnNhY3Rpb25zIGVtaXQgZXZlbnRzICovXG4gIGV2ZW50c0RpZ2VzdDogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudERpZ2VzdCksXG4gIC8qKiBUaGUgc2V0IG9mIHRyYW5zYWN0aW9uIGRpZ2VzdHMgdGhpcyB0cmFuc2FjdGlvbiBkZXBlbmRzIG9uICovXG4gIGRlcGVuZGVuY2llczogb3B0aW9uYWwoYXJyYXkoVHJhbnNhY3Rpb25EaWdlc3QpKSxcbn0pO1xuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25FZmZlY3RzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRWZmZWN0cz47XG5cbmV4cG9ydCBjb25zdCBUcmFuc2FjdGlvbkV2ZW50cyA9IGFycmF5KFN1aUV2ZW50KTtcbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRXZlbnRzID0gSW5mZXI8dHlwZW9mIFRyYW5zYWN0aW9uRXZlbnRzPjtcblxuY29uc3QgUmV0dXJuVmFsdWVUeXBlID0gdHVwbGUoW2FycmF5KG51bWJlcigpKSwgc3RyaW5nKCldKTtcbmNvbnN0IE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlID0gdHVwbGUoW1N1aUFyZ3VtZW50LCBhcnJheShudW1iZXIoKSksIHN0cmluZygpXSk7XG5jb25zdCBFeGVjdXRpb25SZXN1bHRUeXBlID0gb2JqZWN0KHtcbiAgbXV0YWJsZVJlZmVyZW5jZU91dHB1dHM6IG9wdGlvbmFsKGFycmF5KE11dGFibGVSZWZlcmVuY2VPdXRwdXRUeXBlKSksXG4gIHJldHVyblZhbHVlczogb3B0aW9uYWwoYXJyYXkoUmV0dXJuVmFsdWVUeXBlKSksXG59KTtcblxuZXhwb3J0IGNvbnN0IERldkluc3BlY3RSZXN1bHRzID0gb2JqZWN0KHtcbiAgZWZmZWN0czogVHJhbnNhY3Rpb25FZmZlY3RzLFxuICBldmVudHM6IFRyYW5zYWN0aW9uRXZlbnRzLFxuICByZXN1bHRzOiBvcHRpb25hbChhcnJheShFeGVjdXRpb25SZXN1bHRUeXBlKSksXG4gIGVycm9yOiBvcHRpb25hbChzdHJpbmcoKSksXG59KTtcbmV4cG9ydCB0eXBlIERldkluc3BlY3RSZXN1bHRzID0gSW5mZXI8dHlwZW9mIERldkluc3BlY3RSZXN1bHRzPjtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlUXVlcnkgPSB7XG4gIGZpbHRlcj86IFRyYW5zYWN0aW9uRmlsdGVyO1xuICBvcHRpb25zPzogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucztcbn07XG5cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uRmlsdGVyID1cbiAgfCB7XG4gICAgICBNb3ZlRnVuY3Rpb246IHtcbiAgICAgICAgcGFja2FnZTogT2JqZWN0SWQ7XG4gICAgICAgIG1vZHVsZTogc3RyaW5nIHwgbnVsbDtcbiAgICAgICAgZnVuY3Rpb246IHN0cmluZyB8IG51bGw7XG4gICAgICB9O1xuICAgIH1cbiAgfCB7IElucHV0T2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBDaGFuZ2VkT2JqZWN0OiBPYmplY3RJZCB9XG4gIHwgeyBGcm9tQWRkcmVzczogU3VpQWRkcmVzcyB9XG4gIHwgeyBUb0FkZHJlc3M6IFN1aUFkZHJlc3MgfTtcblxuZXhwb3J0IHR5cGUgRW1wdHlTaWduSW5mbyA9IG9iamVjdDtcbmV4cG9ydCB0eXBlIEF1dGhvcml0eU5hbWUgPSBJbmZlcjx0eXBlb2YgQXV0aG9yaXR5TmFtZT47XG5leHBvcnQgY29uc3QgQXV0aG9yaXR5TmFtZSA9IHN0cmluZygpO1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9jayA9IG9iamVjdCh7XG4gIGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tEYXRhLFxuICB0eFNpZ25hdHVyZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9jayA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3B1Ymxpc2hlZCcpLFxuICBwYWNrYWdlSWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbiAgZGlnZXN0OiBPYmplY3REaWdlc3QsXG4gIG1vZHVsZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlUHVibGlzaGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ3RyYW5zZmVycmVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgcmVjaXBpZW50OiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VUcmFuc2ZlcnJlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnbXV0YXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIHByZXZpb3VzVmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZU11dGF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IG9iamVjdCh7XG4gIHR5cGU6IGxpdGVyYWwoJ2RlbGV0ZWQnKSxcbiAgc2VuZGVyOiBTdWlBZGRyZXNzLFxuICBvYmplY3RUeXBlOiBzdHJpbmcoKSxcbiAgb2JqZWN0SWQ6IE9iamVjdElkLFxuICB2ZXJzaW9uOiBTZXF1ZW5jZU51bWJlcixcbn0pO1xuZXhwb3J0IHR5cGUgU3VpT2JqZWN0Q2hhbmdlRGVsZXRlZCA9IEluZmVyPHR5cGVvZiBTdWlPYmplY3RDaGFuZ2VEZWxldGVkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBvYmplY3Qoe1xuICB0eXBlOiBsaXRlcmFsKCd3cmFwcGVkJyksXG4gIHNlbmRlcjogU3VpQWRkcmVzcyxcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU9iamVjdENoYW5nZVdyYXBwZWQgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlV3JhcHBlZD47XG5cbmV4cG9ydCBjb25zdCBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gb2JqZWN0KHtcbiAgdHlwZTogbGl0ZXJhbCgnY3JlYXRlZCcpLFxuICBzZW5kZXI6IFN1aUFkZHJlc3MsXG4gIG93bmVyOiBPYmplY3RPd25lcixcbiAgb2JqZWN0VHlwZTogc3RyaW5nKCksXG4gIG9iamVjdElkOiBPYmplY3RJZCxcbiAgdmVyc2lvbjogU2VxdWVuY2VOdW1iZXIsXG4gIGRpZ2VzdDogT2JqZWN0RGlnZXN0LFxufSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkID0gSW5mZXI8dHlwZW9mIFN1aU9iamVjdENoYW5nZUNyZWF0ZWQ+O1xuXG5leHBvcnQgY29uc3QgU3VpT2JqZWN0Q2hhbmdlID0gdW5pb24oW1xuICBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWQsXG4gIFN1aU9iamVjdENoYW5nZVRyYW5zZmVycmVkLFxuICBTdWlPYmplY3RDaGFuZ2VNdXRhdGVkLFxuICBTdWlPYmplY3RDaGFuZ2VEZWxldGVkLFxuICBTdWlPYmplY3RDaGFuZ2VXcmFwcGVkLFxuICBTdWlPYmplY3RDaGFuZ2VDcmVhdGVkLFxuXSk7XG5leHBvcnQgdHlwZSBTdWlPYmplY3RDaGFuZ2UgPSBJbmZlcjx0eXBlb2YgU3VpT2JqZWN0Q2hhbmdlPjtcblxuZXhwb3J0IGNvbnN0IEJhbGFuY2VDaGFuZ2UgPSBvYmplY3Qoe1xuICBvd25lcjogT2JqZWN0T3duZXIsXG4gIGNvaW5UeXBlOiBzdHJpbmcoKSxcbiAgLyogQ29pbiBiYWxhbmNlIGNoYW5nZShwb3NpdGl2ZSBtZWFucyByZWNlaXZlLCBuZWdhdGl2ZSBtZWFucyBzZW5kKSAqL1xuICBhbW91bnQ6IHN0cmluZygpLFxufSk7XG5cbmV4cG9ydCBjb25zdCBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkaWdlc3Q6IFRyYW5zYWN0aW9uRGlnZXN0LFxuICB0cmFuc2FjdGlvbjogb3B0aW9uYWwoU3VpVHJhbnNhY3Rpb25CbG9jayksXG4gIGVmZmVjdHM6IG9wdGlvbmFsKFRyYW5zYWN0aW9uRWZmZWN0cyksXG4gIGV2ZW50czogb3B0aW9uYWwoVHJhbnNhY3Rpb25FdmVudHMpLFxuICB0aW1lc3RhbXBNczogb3B0aW9uYWwobnVtYmVyKCkpLFxuICBjaGVja3BvaW50OiBvcHRpb25hbChudW1iZXIoKSksXG4gIGNvbmZpcm1lZExvY2FsRXhlY3V0aW9uOiBvcHRpb25hbChib29sZWFuKCkpLFxuICBvYmplY3RDaGFuZ2VzOiBvcHRpb25hbChhcnJheShTdWlPYmplY3RDaGFuZ2UpKSxcbiAgYmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGFycmF5KEJhbGFuY2VDaGFuZ2UpKSxcbiAgLyogRXJyb3JzIHRoYXQgb2NjdXJyZWQgaW4gZmV0Y2hpbmcvc2VyaWFsaXppbmcgdGhlIHRyYW5zYWN0aW9uLiAqL1xuICBlcnJvcnM6IG9wdGlvbmFsKGFycmF5KHN0cmluZygpKSksXG59KTtcbmV4cG9ydCB0eXBlIFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2U+O1xuXG5leHBvcnQgY29uc3QgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IG9iamVjdCh7XG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBpbnB1dCBkYXRhLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93SW5wdXQ6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG4gIC8qIFdoZXRoZXIgdG8gc2hvdyB0cmFuc2FjdGlvbiBlZmZlY3RzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93RWZmZWN0czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IHRyYW5zYWN0aW9uIGV2ZW50cy4gRGVmYXVsdCB0byBiZSBmYWxzZS4gKi9cbiAgc2hvd0V2ZW50czogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IG9iamVjdCBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93T2JqZWN0Q2hhbmdlczogb3B0aW9uYWwoYm9vbGVhbigpKSxcbiAgLyogV2hldGhlciB0byBzaG93IGNvaW4gYmFsYW5jZSBjaGFuZ2VzLiBEZWZhdWx0IHRvIGJlIGZhbHNlLiAqL1xuICBzaG93QmFsYW5jZUNoYW5nZXM6IG9wdGlvbmFsKGJvb2xlYW4oKSksXG59KTtcblxuZXhwb3J0IHR5cGUgU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlT3B0aW9ucyA9IEluZmVyPHR5cGVvZiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2VPcHRpb25zPjtcblxuZXhwb3J0IGNvbnN0IFBhZ2luYXRlZFRyYW5zYWN0aW9uUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBkYXRhOiBhcnJheShTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpLFxuICBuZXh0Q3Vyc29yOiB1bmlvbihbVHJhbnNhY3Rpb25EaWdlc3QsIGxpdGVyYWwobnVsbCldKSxcbiAgaGFzTmV4dFBhZ2U6IGJvb2xlYW4oKSxcbn0pO1xuZXhwb3J0IHR5cGUgUGFnaW5hdGVkVHJhbnNhY3Rpb25SZXNwb25zZSA9IEluZmVyPHR5cGVvZiBQYWdpbmF0ZWRUcmFuc2FjdGlvblJlc3BvbnNlPjtcbmV4cG9ydCBjb25zdCBEcnlSdW5UcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UgPSBvYmplY3Qoe1xuICBlZmZlY3RzOiBUcmFuc2FjdGlvbkVmZmVjdHMsXG4gIGV2ZW50czogVHJhbnNhY3Rpb25FdmVudHMsXG4gIG9iamVjdENoYW5nZXM6IGFycmF5KFN1aU9iamVjdENoYW5nZSksXG4gIGJhbGFuY2VDaGFuZ2VzOiBhcnJheShCYWxhbmNlQ2hhbmdlKSxcbn0pO1xuZXhwb3J0IHR5cGUgRHJ5UnVuVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIERyeVJ1blRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZT47XG5cbi8qIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tICovXG4vKiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEhlbHBlciBmdW5jdGlvbnMgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAqL1xuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR4LnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25EaWdlc3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFRyYW5zYWN0aW9uRGlnZXN0IHtcbiAgcmV0dXJuIHR4LmRpZ2VzdDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uU2lnbmF0dXJlKHR4OiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBzdHJpbmdbXSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8udHhTaWduYXR1cmVzO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbkRhdGEgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25TZW5kZXIodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUFkZHJlc3MgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHgudHJhbnNhY3Rpb24/LmRhdGEuc2VuZGVyO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0R2FzRGF0YSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpR2FzRGF0YSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eC50cmFuc2FjdGlvbj8uZGF0YS5nYXNEYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNPYmplY3QodHg6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aU9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEdhc0RhdGEodHgpPy5wYXltZW50O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25HYXNQcmljZSh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8ucHJpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkdhc0J1ZGdldCh0eDogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKSB7XG4gIHJldHVybiBnZXRHYXNEYXRhKHR4KT8uYnVkZ2V0O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Q2hhbmdlRXBvY2hUcmFuc2FjdGlvbihkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFN1aUNoYW5nZUVwb2NoIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEua2luZCA9PT0gJ0NoYW5nZUVwb2NoJyA/IGRhdGEgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDb25zZW5zdXNDb21taXRQcm9sb2d1ZVRyYW5zYWN0aW9uKFxuICBkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZFxuKTogU3VpQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5raW5kID09PSAnQ29uc2Vuc3VzQ29tbWl0UHJvbG9ndWUnID8gZGF0YSA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRyYW5zYWN0aW9uS2luZChkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRyYW5zYWN0aW9uPy5kYXRhLnRyYW5zYWN0aW9uO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VHJhbnNhY3Rpb25LaW5kTmFtZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrS2luZCk6IFRyYW5zYWN0aW9uS2luZE5hbWUge1xuICByZXR1cm4gZGF0YS5raW5kO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHJvZ3JhbW1hYmxlVHJhbnNhY3Rpb24oZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja0tpbmQpOiBQcm9ncmFtbWFibGVUcmFuc2FjdGlvbiB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLmtpbmQgPT09ICdQcm9ncmFtbWFibGVUcmFuc2FjdGlvbicgPyBkYXRhIDogdW5kZWZpbmVkO1xufVxuXG4vKiAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBFeGVjdXRpb25TdGF0dXMgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzVHlwZShkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBFeGVjdXRpb25TdGF0dXNUeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldEV4ZWN1dGlvblN0YXR1cyhkYXRhKT8uc3RhdHVzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IEV4ZWN1dGlvblN0YXR1cyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YSk/LnN0YXR1cztcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEV4ZWN1dGlvblN0YXR1c0Vycm9yKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBnZXRFeGVjdXRpb25TdGF0dXMoZGF0YSk/LmVycm9yO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXhlY3V0aW9uU3RhdHVzR2FzU3VtbWFyeShcbiAgZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlIHwgVHJhbnNhY3Rpb25FZmZlY3RzXG4pOiBHYXNDb3N0U3VtbWFyeSB8IHVuZGVmaW5lZCB7XG4gIGlmIChpcyhkYXRhLCBUcmFuc2FjdGlvbkVmZmVjdHMpKSB7XG4gICAgcmV0dXJuIGRhdGEuZ2FzVXNlZDtcbiAgfVxuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5nYXNVc2VkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VG90YWxHYXNVc2VkKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeVxuICAgID8gQmlnSW50KGdhc1N1bW1hcnkuY29tcHV0YXRpb25Db3N0KSArIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VDb3N0KSAtIEJpZ0ludChnYXNTdW1tYXJ5LnN0b3JhZ2VSZWJhdGUpXG4gICAgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUb3RhbEdhc1VzZWRVcHBlckJvdW5kKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSB8IFRyYW5zYWN0aW9uRWZmZWN0cyk6IGJpZ2ludCB8IHVuZGVmaW5lZCB7XG4gIGNvbnN0IGdhc1N1bW1hcnkgPSBnZXRFeGVjdXRpb25TdGF0dXNHYXNTdW1tYXJ5KGRhdGEpO1xuICByZXR1cm4gZ2FzU3VtbWFyeSA/IEJpZ0ludChnYXNTdW1tYXJ5LmNvbXB1dGF0aW9uQ29zdCkgKyBCaWdJbnQoZ2FzU3VtbWFyeS5zdG9yYWdlQ29zdCkgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRUcmFuc2FjdGlvbkVmZmVjdHMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogVHJhbnNhY3Rpb25FZmZlY3RzIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGRhdGEuZWZmZWN0cztcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSBUcmFuc2FjdGlvbiBFZmZlY3RzIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAqL1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RXZlbnRzKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IFN1aUV2ZW50W10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5ldmVudHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRDcmVhdGVkT2JqZWN0cyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBPd25lZE9iamVjdFJlZltdIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIGdldFRyYW5zYWN0aW9uRWZmZWN0cyhkYXRhKT8uY3JlYXRlZDtcbn1cblxuLyogLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIFRyYW5zYWN0aW9uUmVzcG9uc2UgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gKi9cblxuZXhwb3J0IGZ1bmN0aW9uIGdldFRpbWVzdGFtcEZyb21UcmFuc2FjdGlvblJlc3BvbnNlKGRhdGE6IFN1aVRyYW5zYWN0aW9uQmxvY2tSZXNwb25zZSk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiBkYXRhLnRpbWVzdGFtcE1zID8/IHVuZGVmaW5lZDtcbn1cblxuLyoqXG4gKiBHZXQgdGhlIG5ld2x5IGNyZWF0ZWQgY29pbiByZWZzIGFmdGVyIGEgc3BsaXQuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXROZXdseUNyZWF0ZWRDb2luUmVmc0FmdGVyU3BsaXQoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0UmVmW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZ2V0VHJhbnNhY3Rpb25FZmZlY3RzKGRhdGEpPy5jcmVhdGVkPy5tYXAoKGMpID0+IGMucmVmZXJlbmNlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE9iamVjdENoYW5nZXMoZGF0YTogU3VpVHJhbnNhY3Rpb25CbG9ja1Jlc3BvbnNlKTogU3VpT2JqZWN0Q2hhbmdlW10gfCB1bmRlZmluZWQge1xuICByZXR1cm4gZGF0YS5vYmplY3RDaGFuZ2VzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UHVibGlzaGVkT2JqZWN0Q2hhbmdlcyhkYXRhOiBTdWlUcmFuc2FjdGlvbkJsb2NrUmVzcG9uc2UpOiBTdWlPYmplY3RDaGFuZ2VQdWJsaXNoZWRbXSB7XG4gIHJldHVybiAoZGF0YS5vYmplY3RDaGFuZ2VzPy5maWx0ZXIoKGEpID0+IGlzKGEsIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZCkpIGFzIFN1aU9iamVjdENoYW5nZVB1Ymxpc2hlZFtdKSA/PyBbXTtcbn1cbiJdfQ==
|