@rangertechnologies/ngnxt 2.1.121 → 2.1.122

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/esm2022/environments/version.mjs +5 -5
  2. package/esm2022/lib/components/custom-input/custom-input.component.mjs +4 -2
  3. package/esm2022/lib/components/datatable/datatable.component.mjs +59 -8
  4. package/esm2022/lib/components/file-upload/file-upload.component.mjs +4 -2
  5. package/esm2022/lib/components/image-cropper/component/cropper.state.mjs +208 -0
  6. package/esm2022/lib/components/image-cropper/component/image-cropper.component.mjs +562 -0
  7. package/esm2022/lib/components/image-cropper/interfaces/basic-event.interface.mjs +2 -0
  8. package/esm2022/lib/components/image-cropper/interfaces/cropper-options.interface.mjs +2 -0
  9. package/esm2022/lib/components/image-cropper/interfaces/cropper-position.interface.mjs +2 -0
  10. package/esm2022/lib/components/image-cropper/interfaces/dimensions.interface.mjs +2 -0
  11. package/esm2022/lib/components/image-cropper/interfaces/exif-transform.interface.mjs +2 -0
  12. package/esm2022/lib/components/image-cropper/interfaces/image-cropped-event.interface.mjs +2 -0
  13. package/esm2022/lib/components/image-cropper/interfaces/image-transform.interface.mjs +2 -0
  14. package/esm2022/lib/components/image-cropper/interfaces/index.mjs +2 -0
  15. package/esm2022/lib/components/image-cropper/interfaces/loaded-image.interface.mjs +2 -0
  16. package/esm2022/lib/components/image-cropper/interfaces/move-start.interface.mjs +8 -0
  17. package/esm2022/lib/components/image-cropper/services/crop.service.mjs +139 -0
  18. package/esm2022/lib/components/image-cropper/services/load-image.service.mjs +194 -0
  19. package/esm2022/lib/components/image-cropper/utils/cropper-position.utils.mjs +239 -0
  20. package/esm2022/lib/components/image-cropper/utils/exif.utils.mjs +79 -0
  21. package/esm2022/lib/components/image-cropper/utils/keyboard.utils.mjs +40 -0
  22. package/esm2022/lib/components/image-cropper/utils/percentage.utils.mjs +4 -0
  23. package/esm2022/lib/components/image-cropper/utils/resize.utils.mjs +75 -0
  24. package/esm2022/lib/nxt-app.module.mjs +5 -2
  25. package/esm2022/lib/pages/builder/element/element.component.mjs +35 -5
  26. package/esm2022/lib/pages/builder/properties/properties.component.mjs +417 -18
  27. package/esm2022/lib/pages/questionbook/questionbook.component.mjs +221 -28
  28. package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +3 -3
  29. package/esm2022/lib/services/data.service.mjs +9 -4
  30. package/esm2022/lib/services/form-builder.service.mjs +2 -2
  31. package/fesm2022/rangertechnologies-ngnxt.mjs +2463 -248
  32. package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
  33. package/lib/components/image-cropper/component/cropper.state.d.ts +29 -0
  34. package/lib/components/image-cropper/component/image-cropper.component.d.ts +109 -0
  35. package/lib/components/image-cropper/interfaces/basic-event.interface.d.ts +4 -0
  36. package/lib/components/image-cropper/interfaces/cropper-options.interface.d.ts +28 -0
  37. package/lib/components/image-cropper/interfaces/cropper-position.interface.d.ts +6 -0
  38. package/lib/components/image-cropper/interfaces/dimensions.interface.d.ts +4 -0
  39. package/lib/components/image-cropper/interfaces/exif-transform.interface.d.ts +4 -0
  40. package/lib/components/image-cropper/interfaces/image-cropped-event.interface.d.ts +11 -0
  41. package/lib/components/image-cropper/interfaces/image-transform.interface.d.ts +9 -0
  42. package/lib/components/image-cropper/interfaces/index.d.ts +7 -0
  43. package/lib/components/image-cropper/interfaces/loaded-image.interface.d.ts +15 -0
  44. package/lib/components/image-cropper/interfaces/move-start.interface.d.ts +17 -0
  45. package/lib/components/image-cropper/services/crop.service.d.ts +13 -0
  46. package/lib/components/image-cropper/services/load-image.service.d.ts +17 -0
  47. package/lib/components/image-cropper/utils/cropper-position.utils.d.ts +11 -0
  48. package/lib/components/image-cropper/utils/exif.utils.d.ts +3 -0
  49. package/lib/components/image-cropper/utils/keyboard.utils.d.ts +5 -0
  50. package/lib/components/image-cropper/utils/percentage.utils.d.ts +1 -0
  51. package/lib/components/image-cropper/utils/resize.utils.d.ts +1 -0
  52. package/lib/nxt-app.module.d.ts +5 -4
  53. package/lib/pages/builder/element/element.component.d.ts +2 -0
  54. package/lib/pages/builder/properties/properties.component.d.ts +248 -0
  55. package/lib/pages/questionbook/questionbook.component.d.ts +39 -1
  56. package/lib/services/form-builder.service.d.ts +1 -1
  57. package/package.json +1 -1
  58. package/rangertechnologies-ngnxt-2.1.122.tgz +0 -0
  59. package/src/lib/style.css +50 -1
  60. package/rangertechnologies-ngnxt-2.1.121.tgz +0 -0
@@ -2,14 +2,14 @@
2
2
  /* tslint:disable */
3
3
  export const VERSION = {
4
4
  "dirty": true,
5
- "raw": "ac21f75-dirty",
6
- "hash": "ac21f75",
5
+ "raw": "b8ec767-dirty",
6
+ "hash": "b8ec767",
7
7
  "distance": null,
8
8
  "tag": null,
9
9
  "semver": null,
10
- "suffix": "ac21f75-dirty",
10
+ "suffix": "b8ec767-dirty",
11
11
  "semverString": null,
12
- "version": "2.1.121"
12
+ "version": "2.1.122"
13
13
  };
14
14
  /* tslint:enable */
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2Vudmlyb25tZW50cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLGVBQWU7SUFDdEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0NBQ3ZCLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJhYzIxZjc1LWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiYWMyMWY3NVwiLFxuICAgIFwiZGlzdGFuY2VcIjogbnVsbCxcbiAgICBcInRhZ1wiOiBudWxsLFxuICAgIFwic2VtdmVyXCI6IG51bGwsXG4gICAgXCJzdWZmaXhcIjogXCJhYzIxZjc1LWRpcnR5XCIsXG4gICAgXCJzZW12ZXJTdHJpbmdcIjogbnVsbCxcbiAgICBcInZlcnNpb25cIjogXCIyLjEuMTIxXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2Vudmlyb25tZW50cy92ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLDJFQUEyRTtBQUMzRSxvQkFBb0I7QUFDcEIsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ25CLE9BQU8sRUFBRSxJQUFJO0lBQ2IsS0FBSyxFQUFFLGVBQWU7SUFDdEIsTUFBTSxFQUFFLFNBQVM7SUFDakIsVUFBVSxFQUFFLElBQUk7SUFDaEIsS0FBSyxFQUFFLElBQUk7SUFDWCxRQUFRLEVBQUUsSUFBSTtJQUNkLFFBQVEsRUFBRSxlQUFlO0lBQ3pCLGNBQWMsRUFBRSxJQUFJO0lBQ3BCLFNBQVMsRUFBRSxTQUFTO0NBQ3ZCLENBQUM7QUFDRixtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBJTVBPUlRBTlQ6IFRISVMgRklMRSBJUyBBVVRPIEdFTkVSQVRFRCEgRE8gTk9UIE1BTlVBTExZIEVESVQgT1IgQ0hFQ0tJTiFcbi8qIHRzbGludDpkaXNhYmxlICovXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IHtcbiAgICBcImRpcnR5XCI6IHRydWUsXG4gICAgXCJyYXdcIjogXCJiOGVjNzY3LWRpcnR5XCIsXG4gICAgXCJoYXNoXCI6IFwiYjhlYzc2N1wiLFxuICAgIFwiZGlzdGFuY2VcIjogbnVsbCxcbiAgICBcInRhZ1wiOiBudWxsLFxuICAgIFwic2VtdmVyXCI6IG51bGwsXG4gICAgXCJzdWZmaXhcIjogXCJiOGVjNzY3LWRpcnR5XCIsXG4gICAgXCJzZW12ZXJTdHJpbmdcIjogbnVsbCxcbiAgICBcInZlcnNpb25cIjogXCIyLjEuMTIyXCJcbn07XG4vKiB0c2xpbnQ6ZW5hYmxlICovXG4iXX0=
@@ -29,9 +29,11 @@ export class CustomInputComponent {
29
29
  // RS 09DEC24 Changed keys
30
30
  ngOnInit() {
31
31
  // Since the idValue holds the Parent Question
32
+ // AP-25MAR25 Parse subText if it's not already an object
33
+ this.question['subText'] = typeof this.question?.subText === 'object' ? this.question?.subText : (typeof this.question['subText'] === 'string' ? JSON.parse(this.question['subText']) : {});
32
34
  if (this.question.subText != undefined) {
33
35
  this.disabled = true;
34
- let dependencyObj = JSON.parse(this.question.subText);
36
+ let dependencyObj = this.question.subText;
35
37
  if (dependencyObj.disabled && dependencyObj.disabled == "false") {
36
38
  this.disabled = false;
37
39
  }
@@ -90,4 +92,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
90
92
  }], inputValue: [{
91
93
  type: Output
92
94
  }] } });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBZ0IvRSxNQUFNLE9BQU8sb0JBQW9CO0lBZ0JYO0lBQXFDO0lBQWtDO0lBZmxGLEtBQUssQ0FBYyxDQUFDLGNBQWM7SUFDbEMsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUMsQ0FBQyx3QkFBd0I7SUFDbkQsV0FBVyxDQUFRO0lBQ25CLEtBQUssQ0FBSztJQUNWLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFZLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtJQUUxRCxZQUFZLENBQUs7SUFDakIsT0FBTyxDQUFLO0lBQ1osVUFBVSxDQUFNO0lBQ2YsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFL0MsWUFBWSxDQUFlO0lBRTNCLFlBQW9CLGFBQTRCLEVBQVMsV0FBd0IsRUFBVSxXQUF3QjtRQUEvRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDbkgsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixRQUFRO1FBQ04sOENBQThDO1FBQzlDLElBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLElBQUksU0FBUyxFQUFFLENBQUM7WUFDdEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7WUFDckIsSUFBSSxhQUFhLEdBQW1CLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxJQUFHLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztpQkFBSSxDQUFDO2dCQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDZCxJQUFHLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDNUIscURBQXFEO29CQUNyRCxJQUFHLFdBQVcsQ0FBQyxRQUFRLElBQUksU0FBUyxJQUFJLFdBQVcsQ0FBQyxjQUFjLElBQUksYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7d0JBQ3JHLDBDQUEwQzt3QkFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxDQUFDO29CQUNELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNULCtDQUErQztRQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBUztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBekRVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLGlWQ2hCakMsNHRDQTRCQTs7NEZEWmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi8uLi93cmFwcGVyJztcbmltcG9ydCB7IERlcGVuZGVuY3lNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kZXBlbmRlbmN5TWV0YSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20taW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZTogYW55IHwgYW55W107IC8vIGlucHV0IHZhbHVlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBRdWVzdGlvblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyBpbnB1dCBkaXNhYmxlZCBvciBub3RcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6c3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjphbnk7XG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRPbmx5IDpib29sZWFuID0gZmFsc2U7IC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2VcblxuICBASW5wdXQoKSBuZ0NsYXNzVmFsdWU6YW55O1xuICBASW5wdXQoKSBpZFZhbHVlOmFueTtcbiAgQElucHV0KCkgZm9jdXNFdmVudDogYW55O1xuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyBcblxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7IFxuICB9XG5cbiAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2luY2UgdGhlIGlkVmFsdWUgaG9sZHMgdGhlIFBhcmVudCBRdWVzdGlvblxuICAgIGlmKHRoaXMucXVlc3Rpb24uc3ViVGV4dCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgbGV0IGRlcGVuZGVuY3lPYmo6IERlcGVuZGVuY3lNZXRhID0gSlNPTi5wYXJzZSh0aGlzLnF1ZXN0aW9uLnN1YlRleHQpO1xuICAgICAgaWYoZGVwZW5kZW5jeU9iai5kaXNhYmxlZCAmJiBkZXBlbmRlbmN5T2JqLmRpc2FibGVkID09IFwiZmFsc2VcIil7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgc3Vic2NyaXB0aW9uIGZvciB0aGUgY2hhbmdlJyk7XG4gICAgICAgICAgICBpZihjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSB7XG4gICAgICAgICAgICAgIC8vIFZEIDIwQXVnMjQgaGFuZGxpbmcgdGhlIG11bHRpcGxlIG9iamVjdFxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShjaGFuZ2VWYWx1ZS52YWx1ZU9iaixkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGQpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2UoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBwcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gY29tcG9uZW50IGRlc3Ryb3llZFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG4gIFxuICBvbklucHV0Q2hhbmdlKGlucHV0OmFueSl7XG4gICAgdGhpcy5pbnB1dFZhbHVlLmVtaXQoaW5wdXQudGFyZ2V0LnZhbHVlKTtcbiAgfVxufVxuIiwiIDwhLS0gSEEgMTlERUMyMyBJbmNsdWRlZCBTdHlsZSB2YWx1ZSBmcm9tIFNhbGVzZm9yY2UgLS0+XG4gIDwhLS0gSEEgMTgtSkFOLTI0IEFkZGVkIHRoZXNlIGNsYXNzZXMgZm9yIHN0eWxlLCBIQSAzMS1KQU4tMjQgQWRkZWQgdGVybmFyeSBmb3Igc3R5bGUgLS0+XG4gIDwhLS0gSEEgMDJGRUIyNCBxdWVzdGlvbiBpbnB1dCB3aWxsIGhvbGQgdGhlIHZhbHVlIHRvIGRpc3BsYXkgLS0+XG4gIDwhLS0gLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZS0tPlxuICA8IS0tIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzLS0+IFxuICA8aW5wdXQgKm5nSWY9XCIhZnJvbVNoZW5nZWxcIiB0eXBlPVwidGV4dFwiIFxuICAgICAgIFsobmdNb2RlbCldPVwicXVlc3Rpb24uaW5wdXRcIiBcbiAgICAgICBbbmdDbGFzc109XCJuZ0NsYXNzVmFsdWVcIlxuICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgZm9ybS1jb250cm9sXCJcbiAgICAgICBbaWRdPVwiaWRWYWx1ZVwiXG4gICAgICAgKGZvY3VzKT1cImZvY3VzRXZlbnRcIlxuICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJlcnJvciA/ICdyZWQgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgW3N0eWxlXT1cInF1ZXN0aW9uPy5zdHlsZT8uaW5wdXRTdHlsZVwiXG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbjxpbnB1dCAqbmdJZj1cImZyb21TaGVuZ2VsXCIgXG4gICAgICAgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5pbnB1dFwiXG4gICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgZm9ybS1jb250cm9sXCIgXG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJyBcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgW3N0eWxlXT1cInF1ZXN0aW9uPy5zdHlsZT8uaW5wdXRTdHlsZVwiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XG48IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuPHNwYW4gKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+e3txdWVzdGlvbj8uZXJyb3JNZXNzYWdlfX0qPC9zcGFuPlxuIl19
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1pbnB1dC9jdXN0b20taW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLWlucHV0L2N1c3RvbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7O0FBZ0IvRSxNQUFNLE9BQU8sb0JBQW9CO0lBZ0JYO0lBQXFDO0lBQWtDO0lBZmxGLEtBQUssQ0FBYyxDQUFDLGNBQWM7SUFDbEMsUUFBUSxDQUFVO0lBQ2xCLFFBQVEsR0FBWSxLQUFLLENBQUMsQ0FBQyx3QkFBd0I7SUFDbkQsV0FBVyxDQUFRO0lBQ25CLEtBQUssQ0FBSztJQUNWLFdBQVcsR0FBWSxLQUFLLENBQUM7SUFDN0IsUUFBUSxHQUFZLEtBQUssQ0FBQyxDQUFDLCtCQUErQjtJQUUxRCxZQUFZLENBQUs7SUFDakIsT0FBTyxDQUFLO0lBQ1osVUFBVSxDQUFNO0lBQ2YsVUFBVSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFFL0MsWUFBWSxDQUFlO0lBRTNCLFlBQW9CLGFBQTRCLEVBQVMsV0FBd0IsRUFBVSxXQUF3QjtRQUEvRixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDbkgsQ0FBQztJQUVELDBCQUEwQjtJQUMxQixRQUFRO1FBQ04sOENBQThDO1FBQzlDLHlEQUF5RDtRQUN6RCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLE9BQU8sSUFBSSxDQUFDLFFBQVEsRUFBRSxPQUFPLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDNUwsSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sSUFBSSxTQUFTLEVBQUUsQ0FBQztZQUN0QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQztZQUNyQixJQUFJLGFBQWEsR0FBUSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUMvQyxJQUFHLGFBQWEsQ0FBQyxRQUFRLElBQUksYUFBYSxDQUFDLFFBQVEsSUFBSSxPQUFPLEVBQUMsQ0FBQztnQkFDOUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7WUFDeEIsQ0FBQztpQkFBSSxDQUFDO2dCQUNKLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLENBQUM7WUFDRCw0QkFBNEI7WUFDNUIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsQ0FDL0QsQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDZCxJQUFHLFdBQVcsSUFBSSxTQUFTLEVBQUUsQ0FBQztvQkFDNUIscURBQXFEO29CQUNyRCxJQUFHLFdBQVcsQ0FBQyxRQUFRLElBQUksU0FBUyxJQUFJLFdBQVcsQ0FBQyxjQUFjLElBQUksYUFBYSxDQUFDLGdCQUFnQixFQUFFLENBQUM7d0JBQ3JHLDBDQUEwQzt3QkFDMUMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQzt3QkFDdEYsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUNuQyxDQUFDO29CQUNELElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUNuRSxDQUFDO1lBQ0gsQ0FBQyxDQUNGLENBQUM7UUFDSixDQUFDO0lBQ0gsQ0FBQztJQUVELFVBQVU7SUFDVixDQUFDO0lBRUQsV0FBVztRQUNULCtDQUErQztRQUMvQyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxhQUFhLENBQUMsS0FBUztRQUNyQixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNDLENBQUM7d0dBM0RVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLGlWQ2hCakMsNHRDQTRCQTs7NEZEWmEsb0JBQW9CO2tCQU5oQyxTQUFTOytCQUNFLGtCQUFrQjtzSUFNbkIsS0FBSztzQkFBYixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRUcsWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDaGFuZ2VTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvY2hhbmdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2hhbmdlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL2NoYW5nZVdyYXBwZXInO1xuaW1wb3J0IHsgUXVlc3Rpb24gfSBmcm9tICcuLi8uLi93cmFwcGVyJztcbmltcG9ydCB7IERlcGVuZGVuY3lNZXRhIH0gZnJvbSAnLi4vLi4vaW50ZXJmYWNlcy9kZXBlbmRlbmN5TWV0YSc7XG4vLyBIQSAxOURFQzIzIGltcG9ydGVkIHRyYW5zbGF0aW9uIHNlcnZpY2VcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vaTE4bi5zZXJ2aWNlJztcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWN1c3RvbS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20taW5wdXQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20taW5wdXQuY29tcG9uZW50LmNzcyddXG59KVxuXG5leHBvcnQgY2xhc3MgQ3VzdG9tSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSB2YWx1ZTogYW55IHwgYW55W107IC8vIGlucHV0IHZhbHVlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBRdWVzdGlvblxuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlOyAvLyBpbnB1dCBkaXNhYmxlZCBvciBub3RcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI6c3RyaW5nO1xuICBASW5wdXQoKSBlcnJvcjphbnk7XG4gIEBJbnB1dCgpIGZyb21TaGVuZ2VsOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIHJlYWRPbmx5IDpib29sZWFuID0gZmFsc2U7IC8vIFZEIDEySnVuMjQgLSByZWFkb25seSBjaGFuZ2VcblxuICBASW5wdXQoKSBuZ0NsYXNzVmFsdWU6YW55O1xuICBASW5wdXQoKSBpZFZhbHVlOmFueTtcbiAgQElucHV0KCkgZm9jdXNFdmVudDogYW55O1xuICBAT3V0cHV0KCkgaW5wdXRWYWx1ZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpOyBcblxuICBzdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNoYW5nZVNlcnZpY2U6IENoYW5nZVNlcnZpY2UsIHB1YmxpYyBpMThuU2VydmljZTogSTE4blNlcnZpY2UsIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlKSB7IFxuICB9XG5cbiAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gU2luY2UgdGhlIGlkVmFsdWUgaG9sZHMgdGhlIFBhcmVudCBRdWVzdGlvblxuICAgIC8vIEFQLTI1TUFSMjUgUGFyc2Ugc3ViVGV4dCBpZiBpdCdzIG5vdCBhbHJlYWR5IGFuIG9iamVjdFxuICAgIHRoaXMucXVlc3Rpb25bJ3N1YlRleHQnXSA9IHR5cGVvZiB0aGlzLnF1ZXN0aW9uPy5zdWJUZXh0ID09PSAnb2JqZWN0JyA/IHRoaXMucXVlc3Rpb24/LnN1YlRleHQgOiAodHlwZW9mIHRoaXMucXVlc3Rpb25bJ3N1YlRleHQnXSA9PT0gJ3N0cmluZycgPyBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb25bJ3N1YlRleHQnXSkgOiB7fSk7XG4gICAgaWYodGhpcy5xdWVzdGlvbi5zdWJUZXh0ICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgICBsZXQgZGVwZW5kZW5jeU9iajogYW55ID0gdGhpcy5xdWVzdGlvbi5zdWJUZXh0O1xuICAgICAgaWYoZGVwZW5kZW5jeU9iai5kaXNhYmxlZCAmJiBkZXBlbmRlbmN5T2JqLmRpc2FibGVkID09IFwiZmFsc2VcIil7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1lbHNle1xuICAgICAgICB0aGlzLmRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIH1cbiAgICAgIC8vIFN1YnNjcmliZSBmb3IgdGhlIGNoYW5nZXNcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9uID0gdGhpcy5jaGFuZ2VTZXJ2aWNlLmNoYW5nZUFubm91bmNlZCQuc3Vic2NyaWJlKFxuICAgICAgICAoY2hhbmdlVmFsdWUpID0+IHtcbiAgICAgICAgICBpZihjaGFuZ2VWYWx1ZSAhPSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdpbnNpZGUgc3Vic2NyaXB0aW9uIGZvciB0aGUgY2hhbmdlJyk7XG4gICAgICAgICAgICBpZihjaGFuZ2VWYWx1ZS52YWx1ZU9iaiAhPSB1bmRlZmluZWQgJiYgY2hhbmdlVmFsdWUuZnJvbVF1ZXN0aW9uSWQgPT0gZGVwZW5kZW5jeU9iai5zb3VyY2VRdWVzdGlvbklkKSB7XG4gICAgICAgICAgICAgIC8vIFZEIDIwQXVnMjQgaGFuZGxpbmcgdGhlIG11bHRpcGxlIG9iamVjdFxuICAgICAgICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy5kYXRhU2VydmljZS5nZXRWYWx1ZShjaGFuZ2VWYWx1ZS52YWx1ZU9iaixkZXBlbmRlbmN5T2JqLnZhbHVlRmllbGQpO1xuICAgICAgICAgICAgICB0aGlzLmlucHV0VmFsdWUuZW1pdCh0aGlzLnZhbHVlKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2hhbmdlU2VydmljZS5jb25maXJtQ2hhbmdlKGRlcGVuZGVuY3lPYmouc291cmNlUXVlc3Rpb25JZCk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIG5nT25DaGFuZ2UoKTogdm9pZCB7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICAvLyBwcmV2ZW50IG1lbW9yeSBsZWFrIHdoZW4gY29tcG9uZW50IGRlc3Ryb3llZFxuICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICB9XG4gIFxuICBvbklucHV0Q2hhbmdlKGlucHV0OmFueSl7XG4gICAgdGhpcy5pbnB1dFZhbHVlLmVtaXQoaW5wdXQudGFyZ2V0LnZhbHVlKTtcbiAgfVxufVxuIiwiIDwhLS0gSEEgMTlERUMyMyBJbmNsdWRlZCBTdHlsZSB2YWx1ZSBmcm9tIFNhbGVzZm9yY2UgLS0+XG4gIDwhLS0gSEEgMTgtSkFOLTI0IEFkZGVkIHRoZXNlIGNsYXNzZXMgZm9yIHN0eWxlLCBIQSAzMS1KQU4tMjQgQWRkZWQgdGVybmFyeSBmb3Igc3R5bGUgLS0+XG4gIDwhLS0gSEEgMDJGRUIyNCBxdWVzdGlvbiBpbnB1dCB3aWxsIGhvbGQgdGhlIHZhbHVlIHRvIGRpc3BsYXkgLS0+XG4gIDwhLS0gLy8gVkQgMTJKdW4yNCAtIHJlYWRvbmx5IGNoYW5nZS0tPlxuICA8IS0tIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzLS0+IFxuICA8aW5wdXQgKm5nSWY9XCIhZnJvbVNoZW5nZWxcIiB0eXBlPVwidGV4dFwiIFxuICAgICAgIFsobmdNb2RlbCldPVwicXVlc3Rpb24uaW5wdXRcIiBcbiAgICAgICBbbmdDbGFzc109XCJuZ0NsYXNzVmFsdWVcIlxuICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgZm9ybS1jb250cm9sXCJcbiAgICAgICBbaWRdPVwiaWRWYWx1ZVwiXG4gICAgICAgKGZvY3VzKT1cImZvY3VzRXZlbnRcIlxuICAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgICAgW3N0eWxlLmJvcmRlci1jb2xvcl09XCJlcnJvciA/ICdyZWQgIWltcG9ydGFudCcgOiAnJ1wiXG4gICAgICAgW3N0eWxlXT1cInF1ZXN0aW9uPy5zdHlsZT8uaW5wdXRTdHlsZVwiXG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJ1wiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XG5cbjxpbnB1dCAqbmdJZj1cImZyb21TaGVuZ2VsXCIgXG4gICAgICAgWyhuZ01vZGVsKV09XCJxdWVzdGlvbi5pbnB1dFwiXG4gICAgICAgdHlwZT1cInRleHRcIiBcbiAgICAgICBbcmVhZE9ubHldPVwicmVhZE9ubHlcIlxuICAgICAgIGNsYXNzPVwic2hlLWxpbmUtaW5wdXQgZm9ybS1jb250cm9sXCIgXG4gICAgICAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyID8gcGxhY2Vob2xkZXIgOiAnJyBcIlxuICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgW3N0eWxlXT1cInF1ZXN0aW9uPy5zdHlsZT8uaW5wdXRTdHlsZVwiXG4gICAgICAgKGlucHV0KT1cIm9uSW5wdXRDaGFuZ2UoJGV2ZW50KVwiIC8+XG48IS0tIEhBIDE5REVDMjMgRm9yIHRyYW5zbGF0aW9uIC0tPlxuPHNwYW4gKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZXJyb3ItbXNnXCI+e3txdWVzdGlvbj8uZXJyb3JNZXNzYWdlfX0qPC9zcGFuPlxuIl19