@rosen-bridge/watcher-data-extractor 4.2.4 → 4.2.6-65ea22
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/dist/actions/EventTriggerAction.d.ts +2 -2
- package/dist/actions/EventTriggerAction.d.ts.map +1 -1
- package/dist/actions/EventTriggerAction.js +3 -2
- package/dist/actions/commitmentAction.d.ts +2 -2
- package/dist/actions/commitmentAction.d.ts.map +1 -1
- package/dist/actions/commitmentAction.js +3 -2
- package/dist/actions/permitAction.d.ts +2 -2
- package/dist/actions/permitAction.d.ts.map +1 -1
- package/dist/actions/permitAction.js +3 -2
- package/dist/extractor/EventTriggerExtractor.d.ts +1 -1
- package/dist/extractor/EventTriggerExtractor.d.ts.map +1 -1
- package/dist/extractor/EventTriggerExtractor.js +2 -2
- package/dist/extractor/commitmentExtractor.d.ts +1 -1
- package/dist/extractor/commitmentExtractor.d.ts.map +1 -1
- package/dist/extractor/commitmentExtractor.js +2 -2
- package/dist/extractor/permitExtractor.d.ts +1 -1
- package/dist/extractor/permitExtractor.d.ts.map +1 -1
- package/dist/extractor/permitExtractor.js +2 -2
- package/dist/migrations/index.d.ts +2 -2
- package/dist/migrations/index.d.ts.map +1 -1
- package/dist/migrations/postgres/1703509820315-migration.d.ts +7 -0
- package/dist/migrations/postgres/1703509820315-migration.d.ts.map +1 -0
- package/dist/migrations/postgres/1703509820315-migration.js +66 -0
- package/dist/migrations/postgres/1706610773315-migration.d.ts +7 -0
- package/dist/migrations/postgres/1706610773315-migration.d.ts.map +1 -0
- package/dist/migrations/postgres/1706610773315-migration.js +65 -0
- package/dist/migrations/sqlite/1703509480176-migration.d.ts +7 -0
- package/dist/migrations/sqlite/1703509480176-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/1703509480176-migration.js +421 -0
- package/dist/migrations/sqlite/migration1706610773176-migration.d.ts +7 -0
- package/dist/migrations/sqlite/migration1706610773176-migration.d.ts.map +1 -0
- package/dist/migrations/sqlite/migration1706610773176-migration.js +419 -0
- package/package.json +3 -3
|
@@ -0,0 +1,419 @@
|
|
|
1
|
+
import { getWidInfo } from '../../utils';
|
|
2
|
+
export class migration1706610773176 {
|
|
3
|
+
name = 'migration1706610773176';
|
|
4
|
+
async up(queryRunner) {
|
|
5
|
+
// get all events before removing WIDs column
|
|
6
|
+
const events = await queryRunner.query(`
|
|
7
|
+
SELECT "id", "WIDs" from "event_trigger_entity"
|
|
8
|
+
`);
|
|
9
|
+
await queryRunner.query(`
|
|
10
|
+
CREATE TABLE "temporary_event_trigger_entity" (
|
|
11
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
12
|
+
"eventId" varchar NOT NULL DEFAULT ('Not-set'),
|
|
13
|
+
"txId" varchar NOT NULL,
|
|
14
|
+
"extractor" varchar NOT NULL,
|
|
15
|
+
"boxId" varchar NOT NULL,
|
|
16
|
+
"boxSerialized" varchar NOT NULL,
|
|
17
|
+
"block" varchar NOT NULL,
|
|
18
|
+
"height" integer NOT NULL,
|
|
19
|
+
"fromChain" varchar NOT NULL,
|
|
20
|
+
"toChain" varchar NOT NULL,
|
|
21
|
+
"fromAddress" varchar NOT NULL,
|
|
22
|
+
"toAddress" varchar NOT NULL,
|
|
23
|
+
"amount" varchar NOT NULL,
|
|
24
|
+
"bridgeFee" varchar NOT NULL,
|
|
25
|
+
"networkFee" varchar NOT NULL,
|
|
26
|
+
"sourceChainTokenId" varchar NOT NULL,
|
|
27
|
+
"sourceChainHeight" integer NOT NULL,
|
|
28
|
+
"targetChainTokenId" varchar NOT NULL,
|
|
29
|
+
"sourceTxId" varchar NOT NULL,
|
|
30
|
+
"sourceBlockId" varchar NOT NULL,
|
|
31
|
+
"spendBlock" text,
|
|
32
|
+
"spendHeight" integer,
|
|
33
|
+
"spendTxId" text,
|
|
34
|
+
"result" text,
|
|
35
|
+
"paymentTxId" text,
|
|
36
|
+
"WIDsCount" integer NOT NULL,
|
|
37
|
+
"WIDsHash" varchar NOT NULL,
|
|
38
|
+
CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
|
|
39
|
+
)
|
|
40
|
+
`);
|
|
41
|
+
await queryRunner.query(`
|
|
42
|
+
INSERT INTO "temporary_event_trigger_entity"(
|
|
43
|
+
"id",
|
|
44
|
+
"eventId",
|
|
45
|
+
"txId",
|
|
46
|
+
"extractor",
|
|
47
|
+
"boxId",
|
|
48
|
+
"boxSerialized",
|
|
49
|
+
"block",
|
|
50
|
+
"height",
|
|
51
|
+
"fromChain",
|
|
52
|
+
"toChain",
|
|
53
|
+
"fromAddress",
|
|
54
|
+
"toAddress",
|
|
55
|
+
"amount",
|
|
56
|
+
"bridgeFee",
|
|
57
|
+
"networkFee",
|
|
58
|
+
"sourceChainTokenId",
|
|
59
|
+
"sourceChainHeight",
|
|
60
|
+
"targetChainTokenId",
|
|
61
|
+
"sourceTxId",
|
|
62
|
+
"sourceBlockId",
|
|
63
|
+
"spendBlock",
|
|
64
|
+
"spendHeight",
|
|
65
|
+
"spendTxId",
|
|
66
|
+
"result",
|
|
67
|
+
"paymentTxId",
|
|
68
|
+
"WIDsCount",
|
|
69
|
+
"WIDsHash"
|
|
70
|
+
)
|
|
71
|
+
SELECT "id",
|
|
72
|
+
"eventId",
|
|
73
|
+
"txId",
|
|
74
|
+
"extractor",
|
|
75
|
+
"boxId",
|
|
76
|
+
"boxSerialized",
|
|
77
|
+
"block",
|
|
78
|
+
"height",
|
|
79
|
+
"fromChain",
|
|
80
|
+
"toChain",
|
|
81
|
+
"fromAddress",
|
|
82
|
+
"toAddress",
|
|
83
|
+
"amount",
|
|
84
|
+
"bridgeFee",
|
|
85
|
+
"networkFee",
|
|
86
|
+
"sourceChainTokenId",
|
|
87
|
+
"sourceChainHeight",
|
|
88
|
+
"targetChainTokenId",
|
|
89
|
+
"sourceTxId",
|
|
90
|
+
"sourceBlockId",
|
|
91
|
+
"spendBlock",
|
|
92
|
+
"spendHeight",
|
|
93
|
+
"spendTxId",
|
|
94
|
+
"result",
|
|
95
|
+
"paymentTxId",
|
|
96
|
+
0,
|
|
97
|
+
''
|
|
98
|
+
FROM "event_trigger_entity"
|
|
99
|
+
`);
|
|
100
|
+
await queryRunner.query(`
|
|
101
|
+
DROP TABLE "event_trigger_entity"
|
|
102
|
+
`);
|
|
103
|
+
await queryRunner.query(`
|
|
104
|
+
ALTER TABLE "temporary_event_trigger_entity"
|
|
105
|
+
RENAME TO "event_trigger_entity"
|
|
106
|
+
`);
|
|
107
|
+
// calculate `WIDsCount` and `WIDsHash` columns in `event_trigger_entity`
|
|
108
|
+
for (const event of events) {
|
|
109
|
+
const { WIDsHash, WIDsCount } = getWidInfo(event.WIDs);
|
|
110
|
+
await queryRunner.query(`
|
|
111
|
+
UPDATE "event_trigger_entity"
|
|
112
|
+
SET "WIDsHash" = '${WIDsHash}', "WIDsCount" = '${WIDsCount}'
|
|
113
|
+
WHERE "id" = ${event.id}
|
|
114
|
+
`);
|
|
115
|
+
}
|
|
116
|
+
await queryRunner.query(`
|
|
117
|
+
CREATE TABLE "temporary_commitment_entity" (
|
|
118
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
119
|
+
"txId" varchar NOT NULL,
|
|
120
|
+
"extractor" varchar NOT NULL,
|
|
121
|
+
"eventId" varchar NOT NULL,
|
|
122
|
+
"commitment" varchar NOT NULL,
|
|
123
|
+
"WID" varchar NOT NULL,
|
|
124
|
+
"boxId" varchar NOT NULL,
|
|
125
|
+
"block" varchar NOT NULL,
|
|
126
|
+
"height" integer NOT NULL,
|
|
127
|
+
"boxSerialized" varchar NOT NULL,
|
|
128
|
+
"spendBlock" text,
|
|
129
|
+
"spendHeight" integer,
|
|
130
|
+
"rwtCount" varchar,
|
|
131
|
+
"spendTxId" text,
|
|
132
|
+
"spendIndex" integer,
|
|
133
|
+
CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
|
|
134
|
+
)
|
|
135
|
+
`);
|
|
136
|
+
await queryRunner.query(`
|
|
137
|
+
INSERT INTO "temporary_commitment_entity"(
|
|
138
|
+
"id",
|
|
139
|
+
"txId",
|
|
140
|
+
"extractor",
|
|
141
|
+
"eventId",
|
|
142
|
+
"commitment",
|
|
143
|
+
"WID",
|
|
144
|
+
"boxId",
|
|
145
|
+
"block",
|
|
146
|
+
"height",
|
|
147
|
+
"boxSerialized",
|
|
148
|
+
"spendBlock",
|
|
149
|
+
"spendHeight",
|
|
150
|
+
"rwtCount"
|
|
151
|
+
)
|
|
152
|
+
SELECT "id",
|
|
153
|
+
"txId",
|
|
154
|
+
"extractor",
|
|
155
|
+
"eventId",
|
|
156
|
+
"commitment",
|
|
157
|
+
"WID",
|
|
158
|
+
"boxId",
|
|
159
|
+
"block",
|
|
160
|
+
"height",
|
|
161
|
+
"boxSerialized",
|
|
162
|
+
"spendBlock",
|
|
163
|
+
"spendHeight",
|
|
164
|
+
"rwtCount"
|
|
165
|
+
FROM "commitment_entity"
|
|
166
|
+
`);
|
|
167
|
+
await queryRunner.query(`
|
|
168
|
+
DROP TABLE "commitment_entity"
|
|
169
|
+
`);
|
|
170
|
+
await queryRunner.query(`
|
|
171
|
+
ALTER TABLE "temporary_commitment_entity"
|
|
172
|
+
RENAME TO "commitment_entity"
|
|
173
|
+
`);
|
|
174
|
+
}
|
|
175
|
+
async down(queryRunner) {
|
|
176
|
+
await queryRunner.query(`
|
|
177
|
+
ALTER TABLE "commitment_entity"
|
|
178
|
+
RENAME TO "temporary_commitment_entity"
|
|
179
|
+
`);
|
|
180
|
+
await queryRunner.query(`
|
|
181
|
+
CREATE TABLE "commitment_entity" (
|
|
182
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
183
|
+
"txId" varchar NOT NULL,
|
|
184
|
+
"extractor" varchar NOT NULL,
|
|
185
|
+
"eventId" varchar NOT NULL,
|
|
186
|
+
"commitment" varchar NOT NULL,
|
|
187
|
+
"WID" varchar NOT NULL,
|
|
188
|
+
"boxId" varchar NOT NULL,
|
|
189
|
+
"block" varchar NOT NULL,
|
|
190
|
+
"height" integer NOT NULL,
|
|
191
|
+
"boxSerialized" varchar NOT NULL,
|
|
192
|
+
"spendBlock" text,
|
|
193
|
+
"spendHeight" integer,
|
|
194
|
+
"rwtCount" varchar,
|
|
195
|
+
CONSTRAINT "UQ_cc294fc304a66f8f194840f1ece" UNIQUE ("boxId", "extractor")
|
|
196
|
+
)
|
|
197
|
+
`);
|
|
198
|
+
await queryRunner.query(`
|
|
199
|
+
INSERT INTO "commitment_entity"(
|
|
200
|
+
"id",
|
|
201
|
+
"txId",
|
|
202
|
+
"extractor",
|
|
203
|
+
"eventId",
|
|
204
|
+
"commitment",
|
|
205
|
+
"WID",
|
|
206
|
+
"boxId",
|
|
207
|
+
"block",
|
|
208
|
+
"height",
|
|
209
|
+
"boxSerialized",
|
|
210
|
+
"spendBlock",
|
|
211
|
+
"spendHeight",
|
|
212
|
+
"rwtCount"
|
|
213
|
+
)
|
|
214
|
+
SELECT "id",
|
|
215
|
+
"txId",
|
|
216
|
+
"extractor",
|
|
217
|
+
"eventId",
|
|
218
|
+
"commitment",
|
|
219
|
+
"WID",
|
|
220
|
+
"boxId",
|
|
221
|
+
"block",
|
|
222
|
+
"height",
|
|
223
|
+
"boxSerialized",
|
|
224
|
+
"spendBlock",
|
|
225
|
+
"spendHeight",
|
|
226
|
+
"rwtCount"
|
|
227
|
+
FROM "temporary_commitment_entity"
|
|
228
|
+
`);
|
|
229
|
+
await queryRunner.query(`
|
|
230
|
+
DROP TABLE "temporary_commitment_entity"
|
|
231
|
+
`);
|
|
232
|
+
await queryRunner.query(`
|
|
233
|
+
ALTER TABLE "event_trigger_entity"
|
|
234
|
+
RENAME TO "temporary_event_trigger_entity"
|
|
235
|
+
`);
|
|
236
|
+
await queryRunner.query(`
|
|
237
|
+
CREATE TABLE "event_trigger_entity" (
|
|
238
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
239
|
+
"eventId" varchar NOT NULL DEFAULT ('Not-set'),
|
|
240
|
+
"txId" varchar NOT NULL,
|
|
241
|
+
"extractor" varchar NOT NULL,
|
|
242
|
+
"boxId" varchar NOT NULL,
|
|
243
|
+
"boxSerialized" varchar NOT NULL,
|
|
244
|
+
"block" varchar NOT NULL,
|
|
245
|
+
"height" integer NOT NULL,
|
|
246
|
+
"fromChain" varchar NOT NULL,
|
|
247
|
+
"toChain" varchar NOT NULL,
|
|
248
|
+
"fromAddress" varchar NOT NULL,
|
|
249
|
+
"toAddress" varchar NOT NULL,
|
|
250
|
+
"amount" varchar NOT NULL,
|
|
251
|
+
"bridgeFee" varchar NOT NULL,
|
|
252
|
+
"networkFee" varchar NOT NULL,
|
|
253
|
+
"sourceChainTokenId" varchar NOT NULL,
|
|
254
|
+
"sourceChainHeight" integer NOT NULL,
|
|
255
|
+
"targetChainTokenId" varchar NOT NULL,
|
|
256
|
+
"sourceTxId" varchar NOT NULL,
|
|
257
|
+
"sourceBlockId" varchar NOT NULL,
|
|
258
|
+
"spendBlock" text,
|
|
259
|
+
"spendHeight" integer,
|
|
260
|
+
"spendTxId" text,
|
|
261
|
+
"result" text,
|
|
262
|
+
"paymentTxId" text,
|
|
263
|
+
CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
|
|
264
|
+
)
|
|
265
|
+
`);
|
|
266
|
+
await queryRunner.query(`
|
|
267
|
+
INSERT INTO "event_trigger_entity"(
|
|
268
|
+
"id",
|
|
269
|
+
"eventId",
|
|
270
|
+
"txId",
|
|
271
|
+
"extractor",
|
|
272
|
+
"boxId",
|
|
273
|
+
"boxSerialized",
|
|
274
|
+
"block",
|
|
275
|
+
"height",
|
|
276
|
+
"fromChain",
|
|
277
|
+
"toChain",
|
|
278
|
+
"fromAddress",
|
|
279
|
+
"toAddress",
|
|
280
|
+
"amount",
|
|
281
|
+
"bridgeFee",
|
|
282
|
+
"networkFee",
|
|
283
|
+
"sourceChainTokenId",
|
|
284
|
+
"sourceChainHeight",
|
|
285
|
+
"targetChainTokenId",
|
|
286
|
+
"sourceTxId",
|
|
287
|
+
"sourceBlockId",
|
|
288
|
+
"spendBlock",
|
|
289
|
+
"spendHeight",
|
|
290
|
+
"spendTxId",
|
|
291
|
+
"result",
|
|
292
|
+
"paymentTxId"
|
|
293
|
+
)
|
|
294
|
+
SELECT "id",
|
|
295
|
+
"eventId",
|
|
296
|
+
"txId",
|
|
297
|
+
"extractor",
|
|
298
|
+
"boxId",
|
|
299
|
+
"boxSerialized",
|
|
300
|
+
"block",
|
|
301
|
+
"height",
|
|
302
|
+
"fromChain",
|
|
303
|
+
"toChain",
|
|
304
|
+
"fromAddress",
|
|
305
|
+
"toAddress",
|
|
306
|
+
"amount",
|
|
307
|
+
"bridgeFee",
|
|
308
|
+
"networkFee",
|
|
309
|
+
"sourceChainTokenId",
|
|
310
|
+
"sourceChainHeight",
|
|
311
|
+
"targetChainTokenId",
|
|
312
|
+
"sourceTxId",
|
|
313
|
+
"sourceBlockId",
|
|
314
|
+
"spendBlock",
|
|
315
|
+
"spendHeight",
|
|
316
|
+
"spendTxId",
|
|
317
|
+
"result",
|
|
318
|
+
"paymentTxId"
|
|
319
|
+
FROM "temporary_event_trigger_entity"
|
|
320
|
+
`);
|
|
321
|
+
await queryRunner.query(`
|
|
322
|
+
DROP TABLE "temporary_event_trigger_entity"
|
|
323
|
+
`);
|
|
324
|
+
await queryRunner.query(`
|
|
325
|
+
ALTER TABLE "event_trigger_entity"
|
|
326
|
+
RENAME TO "temporary_event_trigger_entity"
|
|
327
|
+
`);
|
|
328
|
+
await queryRunner.query(`
|
|
329
|
+
CREATE TABLE "event_trigger_entity" (
|
|
330
|
+
"id" integer PRIMARY KEY AUTOINCREMENT NOT NULL,
|
|
331
|
+
"eventId" varchar NOT NULL DEFAULT ('Not-set'),
|
|
332
|
+
"txId" varchar NOT NULL,
|
|
333
|
+
"extractor" varchar NOT NULL,
|
|
334
|
+
"boxId" varchar NOT NULL,
|
|
335
|
+
"boxSerialized" varchar NOT NULL,
|
|
336
|
+
"block" varchar NOT NULL,
|
|
337
|
+
"height" integer NOT NULL,
|
|
338
|
+
"fromChain" varchar NOT NULL,
|
|
339
|
+
"toChain" varchar NOT NULL,
|
|
340
|
+
"fromAddress" varchar NOT NULL,
|
|
341
|
+
"toAddress" varchar NOT NULL,
|
|
342
|
+
"amount" varchar NOT NULL,
|
|
343
|
+
"bridgeFee" varchar NOT NULL,
|
|
344
|
+
"networkFee" varchar NOT NULL,
|
|
345
|
+
"sourceChainTokenId" varchar NOT NULL,
|
|
346
|
+
"sourceChainHeight" integer NOT NULL,
|
|
347
|
+
"targetChainTokenId" varchar NOT NULL,
|
|
348
|
+
"sourceTxId" varchar NOT NULL,
|
|
349
|
+
"sourceBlockId" varchar NOT NULL,
|
|
350
|
+
"WIDs" varchar NOT NULL,
|
|
351
|
+
"spendBlock" text,
|
|
352
|
+
"spendHeight" integer,
|
|
353
|
+
"spendTxId" text,
|
|
354
|
+
"result" text,
|
|
355
|
+
"paymentTxId" text,
|
|
356
|
+
CONSTRAINT "UQ_c905f221a1b6271ca4405dbbe5f" UNIQUE ("boxId", "extractor")
|
|
357
|
+
)
|
|
358
|
+
`);
|
|
359
|
+
await queryRunner.query(`
|
|
360
|
+
INSERT INTO "event_trigger_entity"(
|
|
361
|
+
"id",
|
|
362
|
+
"eventId",
|
|
363
|
+
"txId",
|
|
364
|
+
"extractor",
|
|
365
|
+
"boxId",
|
|
366
|
+
"boxSerialized",
|
|
367
|
+
"block",
|
|
368
|
+
"height",
|
|
369
|
+
"fromChain",
|
|
370
|
+
"toChain",
|
|
371
|
+
"fromAddress",
|
|
372
|
+
"toAddress",
|
|
373
|
+
"amount",
|
|
374
|
+
"bridgeFee",
|
|
375
|
+
"networkFee",
|
|
376
|
+
"sourceChainTokenId",
|
|
377
|
+
"sourceChainHeight",
|
|
378
|
+
"targetChainTokenId",
|
|
379
|
+
"sourceTxId",
|
|
380
|
+
"sourceBlockId",
|
|
381
|
+
"spendBlock",
|
|
382
|
+
"spendHeight",
|
|
383
|
+
"spendTxId",
|
|
384
|
+
"result",
|
|
385
|
+
"paymentTxId"
|
|
386
|
+
)
|
|
387
|
+
SELECT "id",
|
|
388
|
+
"eventId",
|
|
389
|
+
"txId",
|
|
390
|
+
"extractor",
|
|
391
|
+
"boxId",
|
|
392
|
+
"boxSerialized",
|
|
393
|
+
"block",
|
|
394
|
+
"height",
|
|
395
|
+
"fromChain",
|
|
396
|
+
"toChain",
|
|
397
|
+
"fromAddress",
|
|
398
|
+
"toAddress",
|
|
399
|
+
"amount",
|
|
400
|
+
"bridgeFee",
|
|
401
|
+
"networkFee",
|
|
402
|
+
"sourceChainTokenId",
|
|
403
|
+
"sourceChainHeight",
|
|
404
|
+
"targetChainTokenId",
|
|
405
|
+
"sourceTxId",
|
|
406
|
+
"sourceBlockId",
|
|
407
|
+
"spendBlock",
|
|
408
|
+
"spendHeight",
|
|
409
|
+
"spendTxId",
|
|
410
|
+
"result",
|
|
411
|
+
"paymentTxId"
|
|
412
|
+
FROM "temporary_event_trigger_entity"
|
|
413
|
+
`);
|
|
414
|
+
await queryRunner.query(`
|
|
415
|
+
DROP TABLE "temporary_event_trigger_entity"
|
|
416
|
+
`);
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWlncmF0aW9uMTcwNjYxMDc3MzE3Ni1taWdyYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9saWIvbWlncmF0aW9ucy9zcWxpdGUvbWlncmF0aW9uMTcwNjYxMDc3MzE3Ni1taWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV6QyxNQUFNLE9BQU8sc0JBQXNCO0lBQ2pDLElBQUksR0FBRyx3QkFBd0IsQ0FBQztJQUV6QixLQUFLLENBQUMsRUFBRSxDQUFDLFdBQXdCO1FBQ3RDLDZDQUE2QztRQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRWxDLENBQUMsQ0FBQztRQUVQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQStCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBMERuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7O1NBR25CLENBQUMsQ0FBQztRQUVQLHlFQUF5RTtRQUN6RSxLQUFLLE1BQU0sS0FBSyxJQUFJLE1BQU0sRUFBRTtZQUMxQixNQUFNLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxHQUFHLFVBQVUsQ0FBRSxLQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDaEUsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOztrQ0FFSSxRQUFRLHFCQUFxQixTQUFTOzZCQUMzQyxLQUFLLENBQUMsRUFBRTtXQUMxQixDQUFDLENBQUM7U0FDUjtRQUVELE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQW1CbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO0lBQ1QsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBd0I7UUFDeEMsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7OztTQWlCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQTZCbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0FzRG5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7U0FFbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7U0FHbkIsQ0FBQyxDQUFDO1FBQ1AsTUFBTSxXQUFXLENBQUMsS0FBSyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7U0E4Qm5CLENBQUMsQ0FBQztRQUNQLE1BQU0sV0FBVyxDQUFDLEtBQUssQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O1NBc0RuQixDQUFDLENBQUM7UUFDUCxNQUFNLFdBQVcsQ0FBQyxLQUFLLENBQUM7O1NBRW5CLENBQUMsQ0FBQztJQUNULENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1pZ3JhdGlvbkludGVyZmFjZSwgUXVlcnlSdW5uZXIgfSBmcm9tICd0eXBlb3JtJztcbmltcG9ydCBFdmVudFRyaWdnZXJFbnRpdHkgZnJvbSAnLi4vLi4vZW50aXRpZXMvRXZlbnRUcmlnZ2VyRW50aXR5JztcbmltcG9ydCB7IGdldFdpZEluZm8gfSBmcm9tICcuLi8uLi91dGlscyc7XG5cbmV4cG9ydCBjbGFzcyBtaWdyYXRpb24xNzA2NjEwNzczMTc2IGltcGxlbWVudHMgTWlncmF0aW9uSW50ZXJmYWNlIHtcbiAgbmFtZSA9ICdtaWdyYXRpb24xNzA2NjEwNzczMTc2JztcblxuICBwdWJsaWMgYXN5bmMgdXAocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZ2V0IGFsbCBldmVudHMgYmVmb3JlIHJlbW92aW5nIFdJRHMgY29sdW1uXG4gICAgY29uc3QgZXZlbnRzID0gYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIiwgXCJXSURzXCIgZnJvbSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG5cbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMIERFRkFVTFQgKCdOb3Qtc2V0JyksXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJsb2NrXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYW1vdW50XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIiBpbnRlZ2VyLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInJlc3VsdFwiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJwYXltZW50VHhJZFwiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJXSURzQ291bnRcIiBpbnRlZ2VyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiV0lEc0hhc2hcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIENPTlNUUkFJTlQgXCJVUV9jOTA1ZjIyMWExYjYyNzFjYTQ0MDVkYmJlNWZcIiBVTklRVUUgKFwiYm94SWRcIiwgXCJleHRyYWN0b3JcIilcbiAgICAgICAgICAgIClcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgSU5TRVJUIElOVE8gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEc0NvdW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEc0hhc2hcIlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIFNFTEVDVCBcImlkXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgXCJleHRyYWN0b3JcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICBcInRvQ2hhaW5cIixcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICBcImFtb3VudFwiLFxuICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZVR4SWRcIixcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICBcInNwZW5kSGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIixcbiAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgIFwicGF5bWVudFR4SWRcIixcbiAgICAgICAgICAgICAgICAwLFxuICAgICAgICAgICAgICAgICcnXG4gICAgICAgICAgICBGUk9NIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcInRlbXBvcmFyeV9ldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcblxuICAgIC8vIGNhbGN1bGF0ZSBgV0lEc0NvdW50YCBhbmQgYFdJRHNIYXNoYCBjb2x1bW5zIGluIGBldmVudF90cmlnZ2VyX2VudGl0eWBcbiAgICBmb3IgKGNvbnN0IGV2ZW50IG9mIGV2ZW50cykge1xuICAgICAgY29uc3QgeyBXSURzSGFzaCwgV0lEc0NvdW50IH0gPSBnZXRXaWRJbmZvKChldmVudCBhcyBhbnkpLldJRHMpO1xuICAgICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgICBVUERBVEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgIFNFVCBcIldJRHNIYXNoXCIgPSAnJHtXSURzSGFzaH0nLCBcIldJRHNDb3VudFwiID0gJyR7V0lEc0NvdW50fSdcbiAgICAgICAgICAgICAgV0hFUkUgXCJpZFwiID0gJHtldmVudC5pZH1cbiAgICAgICAgICBgKTtcbiAgICB9XG5cbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwic3BlbmRJbmRleFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiKFxuICAgICAgICAgICAgICAgICAgICBcImlkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgU0VMRUNUIFwiaWRcIixcbiAgICAgICAgICAgICAgICBcInR4SWRcIixcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiLFxuICAgICAgICAgICAgICAgIFwiV0lEXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRIZWlnaHRcIixcbiAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgIEZST00gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIEFMVEVSIFRBQkxFIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGRvd24ocXVlcnlSdW5uZXI6IFF1ZXJ5UnVubmVyKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJjb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2NvbW1pdG1lbnRfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiY29tbWl0bWVudF9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiY29tbWl0bWVudFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJXSURcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYm94SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJyd3RDb3VudFwiIHZhcmNoYXIsXG4gICAgICAgICAgICAgICAgQ09OU1RSQUlOVCBcIlVRX2NjMjk0ZmMzMDRhNjZmOGYxOTQ4NDBmMWVjZVwiIFVOSVFVRSAoXCJib3hJZFwiLCBcImV4dHJhY3RvclwiKVxuICAgICAgICAgICAgKVxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBJTlNFUlQgSU5UTyBcImNvbW1pdG1lbnRfZW50aXR5XCIoXG4gICAgICAgICAgICAgICAgICAgIFwiaWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImNvbW1pdG1lbnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJ3dENvdW50XCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJldmVudElkXCIsXG4gICAgICAgICAgICAgICAgXCJjb21taXRtZW50XCIsXG4gICAgICAgICAgICAgICAgXCJXSURcIixcbiAgICAgICAgICAgICAgICBcImJveElkXCIsXG4gICAgICAgICAgICAgICAgXCJibG9ja1wiLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwicnd0Q291bnRcIlxuICAgICAgICAgICAgRlJPTSBcInRlbXBvcmFyeV9jb21taXRtZW50X2VudGl0eVwiXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIERST1AgVEFCTEUgXCJ0ZW1wb3JhcnlfY29tbWl0bWVudF9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBBTFRFUiBUQUJMRSBcImV2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgICAgICAgICBSRU5BTUUgVE8gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBDUkVBVEUgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiIChcbiAgICAgICAgICAgICAgICBcImlkXCIgaW50ZWdlciBQUklNQVJZIEtFWSBBVVRPSU5DUkVNRU5UIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiIHZhcmNoYXIgTk9UIE5VTEwgREVGQVVMVCAoJ05vdC1zZXQnKSxcbiAgICAgICAgICAgICAgICBcInR4SWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJveFNlcmlhbGl6ZWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiaGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImZyb21BZGRyZXNzXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRvQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYnJpZGdlRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIm5ldHdvcmtGZWVcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluSGVpZ2h0XCIgaW50ZWdlciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInRhcmdldENoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUJsb2NrSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQUxURVIgVEFCTEUgXCJldmVudF90cmlnZ2VyX2VudGl0eVwiXG4gICAgICAgICAgICAgICAgUkVOQU1FIFRPIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gICAgYXdhaXQgcXVlcnlSdW5uZXIucXVlcnkoYFxuICAgICAgICAgICAgQ1JFQVRFIFRBQkxFIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIiAoXG4gICAgICAgICAgICAgICAgXCJpZFwiIGludGVnZXIgUFJJTUFSWSBLRVkgQVVUT0lOQ1JFTUVOVCBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV2ZW50SWRcIiB2YXJjaGFyIE5PVCBOVUxMIERFRkFVTFQgKCdOb3Qtc2V0JyksXG4gICAgICAgICAgICAgICAgXCJ0eElkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImV4dHJhY3RvclwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJsb2NrXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwidG9DaGFpblwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwiYW1vdW50XCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcInNvdXJjZUNoYWluVG9rZW5JZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiIGludGVnZXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic291cmNlVHhJZFwiIHZhcmNoYXIgTk9UIE5VTEwsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIgdmFyY2hhciBOT1QgTlVMTCxcbiAgICAgICAgICAgICAgICBcIldJRHNcIiB2YXJjaGFyIE5PVCBOVUxMLFxuICAgICAgICAgICAgICAgIFwic3BlbmRCbG9ja1wiIHRleHQsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiIGludGVnZXIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZFR4SWRcIiB0ZXh0LFxuICAgICAgICAgICAgICAgIFwicmVzdWx0XCIgdGV4dCxcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCIgdGV4dCxcbiAgICAgICAgICAgICAgICBDT05TVFJBSU5UIFwiVVFfYzkwNWYyMjFhMWI2MjcxY2E0NDA1ZGJiZTVmXCIgVU5JUVVFIChcImJveElkXCIsIFwiZXh0cmFjdG9yXCIpXG4gICAgICAgICAgICApXG4gICAgICAgIGApO1xuICAgIGF3YWl0IHF1ZXJ5UnVubmVyLnF1ZXJ5KGBcbiAgICAgICAgICAgIElOU0VSVCBJTlRPIFwiZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIihcbiAgICAgICAgICAgICAgICAgICAgXCJpZFwiLFxuICAgICAgICAgICAgICAgICAgICBcImV2ZW50SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0eElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYm94SWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJib3hTZXJpYWxpemVkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJoZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJmcm9tQ2hhaW5cIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgICAgIFwiZnJvbUFkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0b0FkZHJlc3NcIixcbiAgICAgICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJicmlkZ2VGZWVcIixcbiAgICAgICAgICAgICAgICAgICAgXCJuZXR3b3JrRmVlXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5IZWlnaHRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJ0YXJnZXRDaGFpblRva2VuSWRcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgICAgIFwic291cmNlQmxvY2tJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kQmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgICAgICBcInNwZW5kVHhJZFwiLFxuICAgICAgICAgICAgICAgICAgICBcInJlc3VsdFwiLFxuICAgICAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICBTRUxFQ1QgXCJpZFwiLFxuICAgICAgICAgICAgICAgIFwiZXZlbnRJZFwiLFxuICAgICAgICAgICAgICAgIFwidHhJZFwiLFxuICAgICAgICAgICAgICAgIFwiZXh0cmFjdG9yXCIsXG4gICAgICAgICAgICAgICAgXCJib3hJZFwiLFxuICAgICAgICAgICAgICAgIFwiYm94U2VyaWFsaXplZFwiLFxuICAgICAgICAgICAgICAgIFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICBcImhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwiZnJvbUNoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJ0b0NoYWluXCIsXG4gICAgICAgICAgICAgICAgXCJmcm9tQWRkcmVzc1wiLFxuICAgICAgICAgICAgICAgIFwidG9BZGRyZXNzXCIsXG4gICAgICAgICAgICAgICAgXCJhbW91bnRcIixcbiAgICAgICAgICAgICAgICBcImJyaWRnZUZlZVwiLFxuICAgICAgICAgICAgICAgIFwibmV0d29ya0ZlZVwiLFxuICAgICAgICAgICAgICAgIFwic291cmNlQ2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VDaGFpbkhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwidGFyZ2V0Q2hhaW5Ub2tlbklkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJzb3VyY2VCbG9ja0lkXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEJsb2NrXCIsXG4gICAgICAgICAgICAgICAgXCJzcGVuZEhlaWdodFwiLFxuICAgICAgICAgICAgICAgIFwic3BlbmRUeElkXCIsXG4gICAgICAgICAgICAgICAgXCJyZXN1bHRcIixcbiAgICAgICAgICAgICAgICBcInBheW1lbnRUeElkXCJcbiAgICAgICAgICAgIEZST00gXCJ0ZW1wb3JhcnlfZXZlbnRfdHJpZ2dlcl9lbnRpdHlcIlxuICAgICAgICBgKTtcbiAgICBhd2FpdCBxdWVyeVJ1bm5lci5xdWVyeShgXG4gICAgICAgICAgICBEUk9QIFRBQkxFIFwidGVtcG9yYXJ5X2V2ZW50X3RyaWdnZXJfZW50aXR5XCJcbiAgICAgICAgYCk7XG4gIH1cbn1cbiJdfQ==
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rosen-bridge/watcher-data-extractor",
|
|
3
|
-
"version": "4.2.
|
|
3
|
+
"version": "4.2.6-65ea22",
|
|
4
4
|
"description": "Extractor for rosen specific boxes on ergo blockchain",
|
|
5
5
|
"author": "Rosen Team",
|
|
6
6
|
"license": "GPL-3.0",
|
|
@@ -19,8 +19,8 @@
|
|
|
19
19
|
"dist"
|
|
20
20
|
],
|
|
21
21
|
"dependencies": {
|
|
22
|
-
"@rosen-bridge/logger
|
|
23
|
-
"@rosen-bridge/scanner": "^3.2.
|
|
22
|
+
"@rosen-bridge/abstract-logger": "^1.0.0",
|
|
23
|
+
"@rosen-bridge/scanner": "^3.2.5-65ea22",
|
|
24
24
|
"@rosen-clients/ergo-explorer": "^1.0.3",
|
|
25
25
|
"@types/lodash-es": "^4.17.6",
|
|
26
26
|
"blakejs": "^1.2.1",
|