@bitgo/sdk-coin-flrp 1.3.3 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (130) hide show
  1. package/dist/src/flrp.d.ts +6 -75
  2. package/dist/src/flrp.d.ts.map +1 -1
  3. package/dist/src/flrp.js +13 -298
  4. package/dist/src/index.d.ts +0 -1
  5. package/dist/src/index.d.ts.map +1 -1
  6. package/dist/src/index.js +1 -2
  7. package/dist/src/lib/ExportInCTxBuilder.d.ts +51 -0
  8. package/dist/src/lib/ExportInCTxBuilder.d.ts.map +1 -0
  9. package/dist/src/lib/ExportInCTxBuilder.js +186 -0
  10. package/dist/src/lib/ExportInPTxBuilder.d.ts +47 -0
  11. package/dist/src/lib/ExportInPTxBuilder.d.ts.map +1 -0
  12. package/dist/src/lib/ExportInPTxBuilder.js +273 -0
  13. package/dist/src/lib/ImportInCTxBuilder.d.ts +48 -0
  14. package/dist/src/lib/ImportInCTxBuilder.d.ts.map +1 -0
  15. package/dist/src/lib/ImportInCTxBuilder.js +215 -0
  16. package/dist/src/lib/ImportInPTxBuilder.d.ts +33 -0
  17. package/dist/src/lib/ImportInPTxBuilder.d.ts.map +1 -0
  18. package/dist/src/lib/ImportInPTxBuilder.js +180 -0
  19. package/dist/src/lib/atomicInCTransactionBuilder.d.ts +18 -16
  20. package/dist/src/lib/atomicInCTransactionBuilder.d.ts.map +1 -1
  21. package/dist/src/lib/atomicInCTransactionBuilder.js +38 -36
  22. package/dist/src/lib/atomicTransactionBuilder.d.ts +42 -79
  23. package/dist/src/lib/atomicTransactionBuilder.d.ts.map +1 -1
  24. package/dist/src/lib/atomicTransactionBuilder.js +138 -281
  25. package/dist/src/lib/iface.d.ts +50 -51
  26. package/dist/src/lib/iface.d.ts.map +1 -1
  27. package/dist/src/lib/iface.js +22 -10
  28. package/dist/src/lib/index.d.ts +2 -3
  29. package/dist/src/lib/index.d.ts.map +1 -1
  30. package/dist/src/lib/index.js +5 -6
  31. package/dist/src/lib/keyPair.d.ts +1 -1
  32. package/dist/src/lib/keyPair.d.ts.map +1 -1
  33. package/dist/src/lib/keyPair.js +9 -5
  34. package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts +32 -67
  35. package/dist/src/lib/permissionlessValidatorTxBuilder.d.ts.map +1 -1
  36. package/dist/src/lib/permissionlessValidatorTxBuilder.js +91 -205
  37. package/dist/src/lib/transaction.d.ts +8 -73
  38. package/dist/src/lib/transaction.d.ts.map +1 -1
  39. package/dist/src/lib/transaction.js +159 -210
  40. package/dist/src/lib/transactionBuilder.d.ts +56 -34
  41. package/dist/src/lib/transactionBuilder.d.ts.map +1 -1
  42. package/dist/src/lib/transactionBuilder.js +113 -70
  43. package/dist/src/lib/transactionBuilderFactory.d.ts +35 -30
  44. package/dist/src/lib/transactionBuilderFactory.d.ts.map +1 -1
  45. package/dist/src/lib/transactionBuilderFactory.js +133 -74
  46. package/dist/src/lib/utils.d.ts +73 -151
  47. package/dist/src/lib/utils.d.ts.map +1 -1
  48. package/dist/src/lib/utils.js +197 -390
  49. package/dist/test/resources/transactionData/exportInC.d.ts +20 -0
  50. package/dist/test/resources/transactionData/exportInC.d.ts.map +1 -0
  51. package/dist/test/resources/transactionData/exportInC.js +34 -0
  52. package/dist/test/resources/transactionData/exportInP.d.ts +69 -0
  53. package/dist/test/resources/transactionData/exportInP.d.ts.map +1 -0
  54. package/dist/test/resources/transactionData/exportInP.js +140 -0
  55. package/dist/test/resources/transactionData/importInC.d.ts +27 -0
  56. package/dist/test/resources/transactionData/importInC.d.ts.map +1 -0
  57. package/dist/test/resources/transactionData/importInC.js +44 -0
  58. package/dist/test/resources/transactionData/importInP.d.ts +35 -0
  59. package/dist/test/resources/transactionData/importInP.d.ts.map +1 -0
  60. package/dist/test/resources/transactionData/importInP.js +58 -0
  61. package/dist/test/unit/lib/exportInCTxBuilder.js +95 -513
  62. package/dist/test/unit/lib/exportInPTxBuilder.d.ts +1 -1
  63. package/dist/test/unit/lib/exportInPTxBuilder.d.ts.map +1 -1
  64. package/dist/test/unit/lib/exportInPTxBuilder.js +110 -366
  65. package/dist/test/unit/lib/importInCTxBuilder.d.ts +1 -1
  66. package/dist/test/unit/lib/importInCTxBuilder.d.ts.map +1 -1
  67. package/dist/test/unit/lib/importInCTxBuilder.js +40 -251
  68. package/dist/test/unit/lib/importInPTxBuilder.d.ts +1 -1
  69. package/dist/test/unit/lib/importInPTxBuilder.d.ts.map +1 -1
  70. package/dist/test/unit/lib/importInPTxBuilder.js +61 -489
  71. package/dist/test/unit/lib/signFlowTestSuit.d.ts +20 -0
  72. package/dist/test/unit/lib/signFlowTestSuit.d.ts.map +1 -0
  73. package/dist/test/unit/lib/signFlowTestSuit.js +89 -0
  74. package/dist/test/unit/lib/utils.js +29 -302
  75. package/dist/tsconfig.tsbuildinfo +1 -1
  76. package/package.json +8 -10
  77. package/dist/src/iface.d.ts +0 -25
  78. package/dist/src/iface.d.ts.map +0 -1
  79. package/dist/src/iface.js +0 -3
  80. package/dist/src/lib/constants.d.ts +0 -170
  81. package/dist/src/lib/constants.d.ts.map +0 -1
  82. package/dist/src/lib/constants.js +0 -227
  83. package/dist/src/lib/delegatorTxBuilder.d.ts +0 -58
  84. package/dist/src/lib/delegatorTxBuilder.d.ts.map +0 -1
  85. package/dist/src/lib/delegatorTxBuilder.js +0 -224
  86. package/dist/src/lib/errors.d.ts +0 -8
  87. package/dist/src/lib/errors.d.ts.map +0 -1
  88. package/dist/src/lib/errors.js +0 -19
  89. package/dist/src/lib/exportInCTxBuilder.d.ts +0 -77
  90. package/dist/src/lib/exportInCTxBuilder.d.ts.map +0 -1
  91. package/dist/src/lib/exportInCTxBuilder.js +0 -199
  92. package/dist/src/lib/exportInPTxBuilder.d.ts +0 -30
  93. package/dist/src/lib/exportInPTxBuilder.d.ts.map +0 -1
  94. package/dist/src/lib/exportInPTxBuilder.js +0 -120
  95. package/dist/src/lib/importInCTxBuilder.d.ts +0 -67
  96. package/dist/src/lib/importInCTxBuilder.d.ts.map +0 -1
  97. package/dist/src/lib/importInCTxBuilder.js +0 -403
  98. package/dist/src/lib/importInPTxBuilder.d.ts +0 -73
  99. package/dist/src/lib/importInPTxBuilder.d.ts.map +0 -1
  100. package/dist/src/lib/importInPTxBuilder.js +0 -464
  101. package/dist/src/lib/types.d.ts +0 -78
  102. package/dist/src/lib/types.d.ts.map +0 -1
  103. package/dist/src/lib/types.js +0 -5
  104. package/dist/src/lib/validatorTxBuilder.d.ts +0 -40
  105. package/dist/src/lib/validatorTxBuilder.d.ts.map +0 -1
  106. package/dist/src/lib/validatorTxBuilder.js +0 -180
  107. package/dist/test/unit/delegatorTxBuilder.test.d.ts +0 -2
  108. package/dist/test/unit/delegatorTxBuilder.test.d.ts.map +0 -1
  109. package/dist/test/unit/delegatorTxBuilder.test.js +0 -233
  110. package/dist/test/unit/flrp.d.ts +0 -2
  111. package/dist/test/unit/flrp.d.ts.map +0 -1
  112. package/dist/test/unit/flrp.js +0 -118
  113. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts +0 -2
  114. package/dist/test/unit/lib/atomicTransactionBuilder.d.ts.map +0 -1
  115. package/dist/test/unit/lib/atomicTransactionBuilder.js +0 -222
  116. package/dist/test/unit/lib/transaction.d.ts +0 -2
  117. package/dist/test/unit/lib/transaction.d.ts.map +0 -1
  118. package/dist/test/unit/lib/transaction.js +0 -460
  119. package/dist/test/unit/permissionlessValidatorTxBuilder.test.d.ts +0 -2
  120. package/dist/test/unit/permissionlessValidatorTxBuilder.test.d.ts.map +0 -1
  121. package/dist/test/unit/permissionlessValidatorTxBuilder.test.js +0 -271
  122. package/dist/test/unit/smoke.d.ts +0 -2
  123. package/dist/test/unit/smoke.d.ts.map +0 -1
  124. package/dist/test/unit/smoke.js +0 -23
  125. package/dist/test/unit/transactionBuilder.test.d.ts +0 -2
  126. package/dist/test/unit/transactionBuilder.test.d.ts.map +0 -1
  127. package/dist/test/unit/transactionBuilder.test.js +0 -114
  128. package/dist/test/unit/validatorTxBuilder.test.d.ts +0 -2
  129. package/dist/test/unit/validatorTxBuilder.test.d.ts.map +0 -1
  130. package/dist/test/unit/validatorTxBuilder.test.js +0 -293
@@ -1,258 +1,47 @@
1
1
  "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
35
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const assert_1 = __importDefault(require("assert"));
7
+ require("should");
8
+ const lib_1 = require("../../../src/lib");
36
9
  const statics_1 = require("@bitgo/statics");
37
- const sdk_core_1 = require("@bitgo/sdk-core");
38
- const assert = __importStar(require("assert"));
39
- const importInCTxBuilder_1 = require("../../../src/lib/importInCTxBuilder");
40
- describe('ImportInCTxBuilder', function () {
41
- const coinConfig = statics_1.coins.get('tflrp');
42
- let builder;
43
- beforeEach(function () {
44
- builder = new importInCTxBuilder_1.ImportInCTxBuilder(coinConfig);
45
- });
46
- describe('Constructor', function () {
47
- it('should initialize with coin config', function () {
48
- assert.ok(builder);
49
- assert.ok(builder instanceof importInCTxBuilder_1.ImportInCTxBuilder);
50
- });
51
- });
52
- describe('Address Management', function () {
53
- it('should set valid C-chain destination address', function () {
54
- const validAddresses = [
55
- 'P-flare1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6f4avh',
56
- 'P-flare1abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef123456',
57
- 'NodeID-flare1test123456789abcdef',
58
- ];
59
- validAddresses.forEach((address) => {
60
- assert.doesNotThrow(() => {
61
- builder.to(address);
62
- }, `Should accept valid address: ${address}`);
63
- });
64
- });
65
- it('should reject invalid C-chain addresses', function () {
66
- const invalidAddresses = [
67
- '',
68
- 'invalid-address',
69
- '0x742C4B18dd62F23BF0bf8c183f4D5E5F6c6c46f8', // Ethereum format
70
- 'C-invalid-format',
71
- 'flare1test', // Missing prefix
72
- 'random-string-123',
73
- ];
74
- invalidAddresses.forEach((address) => {
75
- assert.throws(() => {
76
- builder.to(address);
77
- }, sdk_core_1.BuildTransactionError, `Should reject invalid address: ${address}`);
78
- });
79
- });
80
- it('should handle multiple address settings', function () {
81
- const address1 = 'P-flare1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6f4avh';
82
- const address2 = 'P-flare1abcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdefabcdef123456';
83
- builder.to(address1);
84
- builder.to(address2); // Should overwrite the first address
85
- // Test doesn't throw
86
- assert.ok(true);
87
- });
88
- });
89
- describe('UTXO Management', function () {
90
- it('should add single UTXO', function () {
91
- const utxo = {
92
- outputID: 1,
93
- amount: '1000000000000000000', // 1 FLR
94
- txid: 'test-txid-single',
95
- outputidx: '0',
96
- threshold: 1,
97
- addresses: ['P-flare1test'],
98
- };
99
- assert.doesNotThrow(() => {
100
- builder.addUtxos([utxo]);
101
- });
102
- });
103
- it('should add multiple UTXOs', function () {
104
- const utxos = [
105
- {
106
- outputID: 1,
107
- amount: '1000000000000000000', // 1 FLR
108
- txid: 'test-txid-1',
109
- outputidx: '0',
110
- threshold: 1,
111
- addresses: ['P-flare1test1'],
112
- },
113
- {
114
- outputID: 2,
115
- amount: '2000000000000000000', // 2 FLR
116
- txid: 'test-txid-2',
117
- outputidx: '1',
118
- threshold: 2,
119
- addresses: ['P-flare1test2', 'P-flare1test3'],
120
- },
121
- {
122
- outputID: 3,
123
- amount: '500000000000000000', // 0.5 FLR
124
- txid: 'test-txid-3',
125
- outputidx: '0',
126
- threshold: 1,
127
- addresses: ['P-flare1test4'],
128
- },
129
- ];
130
- assert.doesNotThrow(() => {
131
- builder.addUtxos(utxos);
132
- });
133
- });
134
- it('should handle empty UTXO array', function () {
135
- assert.doesNotThrow(() => {
136
- builder.addUtxos([]);
137
- });
138
- });
139
- it('should accumulate UTXOs from multiple calls', function () {
140
- const utxos1 = [
141
- {
142
- outputID: 1,
143
- amount: '1000000000000000000',
144
- txid: 'test-txid-1',
145
- outputidx: '0',
146
- threshold: 1,
147
- addresses: ['P-flare1test1'],
148
- },
149
- ];
150
- const utxos2 = [
151
- {
152
- outputID: 2,
153
- amount: '2000000000000000000',
154
- txid: 'test-txid-2',
155
- outputidx: '0',
156
- threshold: 1,
157
- addresses: ['P-flare1test2'],
158
- },
159
- ];
160
- builder.addUtxos(utxos1);
161
- builder.addUtxos(utxos2);
162
- // Test doesn't throw
163
- assert.ok(true);
164
- });
165
- });
166
- describe('Source Chain Management', function () {
167
- // TODO : Enable these tests after fixing sourceChain method to accept P-chain IDs
168
- it.skip('should set valid source chain IDs', function () {
169
- const validChainIds = ['P-flare12345', 'NodeID-flare67890', '0x123456789abcdef', 'abc123def456'];
170
- validChainIds.forEach((chainId) => {
171
- assert.doesNotThrow(() => {
172
- builder.sourceChain(chainId);
173
- }, `Should accept chain ID: ${chainId}`);
174
- });
175
- });
176
- it('should handle different chain ID formats', function () {
177
- // Test various formats that might be encountered
178
- const chainIds = ['P-chain-id-123', 'C-chain-id-456', 'hex-formatted-id', '1234567890abcdef'];
179
- chainIds.forEach((chainId) => {
180
- assert.doesNotThrow(() => {
181
- builder.sourceChain(chainId);
182
- });
183
- });
184
- });
185
- });
186
- describe('Transaction Type Verification', function () {
187
- it('should verify transaction type (placeholder)', function () {
188
- const mockTx = { type: 'import' };
189
- const result = importInCTxBuilder_1.ImportInCTxBuilder.verifyTxType(mockTx);
190
- assert.strictEqual(result, true); // Placeholder returns true
191
- });
192
- it('should handle different transaction objects', function () {
193
- const validCases = [
194
- { type: 'import' }, // Placeholder import transaction
195
- {
196
- importIns: [{ input: 'test' }],
197
- sourceChain: 'P-chain',
198
- to: '0x1234567890123456789012345678901234567890',
199
- }, // Realistic import transaction
200
- ];
201
- const invalidCases = [{}, null, undefined, { type: 'export' }, { data: 'test' }];
202
- validCases.forEach((testCase, index) => {
203
- const result = importInCTxBuilder_1.ImportInCTxBuilder.verifyTxType(testCase);
204
- assert.strictEqual(result, true, `Valid test case ${index} should return true`);
205
- });
206
- invalidCases.forEach((testCase, index) => {
207
- const result = importInCTxBuilder_1.ImportInCTxBuilder.verifyTxType(testCase);
208
- assert.strictEqual(result, false, `Invalid test case ${index} should return false`);
209
- });
210
- });
211
- it('should verify via instance method', function () {
212
- const mockTx = { type: 'import' };
213
- const result = builder.verifyTxType(mockTx);
214
- assert.strictEqual(result, true);
10
+ const importInC_1 = require("../../resources/transactionData/importInC");
11
+ const signFlowTestSuit_1 = __importDefault(require("./signFlowTestSuit"));
12
+ describe('Flrp Import In C Tx Builder', () => {
13
+ const factory = new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'));
14
+ describe('validate txBuilder fields', () => {
15
+ const txBuilder = factory.getImportInCBuilder();
16
+ it('should fail validate Utxos empty string', () => {
17
+ assert_1.default.throws(() => {
18
+ txBuilder.validateUtxos([]);
19
+ }, (e) => e.message === 'UTXOs array cannot be empty');
20
+ });
21
+ it('should fail validate Utxos without amount field', () => {
22
+ assert_1.default.throws(() => {
23
+ txBuilder.validateUtxos([{ outputID: '' }]);
24
+ }, (e) => e.message === 'UTXO missing required field: amount');
215
25
  });
216
26
  });
217
- describe('Integration Tests', function () {
218
- it('should handle complete import flow preparation', function () {
219
- const address = 'P-flare1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6f4avh';
220
- const chainId = 'P-source-chain-123';
221
- const utxos = [
222
- {
223
- outputID: 1,
224
- amount: '5000000000000000000', // 5 FLR
225
- txid: 'integration-test-txid',
226
- outputidx: '0',
227
- threshold: 1,
228
- addresses: ['P-flare1source'],
229
- },
230
- ];
231
- // Complete setup
232
- builder.to(address);
233
- builder.sourceChain(chainId);
234
- builder.addUtxos(utxos);
235
- // All operations should complete without throwing
236
- assert.ok(true);
237
- });
238
- it('should handle method chaining', function () {
239
- const address = 'P-flare1qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqq6f4avh';
240
- const chainId = 'P-chain-123';
241
- const utxos = [
242
- {
243
- outputID: 1,
244
- amount: '1000000000000000000',
245
- txid: 'chain-test-txid',
246
- outputidx: '0',
247
- threshold: 1,
248
- addresses: ['P-flare1test'],
249
- },
250
- ];
251
- // Test method chaining
252
- assert.doesNotThrow(() => {
253
- builder.to(address).sourceChain(chainId).addUtxos(utxos);
254
- });
255
- });
27
+ (0, signFlowTestSuit_1.default)({
28
+ transactionType: 'Import C2P',
29
+ newTxFactory: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp')),
30
+ newTxBuilder: () => new lib_1.TransactionBuilderFactory(statics_1.coins.get('tflrp'))
31
+ .getImportInCBuilder()
32
+ .threshold(importInC_1.IMPORT_IN_C.threshold)
33
+ .fromPubKey(importInC_1.IMPORT_IN_C.pAddresses)
34
+ .utxos(importInC_1.IMPORT_IN_C.outputs)
35
+ .to(importInC_1.IMPORT_IN_C.to)
36
+ .feeRate(importInC_1.IMPORT_IN_C.fee),
37
+ unsignedTxHex: importInC_1.IMPORT_IN_C.unsignedHex,
38
+ halfSignedTxHex: importInC_1.IMPORT_IN_C.halfSigntxHex,
39
+ fullSignedTxHex: importInC_1.IMPORT_IN_C.fullSigntxHex,
40
+ privateKey: {
41
+ prv1: importInC_1.IMPORT_IN_C.privateKeys[0],
42
+ prv2: importInC_1.IMPORT_IN_C.privateKeys[1],
43
+ },
44
+ txHash: importInC_1.IMPORT_IN_C.txhash,
256
45
  });
257
46
  });
258
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpYi9pbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFBQSw0Q0FBdUM7QUFDdkMsOENBQXdEO0FBQ3hELCtDQUFpQztBQUNqQyw0RUFBeUU7QUFHekUsUUFBUSxDQUFDLG9CQUFvQixFQUFFO0lBQzdCLE1BQU0sVUFBVSxHQUFHLGVBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEMsSUFBSSxPQUEyQixDQUFDO0lBRWhDLFVBQVUsQ0FBQztRQUNULE9BQU8sR0FBRyxJQUFJLHVDQUFrQixDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQy9DLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLGFBQWEsRUFBRTtRQUN0QixFQUFFLENBQUMsb0NBQW9DLEVBQUU7WUFDdkMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNuQixNQUFNLENBQUMsRUFBRSxDQUFDLE9BQU8sWUFBWSx1Q0FBa0IsQ0FBQyxDQUFDO1FBQ25ELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsb0JBQW9CLEVBQUU7UUFDN0IsRUFBRSxDQUFDLDhDQUE4QyxFQUFFO1lBQ2pELE1BQU0sY0FBYyxHQUFHO2dCQUNyQixvRUFBb0U7Z0JBQ3BFLHNFQUFzRTtnQkFDdEUsa0NBQWtDO2FBQ25DLENBQUM7WUFFRixjQUFjLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2pDLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO29CQUN2QixPQUFPLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUN0QixDQUFDLEVBQUUsZ0NBQWdDLE9BQU8sRUFBRSxDQUFDLENBQUM7WUFDaEQsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRTtZQUM1QyxNQUFNLGdCQUFnQixHQUFHO2dCQUN2QixFQUFFO2dCQUNGLGlCQUFpQjtnQkFDakIsNENBQTRDLEVBQUUsa0JBQWtCO2dCQUNoRSxrQkFBa0I7Z0JBQ2xCLFlBQVksRUFBRSxpQkFBaUI7Z0JBQy9CLG1CQUFtQjthQUNwQixDQUFDO1lBRUYsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ25DLE1BQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFO29CQUNILE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQ3RCLENBQUMsRUFDRCxnQ0FBcUIsRUFDckIsa0NBQWtDLE9BQU8sRUFBRSxDQUM1QyxDQUFDO1lBQ0osQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyx5Q0FBeUMsRUFBRTtZQUM1QyxNQUFNLFFBQVEsR0FBRyxvRUFBb0UsQ0FBQztZQUN0RixNQUFNLFFBQVEsR0FBRyxzRUFBc0UsQ0FBQztZQUV4RixPQUFPLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3JCLE9BQU8sQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7WUFFM0QscUJBQXFCO1lBQ3JCLE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDLENBQUMsQ0FBQztJQUVILFFBQVEsQ0FBQyxpQkFBaUIsRUFBRTtRQUMxQixFQUFFLENBQUMsd0JBQXdCLEVBQUU7WUFDM0IsTUFBTSxJQUFJLEdBQW1CO2dCQUMzQixRQUFRLEVBQUUsQ0FBQztnQkFDWCxNQUFNLEVBQUUscUJBQXFCLEVBQUUsUUFBUTtnQkFDdkMsSUFBSSxFQUFFLGtCQUFrQjtnQkFDeEIsU0FBUyxFQUFFLEdBQUc7Z0JBQ2QsU0FBUyxFQUFFLENBQUM7Z0JBQ1osU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2FBQzVCLENBQUM7WUFFRixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQywyQkFBMkIsRUFBRTtZQUM5QixNQUFNLEtBQUssR0FBcUI7Z0JBQzlCO29CQUNFLFFBQVEsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxxQkFBcUIsRUFBRSxRQUFRO29CQUN2QyxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QjtnQkFDRDtvQkFDRSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxNQUFNLEVBQUUscUJBQXFCLEVBQUUsUUFBUTtvQkFDdkMsSUFBSSxFQUFFLGFBQWE7b0JBQ25CLFNBQVMsRUFBRSxHQUFHO29CQUNkLFNBQVMsRUFBRSxDQUFDO29CQUNaLFNBQVMsRUFBRSxDQUFDLGVBQWUsRUFBRSxlQUFlLENBQUM7aUJBQzlDO2dCQUNEO29CQUNFLFFBQVEsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxvQkFBb0IsRUFBRSxVQUFVO29CQUN4QyxJQUFJLEVBQUUsYUFBYTtvQkFDbkIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QjthQUNGLENBQUM7WUFFRixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtnQkFDdkIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLGdDQUFnQyxFQUFFO1lBQ25DLE1BQU0sQ0FBQyxZQUFZLENBQUMsR0FBRyxFQUFFO2dCQUN2QixPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZCLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsNkNBQTZDLEVBQUU7WUFDaEQsTUFBTSxNQUFNLEdBQXFCO2dCQUMvQjtvQkFDRSxRQUFRLEVBQUUsQ0FBQztvQkFDWCxNQUFNLEVBQUUscUJBQXFCO29CQUM3QixJQUFJLEVBQUUsYUFBYTtvQkFDbkIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLENBQUMsZUFBZSxDQUFDO2lCQUM3QjthQUNGLENBQUM7WUFFRixNQUFNLE1BQU0sR0FBcUI7Z0JBQy9CO29CQUNFLFFBQVEsRUFBRSxDQUFDO29CQUNYLE1BQU0sRUFBRSxxQkFBcUI7b0JBQzdCLElBQUksRUFBRSxhQUFhO29CQUNuQixTQUFTLEVBQUUsR0FBRztvQkFDZCxTQUFTLEVBQUUsQ0FBQztvQkFDWixTQUFTLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzdCO2FBQ0YsQ0FBQztZQUVGLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFDekIsT0FBTyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUV6QixxQkFBcUI7WUFDckIsTUFBTSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsUUFBUSxDQUFDLHlCQUF5QixFQUFFO1FBQ2xDLGtGQUFrRjtRQUNsRixFQUFFLENBQUMsSUFBSSxDQUFDLG1DQUFtQyxFQUFFO1lBQzNDLE1BQU0sYUFBYSxHQUFHLENBQUMsY0FBYyxFQUFFLG1CQUFtQixFQUFFLG1CQUFtQixFQUFFLGNBQWMsQ0FBQyxDQUFDO1lBRWpHLGFBQWEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtnQkFDaEMsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7b0JBQ3ZCLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLENBQUMsRUFBRSwyQkFBMkIsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUMzQyxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBRUgsRUFBRSxDQUFDLDBDQUEwQyxFQUFFO1lBQzdDLGlEQUFpRDtZQUNqRCxNQUFNLFFBQVEsR0FBRyxDQUFDLGdCQUFnQixFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLENBQUM7WUFFOUYsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sRUFBRSxFQUFFO2dCQUMzQixNQUFNLENBQUMsWUFBWSxDQUFDLEdBQUcsRUFBRTtvQkFDdkIsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDL0IsQ0FBQyxDQUFDLENBQUM7WUFDTCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsK0JBQStCLEVBQUU7UUFDeEMsRUFBRSxDQUFDLDhDQUE4QyxFQUFFO1lBQ2pELE1BQU0sTUFBTSxHQUFHLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQ2xDLE1BQU0sTUFBTSxHQUFHLHVDQUFrQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2RCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtRQUMvRCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyw2Q0FBNkMsRUFBRTtZQUNoRCxNQUFNLFVBQVUsR0FBRztnQkFDakIsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEVBQUUsaUNBQWlDO2dCQUNyRDtvQkFDRSxTQUFTLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztvQkFDOUIsV0FBVyxFQUFFLFNBQVM7b0JBQ3RCLEVBQUUsRUFBRSw0Q0FBNEM7aUJBQ2pELEVBQUUsK0JBQStCO2FBQ25DLENBQUM7WUFFRixNQUFNLFlBQVksR0FBRyxDQUFDLEVBQUUsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxDQUFDLENBQUM7WUFFakYsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsRUFBRTtnQkFDckMsTUFBTSxNQUFNLEdBQUcsdUNBQWtCLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN6RCxNQUFNLENBQUMsV0FBVyxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsbUJBQW1CLEtBQUsscUJBQXFCLENBQUMsQ0FBQztZQUNsRixDQUFDLENBQUMsQ0FBQztZQUVILFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxFQUFFLEVBQUU7Z0JBQ3ZDLE1BQU0sTUFBTSxHQUFHLHVDQUFrQixDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDekQsTUFBTSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLHFCQUFxQixLQUFLLHNCQUFzQixDQUFDLENBQUM7WUFDdEYsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxtQ0FBbUMsRUFBRTtZQUN0QyxNQUFNLE1BQU0sR0FBRyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsQ0FBQztZQUNsQyxNQUFNLE1BQU0sR0FBRyxPQUFPLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzVDLE1BQU0sQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ25DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxRQUFRLENBQUMsbUJBQW1CLEVBQUU7UUFDNUIsRUFBRSxDQUFDLGdEQUFnRCxFQUFFO1lBQ25ELE1BQU0sT0FBTyxHQUFHLG9FQUFvRSxDQUFDO1lBQ3JGLE1BQU0sT0FBTyxHQUFHLG9CQUFvQixDQUFDO1lBQ3JDLE1BQU0sS0FBSyxHQUFxQjtnQkFDOUI7b0JBQ0UsUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxFQUFFLHFCQUFxQixFQUFFLFFBQVE7b0JBQ3ZDLElBQUksRUFBRSx1QkFBdUI7b0JBQzdCLFNBQVMsRUFBRSxHQUFHO29CQUNkLFNBQVMsRUFBRSxDQUFDO29CQUNaLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDO2lCQUM5QjthQUNGLENBQUM7WUFFRixpQkFBaUI7WUFDakIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNwQixPQUFPLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFFeEIsa0RBQWtEO1lBQ2xELE1BQU0sQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxFQUFFLENBQUMsK0JBQStCLEVBQUU7WUFDbEMsTUFBTSxPQUFPLEdBQUcsb0VBQW9FLENBQUM7WUFDckYsTUFBTSxPQUFPLEdBQUcsYUFBYSxDQUFDO1lBQzlCLE1BQU0sS0FBSyxHQUFxQjtnQkFDOUI7b0JBQ0UsUUFBUSxFQUFFLENBQUM7b0JBQ1gsTUFBTSxFQUFFLHFCQUFxQjtvQkFDN0IsSUFBSSxFQUFFLGlCQUFpQjtvQkFDdkIsU0FBUyxFQUFFLEdBQUc7b0JBQ2QsU0FBUyxFQUFFLENBQUM7b0JBQ1osU0FBUyxFQUFFLENBQUMsY0FBYyxDQUFDO2lCQUM1QjthQUNGLENBQUM7WUFFRix1QkFBdUI7WUFDdkIsTUFBTSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUU7Z0JBQ3ZCLE9BQU8sQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUMzRCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7QUFDTCxDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgQnVpbGRUcmFuc2FjdGlvbkVycm9yIH0gZnJvbSAnQGJpdGdvL3Nkay1jb3JlJztcbmltcG9ydCAqIGFzIGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0IHsgSW1wb3J0SW5DVHhCdWlsZGVyIH0gZnJvbSAnLi4vLi4vLi4vc3JjL2xpYi9pbXBvcnRJbkNUeEJ1aWxkZXInO1xuaW1wb3J0IHsgRGVjb2RlZFV0eG9PYmogfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliL2lmYWNlJztcblxuZGVzY3JpYmUoJ0ltcG9ydEluQ1R4QnVpbGRlcicsIGZ1bmN0aW9uICgpIHtcbiAgY29uc3QgY29pbkNvbmZpZyA9IGNvaW5zLmdldCgndGZscnAnKTtcbiAgbGV0IGJ1aWxkZXI6IEltcG9ydEluQ1R4QnVpbGRlcjtcblxuICBiZWZvcmVFYWNoKGZ1bmN0aW9uICgpIHtcbiAgICBidWlsZGVyID0gbmV3IEltcG9ydEluQ1R4QnVpbGRlcihjb2luQ29uZmlnKTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ0NvbnN0cnVjdG9yJywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgaW5pdGlhbGl6ZSB3aXRoIGNvaW4gY29uZmlnJywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0Lm9rKGJ1aWxkZXIpO1xuICAgICAgYXNzZXJ0Lm9rKGJ1aWxkZXIgaW5zdGFuY2VvZiBJbXBvcnRJbkNUeEJ1aWxkZXIpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnQWRkcmVzcyBNYW5hZ2VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgc2V0IHZhbGlkIEMtY2hhaW4gZGVzdGluYXRpb24gYWRkcmVzcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHZhbGlkQWRkcmVzc2VzID0gW1xuICAgICAgICAnUC1mbGFyZTFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxNmY0YXZoJyxcbiAgICAgICAgJ1AtZmxhcmUxYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmYWJjZGVmMTIzNDU2JyxcbiAgICAgICAgJ05vZGVJRC1mbGFyZTF0ZXN0MTIzNDU2Nzg5YWJjZGVmJyxcbiAgICAgIF07XG5cbiAgICAgIHZhbGlkQWRkcmVzc2VzLmZvckVhY2goKGFkZHJlc3MpID0+IHtcbiAgICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiB7XG4gICAgICAgICAgYnVpbGRlci50byhhZGRyZXNzKTtcbiAgICAgICAgfSwgYFNob3VsZCBhY2NlcHQgdmFsaWQgYWRkcmVzczogJHthZGRyZXNzfWApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIHJlamVjdCBpbnZhbGlkIEMtY2hhaW4gYWRkcmVzc2VzJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgaW52YWxpZEFkZHJlc3NlcyA9IFtcbiAgICAgICAgJycsXG4gICAgICAgICdpbnZhbGlkLWFkZHJlc3MnLFxuICAgICAgICAnMHg3NDJDNEIxOGRkNjJGMjNCRjBiZjhjMTgzZjRENUU1RjZjNmM0NmY4JywgLy8gRXRoZXJldW0gZm9ybWF0XG4gICAgICAgICdDLWludmFsaWQtZm9ybWF0JyxcbiAgICAgICAgJ2ZsYXJlMXRlc3QnLCAvLyBNaXNzaW5nIHByZWZpeFxuICAgICAgICAncmFuZG9tLXN0cmluZy0xMjMnLFxuICAgICAgXTtcblxuICAgICAgaW52YWxpZEFkZHJlc3Nlcy5mb3JFYWNoKChhZGRyZXNzKSA9PiB7XG4gICAgICAgIGFzc2VydC50aHJvd3MoXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgYnVpbGRlci50byhhZGRyZXNzKTtcbiAgICAgICAgICB9LFxuICAgICAgICAgIEJ1aWxkVHJhbnNhY3Rpb25FcnJvcixcbiAgICAgICAgICBgU2hvdWxkIHJlamVjdCBpbnZhbGlkIGFkZHJlc3M6ICR7YWRkcmVzc31gXG4gICAgICAgICk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgaGFuZGxlIG11bHRpcGxlIGFkZHJlc3Mgc2V0dGluZ3MnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhZGRyZXNzMSA9ICdQLWZsYXJlMXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXE2ZjRhdmgnO1xuICAgICAgY29uc3QgYWRkcmVzczIgPSAnUC1mbGFyZTFhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWZhYmNkZWYxMjM0NTYnO1xuXG4gICAgICBidWlsZGVyLnRvKGFkZHJlc3MxKTtcbiAgICAgIGJ1aWxkZXIudG8oYWRkcmVzczIpOyAvLyBTaG91bGQgb3ZlcndyaXRlIHRoZSBmaXJzdCBhZGRyZXNzXG5cbiAgICAgIC8vIFRlc3QgZG9lc24ndCB0aHJvd1xuICAgICAgYXNzZXJ0Lm9rKHRydWUpO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVVRYTyBNYW5hZ2VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgIGl0KCdzaG91bGQgYWRkIHNpbmdsZSBVVFhPJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgdXR4bzogRGVjb2RlZFV0eG9PYmogPSB7XG4gICAgICAgIG91dHB1dElEOiAxLFxuICAgICAgICBhbW91bnQ6ICcxMDAwMDAwMDAwMDAwMDAwMDAwJywgLy8gMSBGTFJcbiAgICAgICAgdHhpZDogJ3Rlc3QtdHhpZC1zaW5nbGUnLFxuICAgICAgICBvdXRwdXRpZHg6ICcwJyxcbiAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICBhZGRyZXNzZXM6IFsnUC1mbGFyZTF0ZXN0J10sXG4gICAgICB9O1xuXG4gICAgICBhc3NlcnQuZG9lc05vdFRocm93KCgpID0+IHtcbiAgICAgICAgYnVpbGRlci5hZGRVdHhvcyhbdXR4b10pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFkZCBtdWx0aXBsZSBVVFhPcycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHV0eG9zOiBEZWNvZGVkVXR4b09ialtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgb3V0cHV0SUQ6IDEsXG4gICAgICAgICAgYW1vdW50OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIDEgRkxSXG4gICAgICAgICAgdHhpZDogJ3Rlc3QtdHhpZC0xJyxcbiAgICAgICAgICBvdXRwdXRpZHg6ICcwJyxcbiAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgYWRkcmVzc2VzOiBbJ1AtZmxhcmUxdGVzdDEnXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG91dHB1dElEOiAyLFxuICAgICAgICAgIGFtb3VudDogJzIwMDAwMDAwMDAwMDAwMDAwMDAnLCAvLyAyIEZMUlxuICAgICAgICAgIHR4aWQ6ICd0ZXN0LXR4aWQtMicsXG4gICAgICAgICAgb3V0cHV0aWR4OiAnMScsXG4gICAgICAgICAgdGhyZXNob2xkOiAyLFxuICAgICAgICAgIGFkZHJlc3NlczogWydQLWZsYXJlMXRlc3QyJywgJ1AtZmxhcmUxdGVzdDMnXSxcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIG91dHB1dElEOiAzLFxuICAgICAgICAgIGFtb3VudDogJzUwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIDAuNSBGTFJcbiAgICAgICAgICB0eGlkOiAndGVzdC10eGlkLTMnLFxuICAgICAgICAgIG91dHB1dGlkeDogJzAnLFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICBhZGRyZXNzZXM6IFsnUC1mbGFyZTF0ZXN0NCddLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYWRkVXR4b3ModXR4b3MpO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBlbXB0eSBVVFhPIGFycmF5JywgZnVuY3Rpb24gKCkge1xuICAgICAgYXNzZXJ0LmRvZXNOb3RUaHJvdygoKSA9PiB7XG4gICAgICAgIGJ1aWxkZXIuYWRkVXR4b3MoW10pO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGFjY3VtdWxhdGUgVVRYT3MgZnJvbSBtdWx0aXBsZSBjYWxscycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IHV0eG9zMTogRGVjb2RlZFV0eG9PYmpbXSA9IFtcbiAgICAgICAge1xuICAgICAgICAgIG91dHB1dElEOiAxLFxuICAgICAgICAgIGFtb3VudDogJzEwMDAwMDAwMDAwMDAwMDAwMDAnLFxuICAgICAgICAgIHR4aWQ6ICd0ZXN0LXR4aWQtMScsXG4gICAgICAgICAgb3V0cHV0aWR4OiAnMCcsXG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgIGFkZHJlc3NlczogWydQLWZsYXJlMXRlc3QxJ10sXG4gICAgICAgIH0sXG4gICAgICBdO1xuXG4gICAgICBjb25zdCB1dHhvczI6IERlY29kZWRVdHhvT2JqW10gPSBbXG4gICAgICAgIHtcbiAgICAgICAgICBvdXRwdXRJRDogMixcbiAgICAgICAgICBhbW91bnQ6ICcyMDAwMDAwMDAwMDAwMDAwMDAwJyxcbiAgICAgICAgICB0eGlkOiAndGVzdC10eGlkLTInLFxuICAgICAgICAgIG91dHB1dGlkeDogJzAnLFxuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICBhZGRyZXNzZXM6IFsnUC1mbGFyZTF0ZXN0MiddLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgYnVpbGRlci5hZGRVdHhvcyh1dHhvczEpO1xuICAgICAgYnVpbGRlci5hZGRVdHhvcyh1dHhvczIpO1xuXG4gICAgICAvLyBUZXN0IGRvZXNuJ3QgdGhyb3dcbiAgICAgIGFzc2VydC5vayh0cnVlKTtcbiAgICB9KTtcbiAgfSk7XG5cbiAgZGVzY3JpYmUoJ1NvdXJjZSBDaGFpbiBNYW5hZ2VtZW50JywgZnVuY3Rpb24gKCkge1xuICAgIC8vIFRPRE8gOiBFbmFibGUgdGhlc2UgdGVzdHMgYWZ0ZXIgZml4aW5nIHNvdXJjZUNoYWluIG1ldGhvZCB0byBhY2NlcHQgUC1jaGFpbiBJRHNcbiAgICBpdC5za2lwKCdzaG91bGQgc2V0IHZhbGlkIHNvdXJjZSBjaGFpbiBJRHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB2YWxpZENoYWluSWRzID0gWydQLWZsYXJlMTIzNDUnLCAnTm9kZUlELWZsYXJlNjc4OTAnLCAnMHgxMjM0NTY3ODlhYmNkZWYnLCAnYWJjMTIzZGVmNDU2J107XG5cbiAgICAgIHZhbGlkQ2hhaW5JZHMuZm9yRWFjaCgoY2hhaW5JZCkgPT4ge1xuICAgICAgICBhc3NlcnQuZG9lc05vdFRocm93KCgpID0+IHtcbiAgICAgICAgICBidWlsZGVyLnNvdXJjZUNoYWluKGNoYWluSWQpO1xuICAgICAgICB9LCBgU2hvdWxkIGFjY2VwdCBjaGFpbiBJRDogJHtjaGFpbklkfWApO1xuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBkaWZmZXJlbnQgY2hhaW4gSUQgZm9ybWF0cycsIGZ1bmN0aW9uICgpIHtcbiAgICAgIC8vIFRlc3QgdmFyaW91cyBmb3JtYXRzIHRoYXQgbWlnaHQgYmUgZW5jb3VudGVyZWRcbiAgICAgIGNvbnN0IGNoYWluSWRzID0gWydQLWNoYWluLWlkLTEyMycsICdDLWNoYWluLWlkLTQ1NicsICdoZXgtZm9ybWF0dGVkLWlkJywgJzEyMzQ1Njc4OTBhYmNkZWYnXTtcblxuICAgICAgY2hhaW5JZHMuZm9yRWFjaCgoY2hhaW5JZCkgPT4ge1xuICAgICAgICBhc3NlcnQuZG9lc05vdFRocm93KCgpID0+IHtcbiAgICAgICAgICBidWlsZGVyLnNvdXJjZUNoYWluKGNoYWluSWQpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9KTtcblxuICBkZXNjcmliZSgnVHJhbnNhY3Rpb24gVHlwZSBWZXJpZmljYXRpb24nLCBmdW5jdGlvbiAoKSB7XG4gICAgaXQoJ3Nob3VsZCB2ZXJpZnkgdHJhbnNhY3Rpb24gdHlwZSAocGxhY2Vob2xkZXIpJywgZnVuY3Rpb24gKCkge1xuICAgICAgY29uc3QgbW9ja1R4ID0geyB0eXBlOiAnaW1wb3J0JyB9O1xuICAgICAgY29uc3QgcmVzdWx0ID0gSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZShtb2NrVHgpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdCwgdHJ1ZSk7IC8vIFBsYWNlaG9sZGVyIHJldHVybnMgdHJ1ZVxuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBoYW5kbGUgZGlmZmVyZW50IHRyYW5zYWN0aW9uIG9iamVjdHMnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCB2YWxpZENhc2VzID0gW1xuICAgICAgICB7IHR5cGU6ICdpbXBvcnQnIH0sIC8vIFBsYWNlaG9sZGVyIGltcG9ydCB0cmFuc2FjdGlvblxuICAgICAgICB7XG4gICAgICAgICAgaW1wb3J0SW5zOiBbeyBpbnB1dDogJ3Rlc3QnIH1dLFxuICAgICAgICAgIHNvdXJjZUNoYWluOiAnUC1jaGFpbicsXG4gICAgICAgICAgdG86ICcweDEyMzQ1Njc4OTAxMjM0NTY3ODkwMTIzNDU2Nzg5MDEyMzQ1Njc4OTAnLFxuICAgICAgICB9LCAvLyBSZWFsaXN0aWMgaW1wb3J0IHRyYW5zYWN0aW9uXG4gICAgICBdO1xuXG4gICAgICBjb25zdCBpbnZhbGlkQ2FzZXMgPSBbe30sIG51bGwsIHVuZGVmaW5lZCwgeyB0eXBlOiAnZXhwb3J0JyB9LCB7IGRhdGE6ICd0ZXN0JyB9XTtcblxuICAgICAgdmFsaWRDYXNlcy5mb3JFYWNoKCh0ZXN0Q2FzZSwgaW5kZXgpID0+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gSW1wb3J0SW5DVHhCdWlsZGVyLnZlcmlmeVR4VHlwZSh0ZXN0Q2FzZSk7XG4gICAgICAgIGFzc2VydC5zdHJpY3RFcXVhbChyZXN1bHQsIHRydWUsIGBWYWxpZCB0ZXN0IGNhc2UgJHtpbmRleH0gc2hvdWxkIHJldHVybiB0cnVlYCk7XG4gICAgICB9KTtcblxuICAgICAgaW52YWxpZENhc2VzLmZvckVhY2goKHRlc3RDYXNlLCBpbmRleCkgPT4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSBJbXBvcnRJbkNUeEJ1aWxkZXIudmVyaWZ5VHhUeXBlKHRlc3RDYXNlKTtcbiAgICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdCwgZmFsc2UsIGBJbnZhbGlkIHRlc3QgY2FzZSAke2luZGV4fSBzaG91bGQgcmV0dXJuIGZhbHNlYCk7XG4gICAgICB9KTtcbiAgICB9KTtcblxuICAgIGl0KCdzaG91bGQgdmVyaWZ5IHZpYSBpbnN0YW5jZSBtZXRob2QnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBtb2NrVHggPSB7IHR5cGU6ICdpbXBvcnQnIH07XG4gICAgICBjb25zdCByZXN1bHQgPSBidWlsZGVyLnZlcmlmeVR4VHlwZShtb2NrVHgpO1xuICAgICAgYXNzZXJ0LnN0cmljdEVxdWFsKHJlc3VsdCwgdHJ1ZSk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIGRlc2NyaWJlKCdJbnRlZ3JhdGlvbiBUZXN0cycsIGZ1bmN0aW9uICgpIHtcbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBjb21wbGV0ZSBpbXBvcnQgZmxvdyBwcmVwYXJhdGlvbicsIGZ1bmN0aW9uICgpIHtcbiAgICAgIGNvbnN0IGFkZHJlc3MgPSAnUC1mbGFyZTFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxNmY0YXZoJztcbiAgICAgIGNvbnN0IGNoYWluSWQgPSAnUC1zb3VyY2UtY2hhaW4tMTIzJztcbiAgICAgIGNvbnN0IHV0eG9zOiBEZWNvZGVkVXR4b09ialtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgb3V0cHV0SUQ6IDEsXG4gICAgICAgICAgYW1vdW50OiAnNTAwMDAwMDAwMDAwMDAwMDAwMCcsIC8vIDUgRkxSXG4gICAgICAgICAgdHhpZDogJ2ludGVncmF0aW9uLXRlc3QtdHhpZCcsXG4gICAgICAgICAgb3V0cHV0aWR4OiAnMCcsXG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgIGFkZHJlc3NlczogWydQLWZsYXJlMXNvdXJjZSddLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgLy8gQ29tcGxldGUgc2V0dXBcbiAgICAgIGJ1aWxkZXIudG8oYWRkcmVzcyk7XG4gICAgICBidWlsZGVyLnNvdXJjZUNoYWluKGNoYWluSWQpO1xuICAgICAgYnVpbGRlci5hZGRVdHhvcyh1dHhvcyk7XG5cbiAgICAgIC8vIEFsbCBvcGVyYXRpb25zIHNob3VsZCBjb21wbGV0ZSB3aXRob3V0IHRocm93aW5nXG4gICAgICBhc3NlcnQub2sodHJ1ZSk7XG4gICAgfSk7XG5cbiAgICBpdCgnc2hvdWxkIGhhbmRsZSBtZXRob2QgY2hhaW5pbmcnLCBmdW5jdGlvbiAoKSB7XG4gICAgICBjb25zdCBhZGRyZXNzID0gJ1AtZmxhcmUxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcXFxcTZmNGF2aCc7XG4gICAgICBjb25zdCBjaGFpbklkID0gJ1AtY2hhaW4tMTIzJztcbiAgICAgIGNvbnN0IHV0eG9zOiBEZWNvZGVkVXR4b09ialtdID0gW1xuICAgICAgICB7XG4gICAgICAgICAgb3V0cHV0SUQ6IDEsXG4gICAgICAgICAgYW1vdW50OiAnMTAwMDAwMDAwMDAwMDAwMDAwMCcsXG4gICAgICAgICAgdHhpZDogJ2NoYWluLXRlc3QtdHhpZCcsXG4gICAgICAgICAgb3V0cHV0aWR4OiAnMCcsXG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgIGFkZHJlc3NlczogWydQLWZsYXJlMXRlc3QnXSxcbiAgICAgICAgfSxcbiAgICAgIF07XG5cbiAgICAgIC8vIFRlc3QgbWV0aG9kIGNoYWluaW5nXG4gICAgICBhc3NlcnQuZG9lc05vdFRocm93KCgpID0+IHtcbiAgICAgICAgYnVpbGRlci50byhhZGRyZXNzKS5zb3VyY2VDaGFpbihjaGFpbklkKS5hZGRVdHhvcyh1dHhvcyk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfSk7XG59KTtcbiJdfQ==
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0SW5DVHhCdWlsZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vdGVzdC91bml0L2xpYi9pbXBvcnRJbkNUeEJ1aWxkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxvREFBNEI7QUFDNUIsa0JBQWdCO0FBQ2hCLDBDQUE2RTtBQUM3RSw0Q0FBdUM7QUFDdkMseUVBQW9GO0FBQ3BGLDBFQUE4QztBQUU5QyxRQUFRLENBQUMsNkJBQTZCLEVBQUUsR0FBRyxFQUFFO0lBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksK0JBQXlCLENBQUMsZUFBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFFBQVEsQ0FBQywyQkFBMkIsRUFBRSxHQUFHLEVBQUU7UUFDekMsTUFBTSxTQUFTLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFaEQsRUFBRSxDQUFDLHlDQUF5QyxFQUFFLEdBQUcsRUFBRTtZQUNqRCxnQkFBTSxDQUFDLE1BQU0sQ0FDWCxHQUFHLEVBQUU7Z0JBQ0gsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QixDQUFDLEVBQ0QsQ0FBQyxDQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxPQUFPLEtBQUssNkJBQTZCLENBQ3hELENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILEVBQUUsQ0FBQyxpREFBaUQsRUFBRSxHQUFHLEVBQUU7WUFDekQsZ0JBQU0sQ0FBQyxNQUFNLENBQ1gsR0FBRyxFQUFFO2dCQUNILFNBQVMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxFQUFFLEVBQTJCLENBQUMsQ0FBQyxDQUFDO1lBQ3ZFLENBQUMsRUFDRCxDQUFDLENBQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sS0FBSyxxQ0FBcUMsQ0FDaEUsQ0FBQztRQUNKLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLDBCQUFZLEVBQUM7UUFDWCxlQUFlLEVBQUUsWUFBWTtRQUM3QixZQUFZLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JFLFlBQVksRUFBRSxHQUFHLEVBQUUsQ0FDakIsSUFBSSwrQkFBeUIsQ0FBQyxlQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzlDLG1CQUFtQixFQUFFO2FBQ3JCLFNBQVMsQ0FBQyx1QkFBUSxDQUFDLFNBQVMsQ0FBQzthQUM3QixVQUFVLENBQUMsdUJBQVEsQ0FBQyxVQUFVLENBQUM7YUFDL0IsS0FBSyxDQUFDLHVCQUFRLENBQUMsT0FBTyxDQUFDO2FBQ3ZCLEVBQUUsQ0FBQyx1QkFBUSxDQUFDLEVBQUUsQ0FBQzthQUNmLE9BQU8sQ0FBQyx1QkFBUSxDQUFDLEdBQUcsQ0FBQztRQUMxQixhQUFhLEVBQUUsdUJBQVEsQ0FBQyxXQUFXO1FBQ25DLGVBQWUsRUFBRSx1QkFBUSxDQUFDLGFBQWE7UUFDdkMsZUFBZSxFQUFFLHVCQUFRLENBQUMsYUFBYTtRQUN2QyxVQUFVLEVBQUU7WUFDVixJQUFJLEVBQUUsdUJBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1lBQzdCLElBQUksRUFBRSx1QkFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUM7U0FDOUI7UUFDRCxNQUFNLEVBQUUsdUJBQVEsQ0FBQyxNQUFNO0tBQ3hCLENBQUMsQ0FBQztBQUNMLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IGFzc2VydCBmcm9tICdhc3NlcnQnO1xuaW1wb3J0ICdzaG91bGQnO1xuaW1wb3J0IHsgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeSwgRGVjb2RlZFV0eG9PYmogfSBmcm9tICcuLi8uLi8uLi9zcmMvbGliJztcbmltcG9ydCB7IGNvaW5zIH0gZnJvbSAnQGJpdGdvL3N0YXRpY3MnO1xuaW1wb3J0IHsgSU1QT1JUX0lOX0MgYXMgdGVzdERhdGEgfSBmcm9tICcuLi8uLi9yZXNvdXJjZXMvdHJhbnNhY3Rpb25EYXRhL2ltcG9ydEluQyc7XG5pbXBvcnQgc2lnbkZsb3dUZXN0IGZyb20gJy4vc2lnbkZsb3dUZXN0U3VpdCc7XG5cbmRlc2NyaWJlKCdGbHJwIEltcG9ydCBJbiBDIFR4IEJ1aWxkZXInLCAoKSA9PiB7XG4gIGNvbnN0IGZhY3RvcnkgPSBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpO1xuICBkZXNjcmliZSgndmFsaWRhdGUgdHhCdWlsZGVyIGZpZWxkcycsICgpID0+IHtcbiAgICBjb25zdCB0eEJ1aWxkZXIgPSBmYWN0b3J5LmdldEltcG9ydEluQ0J1aWxkZXIoKTtcblxuICAgIGl0KCdzaG91bGQgZmFpbCB2YWxpZGF0ZSBVdHhvcyBlbXB0eSBzdHJpbmcnLCAoKSA9PiB7XG4gICAgICBhc3NlcnQudGhyb3dzKFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgdHhCdWlsZGVyLnZhbGlkYXRlVXR4b3MoW10pO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdVVFhPcyBhcnJheSBjYW5ub3QgYmUgZW1wdHknXG4gICAgICApO1xuICAgIH0pO1xuXG4gICAgaXQoJ3Nob3VsZCBmYWlsIHZhbGlkYXRlIFV0eG9zIHdpdGhvdXQgYW1vdW50IGZpZWxkJywgKCkgPT4ge1xuICAgICAgYXNzZXJ0LnRocm93cyhcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgIHR4QnVpbGRlci52YWxpZGF0ZVV0eG9zKFt7IG91dHB1dElEOiAnJyB9IGFzIGFueSBhcyBEZWNvZGVkVXR4b09ial0pO1xuICAgICAgICB9LFxuICAgICAgICAoZTogYW55KSA9PiBlLm1lc3NhZ2UgPT09ICdVVFhPIG1pc3NpbmcgcmVxdWlyZWQgZmllbGQ6IGFtb3VudCdcbiAgICAgICk7XG4gICAgfSk7XG4gIH0pO1xuXG4gIHNpZ25GbG93VGVzdCh7XG4gICAgdHJhbnNhY3Rpb25UeXBlOiAnSW1wb3J0IEMyUCcsXG4gICAgbmV3VHhGYWN0b3J5OiAoKSA9PiBuZXcgVHJhbnNhY3Rpb25CdWlsZGVyRmFjdG9yeShjb2lucy5nZXQoJ3RmbHJwJykpLFxuICAgIG5ld1R4QnVpbGRlcjogKCkgPT5cbiAgICAgIG5ldyBUcmFuc2FjdGlvbkJ1aWxkZXJGYWN0b3J5KGNvaW5zLmdldCgndGZscnAnKSlcbiAgICAgICAgLmdldEltcG9ydEluQ0J1aWxkZXIoKVxuICAgICAgICAudGhyZXNob2xkKHRlc3REYXRhLnRocmVzaG9sZClcbiAgICAgICAgLmZyb21QdWJLZXkodGVzdERhdGEucEFkZHJlc3NlcylcbiAgICAgICAgLnV0eG9zKHRlc3REYXRhLm91dHB1dHMpXG4gICAgICAgIC50byh0ZXN0RGF0YS50bylcbiAgICAgICAgLmZlZVJhdGUodGVzdERhdGEuZmVlKSxcbiAgICB1bnNpZ25lZFR4SGV4OiB0ZXN0RGF0YS51bnNpZ25lZEhleCxcbiAgICBoYWxmU2lnbmVkVHhIZXg6IHRlc3REYXRhLmhhbGZTaWdudHhIZXgsXG4gICAgZnVsbFNpZ25lZFR4SGV4OiB0ZXN0RGF0YS5mdWxsU2lnbnR4SGV4LFxuICAgIHByaXZhdGVLZXk6IHtcbiAgICAgIHBydjE6IHRlc3REYXRhLnByaXZhdGVLZXlzWzBdLFxuICAgICAgcHJ2MjogdGVzdERhdGEucHJpdmF0ZUtleXNbMV0sXG4gICAgfSxcbiAgICB0eEhhc2g6IHRlc3REYXRhLnR4aGFzaCxcbiAgfSk7XG59KTtcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ import 'should';
2
2
  //# sourceMappingURL=importInPTxBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"importInPTxBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/importInPTxBuilder.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"importInPTxBuilder.d.ts","sourceRoot":"","sources":["../../../../test/unit/lib/importInPTxBuilder.ts"],"names":[],"mappings":"AACA,OAAO,QAAQ,CAAC"}