@bitgo-beta/sdk-coin-sui 3.0.3-beta.9 → 3.0.3-beta.900
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/.mocharc.yml +1 -2
- package/CHANGELOG.md +874 -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.d.ts +8 -0
- package/dist/src/lib/compareTransactionBlocks.d.ts.map +1 -0
- package/dist/src/lib/compareTransactionBlocks.js +12 -0
- package/dist/src/lib/constants.d.ts +10 -2
- package/dist/src/lib/constants.d.ts.map +1 -1
- package/dist/src/lib/constants.js +19 -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 +77 -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 +43 -48
- 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.d.ts +2 -0
- package/dist/src/lib/mystenlab/framework/sui-system-state.d.ts.map +1 -1
- package/dist/src/lib/mystenlab/framework/sui-system-state.js +6 -3
- package/dist/src/lib/mystenlab/txn-data-serializers/type-tag-serializer.js +2 -2
- package/dist/src/lib/mystenlab/types/coin.d.ts +14 -14
- 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 +100 -100
- 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 +641 -641
- 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 +13 -13
- 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 +3 -3
- package/dist/src/lib/stakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/stakingBuilder.js +47 -28
- 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 +34 -26
- 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.d.ts +8 -1
- package/dist/src/lib/unstakingBuilder.d.ts.map +1 -1
- package/dist/src/lib/unstakingBuilder.js +99 -20
- package/dist/src/lib/unstakingTransaction.d.ts +26 -2
- package/dist/src/lib/unstakingTransaction.d.ts.map +1 -1
- package/dist/src/lib/unstakingTransaction.js +162 -23
- package/dist/src/lib/utils.d.ts +27 -5
- package/dist/src/lib/utils.d.ts.map +1 -1
- package/dist/src/lib/utils.js +297 -25
- 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 +14 -10
|
@@ -1,45 +1,48 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.SuiMoveNormalizedModules = exports.SuiMoveNormalizedModule = exports.SuiMoveNormalizedStruct = exports.SuiMoveNormalizedField = exports.SuiMoveNormalizedFunction = exports.SuiMoveNormalizedStructType = exports.SuiMoveNormalizedType = exports.SuiMoveNormalizedTypeParameterType = exports.SuiMoveStructTypeParameter = exports.SuiMoveAbilitySet = exports.SuiMoveVisibility = exports.SuiMoveModuleId = exports.SuiMoveFunctionArgTypes = exports.SuiMoveFunctionArgType = void 0;
|
|
4
|
+
exports.extractMutableReference = extractMutableReference;
|
|
5
|
+
exports.extractReference = extractReference;
|
|
6
|
+
exports.extractStructTag = extractStructTag;
|
|
4
7
|
const superstruct_1 = require("superstruct");
|
|
5
|
-
exports.SuiMoveFunctionArgType = superstruct_1.union([superstruct_1.string(), superstruct_1.object({ Object: superstruct_1.string() })]);
|
|
6
|
-
exports.SuiMoveFunctionArgTypes = superstruct_1.array(exports.SuiMoveFunctionArgType);
|
|
7
|
-
exports.SuiMoveModuleId = superstruct_1.object({
|
|
8
|
-
address: superstruct_1.string(),
|
|
9
|
-
name: superstruct_1.string(),
|
|
8
|
+
exports.SuiMoveFunctionArgType = (0, superstruct_1.union)([(0, superstruct_1.string)(), (0, superstruct_1.object)({ Object: (0, superstruct_1.string)() })]);
|
|
9
|
+
exports.SuiMoveFunctionArgTypes = (0, superstruct_1.array)(exports.SuiMoveFunctionArgType);
|
|
10
|
+
exports.SuiMoveModuleId = (0, superstruct_1.object)({
|
|
11
|
+
address: (0, superstruct_1.string)(),
|
|
12
|
+
name: (0, superstruct_1.string)(),
|
|
10
13
|
});
|
|
11
|
-
exports.SuiMoveVisibility = superstruct_1.union([superstruct_1.literal('Private'), superstruct_1.literal('Public'), superstruct_1.literal('Friend')]);
|
|
12
|
-
exports.SuiMoveAbilitySet = superstruct_1.object({
|
|
13
|
-
abilities: superstruct_1.array(superstruct_1.string()),
|
|
14
|
+
exports.SuiMoveVisibility = (0, superstruct_1.union)([(0, superstruct_1.literal)('Private'), (0, superstruct_1.literal)('Public'), (0, superstruct_1.literal)('Friend')]);
|
|
15
|
+
exports.SuiMoveAbilitySet = (0, superstruct_1.object)({
|
|
16
|
+
abilities: (0, superstruct_1.array)((0, superstruct_1.string)()),
|
|
14
17
|
});
|
|
15
|
-
exports.SuiMoveStructTypeParameter = superstruct_1.object({
|
|
18
|
+
exports.SuiMoveStructTypeParameter = (0, superstruct_1.object)({
|
|
16
19
|
constraints: exports.SuiMoveAbilitySet,
|
|
17
|
-
isPhantom: superstruct_1.boolean(),
|
|
20
|
+
isPhantom: (0, superstruct_1.boolean)(),
|
|
18
21
|
});
|
|
19
|
-
exports.SuiMoveNormalizedTypeParameterType = superstruct_1.object({
|
|
20
|
-
TypeParameter: superstruct_1.number(),
|
|
22
|
+
exports.SuiMoveNormalizedTypeParameterType = (0, superstruct_1.object)({
|
|
23
|
+
TypeParameter: (0, superstruct_1.number)(),
|
|
21
24
|
});
|
|
22
25
|
function isSuiMoveNormalizedType(value) {
|
|
23
26
|
if (!value)
|
|
24
27
|
return false;
|
|
25
28
|
if (typeof value === 'string')
|
|
26
29
|
return true;
|
|
27
|
-
if (superstruct_1.is(value, exports.SuiMoveNormalizedTypeParameterType))
|
|
30
|
+
if ((0, superstruct_1.is)(value, exports.SuiMoveNormalizedTypeParameterType))
|
|
28
31
|
return true;
|
|
29
32
|
if (isSuiMoveNormalizedStructType(value))
|
|
30
33
|
return true;
|
|
31
34
|
if (typeof value !== 'object')
|
|
32
35
|
return false;
|
|
33
36
|
const valueProperties = value;
|
|
34
|
-
if (superstruct_1.is(valueProperties.Reference, exports.SuiMoveNormalizedType))
|
|
37
|
+
if ((0, superstruct_1.is)(valueProperties.Reference, exports.SuiMoveNormalizedType))
|
|
35
38
|
return true;
|
|
36
|
-
if (superstruct_1.is(valueProperties.MutableReference, exports.SuiMoveNormalizedType))
|
|
39
|
+
if ((0, superstruct_1.is)(valueProperties.MutableReference, exports.SuiMoveNormalizedType))
|
|
37
40
|
return true;
|
|
38
|
-
if (superstruct_1.is(valueProperties.Vector, exports.SuiMoveNormalizedType))
|
|
41
|
+
if ((0, superstruct_1.is)(valueProperties.Vector, exports.SuiMoveNormalizedType))
|
|
39
42
|
return true;
|
|
40
43
|
return false;
|
|
41
44
|
}
|
|
42
|
-
exports.SuiMoveNormalizedType = superstruct_1.define('SuiMoveNormalizedType', isSuiMoveNormalizedType);
|
|
45
|
+
exports.SuiMoveNormalizedType = (0, superstruct_1.define)('SuiMoveNormalizedType', isSuiMoveNormalizedType);
|
|
43
46
|
function isSuiMoveNormalizedStructType(value) {
|
|
44
47
|
if (!value || typeof value !== 'object')
|
|
45
48
|
return false;
|
|
@@ -57,42 +60,40 @@ function isSuiMoveNormalizedStructType(value) {
|
|
|
57
60
|
return true;
|
|
58
61
|
}
|
|
59
62
|
// NOTE: This type is recursive, so we need to manually implement it:
|
|
60
|
-
exports.SuiMoveNormalizedStructType = superstruct_1.define('SuiMoveNormalizedStructType', isSuiMoveNormalizedStructType);
|
|
61
|
-
exports.SuiMoveNormalizedFunction = superstruct_1.object({
|
|
63
|
+
exports.SuiMoveNormalizedStructType = (0, superstruct_1.define)('SuiMoveNormalizedStructType', isSuiMoveNormalizedStructType);
|
|
64
|
+
exports.SuiMoveNormalizedFunction = (0, superstruct_1.object)({
|
|
62
65
|
visibility: exports.SuiMoveVisibility,
|
|
63
|
-
isEntry: superstruct_1.boolean(),
|
|
64
|
-
typeParameters: superstruct_1.array(exports.SuiMoveAbilitySet),
|
|
65
|
-
parameters: superstruct_1.array(exports.SuiMoveNormalizedType),
|
|
66
|
-
return: superstruct_1.array(exports.SuiMoveNormalizedType),
|
|
66
|
+
isEntry: (0, superstruct_1.boolean)(),
|
|
67
|
+
typeParameters: (0, superstruct_1.array)(exports.SuiMoveAbilitySet),
|
|
68
|
+
parameters: (0, superstruct_1.array)(exports.SuiMoveNormalizedType),
|
|
69
|
+
return: (0, superstruct_1.array)(exports.SuiMoveNormalizedType),
|
|
67
70
|
});
|
|
68
|
-
exports.SuiMoveNormalizedField = superstruct_1.object({
|
|
69
|
-
name: superstruct_1.string(),
|
|
71
|
+
exports.SuiMoveNormalizedField = (0, superstruct_1.object)({
|
|
72
|
+
name: (0, superstruct_1.string)(),
|
|
70
73
|
type: exports.SuiMoveNormalizedType,
|
|
71
74
|
});
|
|
72
|
-
exports.SuiMoveNormalizedStruct = superstruct_1.object({
|
|
75
|
+
exports.SuiMoveNormalizedStruct = (0, superstruct_1.object)({
|
|
73
76
|
abilities: exports.SuiMoveAbilitySet,
|
|
74
|
-
typeParameters: superstruct_1.array(exports.SuiMoveStructTypeParameter),
|
|
75
|
-
fields: superstruct_1.array(exports.SuiMoveNormalizedField),
|
|
77
|
+
typeParameters: (0, superstruct_1.array)(exports.SuiMoveStructTypeParameter),
|
|
78
|
+
fields: (0, superstruct_1.array)(exports.SuiMoveNormalizedField),
|
|
76
79
|
});
|
|
77
|
-
exports.SuiMoveNormalizedModule = superstruct_1.object({
|
|
78
|
-
fileFormatVersion: superstruct_1.number(),
|
|
79
|
-
address: superstruct_1.string(),
|
|
80
|
-
name: superstruct_1.string(),
|
|
81
|
-
friends: superstruct_1.array(exports.SuiMoveModuleId),
|
|
82
|
-
structs: superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedStruct),
|
|
83
|
-
exposedFunctions: superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedFunction),
|
|
80
|
+
exports.SuiMoveNormalizedModule = (0, superstruct_1.object)({
|
|
81
|
+
fileFormatVersion: (0, superstruct_1.number)(),
|
|
82
|
+
address: (0, superstruct_1.string)(),
|
|
83
|
+
name: (0, superstruct_1.string)(),
|
|
84
|
+
friends: (0, superstruct_1.array)(exports.SuiMoveModuleId),
|
|
85
|
+
structs: (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedStruct),
|
|
86
|
+
exposedFunctions: (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedFunction),
|
|
84
87
|
});
|
|
85
|
-
exports.SuiMoveNormalizedModules = superstruct_1.record(superstruct_1.string(), exports.SuiMoveNormalizedModule);
|
|
88
|
+
exports.SuiMoveNormalizedModules = (0, superstruct_1.record)((0, superstruct_1.string)(), exports.SuiMoveNormalizedModule);
|
|
86
89
|
function extractMutableReference(normalizedType) {
|
|
87
90
|
return typeof normalizedType === 'object' && 'MutableReference' in normalizedType
|
|
88
91
|
? normalizedType.MutableReference
|
|
89
92
|
: undefined;
|
|
90
93
|
}
|
|
91
|
-
exports.extractMutableReference = extractMutableReference;
|
|
92
94
|
function extractReference(normalizedType) {
|
|
93
95
|
return typeof normalizedType === 'object' && 'Reference' in normalizedType ? normalizedType.Reference : undefined;
|
|
94
96
|
}
|
|
95
|
-
exports.extractReference = extractReference;
|
|
96
97
|
function extractStructTag(normalizedType) {
|
|
97
98
|
if (typeof normalizedType === 'object' && 'Struct' in normalizedType) {
|
|
98
99
|
return normalizedType;
|
|
@@ -107,5 +108,4 @@ function extractStructTag(normalizedType) {
|
|
|
107
108
|
}
|
|
108
109
|
return undefined;
|
|
109
110
|
}
|
|
110
|
-
exports.extractStructTag = extractStructTag;
|
|
111
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL25vcm1hbGl6ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQWdIO0FBSW5HLFFBQUEsc0JBQXNCLEdBQUcsbUJBQUssQ0FBQyxDQUFDLG9CQUFNLEVBQUUsRUFBRSxvQkFBTSxDQUFDLEVBQUUsTUFBTSxFQUFFLG9CQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDO0FBRXpFLFFBQUEsdUJBQXVCLEdBQUcsbUJBQUssQ0FBQyw4QkFBc0IsQ0FBQyxDQUFDO0FBR3hELFFBQUEsZUFBZSxHQUFHLG9CQUFNLENBQUM7SUFDcEMsT0FBTyxFQUFFLG9CQUFNLEVBQUU7SUFDakIsSUFBSSxFQUFFLG9CQUFNLEVBQUU7Q0FDZixDQUFDLENBQUM7QUFHVSxRQUFBLGlCQUFpQixHQUFHLG1CQUFLLENBQUMsQ0FBQyxxQkFBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUscUJBQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHdEYsUUFBQSxpQkFBaUIsR0FBRyxvQkFBTSxDQUFDO0lBQ3RDLFNBQVMsRUFBRSxtQkFBSyxDQUFDLG9CQUFNLEVBQUUsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFHVSxRQUFBLDBCQUEwQixHQUFHLG9CQUFNLENBQUM7SUFDL0MsV0FBVyxFQUFFLHlCQUFpQjtJQUM5QixTQUFTLEVBQUUscUJBQU8sRUFBRTtDQUNyQixDQUFDLENBQUM7QUFHVSxRQUFBLGtDQUFrQyxHQUFHLG9CQUFNLENBQUM7SUFDdkQsYUFBYSxFQUFFLG9CQUFNLEVBQUU7Q0FDeEIsQ0FBQyxDQUFDO0FBV0gsU0FBUyx1QkFBdUIsQ0FBQyxLQUFjO0lBQzdDLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxLQUFLLENBQUM7SUFDekIsSUFBSSxP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LE9BQU8sTUFBTSxDQUFDO0tBQ2Y7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDO0FBaEJELDRDQWdCQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFycmF5LCBJbmZlciwgb2JqZWN0LCBzdHJpbmcsIHVuaW9uLCBib29sZWFuLCBkZWZpbmUsIG51bWJlciwgbGl0ZXJhbCwgcmVjb3JkLCBpcyB9IGZyb20gJ3N1cGVyc3RydWN0JztcblxuZXhwb3J0IHR5cGUgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXNSZXNwb25zZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlPltdO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZSA9IHVuaW9uKFtzdHJpbmcoKSwgb2JqZWN0KHsgT2JqZWN0OiBzdHJpbmcoKSB9KV0pO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXMgPSBhcnJheShTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlKTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGVzID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGVzPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVNb2R1bGVJZCA9IG9iamVjdCh7XG4gIGFkZHJlc3M6IHN0cmluZygpLFxuICBuYW1lOiBzdHJpbmcoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU1vZHVsZUlkID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVNb2R1bGVJZD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlVmlzaWJpbGl0eSA9IHVuaW9uKFtsaXRlcmFsKCdQcml2YXRlJyksIGxpdGVyYWwoJ1B1YmxpYycpLCBsaXRlcmFsKCdGcmllbmQnKV0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZVZpc2liaWxpdHkgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZVZpc2liaWxpdHk+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZUFiaWxpdHlTZXQgPSBvYmplY3Qoe1xuICBhYmlsaXRpZXM6IGFycmF5KHN0cmluZygpKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZUFiaWxpdHlTZXQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZUFiaWxpdHlTZXQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZVN0cnVjdFR5cGVQYXJhbWV0ZXIgPSBvYmplY3Qoe1xuICBjb25zdHJhaW50czogU3VpTW92ZUFiaWxpdHlTZXQsXG4gIGlzUGhhbnRvbTogYm9vbGVhbigpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlcj47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlID0gb2JqZWN0KHtcbiAgVHlwZVBhcmFtZXRlcjogbnVtYmVyKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkVHlwZVBhcmFtZXRlclR5cGUgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZT47XG5cbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkVHlwZSA9XG4gIHwgc3RyaW5nXG4gIHwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZVxuICB8IHsgUmVmZXJlbmNlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IHsgTXV0YWJsZVJlZmVyZW5jZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIH1cbiAgfCB7IFZlY3RvcjogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIH1cbiAgfCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGU7XG5cbmZ1bmN0aW9uIGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIHtcbiAgaWYgKCF2YWx1ZSkgcmV0dXJuIGZhbHNlO1xuICBpZiAodHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJykgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUodmFsdWUpKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCB2YWx1ZVByb3BlcnRpZXMgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKGlzKHZhbHVlUHJvcGVydGllcy5SZWZlcmVuY2UsIFN1aU1vdmVOb3JtYWxpemVkVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLk11dGFibGVSZWZlcmVuY2UsIFN1aU1vdmVOb3JtYWxpemVkVHlwZSkpIHJldHVybiB0cnVlO1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLlZlY3RvciwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkVHlwZSA9IGRlZmluZTxTdWlNb3ZlTm9ybWFsaXplZFR5cGU+KCdTdWlNb3ZlTm9ybWFsaXplZFR5cGUnLCBpc1N1aU1vdmVOb3JtYWxpemVkVHlwZSk7XG5cbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSA9IHtcbiAgU3RydWN0OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIG1vZHVsZTogc3RyaW5nO1xuICAgIG5hbWU6IHN0cmluZztcbiAgICB0eXBlQXJndW1lbnRzOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGVbXTtcbiAgfTtcbn07XG5cbmZ1bmN0aW9uIGlzU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlKHZhbHVlOiB1bmtub3duKTogdmFsdWUgaXMgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlIHtcbiAgaWYgKCF2YWx1ZSB8fCB0eXBlb2YgdmFsdWUgIT09ICdvYmplY3QnKSByZXR1cm4gZmFsc2U7XG5cbiAgY29uc3QgdmFsdWVQcm9wZXJ0aWVzID0gdmFsdWUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIGlmICghdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCB8fCB0eXBlb2YgdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCBzdHJ1Y3RQcm9wZXJ0aWVzID0gdmFsdWVQcm9wZXJ0aWVzLlN0cnVjdCBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKFxuICAgIHR5cGVvZiBzdHJ1Y3RQcm9wZXJ0aWVzLmFkZHJlc3MgIT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMubW9kdWxlICE9PSAnc3RyaW5nJyB8fFxuICAgIHR5cGVvZiBzdHJ1Y3RQcm9wZXJ0aWVzLm5hbWUgIT09ICdzdHJpbmcnIHx8XG4gICAgIUFycmF5LmlzQXJyYXkoc3RydWN0UHJvcGVydGllcy50eXBlQXJndW1lbnRzKSB8fFxuICAgICFzdHJ1Y3RQcm9wZXJ0aWVzLnR5cGVBcmd1bWVudHMuZXZlcnkoKHZhbHVlKSA9PiBpc1N1aU1vdmVOb3JtYWxpemVkVHlwZSh2YWx1ZSkpXG4gICkge1xuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHJldHVybiB0cnVlO1xufVxuXG4vLyBOT1RFOiBUaGlzIHR5cGUgaXMgcmVjdXJzaXZlLCBzbyB3ZSBuZWVkIHRvIG1hbnVhbGx5IGltcGxlbWVudCBpdDpcbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUgPSBkZWZpbmU8U3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlPihcbiAgJ1N1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZScsXG4gIGlzU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlXG4pO1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRGdW5jdGlvbiA9IG9iamVjdCh7XG4gIHZpc2liaWxpdHk6IFN1aU1vdmVWaXNpYmlsaXR5LFxuICBpc0VudHJ5OiBib29sZWFuKCksXG4gIHR5cGVQYXJhbWV0ZXJzOiBhcnJheShTdWlNb3ZlQWJpbGl0eVNldCksXG4gIHBhcmFtZXRlcnM6IGFycmF5KFN1aU1vdmVOb3JtYWxpemVkVHlwZSksXG4gIHJldHVybjogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRGdW5jdGlvbiA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkRmllbGQgPSBvYmplY3Qoe1xuICBuYW1lOiBzdHJpbmcoKSxcbiAgdHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZEZpZWxkID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkRmllbGQ+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3QgPSBvYmplY3Qoe1xuICBhYmlsaXRpZXM6IFN1aU1vdmVBYmlsaXR5U2V0LFxuICB0eXBlUGFyYW1ldGVyczogYXJyYXkoU3VpTW92ZVN0cnVjdFR5cGVQYXJhbWV0ZXIpLFxuICBmaWVsZHM6IGFycmF5KFN1aU1vdmVOb3JtYWxpemVkRmllbGQpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdCA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSA9IG9iamVjdCh7XG4gIGZpbGVGb3JtYXRWZXJzaW9uOiBudW1iZXIoKSxcbiAgYWRkcmVzczogc3RyaW5nKCksXG4gIG5hbWU6IHN0cmluZygpLFxuICBmcmllbmRzOiBhcnJheShTdWlNb3ZlTW9kdWxlSWQpLFxuICBzdHJ1Y3RzOiByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0KSxcbiAgZXhwb3NlZEZ1bmN0aW9uczogcmVjb3JkKHN0cmluZygpLCBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGUgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGU+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGVzID0gcmVjb3JkKHN0cmluZygpLCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXMgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRNb2R1bGVzPjtcblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RNdXRhYmxlUmVmZXJlbmNlKG5vcm1hbGl6ZWRUeXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfCB1bmRlZmluZWQge1xuICByZXR1cm4gdHlwZW9mIG5vcm1hbGl6ZWRUeXBlID09PSAnb2JqZWN0JyAmJiAnTXV0YWJsZVJlZmVyZW5jZScgaW4gbm9ybWFsaXplZFR5cGVcbiAgICA/IG5vcm1hbGl6ZWRUeXBlLk11dGFibGVSZWZlcmVuY2VcbiAgICA6IHVuZGVmaW5lZDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGV4dHJhY3RSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGU6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSk6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdvYmplY3QnICYmICdSZWZlcmVuY2UnIGluIG5vcm1hbGl6ZWRUeXBlID8gbm9ybWFsaXplZFR5cGUuUmVmZXJlbmNlIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFN0cnVjdFRhZyhub3JtYWxpemVkVHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTogU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlIHwgdW5kZWZpbmVkIHtcbiAgaWYgKHR5cGVvZiBub3JtYWxpemVkVHlwZSA9PT0gJ29iamVjdCcgJiYgJ1N0cnVjdCcgaW4gbm9ybWFsaXplZFR5cGUpIHtcbiAgICByZXR1cm4gbm9ybWFsaXplZFR5cGU7XG4gIH1cblxuICBjb25zdCByZWYgPSBleHRyYWN0UmVmZXJlbmNlKG5vcm1hbGl6ZWRUeXBlKTtcbiAgY29uc3QgbXV0UmVmID0gZXh0cmFjdE11dGFibGVSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGUpO1xuXG4gIGlmICh0eXBlb2YgcmVmID09PSAnb2JqZWN0JyAmJiAnU3RydWN0JyBpbiByZWYpIHtcbiAgICByZXR1cm4gcmVmO1xuICB9XG5cbiAgaWYgKHR5cGVvZiBtdXRSZWYgPT09ICdvYmplY3QnICYmICdTdHJ1Y3QnIGluIG11dFJlZikge1xuICAgIHJldHVybiBtdXRSZWY7XG4gIH1cbiAgcmV0dXJuIHVuZGVmaW5lZDtcbn1cbiJdfQ==
|
|
111
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm9ybWFsaXplZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvbXlzdGVubGFiL3R5cGVzL25vcm1hbGl6ZWQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBZ0lBLDBEQUlDO0FBRUQsNENBRUM7QUFFRCw0Q0FnQkM7QUExSkQsNkNBQWdIO0FBSW5HLFFBQUEsc0JBQXNCLEdBQUcsSUFBQSxtQkFBSyxFQUFDLENBQUMsSUFBQSxvQkFBTSxHQUFFLEVBQUUsSUFBQSxvQkFBTSxFQUFDLEVBQUUsTUFBTSxFQUFFLElBQUEsb0JBQU0sR0FBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFFekUsUUFBQSx1QkFBdUIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsOEJBQXNCLENBQUMsQ0FBQztBQUd4RCxRQUFBLGVBQWUsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDcEMsT0FBTyxFQUFFLElBQUEsb0JBQU0sR0FBRTtJQUNqQixJQUFJLEVBQUUsSUFBQSxvQkFBTSxHQUFFO0NBQ2YsQ0FBQyxDQUFDO0FBR1UsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLG1CQUFLLEVBQUMsQ0FBQyxJQUFBLHFCQUFPLEVBQUMsU0FBUyxDQUFDLEVBQUUsSUFBQSxxQkFBTyxFQUFDLFFBQVEsQ0FBQyxFQUFFLElBQUEscUJBQU8sRUFBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFHdEYsUUFBQSxpQkFBaUIsR0FBRyxJQUFBLG9CQUFNLEVBQUM7SUFDdEMsU0FBUyxFQUFFLElBQUEsbUJBQUssRUFBQyxJQUFBLG9CQUFNLEdBQUUsQ0FBQztDQUMzQixDQUFDLENBQUM7QUFHVSxRQUFBLDBCQUEwQixHQUFHLElBQUEsb0JBQU0sRUFBQztJQUMvQyxXQUFXLEVBQUUseUJBQWlCO0lBQzlCLFNBQVMsRUFBRSxJQUFBLHFCQUFPLEdBQUU7Q0FDckIsQ0FBQyxDQUFDO0FBR1UsUUFBQSxrQ0FBa0MsR0FBRyxJQUFBLG9CQUFNLEVB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LE9BQU8sY0FBYyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxNQUFNLEdBQUcsR0FBRyxnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUM3QyxNQUFNLE1BQU0sR0FBRyx1QkFBdUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUV2RCxJQUFJLE9BQU8sR0FBRyxLQUFLLFFBQVEsSUFBSSxRQUFRLElBQUksR0FBRyxFQUFFLENBQUM7UUFDL0MsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsSUFBSSxPQUFPLE1BQU0sS0FBSyxRQUFRLElBQUksUUFBUSxJQUFJLE1BQU0sRUFBRSxDQUFDO1FBQ3JELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFDRCxPQUFPLFNBQVMsQ0FBQztBQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXJyYXksIEluZmVyLCBvYmplY3QsIHN0cmluZywgdW5pb24sIGJvb2xlYW4sIGRlZmluZSwgbnVtYmVyLCBsaXRlcmFsLCByZWNvcmQsIGlzIH0gZnJvbSAnc3VwZXJzdHJ1Y3QnO1xuXG5leHBvcnQgdHlwZSBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlc1Jlc3BvbnNlID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGU+W107XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlID0gdW5pb24oW3N0cmluZygpLCBvYmplY3QoeyBPYmplY3Q6IHN0cmluZygpIH0pXSk7XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlRnVuY3Rpb25BcmdUeXBlcyA9IGFycmF5KFN1aU1vdmVGdW5jdGlvbkFyZ1R5cGUpO1xuZXhwb3J0IHR5cGUgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXMgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZUZ1bmN0aW9uQXJnVHlwZXM+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU1vZHVsZUlkID0gb2JqZWN0KHtcbiAgYWRkcmVzczogc3RyaW5nKCksXG4gIG5hbWU6IHN0cmluZygpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTW9kdWxlSWQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU1vZHVsZUlkPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVWaXNpYmlsaXR5ID0gdW5pb24oW2xpdGVyYWwoJ1ByaXZhdGUnKSwgbGl0ZXJhbCgnUHVibGljJyksIGxpdGVyYWwoJ0ZyaWVuZCcpXSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlVmlzaWJpbGl0eSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlVmlzaWJpbGl0eT47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlQWJpbGl0eVNldCA9IG9iamVjdCh7XG4gIGFiaWxpdGllczogYXJyYXkoc3RyaW5nKCkpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlQWJpbGl0eVNldCA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlQWJpbGl0eVNldD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciA9IG9iamVjdCh7XG4gIGNvbnN0cmFpbnRzOiBTdWlNb3ZlQWJpbGl0eVNldCxcbiAgaXNQaGFudG9tOiBib29sZWFuKCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVTdHJ1Y3RUeXBlUGFyYW1ldGVyID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVTdHJ1Y3RUeXBlUGFyYW1ldGVyPjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkVHlwZVBhcmFtZXRlclR5cGUgPSBvYmplY3Qoe1xuICBUeXBlUGFyYW1ldGVyOiBudW1iZXIoKSxcbn0pO1xuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlUGFyYW1ldGVyVHlwZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlPjtcblxuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlID1cbiAgfCBzdHJpbmdcbiAgfCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlXG4gIHwgeyBSZWZlcmVuY2U6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB9XG4gIHwgeyBNdXRhYmxlUmVmZXJlbmNlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IHsgVmVjdG9yOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUgfVxuICB8IFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZTtcblxuZnVuY3Rpb24gaXNTdWlNb3ZlTm9ybWFsaXplZFR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTdWlNb3ZlTm9ybWFsaXplZFR5cGUge1xuICBpZiAoIXZhbHVlKSByZXR1cm4gZmFsc2U7XG4gIGlmICh0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSByZXR1cm4gdHJ1ZTtcbiAgaWYgKGlzKHZhbHVlLCBTdWlNb3ZlTm9ybWFsaXplZFR5cGVQYXJhbWV0ZXJUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpc1N1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSh2YWx1ZSkpIHJldHVybiB0cnVlO1xuICBpZiAodHlwZW9mIHZhbHVlICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHZhbHVlUHJvcGVydGllcyA9IHZhbHVlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoaXModmFsdWVQcm9wZXJ0aWVzLlJlZmVyZW5jZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZVByb3BlcnRpZXMuTXV0YWJsZVJlZmVyZW5jZSwgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSkgcmV0dXJuIHRydWU7XG4gIGlmIChpcyh2YWx1ZVByb3BlcnRpZXMuVmVjdG9yLCBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpKSByZXR1cm4gdHJ1ZTtcbiAgcmV0dXJuIGZhbHNlO1xufVxuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRUeXBlID0gZGVmaW5lPFN1aU1vdmVOb3JtYWxpemVkVHlwZT4oJ1N1aU1vdmVOb3JtYWxpemVkVHlwZScsIGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTtcblxuZXhwb3J0IHR5cGUgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlID0ge1xuICBTdHJ1Y3Q6IHtcbiAgICBhZGRyZXNzOiBzdHJpbmc7XG4gICAgbW9kdWxlOiBzdHJpbmc7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHR5cGVBcmd1bWVudHM6IFN1aU1vdmVOb3JtYWxpemVkVHlwZVtdO1xuICB9O1xufTtcblxuZnVuY3Rpb24gaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUodmFsdWU6IHVua25vd24pOiB2YWx1ZSBpcyBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUge1xuICBpZiAoIXZhbHVlIHx8IHR5cGVvZiB2YWx1ZSAhPT0gJ29iamVjdCcpIHJldHVybiBmYWxzZTtcblxuICBjb25zdCB2YWx1ZVByb3BlcnRpZXMgPSB2YWx1ZSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgaWYgKCF2YWx1ZVByb3BlcnRpZXMuU3RydWN0IHx8IHR5cGVvZiB2YWx1ZVByb3BlcnRpZXMuU3RydWN0ICE9PSAnb2JqZWN0JykgcmV0dXJuIGZhbHNlO1xuXG4gIGNvbnN0IHN0cnVjdFByb3BlcnRpZXMgPSB2YWx1ZVByb3BlcnRpZXMuU3RydWN0IGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICBpZiAoXG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMuYWRkcmVzcyAhPT0gJ3N0cmluZycgfHxcbiAgICB0eXBlb2Ygc3RydWN0UHJvcGVydGllcy5tb2R1bGUgIT09ICdzdHJpbmcnIHx8XG4gICAgdHlwZW9mIHN0cnVjdFByb3BlcnRpZXMubmFtZSAhPT0gJ3N0cmluZycgfHxcbiAgICAhQXJyYXkuaXNBcnJheShzdHJ1Y3RQcm9wZXJ0aWVzLnR5cGVBcmd1bWVudHMpIHx8XG4gICAgIXN0cnVjdFByb3BlcnRpZXMudHlwZUFyZ3VtZW50cy5ldmVyeSgodmFsdWUpID0+IGlzU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKHZhbHVlKSlcbiAgKSB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcmV0dXJuIHRydWU7XG59XG5cbi8vIE5PVEU6IFRoaXMgdHlwZSBpcyByZWN1cnNpdmUsIHNvIHdlIG5lZWQgdG8gbWFudWFsbHkgaW1wbGVtZW50IGl0OlxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkU3RydWN0VHlwZSA9IGRlZmluZTxTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGU+KFxuICAnU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3RUeXBlJyxcbiAgaXNTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGVcbik7XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uID0gb2JqZWN0KHtcbiAgdmlzaWJpbGl0eTogU3VpTW92ZVZpc2liaWxpdHksXG4gIGlzRW50cnk6IGJvb2xlYW4oKSxcbiAgdHlwZVBhcmFtZXRlcnM6IGFycmF5KFN1aU1vdmVBYmlsaXR5U2V0KSxcbiAgcGFyYW1ldGVyczogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKSxcbiAgcmV0dXJuOiBhcnJheShTdWlNb3ZlTm9ybWFsaXplZFR5cGUpLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZEZ1bmN0aW9uID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkRnVuY3Rpb24+O1xuXG5leHBvcnQgY29uc3QgU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZCA9IG9iamVjdCh7XG4gIG5hbWU6IHN0cmluZygpLFxuICB0eXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUsXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkRmllbGQgPSBJbmZlcjx0eXBlb2YgU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZD47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdCA9IG9iamVjdCh7XG4gIGFiaWxpdGllczogU3VpTW92ZUFiaWxpdHlTZXQsXG4gIHR5cGVQYXJhbWV0ZXJzOiBhcnJheShTdWlNb3ZlU3RydWN0VHlwZVBhcmFtZXRlciksXG4gIGZpZWxkczogYXJyYXkoU3VpTW92ZU5vcm1hbGl6ZWRGaWVsZCksXG59KTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0ID0gSW5mZXI8dHlwZW9mIFN1aU1vdmVOb3JtYWxpemVkU3RydWN0PjtcblxuZXhwb3J0IGNvbnN0IFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlID0gb2JqZWN0KHtcbiAgZmlsZUZvcm1hdFZlcnNpb246IG51bWJlcigpLFxuICBhZGRyZXNzOiBzdHJpbmcoKSxcbiAgbmFtZTogc3RyaW5nKCksXG4gIGZyaWVuZHM6IGFycmF5KFN1aU1vdmVNb2R1bGVJZCksXG4gIHN0cnVjdHM6IHJlY29yZChzdHJpbmcoKSwgU3VpTW92ZU5vcm1hbGl6ZWRTdHJ1Y3QpLFxuICBleHBvc2VkRnVuY3Rpb25zOiByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkRnVuY3Rpb24pLFxufSk7XG5leHBvcnQgdHlwZSBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZSA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZT47XG5cbmV4cG9ydCBjb25zdCBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXMgPSByZWNvcmQoc3RyaW5nKCksIFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlKTtcbmV4cG9ydCB0eXBlIFN1aU1vdmVOb3JtYWxpemVkTW9kdWxlcyA9IEluZmVyPHR5cGVvZiBTdWlNb3ZlTm9ybWFsaXplZE1vZHVsZXM+O1xuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdE11dGFibGVSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGU6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSk6IFN1aU1vdmVOb3JtYWxpemVkVHlwZSB8IHVuZGVmaW5lZCB7XG4gIHJldHVybiB0eXBlb2Ygbm9ybWFsaXplZFR5cGUgPT09ICdvYmplY3QnICYmICdNdXRhYmxlUmVmZXJlbmNlJyBpbiBub3JtYWxpemVkVHlwZVxuICAgID8gbm9ybWFsaXplZFR5cGUuTXV0YWJsZVJlZmVyZW5jZVxuICAgIDogdW5kZWZpbmVkO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZXh0cmFjdFJlZmVyZW5jZShub3JtYWxpemVkVHlwZTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlKTogU3VpTW92ZU5vcm1hbGl6ZWRUeXBlIHwgdW5kZWZpbmVkIHtcbiAgcmV0dXJuIHR5cGVvZiBub3JtYWxpemVkVHlwZSA9PT0gJ29iamVjdCcgJiYgJ1JlZmVyZW5jZScgaW4gbm9ybWFsaXplZFR5cGUgPyBub3JtYWxpemVkVHlwZS5SZWZlcmVuY2UgOiB1bmRlZmluZWQ7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBleHRyYWN0U3RydWN0VGFnKG5vcm1hbGl6ZWRUeXBlOiBTdWlNb3ZlTm9ybWFsaXplZFR5cGUpOiBTdWlNb3ZlTm9ybWFsaXplZFN0cnVjdFR5cGUgfCB1bmRlZmluZWQge1xuICBpZiAodHlwZW9mIG5vcm1hbGl6ZWRUeXBlID09PSAnb2JqZWN0JyAmJiAnU3RydWN0JyBpbiBub3JtYWxpemVkVHlwZSkge1xuICAgIHJldHVybiBub3JtYWxpemVkVHlwZTtcbiAgfVxuXG4gIGNvbnN0IHJlZiA9IGV4dHJhY3RSZWZlcmVuY2Uobm9ybWFsaXplZFR5cGUpO1xuICBjb25zdCBtdXRSZWYgPSBleHRyYWN0TXV0YWJsZVJlZmVyZW5jZShub3JtYWxpemVkVHlwZSk7XG5cbiAgaWYgKHR5cGVvZiByZWYgPT09ICdvYmplY3QnICYmICdTdHJ1Y3QnIGluIHJlZikge1xuICAgIHJldHVybiByZWY7XG4gIH1cblxuICBpZiAodHlwZW9mIG11dFJlZiA9PT0gJ29iamVjdCcgJiYgJ1N0cnVjdCcgaW4gbXV0UmVmKSB7XG4gICAgcmV0dXJuIG11dFJlZjtcbiAgfVxuICByZXR1cm4gdW5kZWZpbmVkO1xufVxuIl19
|