client-core-services 1.0.2 → 1.0.4

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.
@@ -336,208 +336,6 @@ export class StorageService {
336
336
  //console.log(response);
337
337
  }));
338
338
  }
339
- // setPackaging(cartData:any) {
340
- // switch (cartData.type) {
341
- // case 'TAB': this.packDetails.packing = 'Packing : 1 strip (' + cartData.packing + ' Tablets Each)';
342
- // this.packDetails.unit = 'Strip(s)';
343
- // break;
344
- // case 'SYP': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Syrup Each)';
345
- // this.packDetails.unit = 'Bottle(s)';
346
- // break;
347
- // case 'LOT': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Lotion Each)';
348
- // this.packDetails.unit = 'Bottle(s)';
349
- // break;
350
- // case 'INJ': this.packDetails.packing = 'Packing : 1 Vial (' + cartData.packing + ' Injection Each)';
351
- // this.packDetails.unit = 'Vial(s)';
352
- // break;
353
- // case 'POWD': this.packDetails.packing = 'Packing : 1 Box (' + cartData.packing + ' Powder Each)';
354
- // this.packDetails.unit = 'Box(es)';
355
- // break;
356
- // case 'CAP': this.packDetails.packing = 'Packing : 1 strip (' + cartData.packing + ' Capsule Each)';
357
- // this.packDetails.unit = 'Strip(s)';
358
- // break;
359
- // case 'SACH': this.packDetails.packing = 'Packing : 1 Packet (' + cartData.packing + ' Sachet Each)';
360
- // this.packDetails.unit = 'Packet(s)';
361
- // break;
362
- // case 'INH': this.packDetails.packing = 'Packing : 1 Box (' + cartData.packing + ' Inhaler Each)';
363
- // this.packDetails.unit = 'Box(es)';
364
- // break;
365
- // case 'ROTO': this.packDetails.packing = 'Packing : 1 Box (' + cartData.packing + ' Redicaps Each)';
366
- // this.packDetails.unit = 'Box(es)';
367
- // break;
368
- // case 'E/DR': this.packDetails.packing = 'Packing : 1 Packet (' + cartData.packing + ' Eye Drop Each)';
369
- // this.packDetails.unit = 'Packet(s)';
370
- // break;
371
- // case 'EDRP': this.packDetails.packing = 'Packing : 1 Packet (' + cartData.packing + ' Eye Drop Each)';
372
- // this.packDetails.unit = 'Packet(s)';
373
- // break;
374
- // case 'OINT': this.packDetails.packing = 'Packing : 1 Tube (' + cartData.packing + ' Ointment Each)';
375
- // this.packDetails.unit = 'Tube(s)';
376
- // break;
377
- // case 'OIL': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
378
- // this.packDetails.unit = 'Bottle(s)';
379
- // break;
380
- // case 'SOAP': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
381
- // this.packDetails.unit = 'Pack(s)';
382
- // break;
383
- // case 'FWSH': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
384
- // this.packDetails.unit = 'Pack(s)';
385
- // break;
386
- // case 'DRP': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
387
- // this.packDetails.unit = 'Pack(s)';
388
- // break;
389
- // case 'JELY': this.packDetails.packing = 'Packing : 1 Packet (' + cartData.packing + ' Jelly Each)';
390
- // this.packDetails.unit = 'Packet(s)';
391
- // break;
392
- // case 'CREM': this.packDetails.packing = 'Packing : 1 Tube (' + cartData.packing + ' Cream Each)';
393
- // this.packDetails.unit = 'Packet(s)';
394
- // break;
395
- // case 'CRTG': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
396
- // this.packDetails.unit = 'Packet(s)';
397
- // break;
398
- // case 'CONER': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
399
- // this.packDetails.unit = 'Packet(s)';
400
- // break;
401
- // case 'CHRN': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
402
- // this.packDetails.unit = 'Packet(s)';
403
- // break;
404
- // case 'FLOS': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
405
- // this.packDetails.unit = 'Packet(s)';
406
- // break;
407
- // case 'DIAP': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
408
- // this.packDetails.unit = 'Packet(s)';
409
- // break;
410
- // case 'DRES': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
411
- // this.packDetails.unit = 'Packet(s)';
412
- // break;
413
- // case 'DRNK': this.packDetails.packing = 'Packing :1 Bottle (' + cartData.packing + ' Bottle each)';
414
- // this.packDetails.unit = 'Bottle(s)';
415
- // break;
416
- // case 'DSYP': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
417
- // this.packDetails.unit = 'Bottle(s)';
418
- // break;
419
- // case 'DPO': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
420
- // this.packDetails.unit = 'Packet(s)';
421
- // break;
422
- // case 'ENM': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
423
- // this.packDetails.unit = 'Packet(s)';
424
- // break;
425
- // case 'EXP': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
426
- // this.packDetails.unit = 'Packet(s)';
427
- // break;
428
- // case 'EOINT': this.packDetails.packing = 'Packing : 1 Tube (' + cartData.packing + ' Ointment Each)';
429
- // this.packDetails.unit = 'Tube(s)';
430
- // break;
431
- // case 'GEL': this.packDetails.packing = 'Packing : 1 Tube (' + cartData.packing + ' Gel Each)';
432
- // this.packDetails.unit = 'Gel(s)';
433
- // break;
434
- // case 'GRGL': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
435
- // this.packDetails.unit = 'Bottle(s)';
436
- // break;
437
- // case 'GMTR': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
438
- // this.packDetails.unit = 'Packet(s)';
439
- // break;
440
- // case 'HAISER': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
441
- // this.packDetails.unit = 'Bottle(s)';
442
- // break;
443
- // case 'HWSH': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
444
- // this.packDetails.unit = 'Bottle(s)';
445
- // break;
446
- // case 'INFN': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
447
- // this.packDetails.unit = 'Packet(s)';
448
- // break;
449
- // case 'VWASH': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
450
- // this.packDetails.unit = 'Packet(s)';
451
- // break;
452
- // case 'JAR': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
453
- // this.packDetails.unit = 'Packet(s)';
454
- // break;
455
- // case 'JUIC': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
456
- // this.packDetails.unit = 'Packet(s)';
457
- // break;
458
- // case 'KIT': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Kit Each)';
459
- // this.packDetails.unit = 'Packet(s)';
460
- // break;
461
- // case 'LBALM': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
462
- // this.packDetails.unit = 'Packet(s)';
463
- // break;
464
- // case 'LQD': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
465
- // this.packDetails.unit = 'Bottle(s)';
466
- // break;
467
- // case 'MPNT': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
468
- // this.packDetails.unit = 'Packet(s)';
469
- // break;
470
- // case 'MWSH': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
471
- // this.packDetails.unit = 'Bottle(s)';
472
- // break;
473
- // case 'NDRP': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
474
- // this.packDetails.unit = 'Packet(s)';
475
- // break;
476
- // case 'NIPLE': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
477
- // this.packDetails.unit = 'Packet(s)';
478
- // break;
479
- // case 'ODRPS': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
480
- // this.packDetails.unit = 'Bottle(s)';
481
- // break;
482
- // case 'PKT': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
483
- // this.packDetails.unit = 'Packet(s)';
484
- // break;
485
- // case 'PFS': this.packDetails.packing = 'Packing : 1 Syringe (' + cartData.packing + ' Syringe Each)';
486
- // this.packDetails.unit = 'Syringe(s)';
487
- // break;
488
- // case 'RPSLS': this.packDetails.packing = 'Packing : 1 Respule (' + cartData.packing + ' Respule Each)';
489
- // this.packDetails.unit = 'Respule(s)';
490
- // break;
491
- // case 'ROLL': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
492
- // this.packDetails.unit = 'Packet(s)';
493
- // break;
494
- // case 'SACH': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
495
- // this.packDetails.unit = 'Packet(s)';
496
- // break;
497
- // case 'SCRUB': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
498
- // this.packDetails.unit = 'Packet(s)';
499
- // break;
500
- // case 'SHAMP': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
501
- // this.packDetails.unit = 'Bottle(s)';
502
- // break;
503
- // case 'SLTN': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
504
- // this.packDetails.unit = 'Bottle(s)';
505
- // break;
506
- // case 'SPRY': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
507
- // this.packDetails.unit = 'Bottle(s)';
508
- // break;
509
- // case 'TPAST': this.packDetails.packing = 'Packing : 1 Paste (' + cartData.packing + ' Paste Each)';
510
- // this.packDetails.unit = 'Paste(s)';
511
- // break;
512
- // case 'VACC': this.packDetails.packing = 'Packing : 1 Vaccine (' + cartData.packing + ' Pack Each)';
513
- // this.packDetails.unit = 'Paste(s)';
514
- // break;
515
- // case 'VTAB': this.packDetails.packing = 'Packing : 1 Tablet (' + cartData.packing + ' Tablet Each)';
516
- // this.packDetails.unit = 'Tablet(s)';
517
- // break;
518
- // case 'WIPS': this.packDetails.packing = 'Packing : 1 Wipes (' + cartData.packing + ' Wipes Each)';
519
- // this.packDetails.unit = 'Wipe(s)';
520
- // break;
521
- // case 'TULL': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
522
- // this.packDetails.unit = 'Packet(s)';
523
- // break;
524
- // case 'TBAG': this.packDetails.packing = 'Packing : 1 Pack (' + cartData.packing + ' Pack Each)';
525
- // this.packDetails.unit = 'Packet(s)';
526
- // break;
527
- // case 'SYRNEE': this.packDetails.packing = 'Packing : 1 Pack Syringe (' + cartData.packing + ' Pack Syringe Each)';
528
- // this.packDetails.unit = 'Packet(s)';
529
- // break;
530
- // case 'NSPRY': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
531
- // this.packDetails.unit = 'Bottle(s)';
532
- // break;
533
- // case 'RMSRP': this.packDetails.packing = 'Packing : 1 Bottle (' + cartData.packing + ' Bottle Each)';
534
- // this.packDetails.unit = 'Bottle(s)';
535
- // break;
536
- // default: this.packDetails.packing = 'Packing : 1 strip (' + cartData.packing + ' Tablets Each)';
537
- // this.packDetails.unit = 'Strip(s)';
538
- // }
539
- // return this.packDetails;
540
- // }
541
339
  setHostNameDinamically(host) {
542
340
  let domainName = this.document.location['hostname'];
543
341
  localStorage.setItem(this.HOST_NAME, host);
@@ -746,4 +544,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
746
544
  type: Inject,
747
545
  args: [DOCUMENT]
748
546
  }] }, { type: i2.EncryptionService }, { type: i3.CoreFunctionService }, { type: i4.CookiesService }]; } });
749
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBa0QsR0FBRyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFPM0MsTUFBTSxPQUFPLGNBQWM7SUFxQ3pCLFlBQ1UsSUFBZ0IsRUFDRCxHQUFPLEVBQ0osUUFBa0IsRUFDcEMsaUJBQW1DLEVBQ25DLG1CQUF1QyxFQUN2QyxjQUE2QjtRQUw3QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ0QsUUFBRyxHQUFILEdBQUcsQ0FBSTtRQUNKLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBMUN2QyxhQUFRLEdBQVcsVUFBVSxDQUFDO1FBQzlCLGlCQUFZLEdBQVcsY0FBYyxDQUFDO1FBQ3RDLGtCQUFhLEdBQVcsZUFBZSxDQUFDO1FBQ3hDLHVCQUFrQixHQUFVLG9CQUFvQixDQUFDO1FBQ2pELGNBQVMsR0FBTSxXQUFXLENBQUM7UUFDM0Is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LDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMEdBQTBHO0lBQzFHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMkdBQTJHO0lBQzNHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysc0dBQXNHO0lBQ3RHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysc0dBQXNHO0lBQ3RHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMEdBQTBHO0lBQzFHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsNEdBQTRHO0lBQzVHLDJDQUEyQztJQUMzQyxlQUFlO0lBQ2YscUdBQXFHO0lBQ3JHLDBDQUEwQztJQUMxQyxlQUFlO0lBQ2YsMkdBQTJHO0lBQzNHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsNkdBQTZHO0lBQzdHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMkdBQTJHO0lBQzNHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysd0dBQXdHO0lBQ3hHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysc0dBQXNHO0lBQ3RHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YscUdBQXFHO0lBQ3JHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysd0dBQXdHO0lBQ3hHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMEdBQTBHO0lBQzFHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsMkdBQTJHO0lBQzNHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsdUdBQXVHO0lBQ3ZHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2Ysd0dBQXdHO0lBQ3hHLDZDQUE2QztJQUM3QyxlQUFlO0lBQ2YsNEdBQTRHO0lBQzVH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QztZQUNSLE9BQU8sTUFBTSxDQUFDO1NBQ2Y7YUFBSTtZQUNILE9BQU8sRUFBRSxDQUFDO1NBQ1g7SUFDSCxDQUFDOzs0R0F4dUJVLGNBQWMsNENBdUNmLEtBQUssYUFDTCxRQUFRO2dIQXhDUCxjQUFjLGNBRmIsTUFBTTs0RkFFUCxjQUFjO2tCQUgxQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQjs7MEJBd0NJLE1BQU07MkJBQUMsS0FBSzs7MEJBQ1osTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29yZUZ1bmN0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vY29tbW9uLXV0aWxzL2NvcmUtZnVuY3Rpb24vY29yZS1mdW5jdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgRW5jcnlwdGlvblNlcnZpY2UgfSBmcm9tICcuLy4uL2VuY3J5cHRpb24vZW5jcnlwdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgdGFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN0b3JhZ2VUb2tlblN0YXR1cyB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9zdG9yYWdlLXRva2VuLXN0YXR1cy5lbnVtJztcclxuaW1wb3J0IHsgUExBVEZPUk1fTkFNRSB9IGZyb20gJy4uLy4uL3NoYXJlZC9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IENvbW1vbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9lbnVtcy9jb21tb24uZW51bSc7XHJcbmltcG9ydCB7IENvb2tpZXNTZXJ2aWNlIH0gZnJvbSAnLi9jb29raWVzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG5cclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICBwcm92aWRlZEluOiAncm9vdCdcclxufSlcclxuZXhwb3J0IGNsYXNzIFN0b3JhZ2VTZXJ2aWNlIHtcclxuICBJRF9UT0tFTjogc3RyaW5nID0gJ0lEX1RPS0VOJztcclxuICBBQ0NFU1NfVE9LRU46IHN0cmluZyA9ICdBQ0NFU1NfVE9LRU4nO1xyXG4gIFJFRlJFU0hfVE9LRU46IHN0cmluZyA9ICdSRUZSRVNIX1RPS0VOJztcclxuICBSRVNFVF9QQVNTX1NFU1NJT046c3RyaW5nID0gJ1JFU0VUX1BBU1NfU0VTU0lPTic7XHJcbiAgRVhQSVJZX0lOOmFueT0gJ0VYUElSWV9JTic7XHJcbiAgVVNFUl9LRVk6IHN0cmluZyA9ICdVU0VSJztcclxuICBST0xFOnN0cmluZyA9IFwiUk9MRVwiO1xyXG4gIEFDVElWRV9NRU5VOiBzdHJpbmcgPSAnTUVOVSc7XHJcbiAgTUVOVV9UWVBFOiBzdHJpbmcgPSAnTUVOVV9UWVBFJztcclxuICBJRF9UT0tFTl9FWFBJUllfVElNRTogc3RyaW5nID0gJ0lEX1RPS0VOX0VYUElSWV9USU1FJztcclxuICBSRUZSRVNIX1RPS0VOX0VYUElSWV9USU1FOnN0cmluZz0nUkVGUkVTSF9UT0tFTl9FWFBJUllfVElNRSc7XHJcbiAgdXNlckluZm86IGFueTtcclxuICBsb2c6IGFueTtcclxuICBhZ2U6YW55PTM1NDAwMDA7IC8vNTkgbWludXRzXHJcbiAgcmVmcmVzaFRva2VuQWdlOmFueT0yNTA1NjAwMDAwIC8vcmVmcmVzaCB0b2tlbiBhZ2UgMjkgZGF5c1xyXG4gIHBhY2tEZXRhaWxzOiBhbnkgPSB7fTtcclxuXHJcbiAgSE9TVF9OQU1FIDogc3RyaW5nID0gJ0hPU1RfTkFNRSc7XHJcbiAgUFJPSkVDVF9GT0xERVJfTkFNRTogc3RyaW5nID0gJ1BST0pFQ1RfRk9MREVSX05BTUUnO1xyXG4gIFRFTVBfTkFNRTpzdHJpbmcgPSBcIlRFTVBfTkFNRVwiO1xyXG4gIFRFTVBfVEhFTUU6c3RyaW5nID0gXCJURU1QX1RIRU1FXCI7XHJcbiAgUEFHRV9USVRMRTpzdHJpbmcgPSBcIlBBR0VfVElUTEVcIjtcclxuICBWRVJJRllfVFlQRTpzdHJpbmcgPSBcIlZFUklGWV9UWVBFXCI7XHJcbiAgTU9EVUxFOnN0cmluZyA9IFwiTU9EVUxFXCI7XHJcbiAgVEVBTV9OQU1FOnN0cmluZyA9IFwiVEVBTV9OQU1FXCI7XHJcbiAgVVNFUl9QUkVGRVJFTkNFOmFueTtcclxuICBSRURJUkVDVF9VUkw6c3RyaW5nID0gXCJSRURJUkVDVF9VUkxcIjtcclxuICBDSElMRF9XSU5ET1dfVVJMOnN0cmluZyA9IFwiQ0hJTERfV0lORE9XX1VSTFwiO1xyXG4gIE1PRElGWV9NT0RVTEVTOmFueSA9ICdNT0RJRllfTU9EVUxFUyc7XHJcbiAgYXBwTmFtZTphbnk7XHJcbiAgQ0xJRU5UX05BTUU6YW55ID0gJ0NMSUVOVF9OQU1FJztcclxuICBBTExfVEVNUExBVEU6YW55ID0gJ0FMTF9URU1QTEFURSc7XHJcbiAgVEVNUExBVEVfSU5ERVg6YW55ID0gXCJURU1QTEFURV9JTkRFWFwiO1xyXG4gIFRBQl9DT1VOVFM6YW55PVwiVEFCX0NPVU5UU1wiO1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXHJcbiAgICBASW5qZWN0KCdlbnYnKSBwcml2YXRlIGVudjphbnksXHJcbiAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBEb2N1bWVudCxcclxuICAgIHByaXZhdGUgZW5jcnlwdGlvblNlcnZpY2U6RW5jcnlwdGlvblNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGNvcmVGdW5jdGlvblNlcnZpY2U6Q29yZUZ1bmN0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29va2llc1NlcnZpY2U6Q29va2llc1NlcnZpY2VcclxuICAgICkgeyB9XHJcblxyXG4gIGxvYWQoKTogT2JzZXJ2YWJsZTxhbnk+e1xyXG4gICAgcmV0dXJuIHRoaXMuZW52O1xyXG4gIH1cclxuICBzZXRBcHBOYW1lKGFwcG5hbWU6c3RyaW5nKXtcclxuICAgIHRoaXMuYXBwTmFtZSA9IGFwcG5hbWU7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkFwcE5hbWVcIiwgSlNPTi5zdHJpbmdpZnkoYXBwbmFtZSkpO1xyXG59XHJcbiAgc2V0TW9kdWxlKG1vZHVsZTpzdHJpbmcpe1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbShcIk1PRFVMRVwiLG1vZHVsZSk7XHJcbiAgfVxyXG4gIGdldE1vZHVsZSgpe1xyXG4gICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ01PRFVMRScpO1xyXG4gIH1cclxuICBzZXRDaGlsZFdpbmRvd1VybCh1cmw6c3RyaW5nKXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiQ0hJTERfV0lORE9XX1VSTFwiLHVybCk7XHJcbiAgfVxyXG4gIGdldENoaWxkV2luZG93VXJsKCl7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NISUxEX1dJTkRPV19VUkwnKTtcclxuICB9XHJcbiAgc2V0UmVkaXJlY3RVcmwodXJsOnN0cmluZyl7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiUkVESVJFQ1RfVVJMXCIsdXJsKTtcclxuICB9XHJcbiAgZ2V0UmVkaXJlY3RVcmwoKXtcclxuICAgIHJldHVybiBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdSRURJUkVDVF9VUkwnKTtcclxuICB9XHJcbiAgc2V0VXNlclByZWZlcmVuY2UodXNlcl9wcmVmZXJlbmNlOmFueSl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIlVTRVJfUFJFRkVSRU5DRVwiLEpTT04uc3RyaW5naWZ5KHVzZXJfcHJlZmVyZW5jZSkpO1xyXG4gIH1cclxuICBnZXRVc2VyUHJlZmVyZW5jZSgpe1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnVVNFUl9QUkVGRVJFTkNFJykpO1xyXG4gIH1cclxuXHJcbiAgc2V0VGhlbWVTZXR0aW5nKHNldHRpbmdPYmo6YW55KXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiVEhFTUVfU0VUVElOR1wiLEpTT04uc3RyaW5naWZ5KHNldHRpbmdPYmopKTtcclxuICB9XHJcbiAgZ2V0VGhlbWVTZXR0aW5nKCl7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdUSEVNRV9TRVRUSU5HJykpO1xyXG4gIH1cclxuXHJcbiAgc2V0QXBwbGljYXRpb25TZXR0aW5nKGFwcGxpY2F0aW9uU2V0dGluZzphbnkpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJBUFBMSUNBVElPTl9TRVRUSU5HXCIsSlNPTi5zdHJpbmdpZnkoYXBwbGljYXRpb25TZXR0aW5nKSk7XHJcbiAgfVxyXG4gIGdldEFwcGxpY2F0aW9uU2V0dGluZygpe1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQVBQTElDQVRJT05fU0VUVElORycpKTtcclxuICB9XHJcblxyXG4gIHNldEFwcElkKGFwcElkOnN0cmluZyl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnYXBwSWQnLCBhcHBJZCk7XHJcbiAgfVxyXG5cclxuICBnZXRBcHBJZCgpe1xyXG4gICAgY29uc3QgdXNlciA9IHRoaXMuR2V0VXNlckluZm8oKTtcclxuICAgIGlmKHVzZXIgJiYgdXNlci5hcHBJZCAmJiB1c2VyLmFwcElkICE9IG51bGwpe1xyXG4gICAgICByZXR1cm4gdXNlci5hcHBJZDtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ2FwcElkJylcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldEV4cGlyZXNJbihleHBpcnk6IGFueSl7XHJcbiAgICBsZXQgZXhwaXJ5VGltZSA9IChleHBpcnkgLSAzMDApKjEwMDBcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuRVhQSVJZX0lOLCBKU09OLnN0cmluZ2lmeShleHBpcnlUaW1lKSk7XHJcbiAgICB0aGlzLnNldElkVG9rZW5FeHBpcnkoKTtcclxuICB9XHJcbiAgZ2V0RXhwaXJlc0luKCl7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5FWFBJUllfSU4pO1xyXG4gIH1cclxuICBTZXRJZFRva2VuKHRva2VuOiBhbnkpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSURfVE9LRU4sIEpTT04uc3RyaW5naWZ5KHRva2VuKSk7XHJcbiAgfVxyXG4gIEdldElkVG9rZW4oKSB7XHJcbiAgICBsZXQgb2JqID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuSURfVE9LRU4pKTtcclxuICAgIGlmKG9iaiAmJiBvYmogIT0gbnVsbCApe1xyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG4gIH1cclxuICBJc0pzb25TdHJpbmcoc3RyOmFueSkge1xyXG4gICAgICB0cnkge1xyXG4gICAgICAgICAgSlNPTi5wYXJzZShzdHIpO1xyXG4gICAgICB9IGNhdGNoIChlKSB7XHJcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIFNldEFjY2Vzc1Rva2VuKHRva2VuOiBhbnkpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuQUNDRVNTX1RPS0VOLCBKU09OLnN0cmluZ2lmeSh0b2tlbikpO1xyXG4gIH1cclxuICBHZXRBY2Nlc3NUb2tlbigpIHtcclxuICAgIGxldCBvYmogPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5BQ0NFU1NfVE9LRU4pKTtcclxuICAgIGlmKG9iaiAmJiBvYmogIT0gbnVsbCl7XHJcbiAgICAgICAgcmV0dXJuIG9iajtcclxuICAgIH1cclxuICB9XHJcbiAgU2V0UmVmcmVzaFRva2VuKHRva2VuOiBzdHJpbmcpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTiwgdG9rZW4pO1xyXG4gICAgdGhpcy5zZXRSZWZyZXNoVG9rZW5FeHBpcnkoKTtcclxuICB9XHJcbiAgR2V0UmVmcmVzaFRva2VuKCkge1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTik7XHJcbiAgfVxyXG4gIEdldElkVG9rZW5TdGF0dXMoKXtcclxuICAgIGxldCBleHBpcmVkID0gMDtcclxuICAgIGxldCBleHBpcmVUaW1lID0gTnVtYmVyKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuSURfVE9LRU5fRVhQSVJZX1RJTUUpKTtcclxuICAgIGxldCBjdXJyZW50VGltZSA9IERhdGUubm93KCk7XHJcbiAgICBsZXQgZXhwaXJlc0luMjRIb3VycyA9IDA7XHJcblxyXG5cdGlmKGV4cGlyZVRpbWUgPiBjdXJyZW50VGltZSlcclxuICAgICAgZXhwaXJlc0luMjRIb3VycyA9ICAoKChleHBpcmVUaW1lLWN1cnJlbnRUaW1lKS8xMDAwKS8zNjAwKSA7XHJcblxyXG5cdGlmKGN1cnJlbnRUaW1lID4gZXhwaXJlVGltZSl7XHJcbiAgICAgIGlmKGV4cGlyZVRpbWUgPiAwKXtcclxuICAgICAgICByZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX0VYUElSRUQ7ICAvLyBhcHBDb25zdGFudC5UT0tFTl9TVEFUVVMuSURfVE9LRU5fRVhQSVJFRDsgLy8gbm90aWZ5LCBkdWUgdG8gZXhwaXJlZFxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiAgU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX05PVF9DUkVBVEVEOyAvL2FwcENvbnN0YW50LlRPS0VOX1NUQVRVUy5JRF9UT0tFTl9OT1RfQ1JFQVRFRDsgIC8vIGZpcnN0IHRpbWUgbG9hZGluZyBzbyBubyBub3RpZnlcclxuICAgIH0gZWxzZSBpZihleHBpcmVzSW4yNEhvdXJzID4gMjQpe1xyXG5cdFx0cmV0dXJuIFN0b3JhZ2VUb2tlblN0YXR1cy5JRF9UT0tFTl9FWFBJUkVEIC8vYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLklEX1RPS0VOX0VYUElSRUQ7IC8vIG5vdGlmeSwgZHVlIHRvIGV4cGlyZWRcclxuXHR9XHJcblxyXG4gICAgcmV0dXJuIFN0b3JhZ2VUb2tlblN0YXR1cy5JRF9UT0tFTl9BQ1RJVkU7IC8vYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLklEX1RPS0VOX0FDVElWRTsgLy8gbm90IGV4cGlyZWRcclxuICB9XHJcblxyXG5cclxuXHJcbiAgR2V0UmVmcmVzaFRva2VuU3RhdHVzKCl7XHJcbiAgICBsZXQgZXhwaXJlZCA9IDA7XHJcbiAgICBsZXQgZXhwaXJlVGltZSA9IE51bWJlcihsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlJFRlJFU0hfVE9LRU5fRVhQSVJZX1RJTUUpKTtcclxuICAgIGxldCBjdXJyZW50VGltZSA9IERhdGUubm93KCk7XHJcbiAgICBpZihjdXJyZW50VGltZSA+IGV4cGlyZVRpbWUpe1xyXG4gICAgICBpZihleHBpcmVUaW1lID4gMCl7XHJcbiAgICAgICAgcmV0dXJuIFN0b3JhZ2VUb2tlblN0YXR1cy5SRUZSRVNIX1RPS0VOX0VYUElSRUQ7IC8vIGFwcENvbnN0YW50LlRPS0VOX1NUQVRVUy5SRUZSRVNIX1RPS0VOX0VYUElSRUQ7IC8vIG5vdGlmeSwgZHVlIHRvIGV4cGlyZWRcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLlJFRlJFU0hfVE9LRU5fTk9UX0NSRUFURUQ7IC8vIGFwcENvbnN0YW50LlRPS0VOX1NUQVRVUy5SRUZSRVNIX1RPS0VOX05PVF9DUkVBVEVEOyAgLy8gZmlyc3QgdGltZSBsb2FkaW5nIHNvIG5vIG5vdGlmeVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIFN0b3JhZ2VUb2tlblN0YXR1cy5SRUZSRVNIX1RPS0VOX0FDVElWRTsgLy8gYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLlJFRlJFU0hfVE9LRU5fQUNUSVZFOyAvLyBub3QgZXhwaXJlZFxyXG4gIH1cclxuXHJcbiAgU2V0VXNlckluZm8odXNlcjogYW55KSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlVTRVJfS0VZLCBKU09OLnN0cmluZ2lmeSh1c2VyKSk7XHJcbiAgfVxyXG4gIEdldFVzZXJJbmZvKCkge1xyXG4gICAgY29uc3Qgb2JqOmFueSA9IEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVTRVJfS0VZKSk7XHJcbiAgICBpZihvYmogJiYgb2JqLnVzZXIpe1xyXG4gICAgICByZXR1cm4gb2JqLnVzZXJcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgfVxyXG4gIEdldFJvbGVMaXN0KCl7XHJcbiAgICBjb25zdCBvYmo6YW55ID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9LRVkpKTtcclxuICAgIGlmKG9iaiAmJiBvYmoucm9sbExpc3Qpe1xyXG4gICAgICByZXR1cm4gb2JqLnJvbGxMaXN0XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIFtdO1xyXG4gICAgfVxyXG4gIH1cclxuICBzZXRBY3RpdmVSb2xlKHJvbGU6YW55KXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUk9MRSwgSlNPTi5zdHJpbmdpZnkocm9sZSkpO1xyXG4gIH1cclxuICBnZXRBY3RpdmVSb2xlKCl7XHJcbiAgICBjb25zdCBvYmo6YW55ID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUk9MRSkpO1xyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcbiAgR2V0VXNlclJlZmVyZW5jZSgpIHtcclxuICAgIGxldCB1c2VyID0gdGhpcy5HZXRVc2VySW5mbygpO1xyXG4gICAgbGV0IHVzZXJSZWY6YW55ID0ge307XHJcbiAgICB1c2VyUmVmWydfaWQnXSA9IHVzZXJbJ19pZCddO1xyXG4gICAgdXNlclJlZlsnbmFtZSddID0gdXNlclsnbmFtZSddO1xyXG4gICAgcmV0dXJuIHVzZXJSZWY7XHJcbiAgfVxyXG4gIEdldFBlcm1pc3Npb24oKSB7XHJcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0tFWSkpO1xyXG4gICAgaWYob2JqICYmIG9iai5wZXJtaXNzaW9uKXtcclxuICAgICAgcmV0dXJuIG9iai5wZXJtaXNzaW9uXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBHZXRNb2R1bGVzKCl7XHJcbiAgICBjb25zdCBvYmogPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0tFWSkpO1xyXG4gICAgaWYob2JqICYmIG9iai5tb2R1bGVzKXtcclxuICAgICAgcmV0dXJuIG9iai5tb2R1bGVzXHJcbiAgICB9XHJcbiAgICBlbHNle1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIC8vIFNldE1vZGlmeU1vZHVsZXMobW9kdWxlczphbnkpe1xyXG4gIC8vICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5NT0RJRllfTU9EVUxFUyxKU09OLnN0cmluZ2lmeShtb2R1bGVzKSk7XHJcbiAgLy8gfVxyXG4gIC8vIEdldE1vZGlmeU1vZHVsZXMoKXtcclxuICAvLyAgIHJldHVybiBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5NT0RJRllfTU9EVUxFUykpO1xyXG4gIC8vIH1cclxuICBHZXRNZW51VHlwZSgpe1xyXG4gICAgY29uc3QgbWVudV9UeXBlID0gdGhpcy5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ21lbnVfdHlwZScpO1xyXG4gICAgaWYobWVudV9UeXBlKXtcclxuICAgICAgICByZXR1cm4gbWVudV9UeXBlO1xyXG4gICAgICB9XHJcbiAgICAgIGVsc2V7XHJcbiAgICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldFVzZXJMb2coKSB7XHJcbiAgICBjb25zdCB1c2VyID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9LRVkpKTtcclxuICAgIGlmKHVzZXIgJiYgdXNlciAhPSBudWxsICYmIHVzZXIgIT0gdW5kZWZpbmVkICYmIHVzZXIudXNlcil7XHJcbiAgICAgIHRoaXMudXNlckluZm8gPSB1c2VyLnVzZXI7XHJcbiAgICAgIHRoaXMubG9nID0geyB1c2VySWQ6IHRoaXMudXNlckluZm8uZW1haWwsIGFwcElkOiB0aGlzLmdldEFwcElkKCksIHJlZkNvZGU6IHRoaXMudXNlckluZm8ucmVmQ29kZSB9O1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2c7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIFNldEFjdGl2ZU1lbnUobWVudTogYW55KSB7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKHRoaXMuQUNUSVZFX01FTlUsIEpTT04uc3RyaW5naWZ5KG1lbnUpKTtcclxuICB9XHJcbiAgR2V0QWN0aXZlTWVudSgpIHtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKDxhbnk+c2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkFDVElWRV9NRU5VKSk7XHJcbiAgfVxyXG4gIGdldFJlZkNvZGUoKSB7XHJcbiAgICBjb25zdCB1c2VyaW5mbyA9IHRoaXMuR2V0VXNlckluZm8oKTtcclxuICAgIGlmKHVzZXJpbmZvICYmIHVzZXJpbmZvLnJlZkNvZGUpe1xyXG4gICAgICByZXR1cm4gdXNlcmluZm8ucmVmQ29kZTtcclxuICAgIH1cclxuICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuICBnZXRVc2VyQXBwSWQoKXtcclxuICAgIHJldHVybiB0aGlzLnVzZXJJbmZvLmFwcElkO1xyXG4gIH1cclxuICByZW1vdmVEYXRhRm9ybVN0b3JhZ2UoYWxsPzpzdHJpbmcpIHtcclxuICAgIGxldCBkb05vdENsZWFyQ2FjaGU6YW55ID0gW107XHJcbiAgICBpZihhbGwgIT0gXCJhbGxcIil7XHJcbiAgICAgIGlmKHRoaXMuY2hlY2tQbGF0Rm9ybSgpID09ICdtb2JpbGUnKXtcclxuICAgICAgICBsZXQgY2xpZW50Q29kZSA9IHRoaXMuZ2V0Q2xpZW50TmFtZSgpO1xyXG4gICAgICAgIGlmKGNsaWVudENvZGUgJiYgY2xpZW50Q29kZSAhPSAnJyl7XHJcbiAgICAgICAgICBsZXQgb2JqZWN0OmFueSA9IHt9O1xyXG4gICAgICAgICAgb2JqZWN0WydrZXknXSA9IHRoaXMuQ0xJRU5UX05BTUU7XHJcbiAgICAgICAgICBvYmplY3RbXCJ2YWx1ZVwiXSA9IGNsaWVudENvZGU7XHJcbiAgICAgICAgICBvYmplY3RbJ3R5cGUnXSA9ICdsb2NhbHN0b3JhZ2UnXHJcbiAgICAgICAgICBkb05vdENsZWFyQ2FjaGUucHVzaChvYmplY3QpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgbG9jYWxTdG9yYWdlLmNsZWFyKCk7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5jbGVhcigpO1xyXG4gICAgaWYoZG9Ob3RDbGVhckNhY2hlICYmIGRvTm90Q2xlYXJDYWNoZS5sZW5ndGggPiAwKXtcclxuICAgICAgZG9Ob3RDbGVhckNhY2hlLmZvckVhY2goKG9iajphbnkpID0+IHtcclxuICAgICAgICBpZihvYmogJiYgb2JqLnR5cGUgPT0gJ2xvY2Fsc3RvcmFnZScpe1xyXG4gICAgICAgICAgbGV0IGtleSA9IG9ialsna2V5J107XHJcbiAgICAgICAgICBsZXQgdmFsdWUgPSBvYmpbJ3ZhbHVlJ107XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShrZXksdmFsdWUpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldElkVG9rZW5FeHBpcnkoKXtcclxuICAgIGNvbnN0IHN0YXJ0VGltZSA9IERhdGUubm93KCk7XHJcbiAgICBjb25zdCBleHBpcnkgPSBOdW1iZXIodGhpcy5nZXRFeHBpcmVzSW4oKSk7XHJcbiAgICAvL2NvbnN0IGV4cGlyeSA9IHRoaXMuZ2V0RXhwaXJlc0luKCk7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLklEX1RPS0VOX0VYUElSWV9USU1FLCBcIlwiKyhzdGFydFRpbWUgKyBleHBpcnkpKTtcclxuICB9XHJcblxyXG4gIHNldFJlZnJlc2hUb2tlbkV4cGlyeSgpe1xyXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTl9FWFBJUllfVElNRSwgc3RhcnRUaW1lICsgdGhpcy5yZWZyZXNoVG9rZW5BZ2UpO1xyXG4gIH1cclxuICBzZWFyY2godXJsOiBzdHJpbmcsIHRlcm06IHN0cmluZykge1xyXG4gICAgaWYgKHRlcm0gPT09ICcnKSB7XHJcbiAgICAgIHJldHVybiBvZihbXSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gdGhpcy5odHRwXHJcbiAgICAgIC5nZXQodXJsICsgdGVybSkucGlwZShcclxuICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICByZXR1cm4gcmVzcG9uc2U7XHJcbiAgICAgICAgICAvL2NvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgICAgICB9KVxyXG4gICAgICApO1xyXG4gIH1cclxuICBzZXRSZXNldE5ld1Bhc3N3b3JkU2Vzc2lvbihzZXNzaW9uOmFueSl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnUkVTRVRfUEFTU19TRVNTSU9OJyxzZXNzaW9uKTtcclxuICB9XHJcbiAgZ2V0UmVzZXROZXdQYXNzd29yZFNlc3Npb24oKXtcclxuICAgIGNvbnN0IHNlc3Npb24gPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnUkVTRVRfUEFTU19TRVNTSU9OJyk7XHJcbiAgICByZXR1cm4gc2Vzc2lvbjtcclxuICB9XHJcbiAgc2VhcmNoUG9zdE1ldGhvZCh1cmw6IHN0cmluZywgcGF5bG9hZDogYW55KSB7XHJcbiAgICBpZiAocGF5bG9hZCA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLnBvc3QodXJsLCBwYXlsb2FkKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIC8vIHNldFBhY2thZ2luZyhjYXJ0RGF0YTphbnkpIHtcclxuICAvLyAgIHN3aXRjaCAoY2FydERhdGEudHlwZSkge1xyXG4gIC8vICAgICBjYXNlICdUQUInOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgc3RyaXAgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBUYWJsZXRzIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnU3RyaXAocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdTWVAnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgU3lydXAgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdCb3R0bGUocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdMT1QnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgTG90aW9uIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSU5KJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFZpYWwgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBJbmplY3Rpb24gRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdWaWFsKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnUE9XRCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBCb3ggKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQb3dkZXIgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdCb3goZXMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnQ0FQJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIHN0cmlwICgnICsgY2FydERhdGEucGFja2luZyArICcgQ2Fwc3VsZSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1N0cmlwKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnU0FDSCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrZXQgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBTYWNoZXQgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdJTkgnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm94ICgnICsgY2FydERhdGEucGFja2luZyArICcgSW5oYWxlciBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ0JveChlcyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdST1RPJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIEJveCAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFJlZGljYXBzIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm94KGVzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0UvRFInOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFja2V0ICgnICsgY2FydERhdGEucGFja2luZyArICcgRXllIERyb3AgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdFRFJQJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2tldCAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIEV5ZSBEcm9wIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnT0lOVCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBUdWJlICgnICsgY2FydERhdGEucGFja2luZyArICcgT2ludG1lbnQgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdUdWJlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnT0lMJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIEJvdHRsZSAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIEJvdHRsZSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ0JvdHRsZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1NPQVAnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnRldTSCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2socyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdEUlAnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSkVMWSc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrZXQgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBKZWxseSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0NSRU0nOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgVHViZSAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIENyZWFtIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnQ1JURyc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBCb3R0bGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBCb3R0bGUgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdDT05FUic6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0NIUk4nOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdGTE9TJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnRElBUCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0RSRVMnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdEUk5LJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOjEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIGVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnRFNZUCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBCb3R0bGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBCb3R0bGUgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdCb3R0bGUocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdEUE8nOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdFTk0nOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdFWFAnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnRU9JTlQnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgVHViZSAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIE9pbnRtZW50IEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnVHViZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0dFTCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBUdWJlICgnICsgY2FydERhdGEucGFja2luZyArICcgR2VsIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnR2VsKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnR1JHTCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBCb3R0bGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBCb3R0bGUgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdCb3R0bGUocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdHTVRSJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSEFJU0VSJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIEJvdHRsZSAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIEJvdHRsZSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ0JvdHRsZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0hXU0gnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSU5GTic6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1ZXQVNIJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSkFSJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnSlVJQyc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ0tJVCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgS2l0IEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnTEJBTE0nOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdMUUQnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnTVBOVCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ01XU0gnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnTkRSUCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ05JUExFJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnT0RSUFMnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnUEtUJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnUEZTJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFN5cmluZ2UgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBTeXJpbmdlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnU3lyaW5nZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1JQU0xTJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFJlc3B1bGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBSZXNwdWxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUmVzcHVsZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1JPTEwnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdTQUNIJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFBhY2sgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYWNrIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnU0NSVUInOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdTSEFNUCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBCb3R0bGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBCb3R0bGUgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdCb3R0bGUocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdTTFROJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIEJvdHRsZSAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIEJvdHRsZSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ0JvdHRsZShzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1NQUlknOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnVFBBU1QnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFzdGUgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBQYXN0ZSBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1Bhc3RlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnVkFDQyc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBWYWNjaW5lICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1Bhc3RlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnVlRBQic6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBUYWJsZXQgKCcgKyBjYXJ0RGF0YS5wYWNraW5nICsgJyBUYWJsZXQgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdUYWJsZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdXSVBTJzogdGhpcy5wYWNrRGV0YWlscy5wYWNraW5nID0gJ1BhY2tpbmcgOiAxIFdpcGVzICgnICsgY2FydERhdGEucGFja2luZyArICcgV2lwZXMgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdXaXBlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnVFVMTCc6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBQYWNrICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBFYWNoKSc7XHJcbiAgLy8gICAgICAgdGhpcy5wYWNrRGV0YWlscy51bml0ID0gJ1BhY2tldChzKSc7XHJcbiAgLy8gICAgICAgYnJlYWs7XHJcbiAgLy8gICAgIGNhc2UgJ1RCQUcnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFBhY2sgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdQYWNrZXQocyknO1xyXG4gIC8vICAgICAgIGJyZWFrO1xyXG4gIC8vICAgICBjYXNlICdTWVJORUUnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgUGFjayBTeXJpbmdlICgnICsgY2FydERhdGEucGFja2luZyArICcgUGFjayBTeXJpbmdlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnUGFja2V0KHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnTlNQUlknOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuICAvLyAgICAgY2FzZSAnUk1TUlAnOiB0aGlzLnBhY2tEZXRhaWxzLnBhY2tpbmcgPSAnUGFja2luZyA6IDEgQm90dGxlICgnICsgY2FydERhdGEucGFja2luZyArICcgQm90dGxlIEVhY2gpJztcclxuICAvLyAgICAgICB0aGlzLnBhY2tEZXRhaWxzLnVuaXQgPSAnQm90dGxlKHMpJztcclxuICAvLyAgICAgICBicmVhaztcclxuXHJcbiAgLy8gICAgIGRlZmF1bHQ6IHRoaXMucGFja0RldGFpbHMucGFja2luZyA9ICdQYWNraW5nIDogMSBzdHJpcCAoJyArIGNhcnREYXRhLnBhY2tpbmcgKyAnIFRhYmxldHMgRWFjaCknO1xyXG4gIC8vICAgICAgIHRoaXMucGFja0RldGFpbHMudW5pdCA9ICdTdHJpcChzKSc7XHJcbiAgLy8gICB9XHJcbiAgLy8gICByZXR1cm4gdGhpcy5wYWNrRGV0YWlscztcclxuICAvLyB9XHJcblxyXG4gIHNldEhvc3ROYW1lRGluYW1pY2FsbHkoaG9zdDpzdHJpbmcpe1xyXG4gICAgbGV0IGRvbWFpbk5hbWUgPSB0aGlzLmRvY3VtZW50LmxvY2F0aW9uWydob3N0bmFtZSddO1xyXG5cclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSE9TVF9OQU1FLCBob3N0KTtcclxuICAgIGlmKGRvbWFpbk5hbWUhPVwibG9jYWxob3N0XCIgJiYgdGhpcy5jb29raWVzU2VydmljZS5pc0Nvb2tpZUV4cGlyZWQoZG9tYWluTmFtZSkpe1xyXG4gICAgICB0aGlzLmNvb2tpZXNTZXJ2aWNlLnNldENvb2tpZUJ5TmFtZShkb21haW5OYW1lLGhvc3QsMzApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SG9zdE5hbWVEaW5hbWljYWxseSgpe1xyXG4gICAgbGV0IGhvc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkhPU1RfTkFNRSk7XHJcbiAgICBpZih0aGlzLmNvcmVGdW5jdGlvblNlcnZpY2UuaXNOb3RCbGFuayhob3N0KSl7XHJcbiAgICAgIHJldHVybiBob3N0O1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGxldCBkb21haW5OYW1lID0gdGhpcy5kb2N1bWVudC5sb2NhdGlvblsnaG9zdG5hbWUnXTtcclxuXHJcbiAgICAgIGhvc3QgPSB0aGlzLmNvb2tpZXNTZXJ2aWNlLmdldENvb2tpZUJ5TmFtZShkb21haW5OYW1lKTtcclxuICAgICAgaWYgKGhvc3QgJiYgaG9zdCAhPVwiXCIpIHRoaXMuc2V0SG9zdE5hbWVEaW5hbWljYWxseShob3N0KTtcclxuICAgICAgcmV0dXJuIGhvc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExvZ29QYXRoKCl7XHJcbiAgICBsZXQgcHJvamVjdEZvbGRlck5hbWUgPSB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgnZm9sZGVyJylcclxuICAgIHJldHVybiAnYXNzZXRzL2ltZy9sb2dvLycgKyBwcm9qZWN0Rm9sZGVyTmFtZSArICcvJztcclxuICB9XHJcbiAgZ2V0UGFnZVRpdGxlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ3RpdGxlJyk7XHJcbiAgfVxyXG4gIGdldFZlcmlmeVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgndmFyaWZ5X21vZGUnKTtcclxuICB9XHJcbiAgZ2V0UGFnZVRobWVtKCl7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ3RoZW1lJyk7XHJcbiAgfVxyXG4gIGdldFRlbXBsYXRlTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KCd0ZW1wX25hbWUnKTtcclxuICB9XHJcbiAgZ2V0VGVhbU5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgndGVhbW5hbWUnKTtcclxuICB9XHJcblxyXG4gIGdldEJ1Y2tldE5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgnYnVja2V0Jyk7XHJcbiAgfVxyXG4gIGdldEF1dGhlbnRpY2F0aW9uU2V0dGluZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KCdhdXRoZW50aWNhdGlvblNldHRpbmdzJyk7XHJcbiAgfVxyXG4gIGdldEFkbWluRW1haWwoKXtcclxuICAgIGxldCBhdXRoZW50aWNhdGlvblNldHRpbmdzOmFueSA9IHRoaXMuZ2V0QXV0aGVudGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBsZXQgYWRtaW5FbWFpbCA9IFwiXCI7XHJcbiAgICBpZihhdXRoZW50aWNhdGlvblNldHRpbmdzICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZ3NbJ2FkbWluRW1haWxJZCddICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZ3NbJ2FkbWluRW1haWxJZCddICE9IFwiXCIpe1xyXG4gICAgICBhZG1pbkVtYWlsID0gYXV0aGVudGljYXRpb25TZXR0aW5nc1snYWRtaW5FbWFpbElkJ107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRtaW5FbWFpbDtcclxuICB9XHJcbiAgZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KGtleTphbnkpe1xyXG4gICAgbGV0IHZhbHVlOmFueSA9IFwiXCI7XHJcbiAgICBsZXQgYXBwbGljYXRpb25TZXR0aW5nID0gdGhpcy5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIGlmKGFwcGxpY2F0aW9uU2V0dGluZyAmJiBhcHBsaWNhdGlvblNldHRpbmdba2V5XSAhPSB1bmRlZmluZWQgJiYgYXBwbGljYXRpb25TZXR0aW5nW2tleV0gIT0gbnVsbCAmJiBhcHBsaWNhdGlvblNldHRpbmdba2V5XSAhPSBcIlwiKXtcclxuICAgICAgdmFsdWUgPSBhcHBsaWNhdGlvblNldHRpbmdba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZm9yIEFwcFxyXG4gIHNldENsaWVudE5BbWUobmFtZTpzdHJpbmcpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DTElFTlRfTkFNRSxuYW1lKTtcclxuICB9XHJcbiAgZ2V0Q2xpZW50TmFtZSgpe1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQ0xJRU5UX05BTUUpO1xyXG4gIH1cclxuICByZW1vdmVLZXlGcm9tU3RvcmFnZShrZXk6c3RyaW5nKXtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgfVxyXG4gIGdldFBsYXRmb3JtKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbnYucGxhdGVmb3JtTmFtZTtcclxuICB9XHJcbiAgZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKXtcclxuICAgIHJldHVybiB0aGlzLmVudjtcclxuICB9XHJcbiAgY2hlY2tQbGF0Rm9ybSgpe1xyXG4gICAgbGV0IHBsYXRGb3JtID0gJ3dlYic7XHJcbiAgICBsZXQgcGxhdEZvcm1OYW1lID0gdGhpcy5nZXRQbGF0Zm9ybSgpO1xyXG4gICAgaWYocGxhdEZvcm1OYW1lICYmIHBsYXRGb3JtTmFtZSAhPSBcIlwiICYmIFBMQVRGT1JNX05BTUUuaW5jbHVkZXMocGxhdEZvcm1OYW1lKSl7XHJcbiAgICAgIHBsYXRGb3JtID0gJ21vYmlsZSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhdEZvcm07XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0TnVtT2ZJdGVtKCkge1xyXG4gICAgbGV0IGl0ZW1OdW1PZkdyaWQgPSBDb21tb24uSVRFTV9OVU1fT0ZfR1JJRDtcclxuICAgIGxldCBkZWZhdWx0U2V0dGluZ3MgPSB0aGlzLmdldEFwcGxpY2F0aW9uRGVmYXVsdFNldHRpbmdzKCk7XHJcbiAgICBpZihkZWZhdWx0U2V0dGluZ3MgJiYgZGVmYXVsdFNldHRpbmdzLmRlZmF1bHRJdGVtTm9PZkdyaWQgJiYgZGVmYXVsdFNldHRpbmdzLmRlZmF1bHRJdGVtTm9PZkdyaWQgIT0gXCJcIiAmJiBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdEl0ZW1Ob09mR3JpZCA+IDApIHtcclxuICAgICAgaXRlbU51bU9mR3JpZCA9IGRlZmF1bHRTZXR0aW5ncy5kZWZhdWx0SXRlbU5vT2ZHcmlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1OdW1PZkdyaWRcclxuICB9XHJcblxyXG4gIGdldEFwcGxpY2F0aW9uRGVmYXVsdFNldHRpbmdzKCl7XHJcbiAgICBsZXQgYXBwbGljYXRpb25TZXR0aW5nID0gdGhpcy5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIHJldHVybiBhcHBsaWNhdGlvblNldHRpbmcuZGVmYXVsdEFwcGxpY2F0aW9uU2V0dGluZ3M7XHJcbiAgfVxyXG4gIGdldEFwcGxpY2F0aW9uQXV0aGVudGljYXRpb25TZXR0aW5ncygpe1xyXG4gICAgbGV0IGFwcGxpY2F0aW9uU2V0dGluZyA9IHRoaXMuZ2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZihhcHBsaWNhdGlvblNldHRpbmcgJiYgYXBwbGljYXRpb25TZXR0aW5nLmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Mpe1xyXG4gICAgICByZXR1cm4gYXBwbGljYXRpb25TZXR0aW5nLmF1dGhlbnRpY2F0aW9uU2V0dGluZ3M7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZXRUd29GYWN0b3JBdXRoZW50aWNhdGlvblR5cGUoKXtcclxuICAgIGxldCBhdXRoZW50aWNhdGlvblNldHRpbmcgPSB0aGlzLmdldEFwcGxpY2F0aW9uQXV0aGVudGljYXRpb25TZXR0aW5ncygpO1xyXG4gICAgaWYoYXV0aGVudGljYXRpb25TZXR0aW5nICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZy50d29GYWN0b3JBdXRoZW50aWNhdGlvbiAmJiBhdXRoZW50aWNhdGlvblNldHRpbmcudHdvRmFjdG9yQXV0aGVudGljYXRpb25UeXBlKXtcclxuICAgICAgcmV0dXJuIGF1dGhlbnRpY2F0aW9uU2V0dGluZy50d29GYWN0b3JBdXRoZW50aWNhdGlvblR5cGU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RGVmYXVsdFNlYXJjaE9wZXJhdG9yKCkge1xyXG4gICAgbGV0IGRlZmF1bHRTZWFyY2hPcGVyYXRvciA9IENvbW1vbi5ERUZBVUxUX09QRVJBVE9SO1xyXG4gICAgbGV0IGRlZmF1bHRTZXR0aW5ncyA9IHRoaXMuZ2V0QXBwbGljYXRpb25EZWZhdWx0U2V0dGluZ3MoKTtcclxuICAgIGlmKGRlZmF1bHRTZXR0aW5ncyAmJiBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdFNlYXJjaE9wZXJhdG9ySW5HcmlkICYmIGRlZmF1bHRTZXR0aW5ncy5kZWZhdWx0U2VhcmNoT3BlcmF0b3JJbkdyaWQgIT0gXCJcIikge1xyXG4gICAgICBkZWZhdWx0U2VhcmNoT3BlcmF0b3IgPSBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdFNlYXJjaE9wZXJhdG9ySW5HcmlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZmF1bHRTZWFyY2hPcGVyYXRvcjtcclxuICB9XHJcbiAgc3RvcmVBbGxUZW1wbGF0ZShkYXRhOmFueSl7XHJcbiAgICAvLyBsZXQgZW5jcnlwdERhdGEgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KGRhdGEpO1xyXG4gICAgLy8gY29uc29sZS5sb2coZW5jcnlwdERhdGEpO1xyXG4gICAgbGV0IG1vZGlmaWVkTGlzdCA9IHRoaXMubW9kaWZ5VGVtcGxhdGVMaXN0KGRhdGEpO1xyXG4gICAgaWYobW9kaWZpZWRMaXN0KXtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5BTExfVEVNUExBVEUsSlNPTi5zdHJpbmdpZnkobW9kaWZpZWRMaXN0LnRlbXBsYXRMaXN0KSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuVEVNUExBVEVfSU5ERVgsSlNPTi5zdHJpbmdpZnkobW9kaWZpZWRMaXN0LnRlbXBsYXRlSW5kZXhMaXN0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG1vZGlmeVRlbXBsYXRlTGlzdChvYmo6YW55KXtcclxuICAgIGxldCBsaXN0OmFueSA9IHt9O1xyXG4gICAgbGV0IGluZGV4TGlzdDphbnkgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gdGhpcy5nZXRBbGxUZW1wbGF0ZUxpc3QoKTtcclxuICAgIGxldCBhbGxJbmRleExpc3QgPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5URU1QTEFURV9JTkRFWCkpO1xyXG4gICAgaWYoYWxsSW5kZXhMaXN0ICYmIGFsbEluZGV4TGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgaW5kZXhMaXN0ID0gYWxsSW5kZXhMaXN0O1xyXG4gICAgfVxyXG4gICAgaWYob2xkTGlzdCAmJiBPYmplY3Qua2V5cyhvbGRMaXN0KS5sZW5ndGggPiAwKXtcclxuICAgICAgbGV0IHNpemU6bnVtYmVyID0gdGhpcy5jb3JlRnVuY3Rpb25TZXJ2aWNlLmdldEpzb25TaXplSW5LaWxvYnl0ZShvbGRMaXN0KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coc2l6ZSk7XHJcbiAgICAgIGlmKHNpemUgPj0gMTAyNCl7XHJcbiAgICAgICAgbGV0IGtleU5hbWUgPSBpbmRleExpc3RbMF07XHJcbiAgICAgICAgZGVsZXRlIChvbGRMaXN0W2tleU5hbWVdKTtcclxuICAgICAgICBpbmRleExpc3Quc3BsaWNlKDAsMSk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdCA9IG9sZExpc3Q7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGlzdCA9IHt9O1xyXG4gICAgfVxyXG4gICAgaWYob2JqICYmIG9iail7XHJcbiAgICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGxpc3Rba2V5XSA9IG9ialtrZXldO1xyXG4gICAgICAgIGluZGV4TGlzdC5wdXNoKGtleSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBsZXQgcmVzcG9uY2UgPSB7XHJcbiAgICAgIHRlbXBsYXRMaXN0IDogbGlzdCxcclxuICAgICAgdGVtcGxhdGVJbmRleExpc3Q6aW5kZXhMaXN0XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzcG9uY2U7XHJcbiAgfVxyXG4gIGdldEFsbFRlbXBsYXRlTGlzdCgpe1xyXG4gICAgLy9sZXQgYWxsVGVtcGxhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkFMTF9URU1QTEFURSk7XHJcbiAgICBjb25zdCBvYmo6YW55ID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQUxMX1RFTVBMQVRFKSk7XHJcbiAgICAvL3JldHVybiB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHRSZXF1ZXN0KGFsbFRlbXBsYXRlKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGdldFRlbXBsYXRlKHRlbXBOYW1lOnN0cmluZyxtb2R1bGVOYW1lOnN0cmluZyl7XHJcbiAgICBsZXQgdGVtcGxhdGVMaXN0OmFueSA9IHRoaXMuZ2V0QWxsVGVtcGxhdGVMaXN0KCk7XHJcbiAgICBsZXQgbmFtZSA9IG1vZHVsZU5hbWUrXCJfXCIrdGVtcE5hbWU7XHJcbiAgICBpZih0ZW1wbGF0ZUxpc3QgJiYgdGVtcGxhdGVMaXN0W25hbWVdKXtcclxuICAgICAgcmV0dXJuIHRlbXBsYXRlTGlzdFtuYW1lXTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgU2V0VGFiQ291bnRzKHRhYkNvdW50czogYW55KSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlRBQl9DT1VOVFMsIEpTT04uc3RyaW5naWZ5KHRhYkNvdW50cykpO1xyXG4gIH1cclxuICBHZXRUYWJDb3VudHMoKSB7XHJcbiAgICBsZXQgY291bnRzID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVEFCX0NPVU5UUykpO1xyXG4gICAgaWYoY291bnRzKXtcclxuICAgICAgcmV0dXJuIGNvdW50cztcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
547
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RvcmFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LWNvcmUvc3JjL2xpYi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBa0QsR0FBRyxFQUFrQixNQUFNLGdCQUFnQixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ2xGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFFeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFPM0MsTUFBTSxPQUFPLGNBQWM7SUFxQ3pCLFlBQ1UsSUFBZ0IsRUFDRCxHQUFPLEVBQ0osUUFBa0IsRUFDcEMsaUJBQW1DLEVBQ25DLG1CQUF1QyxFQUN2QyxjQUE2QjtRQUw3QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ0QsUUFBRyxHQUFILEdBQUcsQ0FBSTtRQUNKLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDcEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFrQjtRQUNuQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQW9CO1FBQ3ZDLG1CQUFjLEdBQWQsY0FBYyxDQUFlO1FBMUN2QyxhQUFRLEdBQVcsVUFBVSxDQUFDO1FBQzlCLGlCQUFZLEdBQVcsY0FBYyxDQUFDO1FBQ3RDLGtCQUFhLEdBQVcsZUFBZSxDQUFDO1FBQ3hDLHVCQUFrQixHQUFVLG9CQUFvQixDQUFDO1FBQ2pELGNBQVMsR0FBTSxXQUFXLENBQUM7UUFDM0Is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QUFJO1lBQ0gsT0FBTyxJQUFJLENBQUM7U0FDYjtJQUNILENBQUM7SUFDRCxZQUFZLENBQUMsU0FBYztRQUN6QixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFDRCxZQUFZO1FBQ1YsSUFBSSxNQUFNLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBTSxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3BFLElBQUcsTUFBTSxFQUFDO1lBQ1IsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFJO1lBQ0gsT0FBTyxFQUFFLENBQUM7U0FDWDtJQUNILENBQUM7OzRHQTloQlUsY0FBYyw0Q0F1Q2YsS0FBSyxhQUNMLFFBQVE7Z0hBeENQLGNBQWMsY0FGYixNQUFNOzRGQUVQLGNBQWM7a0JBSDFCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkF3Q0ksTUFBTTsyQkFBQyxLQUFLOzswQkFDWixNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb3JlRnVuY3Rpb25TZXJ2aWNlIH0gZnJvbSAnLi8uLi9jb21tb24tdXRpbHMvY29yZS1mdW5jdGlvbi9jb3JlLWZ1bmN0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBFbmNyeXB0aW9uU2VydmljZSB9IGZyb20gJy4vLi4vZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCB0YXAsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3RvcmFnZVRva2VuU3RhdHVzIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL3N0b3JhZ2UtdG9rZW4tc3RhdHVzLmVudW0nO1xyXG5pbXBvcnQgeyBQTEFURk9STV9OQU1FIH0gZnJvbSAnLi4vLi4vc2hhcmVkL3BsYXRmb3JtJztcclxuaW1wb3J0IHsgQ29tbW9uIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2NvbW1vbi5lbnVtJztcclxuaW1wb3J0IHsgQ29va2llc1NlcnZpY2UgfSBmcm9tICcuL2Nvb2tpZXMuc2VydmljZSc7XHJcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcblxyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU3RvcmFnZVNlcnZpY2Uge1xyXG4gIElEX1RPS0VOOiBzdHJpbmcgPSAnSURfVE9LRU4nO1xyXG4gIEFDQ0VTU19UT0tFTjogc3RyaW5nID0gJ0FDQ0VTU19UT0tFTic7XHJcbiAgUkVGUkVTSF9UT0tFTjogc3RyaW5nID0gJ1JFRlJFU0hfVE9LRU4nO1xyXG4gIFJFU0VUX1BBU1NfU0VTU0lPTjpzdHJpbmcgPSAnUkVTRVRfUEFTU19TRVNTSU9OJztcclxuICBFWFBJUllfSU46YW55PSAnRVhQSVJZX0lOJztcclxuICBVU0VSX0tFWTogc3RyaW5nID0gJ1VTRVInO1xyXG4gIFJPTEU6c3RyaW5nID0gXCJST0xFXCI7XHJcbiAgQUNUSVZFX01FTlU6IHN0cmluZyA9ICdNRU5VJztcclxuICBNRU5VX1RZUEU6IHN0cmluZyA9ICdNRU5VX1RZUEUnO1xyXG4gIElEX1RPS0VOX0VYUElSWV9USU1FOiBzdHJpbmcgPSAnSURfVE9LRU5fRVhQSVJZX1RJTUUnO1xyXG4gIFJFRlJFU0hfVE9LRU5fRVhQSVJZX1RJTUU6c3RyaW5nPSdSRUZSRVNIX1RPS0VOX0VYUElSWV9USU1FJztcclxuICB1c2VySW5mbzogYW55O1xyXG4gIGxvZzogYW55O1xyXG4gIGFnZTphbnk9MzU0MDAwMDsgLy81OSBtaW51dHNcclxuICByZWZyZXNoVG9rZW5BZ2U6YW55PTI1MDU2MDAwMDAgLy9yZWZyZXNoIHRva2VuIGFnZSAyOSBkYXlzXHJcbiAgcGFja0RldGFpbHM6IGFueSA9IHt9O1xyXG5cclxuICBIT1NUX05BTUUgOiBzdHJpbmcgPSAnSE9TVF9OQU1FJztcclxuICBQUk9KRUNUX0ZPTERFUl9OQU1FOiBzdHJpbmcgPSAnUFJPSkVDVF9GT0xERVJfTkFNRSc7XHJcbiAgVEVNUF9OQU1FOnN0cmluZyA9IFwiVEVNUF9OQU1FXCI7XHJcbiAgVEVNUF9USEVNRTpzdHJpbmcgPSBcIlRFTVBfVEhFTUVcIjtcclxuICBQQUdFX1RJVExFOnN0cmluZyA9IFwiUEFHRV9USVRMRVwiO1xyXG4gIFZFUklGWV9UWVBFOnN0cmluZyA9IFwiVkVSSUZZX1RZUEVcIjtcclxuICBNT0RVTEU6c3RyaW5nID0gXCJNT0RVTEVcIjtcclxuICBURUFNX05BTUU6c3RyaW5nID0gXCJURUFNX05BTUVcIjtcclxuICBVU0VSX1BSRUZFUkVOQ0U6YW55O1xyXG4gIFJFRElSRUNUX1VSTDpzdHJpbmcgPSBcIlJFRElSRUNUX1VSTFwiO1xyXG4gIENISUxEX1dJTkRPV19VUkw6c3RyaW5nID0gXCJDSElMRF9XSU5ET1dfVVJMXCI7XHJcbiAgTU9ESUZZX01PRFVMRVM6YW55ID0gJ01PRElGWV9NT0RVTEVTJztcclxuICBhcHBOYW1lOmFueTtcclxuICBDTElFTlRfTkFNRTphbnkgPSAnQ0xJRU5UX05BTUUnO1xyXG4gIEFMTF9URU1QTEFURTphbnkgPSAnQUxMX1RFTVBMQVRFJztcclxuICBURU1QTEFURV9JTkRFWDphbnkgPSBcIlRFTVBMQVRFX0lOREVYXCI7XHJcbiAgVEFCX0NPVU5UUzphbnk9XCJUQUJfQ09VTlRTXCI7XHJcblxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcclxuICAgIEBJbmplY3QoJ2VudicpIHByaXZhdGUgZW52OmFueSxcclxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxyXG4gICAgcHJpdmF0ZSBlbmNyeXB0aW9uU2VydmljZTpFbmNyeXB0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgY29yZUZ1bmN0aW9uU2VydmljZTpDb3JlRnVuY3Rpb25TZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjb29raWVzU2VydmljZTpDb29raWVzU2VydmljZVxyXG4gICAgKSB7IH1cclxuXHJcbiAgbG9hZCgpOiBPYnNlcnZhYmxlPGFueT57XHJcbiAgICByZXR1cm4gdGhpcy5lbnY7XHJcbiAgfVxyXG4gIHNldEFwcE5hbWUoYXBwbmFtZTpzdHJpbmcpe1xyXG4gICAgdGhpcy5hcHBOYW1lID0gYXBwbmFtZTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiQXBwTmFtZVwiLCBKU09OLnN0cmluZ2lmeShhcHBuYW1lKSk7XHJcbn1cclxuICBzZXRNb2R1bGUobW9kdWxlOnN0cmluZyl7XHJcbiAgICBzZXNzaW9uU3RvcmFnZS5zZXRJdGVtKFwiTU9EVUxFXCIsbW9kdWxlKTtcclxuICB9XHJcbiAgZ2V0TW9kdWxlKCl7XHJcbiAgICByZXR1cm4gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnTU9EVUxFJyk7XHJcbiAgfVxyXG4gIHNldENoaWxkV2luZG93VXJsKHVybDpzdHJpbmcpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJDSElMRF9XSU5ET1dfVVJMXCIsdXJsKTtcclxuICB9XHJcbiAgZ2V0Q2hpbGRXaW5kb3dVcmwoKXtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ0hJTERfV0lORE9XX1VSTCcpO1xyXG4gIH1cclxuICBzZXRSZWRpcmVjdFVybCh1cmw6c3RyaW5nKXtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0oXCJSRURJUkVDVF9VUkxcIix1cmwpO1xyXG4gIH1cclxuICBnZXRSZWRpcmVjdFVybCgpe1xyXG4gICAgcmV0dXJuIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ1JFRElSRUNUX1VSTCcpO1xyXG4gIH1cclxuICBzZXRVc2VyUHJlZmVyZW5jZSh1c2VyX3ByZWZlcmVuY2U6YW55KXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKFwiVVNFUl9QUkVGRVJFTkNFXCIsSlNPTi5zdHJpbmdpZnkodXNlcl9wcmVmZXJlbmNlKSk7XHJcbiAgfVxyXG4gIGdldFVzZXJQcmVmZXJlbmNlKCl7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdVU0VSX1BSRUZFUkVOQ0UnKSk7XHJcbiAgfVxyXG5cclxuICBzZXRUaGVtZVNldHRpbmcoc2V0dGluZ09iajphbnkpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0oXCJUSEVNRV9TRVRUSU5HXCIsSlNPTi5zdHJpbmdpZnkoc2V0dGluZ09iaikpO1xyXG4gIH1cclxuICBnZXRUaGVtZVNldHRpbmcoKXtcclxuICAgIHJldHVybiBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0oJ1RIRU1FX1NFVFRJTkcnKSk7XHJcbiAgfVxyXG5cclxuICBzZXRBcHBsaWNhdGlvblNldHRpbmcoYXBwbGljYXRpb25TZXR0aW5nOmFueSl7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbShcIkFQUExJQ0FUSU9OX1NFVFRJTkdcIixKU09OLnN0cmluZ2lmeShhcHBsaWNhdGlvblNldHRpbmcpKTtcclxuICB9XHJcbiAgZ2V0QXBwbGljYXRpb25TZXR0aW5nKCl7XHJcbiAgICByZXR1cm4gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKCdBUFBMSUNBVElPTl9TRVRUSU5HJykpO1xyXG4gIH1cclxuXHJcbiAgc2V0QXBwSWQoYXBwSWQ6c3RyaW5nKXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdhcHBJZCcsIGFwcElkKTtcclxuICB9XHJcblxyXG4gIGdldEFwcElkKCl7XHJcbiAgICBjb25zdCB1c2VyID0gdGhpcy5HZXRVc2VySW5mbygpO1xyXG4gICAgaWYodXNlciAmJiB1c2VyLmFwcElkICYmIHVzZXIuYXBwSWQgIT0gbnVsbCl7XHJcbiAgICAgIHJldHVybiB1c2VyLmFwcElkO1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnYXBwSWQnKVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RXhwaXJlc0luKGV4cGlyeTogYW55KXtcclxuICAgIGxldCBleHBpcnlUaW1lID0gKGV4cGlyeSAtIDMwMCkqMTAwMFxyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5FWFBJUllfSU4sIEpTT04uc3RyaW5naWZ5KGV4cGlyeVRpbWUpKTtcclxuICAgIHRoaXMuc2V0SWRUb2tlbkV4cGlyeSgpO1xyXG4gIH1cclxuICBnZXRFeHBpcmVzSW4oKXtcclxuICAgIHJldHVybiBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkVYUElSWV9JTik7XHJcbiAgfVxyXG4gIFNldElkVG9rZW4odG9rZW46IGFueSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5JRF9UT0tFTiwgSlNPTi5zdHJpbmdpZnkodG9rZW4pKTtcclxuICB9XHJcbiAgR2V0SWRUb2tlbigpIHtcclxuICAgIGxldCBvYmogPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5JRF9UT0tFTikpO1xyXG4gICAgaWYob2JqICYmIG9iaiAhPSBudWxsICl7XHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG4gIElzSnNvblN0cmluZyhzdHI6YW55KSB7XHJcbiAgICAgIHRyeSB7XHJcbiAgICAgICAgICBKU09OLnBhcnNlKHN0cik7XHJcbiAgICAgIH0gY2F0Y2ggKGUpIHtcclxuICAgICAgICAgIHJldHVybiBmYWxzZTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcbiAgU2V0QWNjZXNzVG9rZW4odG9rZW46IGFueSkge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5BQ0NFU1NfVE9LRU4sIEpTT04uc3RyaW5naWZ5KHRva2VuKSk7XHJcbiAgfVxyXG4gIEdldEFjY2Vzc1Rva2VuKCkge1xyXG4gICAgbGV0IG9iaiA9IEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkFDQ0VTU19UT0tFTikpO1xyXG4gICAgaWYob2JqICYmIG9iaiAhPSBudWxsKXtcclxuICAgICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG4gIH1cclxuICBTZXRSZWZyZXNoVG9rZW4odG9rZW46IHN0cmluZykge1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5SRUZSRVNIX1RPS0VOLCB0b2tlbik7XHJcbiAgICB0aGlzLnNldFJlZnJlc2hUb2tlbkV4cGlyeSgpO1xyXG4gIH1cclxuICBHZXRSZWZyZXNoVG9rZW4oKSB7XHJcbiAgICByZXR1cm4gbG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5SRUZSRVNIX1RPS0VOKTtcclxuICB9XHJcbiAgR2V0SWRUb2tlblN0YXR1cygpe1xyXG4gICAgbGV0IGV4cGlyZWQgPSAwO1xyXG4gICAgbGV0IGV4cGlyZVRpbWUgPSBOdW1iZXIobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5JRF9UT0tFTl9FWFBJUllfVElNRSkpO1xyXG4gICAgbGV0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgIGxldCBleHBpcmVzSW4yNEhvdXJzID0gMDtcclxuXHJcblx0aWYoZXhwaXJlVGltZSA+IGN1cnJlbnRUaW1lKVxyXG4gICAgICBleHBpcmVzSW4yNEhvdXJzID0gICgoKGV4cGlyZVRpbWUtY3VycmVudFRpbWUpLzEwMDApLzM2MDApIDtcclxuXHJcblx0aWYoY3VycmVudFRpbWUgPiBleHBpcmVUaW1lKXtcclxuICAgICAgaWYoZXhwaXJlVGltZSA+IDApe1xyXG4gICAgICAgIHJldHVybiBTdG9yYWdlVG9rZW5TdGF0dXMuSURfVE9LRU5fRVhQSVJFRDsgIC8vIGFwcENvbnN0YW50LlRPS0VOX1NUQVRVUy5JRF9UT0tFTl9FWFBJUkVEOyAvLyBub3RpZnksIGR1ZSB0byBleHBpcmVkXHJcbiAgICAgIH1cclxuICAgICAgcmV0dXJuICBTdG9yYWdlVG9rZW5TdGF0dXMuSURfVE9LRU5fTk9UX0NSRUFURUQ7IC8vYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLklEX1RPS0VOX05PVF9DUkVBVEVEOyAgLy8gZmlyc3QgdGltZSBsb2FkaW5nIHNvIG5vIG5vdGlmeVxyXG4gICAgfSBlbHNlIGlmKGV4cGlyZXNJbjI0SG91cnMgPiAyNCl7XHJcblx0XHRyZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX0VYUElSRUQgLy9hcHBDb25zdGFudC5UT0tFTl9TVEFUVVMuSURfVE9LRU5fRVhQSVJFRDsgLy8gbm90aWZ5LCBkdWUgdG8gZXhwaXJlZFxyXG5cdH1cclxuXHJcbiAgICByZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLklEX1RPS0VOX0FDVElWRTsgLy9hcHBDb25zdGFudC5UT0tFTl9TVEFUVVMuSURfVE9LRU5fQUNUSVZFOyAvLyBub3QgZXhwaXJlZFxyXG4gIH1cclxuXHJcblxyXG5cclxuICBHZXRSZWZyZXNoVG9rZW5TdGF0dXMoKXtcclxuICAgIGxldCBleHBpcmVkID0gMDtcclxuICAgIGxldCBleHBpcmVUaW1lID0gTnVtYmVyKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuUkVGUkVTSF9UT0tFTl9FWFBJUllfVElNRSkpO1xyXG4gICAgbGV0IGN1cnJlbnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgIGlmKGN1cnJlbnRUaW1lID4gZXhwaXJlVGltZSl7XHJcbiAgICAgIGlmKGV4cGlyZVRpbWUgPiAwKXtcclxuICAgICAgICByZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLlJFRlJFU0hfVE9LRU5fRVhQSVJFRDsgLy8gYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLlJFRlJFU0hfVE9LRU5fRVhQSVJFRDsgLy8gbm90aWZ5LCBkdWUgdG8gZXhwaXJlZFxyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBTdG9yYWdlVG9rZW5TdGF0dXMuUkVGUkVTSF9UT0tFTl9OT1RfQ1JFQVRFRDsgLy8gYXBwQ29uc3RhbnQuVE9LRU5fU1RBVFVTLlJFRlJFU0hfVE9LRU5fTk9UX0NSRUFURUQ7ICAvLyBmaXJzdCB0aW1lIGxvYWRpbmcgc28gbm8gbm90aWZ5XHJcbiAgICB9XHJcbiAgICByZXR1cm4gU3RvcmFnZVRva2VuU3RhdHVzLlJFRlJFU0hfVE9LRU5fQUNUSVZFOyAvLyBhcHBDb25zdGFudC5UT0tFTl9TVEFUVVMuUkVGUkVTSF9UT0tFTl9BQ1RJVkU7IC8vIG5vdCBleHBpcmVkXHJcbiAgfVxyXG5cclxuICBTZXRVc2VySW5mbyh1c2VyOiBhbnkpIHtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuVVNFUl9LRVksIEpTT04uc3RyaW5naWZ5KHVzZXIpKTtcclxuICB9XHJcbiAgR2V0VXNlckluZm8oKSB7XHJcbiAgICBjb25zdCBvYmo6YW55ID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVVNFUl9LRVkpKTtcclxuICAgIGlmKG9iaiAmJiBvYmoudXNlcil7XHJcbiAgICAgIHJldHVybiBvYmoudXNlclxyXG4gICAgfWVsc2V7XHJcbiAgICAgIHJldHVybiB7fTtcclxuICAgIH1cclxuICB9XHJcbiAgR2V0Um9sZUxpc3QoKXtcclxuICAgIGNvbnN0IG9iajphbnkgPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0tFWSkpO1xyXG4gICAgaWYob2JqICYmIG9iai5yb2xsTGlzdCl7XHJcbiAgICAgIHJldHVybiBvYmoucm9sbExpc3RcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcbiAgfVxyXG4gIHNldEFjdGl2ZVJvbGUocm9sZTphbnkpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5ST0xFLCBKU09OLnN0cmluZ2lmeShyb2xlKSk7XHJcbiAgfVxyXG4gIGdldEFjdGl2ZVJvbGUoKXtcclxuICAgIGNvbnN0IG9iajphbnkgPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5ST0xFKSk7XHJcbiAgICByZXR1cm4gb2JqO1xyXG4gIH1cclxuICBHZXRVc2VyUmVmZXJlbmNlKCkge1xyXG4gICAgbGV0IHVzZXIgPSB0aGlzLkdldFVzZXJJbmZvKCk7XHJcbiAgICBsZXQgdXNlclJlZjphbnkgPSB7fTtcclxuICAgIHVzZXJSZWZbJ19pZCddID0gdXNlclsnX2lkJ107XHJcbiAgICB1c2VyUmVmWyduYW1lJ10gPSB1c2VyWyduYW1lJ107XHJcbiAgICByZXR1cm4gdXNlclJlZjtcclxuICB9XHJcbiAgR2V0UGVybWlzc2lvbigpIHtcclxuICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVTRVJfS0VZKSk7XHJcbiAgICBpZihvYmogJiYgb2JqLnBlcm1pc3Npb24pe1xyXG4gICAgICByZXR1cm4gb2JqLnBlcm1pc3Npb25cclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEdldE1vZHVsZXMoKXtcclxuICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLlVTRVJfS0VZKSk7XHJcbiAgICBpZihvYmogJiYgb2JqLm1vZHVsZXMpe1xyXG4gICAgICByZXR1cm4gb2JqLm1vZHVsZXNcclxuICAgIH1cclxuICAgIGVsc2V7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuICB9XHJcbiAgLy8gU2V0TW9kaWZ5TW9kdWxlcyhtb2R1bGVzOmFueSl7XHJcbiAgLy8gICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLk1PRElGWV9NT0RVTEVTLEpTT04uc3RyaW5naWZ5KG1vZHVsZXMpKTtcclxuICAvLyB9XHJcbiAgLy8gR2V0TW9kaWZ5TW9kdWxlcygpe1xyXG4gIC8vICAgcmV0dXJuIEpTT04ucGFyc2UoPGFueT5sb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLk1PRElGWV9NT0RVTEVTKSk7XHJcbiAgLy8gfVxyXG4gIEdldE1lbnVUeXBlKCl7XHJcbiAgICBjb25zdCBtZW51X1R5cGUgPSB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgnbWVudV90eXBlJyk7XHJcbiAgICBpZihtZW51X1R5cGUpe1xyXG4gICAgICAgIHJldHVybiBtZW51X1R5cGU7XHJcbiAgICAgIH1cclxuICAgICAgZWxzZXtcclxuICAgICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0VXNlckxvZygpIHtcclxuICAgIGNvbnN0IHVzZXIgPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5VU0VSX0tFWSkpO1xyXG4gICAgaWYodXNlciAmJiB1c2VyICE9IG51bGwgJiYgdXNlciAhPSB1bmRlZmluZWQgJiYgdXNlci51c2VyKXtcclxuICAgICAgdGhpcy51c2VySW5mbyA9IHVzZXIudXNlcjtcclxuICAgICAgdGhpcy5sb2cgPSB7IHVzZXJJZDogdGhpcy51c2VySW5mby5lbWFpbCwgYXBwSWQ6IHRoaXMuZ2V0QXBwSWQoKSwgcmVmQ29kZTogdGhpcy51c2VySW5mby5yZWZDb2RlIH07XHJcbiAgICAgIHJldHVybiB0aGlzLmxvZztcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgU2V0QWN0aXZlTWVudShtZW51OiBhbnkpIHtcclxuICAgIHNlc3Npb25TdG9yYWdlLnNldEl0ZW0odGhpcy5BQ1RJVkVfTUVOVSwgSlNPTi5zdHJpbmdpZnkobWVudSkpO1xyXG4gIH1cclxuICBHZXRBY3RpdmVNZW51KCkge1xyXG4gICAgcmV0dXJuIEpTT04ucGFyc2UoPGFueT5zZXNzaW9uU3RvcmFnZS5nZXRJdGVtKHRoaXMuQUNUSVZFX01FTlUpKTtcclxuICB9XHJcbiAgZ2V0UmVmQ29kZSgpIHtcclxuICAgIGNvbnN0IHVzZXJpbmZvID0gdGhpcy5HZXRVc2VySW5mbygpO1xyXG4gICAgaWYodXNlcmluZm8gJiYgdXNlcmluZm8ucmVmQ29kZSl7XHJcbiAgICAgIHJldHVybiB1c2VyaW5mby5yZWZDb2RlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbiAgfVxyXG4gIGdldFVzZXJBcHBJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMudXNlckluZm8uYXBwSWQ7XHJcbiAgfVxyXG4gIHJlbW92ZURhdGFGb3JtU3RvcmFnZShhbGw/OnN0cmluZykge1xyXG4gICAgbGV0IGRvTm90Q2xlYXJDYWNoZTphbnkgPSBbXTtcclxuICAgIGlmKGFsbCAhPSBcImFsbFwiKXtcclxuICAgICAgaWYodGhpcy5jaGVja1BsYXRGb3JtKCkgPT0gJ21vYmlsZScpe1xyXG4gICAgICAgIGxldCBjbGllbnRDb2RlID0gdGhpcy5nZXRDbGllbnROYW1lKCk7XHJcbiAgICAgICAgaWYoY2xpZW50Q29kZSAmJiBjbGllbnRDb2RlICE9ICcnKXtcclxuICAgICAgICAgIGxldCBvYmplY3Q6YW55ID0ge307XHJcbiAgICAgICAgICBvYmplY3RbJ2tleSddID0gdGhpcy5DTElFTlRfTkFNRTtcclxuICAgICAgICAgIG9iamVjdFtcInZhbHVlXCJdID0gY2xpZW50Q29kZTtcclxuICAgICAgICAgIG9iamVjdFsndHlwZSddID0gJ2xvY2Fsc3RvcmFnZSdcclxuICAgICAgICAgIGRvTm90Q2xlYXJDYWNoZS5wdXNoKG9iamVjdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBsb2NhbFN0b3JhZ2UuY2xlYXIoKTtcclxuICAgIHNlc3Npb25TdG9yYWdlLmNsZWFyKCk7XHJcbiAgICBpZihkb05vdENsZWFyQ2FjaGUgJiYgZG9Ob3RDbGVhckNhY2hlLmxlbmd0aCA+IDApe1xyXG4gICAgICBkb05vdENsZWFyQ2FjaGUuZm9yRWFjaCgob2JqOmFueSkgPT4ge1xyXG4gICAgICAgIGlmKG9iaiAmJiBvYmoudHlwZSA9PSAnbG9jYWxzdG9yYWdlJyl7XHJcbiAgICAgICAgICBsZXQga2V5ID0gb2JqWydrZXknXTtcclxuICAgICAgICAgIGxldCB2YWx1ZSA9IG9ialsndmFsdWUnXTtcclxuICAgICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKGtleSx2YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0SWRUb2tlbkV4cGlyeSgpe1xyXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcclxuICAgIGNvbnN0IGV4cGlyeSA9IE51bWJlcih0aGlzLmdldEV4cGlyZXNJbigpKTtcclxuICAgIC8vY29uc3QgZXhwaXJ5ID0gdGhpcy5nZXRFeHBpcmVzSW4oKTtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSURfVE9LRU5fRVhQSVJZX1RJTUUsIFwiXCIrKHN0YXJ0VGltZSArIGV4cGlyeSkpO1xyXG4gIH1cclxuXHJcbiAgc2V0UmVmcmVzaFRva2VuRXhwaXJ5KCl7XHJcbiAgICBjb25zdCBzdGFydFRpbWUgPSBEYXRlLm5vdygpO1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5SRUZSRVNIX1RPS0VOX0VYUElSWV9USU1FLCBzdGFydFRpbWUgKyB0aGlzLnJlZnJlc2hUb2tlbkFnZSk7XHJcbiAgfVxyXG4gIHNlYXJjaCh1cmw6IHN0cmluZywgdGVybTogc3RyaW5nKSB7XHJcbiAgICBpZiAodGVybSA9PT0gJycpIHtcclxuICAgICAgcmV0dXJuIG9mKFtdKTtcclxuICAgIH1cclxuICAgIHJldHVybiB0aGlzLmh0dHBcclxuICAgICAgLmdldCh1cmwgKyB0ZXJtKS5waXBlKFxyXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHJldHVybiByZXNwb25zZTtcclxuICAgICAgICAgIC8vY29uc29sZS5sb2cocmVzcG9uc2UpO1xyXG4gICAgICAgIH0pXHJcbiAgICAgICk7XHJcbiAgfVxyXG4gIHNldFJlc2V0TmV3UGFzc3dvcmRTZXNzaW9uKHNlc3Npb246YW55KXtcclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKCdSRVNFVF9QQVNTX1NFU1NJT04nLHNlc3Npb24pO1xyXG4gIH1cclxuICBnZXRSZXNldE5ld1Bhc3N3b3JkU2Vzc2lvbigpe1xyXG4gICAgY29uc3Qgc2Vzc2lvbiA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdSRVNFVF9QQVNTX1NFU1NJT04nKTtcclxuICAgIHJldHVybiBzZXNzaW9uO1xyXG4gIH1cclxuICBzZWFyY2hQb3N0TWV0aG9kKHVybDogc3RyaW5nLCBwYXlsb2FkOiBhbnkpIHtcclxuICAgIGlmIChwYXlsb2FkID09PSAnJykge1xyXG4gICAgICByZXR1cm4gb2YoW10pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxyXG4gICAgICAucG9zdCh1cmwsIHBheWxvYWQpLnBpcGUoXHJcbiAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlO1xyXG4gICAgICAgICAgLy9jb25zb2xlLmxvZyhyZXNwb25zZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgKTtcclxuICB9XHJcbiAgXHJcblxyXG4gIHNldEhvc3ROYW1lRGluYW1pY2FsbHkoaG9zdDpzdHJpbmcpe1xyXG4gICAgbGV0IGRvbWFpbk5hbWUgPSB0aGlzLmRvY3VtZW50LmxvY2F0aW9uWydob3N0bmFtZSddO1xyXG5cclxuICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuSE9TVF9OQU1FLCBob3N0KTtcclxuICAgIGlmKGRvbWFpbk5hbWUhPVwibG9jYWxob3N0XCIgJiYgdGhpcy5jb29raWVzU2VydmljZS5pc0Nvb2tpZUV4cGlyZWQoZG9tYWluTmFtZSkpe1xyXG4gICAgICB0aGlzLmNvb2tpZXNTZXJ2aWNlLnNldENvb2tpZUJ5TmFtZShkb21haW5OYW1lLGhvc3QsMzApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0SG9zdE5hbWVEaW5hbWljYWxseSgpe1xyXG4gICAgbGV0IGhvc3QgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkhPU1RfTkFNRSk7XHJcbiAgICBpZih0aGlzLmNvcmVGdW5jdGlvblNlcnZpY2UuaXNOb3RCbGFuayhob3N0KSl7XHJcbiAgICAgIHJldHVybiBob3N0O1xyXG4gICAgfWVsc2V7XHJcbiAgICAgIGxldCBkb21haW5OYW1lID0gdGhpcy5kb2N1bWVudC5sb2NhdGlvblsnaG9zdG5hbWUnXTtcclxuXHJcbiAgICAgIGhvc3QgPSB0aGlzLmNvb2tpZXNTZXJ2aWNlLmdldENvb2tpZUJ5TmFtZShkb21haW5OYW1lKTtcclxuICAgICAgaWYgKGhvc3QgJiYgaG9zdCAhPVwiXCIpIHRoaXMuc2V0SG9zdE5hbWVEaW5hbWljYWxseShob3N0KTtcclxuICAgICAgcmV0dXJuIGhvc3Q7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGdldExvZ29QYXRoKCl7XHJcbiAgICBsZXQgcHJvamVjdEZvbGRlck5hbWUgPSB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgnZm9sZGVyJylcclxuICAgIHJldHVybiAnYXNzZXRzL2ltZy9sb2dvLycgKyBwcm9qZWN0Rm9sZGVyTmFtZSArICcvJztcclxuICB9XHJcbiAgZ2V0UGFnZVRpdGxlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ3RpdGxlJyk7XHJcbiAgfVxyXG4gIGdldFZlcmlmeVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgndmFyaWZ5X21vZGUnKTtcclxuICB9XHJcbiAgZ2V0UGFnZVRobWVtKCl7XHJcbiAgICByZXR1cm4gdGhpcy5nZXRBcHBsaWNhdGlvblZhbHVlQnlLZXkoJ3RoZW1lJyk7XHJcbiAgfVxyXG4gIGdldFRlbXBsYXRlTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KCd0ZW1wX25hbWUnKTtcclxuICB9XHJcbiAgZ2V0VGVhbU5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgndGVhbW5hbWUnKTtcclxuICB9XHJcblxyXG4gIGdldEJ1Y2tldE5hbWUoKXtcclxuICAgIHJldHVybiB0aGlzLmdldEFwcGxpY2F0aW9uVmFsdWVCeUtleSgnYnVja2V0Jyk7XHJcbiAgfVxyXG4gIGdldEF1dGhlbnRpY2F0aW9uU2V0dGluZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KCdhdXRoZW50aWNhdGlvblNldHRpbmdzJyk7XHJcbiAgfVxyXG4gIGdldEFkbWluRW1haWwoKXtcclxuICAgIGxldCBhdXRoZW50aWNhdGlvblNldHRpbmdzOmFueSA9IHRoaXMuZ2V0QXV0aGVudGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBsZXQgYWRtaW5FbWFpbCA9IFwiXCI7XHJcbiAgICBpZihhdXRoZW50aWNhdGlvblNldHRpbmdzICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZ3NbJ2FkbWluRW1haWxJZCddICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZ3NbJ2FkbWluRW1haWxJZCddICE9IFwiXCIpe1xyXG4gICAgICBhZG1pbkVtYWlsID0gYXV0aGVudGljYXRpb25TZXR0aW5nc1snYWRtaW5FbWFpbElkJ107XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYWRtaW5FbWFpbDtcclxuICB9XHJcbiAgZ2V0QXBwbGljYXRpb25WYWx1ZUJ5S2V5KGtleTphbnkpe1xyXG4gICAgbGV0IHZhbHVlOmFueSA9IFwiXCI7XHJcbiAgICBsZXQgYXBwbGljYXRpb25TZXR0aW5nID0gdGhpcy5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIGlmKGFwcGxpY2F0aW9uU2V0dGluZyAmJiBhcHBsaWNhdGlvblNldHRpbmdba2V5XSAhPSB1bmRlZmluZWQgJiYgYXBwbGljYXRpb25TZXR0aW5nW2tleV0gIT0gbnVsbCAmJiBhcHBsaWNhdGlvblNldHRpbmdba2V5XSAhPSBcIlwiKXtcclxuICAgICAgdmFsdWUgPSBhcHBsaWNhdGlvblNldHRpbmdba2V5XTtcclxuICAgIH1cclxuICAgIHJldHVybiB2YWx1ZTtcclxuICB9XHJcbiAgLy8gZm9yIEFwcFxyXG4gIHNldENsaWVudE5BbWUobmFtZTpzdHJpbmcpe1xyXG4gICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5DTElFTlRfTkFNRSxuYW1lKTtcclxuICB9XHJcbiAgZ2V0Q2xpZW50TmFtZSgpe1xyXG4gICAgcmV0dXJuIGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQ0xJRU5UX05BTUUpO1xyXG4gIH1cclxuICByZW1vdmVLZXlGcm9tU3RvcmFnZShrZXk6c3RyaW5nKXtcclxuICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGtleSk7XHJcbiAgfVxyXG4gIGdldFBsYXRmb3JtKCl7XHJcbiAgICByZXR1cm4gdGhpcy5lbnYucGxhdGVmb3JtTmFtZTtcclxuICB9XHJcbiAgZ2V0Q2xpZW50Q29kZUVudmlvcm1lbnQoKXtcclxuICAgIHJldHVybiB0aGlzLmVudjtcclxuICB9XHJcbiAgY2hlY2tQbGF0Rm9ybSgpe1xyXG4gICAgbGV0IHBsYXRGb3JtID0gJ3dlYic7XHJcbiAgICBsZXQgcGxhdEZvcm1OYW1lID0gdGhpcy5nZXRQbGF0Zm9ybSgpO1xyXG4gICAgaWYocGxhdEZvcm1OYW1lICYmIHBsYXRGb3JtTmFtZSAhPSBcIlwiICYmIFBMQVRGT1JNX05BTUUuaW5jbHVkZXMocGxhdEZvcm1OYW1lKSl7XHJcbiAgICAgIHBsYXRGb3JtID0gJ21vYmlsZSc7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcGxhdEZvcm07XHJcbiAgfVxyXG5cclxuICBnZXREZWZhdWx0TnVtT2ZJdGVtKCkge1xyXG4gICAgbGV0IGl0ZW1OdW1PZkdyaWQgPSBDb21tb24uSVRFTV9OVU1fT0ZfR1JJRDtcclxuICAgIGxldCBkZWZhdWx0U2V0dGluZ3MgPSB0aGlzLmdldEFwcGxpY2F0aW9uRGVmYXVsdFNldHRpbmdzKCk7XHJcbiAgICBpZihkZWZhdWx0U2V0dGluZ3MgJiYgZGVmYXVsdFNldHRpbmdzLmRlZmF1bHRJdGVtTm9PZkdyaWQgJiYgZGVmYXVsdFNldHRpbmdzLmRlZmF1bHRJdGVtTm9PZkdyaWQgIT0gXCJcIiAmJiBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdEl0ZW1Ob09mR3JpZCA+IDApIHtcclxuICAgICAgaXRlbU51bU9mR3JpZCA9IGRlZmF1bHRTZXR0aW5ncy5kZWZhdWx0SXRlbU5vT2ZHcmlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGl0ZW1OdW1PZkdyaWRcclxuICB9XHJcblxyXG4gIGdldEFwcGxpY2F0aW9uRGVmYXVsdFNldHRpbmdzKCl7XHJcbiAgICBsZXQgYXBwbGljYXRpb25TZXR0aW5nID0gdGhpcy5nZXRBcHBsaWNhdGlvblNldHRpbmcoKTtcclxuICAgIHJldHVybiBhcHBsaWNhdGlvblNldHRpbmcuZGVmYXVsdEFwcGxpY2F0aW9uU2V0dGluZ3M7XHJcbiAgfVxyXG4gIGdldEFwcGxpY2F0aW9uQXV0aGVudGljYXRpb25TZXR0aW5ncygpe1xyXG4gICAgbGV0IGFwcGxpY2F0aW9uU2V0dGluZyA9IHRoaXMuZ2V0QXBwbGljYXRpb25TZXR0aW5nKCk7XHJcbiAgICBpZihhcHBsaWNhdGlvblNldHRpbmcgJiYgYXBwbGljYXRpb25TZXR0aW5nLmF1dGhlbnRpY2F0aW9uU2V0dGluZ3Mpe1xyXG4gICAgICByZXR1cm4gYXBwbGljYXRpb25TZXR0aW5nLmF1dGhlbnRpY2F0aW9uU2V0dGluZ3M7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcblxyXG4gIH1cclxuICBnZXRUd29GYWN0b3JBdXRoZW50aWNhdGlvblR5cGUoKXtcclxuICAgIGxldCBhdXRoZW50aWNhdGlvblNldHRpbmcgPSB0aGlzLmdldEFwcGxpY2F0aW9uQXV0aGVudGljYXRpb25TZXR0aW5ncygpO1xyXG4gICAgaWYoYXV0aGVudGljYXRpb25TZXR0aW5nICYmIGF1dGhlbnRpY2F0aW9uU2V0dGluZy50d29GYWN0b3JBdXRoZW50aWNhdGlvbiAmJiBhdXRoZW50aWNhdGlvblNldHRpbmcudHdvRmFjdG9yQXV0aGVudGljYXRpb25UeXBlKXtcclxuICAgICAgcmV0dXJuIGF1dGhlbnRpY2F0aW9uU2V0dGluZy50d29GYWN0b3JBdXRoZW50aWNhdGlvblR5cGU7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0RGVmYXVsdFNlYXJjaE9wZXJhdG9yKCkge1xyXG4gICAgbGV0IGRlZmF1bHRTZWFyY2hPcGVyYXRvciA9IENvbW1vbi5ERUZBVUxUX09QRVJBVE9SO1xyXG4gICAgbGV0IGRlZmF1bHRTZXR0aW5ncyA9IHRoaXMuZ2V0QXBwbGljYXRpb25EZWZhdWx0U2V0dGluZ3MoKTtcclxuICAgIGlmKGRlZmF1bHRTZXR0aW5ncyAmJiBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdFNlYXJjaE9wZXJhdG9ySW5HcmlkICYmIGRlZmF1bHRTZXR0aW5ncy5kZWZhdWx0U2VhcmNoT3BlcmF0b3JJbkdyaWQgIT0gXCJcIikge1xyXG4gICAgICBkZWZhdWx0U2VhcmNoT3BlcmF0b3IgPSBkZWZhdWx0U2V0dGluZ3MuZGVmYXVsdFNlYXJjaE9wZXJhdG9ySW5HcmlkO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGRlZmF1bHRTZWFyY2hPcGVyYXRvcjtcclxuICB9XHJcbiAgc3RvcmVBbGxUZW1wbGF0ZShkYXRhOmFueSl7XHJcbiAgICAvLyBsZXQgZW5jcnlwdERhdGEgPSB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmVuY3J5cHRSZXF1ZXN0KGRhdGEpO1xyXG4gICAgLy8gY29uc29sZS5sb2coZW5jcnlwdERhdGEpO1xyXG4gICAgbGV0IG1vZGlmaWVkTGlzdCA9IHRoaXMubW9kaWZ5VGVtcGxhdGVMaXN0KGRhdGEpO1xyXG4gICAgaWYobW9kaWZpZWRMaXN0KXtcclxuICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5BTExfVEVNUExBVEUsSlNPTi5zdHJpbmdpZnkobW9kaWZpZWRMaXN0LnRlbXBsYXRMaXN0KSk7XHJcbiAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuVEVNUExBVEVfSU5ERVgsSlNPTi5zdHJpbmdpZnkobW9kaWZpZWRMaXN0LnRlbXBsYXRlSW5kZXhMaXN0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIG1vZGlmeVRlbXBsYXRlTGlzdChvYmo6YW55KXtcclxuICAgIGxldCBsaXN0OmFueSA9IHt9O1xyXG4gICAgbGV0IGluZGV4TGlzdDphbnkgPSBbXTtcclxuICAgIGxldCBvbGRMaXN0ID0gdGhpcy5nZXRBbGxUZW1wbGF0ZUxpc3QoKTtcclxuICAgIGxldCBhbGxJbmRleExpc3QgPSBKU09OLnBhcnNlKDxhbnk+bG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5URU1QTEFURV9JTkRFWCkpO1xyXG4gICAgaWYoYWxsSW5kZXhMaXN0ICYmIGFsbEluZGV4TGlzdC5sZW5ndGggPiAwKXtcclxuICAgICAgaW5kZXhMaXN0ID0gYWxsSW5kZXhMaXN0O1xyXG4gICAgfVxyXG4gICAgaWYob2xkTGlzdCAmJiBPYmplY3Qua2V5cyhvbGRMaXN0KS5sZW5ndGggPiAwKXtcclxuICAgICAgbGV0IHNpemU6bnVtYmVyID0gdGhpcy5jb3JlRnVuY3Rpb25TZXJ2aWNlLmdldEpzb25TaXplSW5LaWxvYnl0ZShvbGRMaXN0KTtcclxuICAgICAgLy8gY29uc29sZS5sb2coc2l6ZSk7XHJcbiAgICAgIGlmKHNpemUgPj0gMTAyNCl7XHJcbiAgICAgICAgbGV0IGtleU5hbWUgPSBpbmRleExpc3RbMF07XHJcbiAgICAgICAgZGVsZXRlIChvbGRMaXN0W2tleU5hbWVdKTtcclxuICAgICAgICBpbmRleExpc3Quc3BsaWNlKDAsMSk7XHJcbiAgICAgIH1cclxuICAgICAgbGlzdCA9IG9sZExpc3Q7XHJcbiAgICB9ZWxzZXtcclxuICAgICAgbGlzdCA9IHt9O1xyXG4gICAgfVxyXG4gICAgaWYob2JqICYmIG9iail7XHJcbiAgICAgIE9iamVjdC5rZXlzKG9iaikuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICAgIGxpc3Rba2V5XSA9IG9ialtrZXldO1xyXG4gICAgICAgIGluZGV4TGlzdC5wdXNoKGtleSk7XHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBsZXQgcmVzcG9uY2UgPSB7XHJcbiAgICAgIHRlbXBsYXRMaXN0IDogbGlzdCxcclxuICAgICAgdGVtcGxhdGVJbmRleExpc3Q6aW5kZXhMaXN0XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzcG9uY2U7XHJcbiAgfVxyXG4gIGdldEFsbFRlbXBsYXRlTGlzdCgpe1xyXG4gICAgLy9sZXQgYWxsVGVtcGxhdGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLkFMTF9URU1QTEFURSk7XHJcbiAgICBjb25zdCBvYmo6YW55ID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuQUxMX1RFTVBMQVRFKSk7XHJcbiAgICAvL3JldHVybiB0aGlzLmVuY3J5cHRpb25TZXJ2aWNlLmRlY3J5cHRSZXF1ZXN0KGFsbFRlbXBsYXRlKTtcclxuICAgIHJldHVybiBvYmo7XHJcbiAgfVxyXG4gIGdldFRlbXBsYXRlKHRlbXBOYW1lOnN0cmluZyxtb2R1bGVOYW1lOnN0cmluZyl7XHJcbiAgICBsZXQgdGVtcGxhdGVMaXN0OmFueSA9IHRoaXMuZ2V0QWxsVGVtcGxhdGVMaXN0KCk7XHJcbiAgICBsZXQgbmFtZSA9IG1vZHVsZU5hbWUrXCJfXCIrdGVtcE5hbWU7XHJcbiAgICBpZih0ZW1wbGF0ZUxpc3QgJiYgdGVtcGxhdGVMaXN0W25hbWVdKXtcclxuICAgICAgcmV0dXJuIHRlbXBsYXRlTGlzdFtuYW1lXTtcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICB9XHJcbiAgU2V0VGFiQ291bnRzKHRhYkNvdW50czogYW55KSB7XHJcbiAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLlRBQl9DT1VOVFMsIEpTT04uc3RyaW5naWZ5KHRhYkNvdW50cykpO1xyXG4gIH1cclxuICBHZXRUYWJDb3VudHMoKSB7XHJcbiAgICBsZXQgY291bnRzID0gSlNPTi5wYXJzZSg8YW55PmxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuVEFCX0NPVU5UUykpO1xyXG4gICAgaWYoY291bnRzKXtcclxuICAgICAgcmV0dXJuIGNvdW50cztcclxuICAgIH1lbHNle1xyXG4gICAgICByZXR1cm4ge307XHJcbiAgICB9XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * Public API Surface of my-lib
3
3
  */
4
- export * from './lib/my-lib.module';
4
+ export * from './lib/clientCore.module';
5
5
  export * from './lib/services/api/api.service';
6
6
  export * from './lib/services/api/auth/auth-guard.service';
7
7
  export * from './lib/services/api/auth/auth.service';
@@ -50,4 +50,4 @@ export * from './lib/services/userPrefrence/user-prefrence.service';
50
50
  export * from './lib/services/api/aws-secret-manager/aws-secret-manager.service';
51
51
  export * from './lib/services/storage/cookies.service';
52
52
  export * from './lib/services/router/router.service';
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1jb3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsY0FBYyxxQkFBcUIsQ0FBQztBQUNwQyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBteS1saWJcclxuICovXHJcblxyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9teS1saWIubW9kdWxlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2FwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2F1dGgvYXV0aC1ndWFyZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2F1dGgvYXV0aC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2NvbW1vbi1hcGkvY29tbW9uLWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2RvYy1hcGkvZG9jLWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL3B1YmxpYy1hcGkvcHVibGljLWFwaS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY2hhcnQvY2hhcnQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi11dGlscy9jb21tb24tZnVuY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NvbW1vbi11dGlscy9jb3JlLWZ1bmN0aW9uL2NvcmUtZnVuY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2N1c3RvbXZhbGlkYXRpb24vY3VzdG9tdmFsaWRhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGF0YS1zaGFyZS9kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL2RvYy1kYXRhLXNoYXJlL2RvYy1kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL3B1YmxpYy1kYXRhLXNoYXJlL3B1YmxpYy1kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbmNyeXB0aW9uL2VuY3J5cHRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Vudi9lbnYuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2dyaWQvZ3JpZC1jb21tb24tZnVuY3Rpb24vZ3JpZC1jb21tb24tZnVuY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2dyaWQvZ3JpZC1zZWxlY3Rpb24vZ3JpZC1zZWxlY3Rpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xvYWRlci9sb2FkZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21lbnUtb3ItbW9kdWxlLWNvbW1vbi9tZW51LW9yLW1vZHVsZS1jb21tb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21vZGVsL21vZGVsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ub3RpZnkvbm90aWZpY2F0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9wZXJtaXNzaW9uL3Blcm1pc3Npb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2Uvc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbGltcy1jYWxjdWxhdGlvbnMvbGltcy1jYWxjdWxhdGlvbnMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3RyZWUtY29tcG9uZW50L3RyZWUtY29tcG9uZW50LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy92b2ljZS1yZWNvZ25pdGlvbi92b2ljZS1yZWNvZ25pdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2VudW1zL2NvbW1vbi5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2VudW1zL2VuZC1wb2ludC5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2VudW1zL3N0b3JhZ2UtdG9rZW4tc3RhdHVzLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZW51bXMva2V5Y29kZXMuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lbnVtcy9vcGVyYXRvcl90eXBlLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL2F1dGgtZGF0YS1zaGFyZS9hdXRoLWRhdGEtc2hhcmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2RhdGEtc2hhcmUvY29tbW9uLWFwcC1kYXRhLXNoYXJlL2NvbW1vbi1hcHAtZGF0YS1zaGFyZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZmlsZUhhbmRsZXIvZmlsZS1oYW5kbGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvY29uZmlndXJhdGlvbi9lZGl0b3ItY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbmZpZ3VyYXRpb24vY29uZmlnJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZm9ybS9mb3JtLWNyZWF0aW9uL2Zvcm0tY3JlYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Zvcm0vZm9ybS12YWx1ZS9mb3JtLXZhbHVlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGkvYXBpLWNhbGwvYXBpLWNhbGwuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Zvcm0vZm9ybS1jb250cm9sL2Zvcm0tY29udHJvbC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY2hlY2staWYvY2hlY2staWYuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9hcGktY2FsbC1yZXNwb25jZS9hcGktY2FsbC1yZXNwb25jZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZm9ybS9tdWx0aXBsZS1mb3JtL211bHRpcGxlLWZvcm0uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Rvd25sb2FkL2Rvd25sb2FkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy91c2VyUHJlZnJlbmNlL3VzZXItcHJlZnJlbmNlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGkvYXdzLXNlY3JldC1tYW5hZ2VyL2F3cy1zZWNyZXQtbWFuYWdlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvc3RvcmFnZS9jb29raWVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9yb3V0ZXIvcm91dGVyLnNlcnZpY2UnO1xyXG5cclxuIl19
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1jb3JlL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBSUgsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsNENBQTRDLENBQUM7QUFDM0QsY0FBYyxrREFBa0QsQ0FBQztBQUNqRSxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscURBQXFELENBQUM7QUFDcEUsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLDBEQUEwRCxDQUFDO0FBQ3pFLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxpRUFBaUUsQ0FBQztBQUNoRixjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLHVFQUF1RSxDQUFDO0FBQ3RGLGNBQWMsMkRBQTJELENBQUM7QUFDMUUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG9FQUFvRSxDQUFDO0FBQ25GLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0REFBNEQsQ0FBQztBQUMzRSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsNERBQTRELENBQUM7QUFDM0UsY0FBYyxnQ0FBZ0MsQ0FBQztBQUMvQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYyxrQ0FBa0MsQ0FBQztBQUNqRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsbUVBQW1FLENBQUM7QUFDbEYsY0FBYywrRUFBK0UsQ0FBQztBQUM5RixjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLHVEQUF1RCxDQUFDO0FBQ3RFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxnRUFBZ0UsQ0FBQztBQUMvRSxjQUFjLHlEQUF5RCxDQUFDO0FBQ3hFLGNBQWMsMENBQTBDLENBQUM7QUFDekQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGtFQUFrRSxDQUFDO0FBQ2pGLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyxzQ0FBc0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBteS1saWJcclxuICovXHJcblxyXG5pbXBvcnQgeyBmcm9tIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jbGllbnRDb3JlLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9hdXRoL2F1dGgtZ3VhcmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9hdXRoL2F1dGguc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9jb21tb24tYXBpL2NvbW1vbi1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9kb2MtYXBpL2RvYy1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2FwaS9wdWJsaWMtYXBpL3B1YmxpYy1hcGkuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NoYXJ0L2NoYXJ0LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb21tb24tdXRpbHMvY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jb21tb24tdXRpbHMvY29yZS1mdW5jdGlvbi9jb3JlLWZ1bmN0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jdXN0b212YWxpZGF0aW9uL2N1c3RvbXZhbGlkYXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2RhdGEtc2hhcmUvZGF0YS1zaGFyZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGF0YS1zaGFyZS9kb2MtZGF0YS1zaGFyZS9kb2MtZGF0YS1zaGFyZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGF0YS1zaGFyZS9wdWJsaWMtZGF0YS1zaGFyZS9wdWJsaWMtZGF0YS1zaGFyZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZW5jcnlwdGlvbi9lbmNyeXB0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9lbnYvZW52LnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ncmlkL2dyaWQtY29tbW9uLWZ1bmN0aW9uL2dyaWQtY29tbW9uLWZ1bmN0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9ncmlkL2dyaWQtc2VsZWN0aW9uL2dyaWQtc2VsZWN0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9sb2FkZXIvbG9hZGVyLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tZW51LW9yLW1vZHVsZS1jb21tb24vbWVudS1vci1tb2R1bGUtY29tbW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9tb2RlbC9tb2RlbC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbm90aWZ5L25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcGVybWlzc2lvbi9wZXJtaXNzaW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9zdG9yYWdlL3N0b3JhZ2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2xpbXMtY2FsY3VsYXRpb25zL2xpbXMtY2FsY3VsYXRpb25zLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy90cmVlLWNvbXBvbmVudC90cmVlLWNvbXBvbmVudC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdm9pY2UtcmVjb2duaXRpb24vdm9pY2UtcmVjb2duaXRpb24uc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lbnVtcy9jb21tb24uZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lbnVtcy9lbmQtcG9pbnQuZW51bSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9lbnVtcy9zdG9yYWdlLXRva2VuLXN0YXR1cy5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2VudW1zL2tleWNvZGVzLmVudW0nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zaGFyZWQvZW51bXMvb3BlcmF0b3JfdHlwZS5lbnVtJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZGF0YS1zaGFyZS9hdXRoLWRhdGEtc2hhcmUvYXV0aC1kYXRhLXNoYXJlLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kYXRhLXNoYXJlL2NvbW1vbi1hcHAtZGF0YS1zaGFyZS9jb21tb24tYXBwLWRhdGEtc2hhcmUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2ZpbGVIYW5kbGVyL2ZpbGUtaGFuZGxlci5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2hhcmVkL2NvbmZpZ3VyYXRpb24vZWRpdG9yLWNvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NoYXJlZC9jb25maWd1cmF0aW9uL2NvbmZpZyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Zvcm0vZm9ybS1jcmVhdGlvbi9mb3JtLWNyZWF0aW9uLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9mb3JtL2Zvcm0tdmFsdWUvZm9ybS12YWx1ZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2FwaS1jYWxsL2FwaS1jYWxsLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9mb3JtL2Zvcm0tY29udHJvbC9mb3JtLWNvbnRyb2wuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2NoZWNrLWlmL2NoZWNrLWlmLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9hcGkvYXBpLWNhbGwtcmVzcG9uY2UvYXBpLWNhbGwtcmVzcG9uY2Uuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2Zvcm0vbXVsdGlwbGUtZm9ybS9tdWx0aXBsZS1mb3JtLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9kb3dubG9hZC9kb3dubG9hZC5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvdXNlclByZWZyZW5jZS91c2VyLXByZWZyZW5jZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvYXBpL2F3cy1zZWNyZXQtbWFuYWdlci9hd3Mtc2VjcmV0LW1hbmFnZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3N0b3JhZ2UvY29va2llcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvcm91dGVyL3JvdXRlci5zZXJ2aWNlJztcclxuXHJcbiJdfQ==