@bnsights/bbsf-controls 1.0.170 → 1.0.172

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 (63) hide show
  1. package/README.md +15 -4
  2. package/esm2022/lib/Shared/Components/app-base-component.mjs +4 -4
  3. package/esm2022/lib/Shared/Components/ng-tag-input.mjs +7 -7
  4. package/esm2022/lib/Shared/Directives/appPreventDoubleClick.directive.mjs +38 -0
  5. package/esm2022/lib/Shared/Directives/template-name.directive.mjs +5 -6
  6. package/esm2022/lib/Shared/Models/ControlOptionsBase.mjs +1 -1
  7. package/esm2022/lib/Shared/Models/MultilingualControlOptionsBase.mjs +1 -1
  8. package/esm2022/lib/Shared/Models/PagingOptions.mjs +3 -1
  9. package/esm2022/lib/Shared/Pipes/bbsf-date-time.pipe.mjs +5 -6
  10. package/esm2022/lib/Shared/Pipes/bbsf-date.pipe.mjs +5 -6
  11. package/esm2022/lib/Shared/default_intl.mjs +4 -4
  12. package/esm2022/lib/Shared/services/ControlUtility.mjs +4 -4
  13. package/esm2022/lib/Shared/services/GlobalSettings.service.mjs +4 -4
  14. package/esm2022/lib/Shared/services/OnPagingFiltersChange.service.mjs +4 -4
  15. package/esm2022/lib/Shared/services/file-upload.service.mjs +4 -4
  16. package/esm2022/lib/Shared/services/render-component-service.service.mjs +4 -4
  17. package/esm2022/lib/Shared/services/validationErrorMassage.service.mjs +4 -4
  18. package/esm2022/lib/controls/AutocompleteTextBox/AutocompleteTextBox.component.mjs +21 -8
  19. package/esm2022/lib/controls/Calendar/Calendar.component.mjs +5 -5
  20. package/esm2022/lib/controls/CheckBox/CheckBox.component.mjs +5 -5
  21. package/esm2022/lib/controls/ConfirmationModal/ConfirmationModal.component.mjs +5 -5
  22. package/esm2022/lib/controls/DateTimePicker/DateTimePicker.component.mjs +28 -17
  23. package/esm2022/lib/controls/DropdownList/DropdownList.component.mjs +44 -16
  24. package/esm2022/lib/controls/FileUplaod/FileUplaod.component.mjs +5 -5
  25. package/esm2022/lib/controls/Form/Form.component.mjs +5 -5
  26. package/esm2022/lib/controls/HtmlEditor/HtmlEditor.component.mjs +5 -5
  27. package/esm2022/lib/controls/ImageUpload/ImageUpload.component.mjs +5 -5
  28. package/esm2022/lib/controls/MapAutoComplete/MapAutoComplete.component.mjs +7 -7
  29. package/esm2022/lib/controls/MarkdownEditor/markdown-editor.component.mjs +5 -5
  30. package/esm2022/lib/controls/MultiLingualHtmlEditor/MultiLingualHtmlEditor.component.mjs +5 -5
  31. package/esm2022/lib/controls/MultiLingualTextArea/MultiLingualTextArea.component.mjs +5 -5
  32. package/esm2022/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.mjs +43 -51
  33. package/esm2022/lib/controls/Paging/JwPagination.component.mjs +5 -6
  34. package/esm2022/lib/controls/Paging/Paging.component.mjs +298 -14
  35. package/esm2022/lib/controls/Phone/Phone.component.mjs +6 -5
  36. package/esm2022/lib/controls/ProfileImageUploader/ProfileImageUploader.component.mjs +8 -8
  37. package/esm2022/lib/controls/RadioButton/RadioButton.component.mjs +6 -5
  38. package/esm2022/lib/controls/Recaptcha/Recaptcha.component.mjs +8 -8
  39. package/esm2022/lib/controls/Repeater/repeater/repeater.component.mjs +5 -5
  40. package/esm2022/lib/controls/Repeater/repeater-field-builder/repeater-field-builder.component.mjs +5 -5
  41. package/esm2022/lib/controls/Repeater/repeater-item-field/repeater-item-field.component.mjs +5 -5
  42. package/esm2022/lib/controls/Repeater/repeater-table/repeater-table.component.mjs +5 -5
  43. package/esm2022/lib/controls/TagsInput/TagsInput.component.mjs +15 -5
  44. package/esm2022/lib/controls/TextArea/TextArea.component.mjs +46 -29
  45. package/esm2022/lib/controls/TextBox/TextBox.component.mjs +12 -9
  46. package/esm2022/lib/controls/Toggleslide/Toggleslide.component.mjs +5 -5
  47. package/esm2022/lib/controls/bbsf-controls.module.mjs +46 -34
  48. package/esm2022/lib/controls/page-header-component/page-header-component.component.mjs +8 -7
  49. package/esm2022/public-api.mjs +2 -1
  50. package/fesm2022/bnsights-bbsf-controls.mjs +716 -309
  51. package/fesm2022/bnsights-bbsf-controls.mjs.map +1 -1
  52. package/lib/Shared/Directives/appPreventDoubleClick.directive.d.ts +12 -0
  53. package/lib/Shared/Models/ControlOptionsBase.d.ts +4 -3
  54. package/lib/Shared/Models/MultilingualControlOptionsBase.d.ts +2 -0
  55. package/lib/Shared/Models/PagingOptions.d.ts +2 -0
  56. package/lib/controls/DropdownList/DropdownList.component.d.ts +3 -1
  57. package/lib/controls/MultiLingualTextBox/MultiLingualTextBox.component.d.ts +1 -1
  58. package/lib/controls/Paging/Paging.component.d.ts +56 -4
  59. package/lib/controls/TextArea/TextArea.component.d.ts +1 -0
  60. package/lib/controls/bbsf-controls.module.d.ts +29 -25
  61. package/package.json +19 -20
  62. package/public-api.d.ts +1 -0
  63. package/bnsights-bbsf-controls-1.0.170.tgz +0 -0
@@ -95,8 +95,8 @@ export class JwPaginationComponent {
95
95
  pages: pages
96
96
  };
97
97
  }
98
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JwPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: JwPaginationComponent, selector: "jw-pagination", inputs: { items: "items", initialPage: "initialPage", pageSize: "pageSize", maxPages: "maxPages", ShowFirstAndLast: "ShowFirstAndLast" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
98
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: JwPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
99
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: JwPaginationComponent, selector: "jw-pagination", inputs: { items: "items", initialPage: "initialPage", pageSize: "pageSize", maxPages: "maxPages", ShowFirstAndLast: "ShowFirstAndLast" }, outputs: { changePage: "changePage" }, usesOnChanges: true, ngImport: i0, template: `
100
100
  <ul *ngIf="pager.pages && pager.pages.length" class="pagination">
101
101
  <li *ngIf="ShowFirstAndLast" [ngClass]="{disabled:pager.currentPage === 1}" class="page-item first-item">
102
102
  <a (click)="setPage(1)" class="page-link">❮❮</a>
@@ -116,7 +116,7 @@ export class JwPaginationComponent {
116
116
  </ul>
117
117
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
118
118
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: JwPaginationComponent, decorators: [{
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: JwPaginationComponent, decorators: [{
120
120
  type: Component,
121
121
  args: [{
122
122
  selector: 'jw-pagination',
@@ -138,8 +138,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
138
138
  <a (click)="setPage(pager.totalPages)" class="page-link">❯❯</a>
139
139
  </li>
140
140
  </ul>
141
- `,
142
- standalone: false
141
+ `
143
142
  }]
144
143
  }], propDecorators: { items: [{
145
144
  type: Input
@@ -154,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImpor
154
153
  }], ShowFirstAndLast: [{
155
154
  type: Input
156
155
  }] } });
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSndQYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvSndQYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQzs7O0FBMEJ6RyxNQUFNLE9BQU8scUJBQXFCO0lBeEJsQztRQTBCYyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUdsQyxVQUFLLEdBQVEsRUFBRSxDQUFDO0tBdUZuQjtJQXJGRyxRQUFRO1FBQ0osc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFDekIsT0FBTTtRQUNWLHdDQUF3QztRQUN4QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElB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Q0FBQyxDQUFDLENBQUM7UUFDNUcsK0RBQStEO1FBQy9ELE9BQU87WUFDSCxVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7SUFDTixDQUFDOzhHQTlGUSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwyUEF0QnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmI7OzJGQUlZLHFCQUFxQjtrQkF4QmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JiO29CQUNHLFVBQVUsRUFBRSxLQUFLO2lCQUNwQjs4QkFHWSxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0ksVUFBVTtzQkFBbkIsTUFBTTtnQkFDRSxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBPbkNoYW5nZXMsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICdqdy1wYWdpbmF0aW9uJyxcclxuICAgIHRlbXBsYXRlOiBgXHJcbiAgPHVsICpuZ0lmPVwicGFnZXIucGFnZXMgJiYgcGFnZXIucGFnZXMubGVuZ3RoXCIgY2xhc3M9XCJwYWdpbmF0aW9uXCI+XHJcbiAgPGxpICpuZ0lmPVwiU2hvd0ZpcnN0QW5kTGFzdFwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZSA9PT0gMX1cIiBjbGFzcz1cInBhZ2UtaXRlbSBmaXJzdC1pdGVtXCI+XHJcbiAgICAgIDxhIChjbGljayk9XCJzZXRQYWdlKDEpXCIgY2xhc3M9XCJwYWdlLWxpbmtcIj7ina7ina48L2E+XHJcbiAgPC9saT5cclxuICA8bGkgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlID09PSAxfVwiIGNsYXNzPVwicGFnZS1pdGVtIHByZXZpb3VzLWl0ZW1cIj5cclxuICAgICAgPGEgKGNsaWNrKT1cInNldFBhZ2UocGFnZXIuY3VycmVudFBhZ2UgLSAxKVwiIGNsYXNzPVwicGFnZS1saW5rXCI+4p2uPC9hPlxyXG4gIDwvbGk+XHJcbiAgPGxpICpuZ0Zvcj1cImxldCBwYWdlIG9mIHBhZ2VyLnBhZ2VzXCIgW25nQ2xhc3NdPVwie2FjdGl2ZTpwYWdlci5jdXJyZW50UGFnZSA9PT0gcGFnZX1cIiBjbGFzcz1cInBhZ2UtaXRlbSBudW1iZXItaXRlbVwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwic2V0UGFnZShwYWdlKVwiIGNsYXNzPVwicGFnZS1saW5rXCI+e3twYWdlfX08L2E+XHJcbiAgPC9saT5cclxuICA8bGkgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlID09PSBwYWdlci50b3RhbFBhZ2VzfVwiIGNsYXNzPVwicGFnZS1pdGVtIG5leHQtaXRlbVwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwic2V0UGFnZShwYWdlci5jdXJyZW50UGFnZSArIDEpXCIgY2xhc3M9XCJwYWdlLWxpbmtcIj7ina88L2E+XHJcbiAgPC9saT5cclxuICA8bGkgICpuZ0lmPVwiU2hvd0ZpcnN0QW5kTGFzdFwiIFtuZ0NsYXNzXT1cIntkaXNhYmxlZDpwYWdlci5jdXJyZW50UGFnZSA9PT0gcGFnZXIudG90YWxQYWdlc31cIiBjbGFzcz1cInBhZ2UtaXRlbSBsYXN0LWl0ZW1cIj5cclxuICAgICAgPGEgKGNsaWNrKT1cInNldFBhZ2UocGFnZXIudG90YWxQYWdlcylcIiBjbGFzcz1cInBhZ2UtbGlua1wiPuKdr+KdrzwvYT5cclxuICA8L2xpPlxyXG48L3VsPlxyXG5gLFxyXG4gICAgc3RhbmRhbG9uZTogZmFsc2VcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBKd1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PjtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2VQYWdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgaW5pdGlhbFBhZ2UgPSAxO1xyXG4gICAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcclxuICAgIEBJbnB1dCgpIG1heFBhZ2VzID0gMTA7XHJcbiAgICBASW5wdXQoKSBTaG93Rmlyc3RBbmRMYXN0ID0gZmFsc2U7XHJcblxyXG5cclxuICAgIHBhZ2VyOiBhbnkgPSB7fTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvLyBzZXQgcGFnZSBpZiBpdGVtcyBhcnJheSBpc24ndCBlbXB0eVxyXG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLmluaXRpYWxQYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zLmZpcnN0Q2hhbmdlKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAvLyByZXNldCBwYWdlIGlmIGl0ZW1zIGFycmF5IGhhcyBjaGFuZ2VkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLml0ZW1zLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWdlKHRoaXMuaW5pdGlhbFBhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYWdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIC8vIGdldCBuZXcgcGFnZXIgb2JqZWN0IGZvciBzcGVjaWZpZWQgcGFnZVxyXG4gICAgICAgIHRoaXMucGFnZXIgPSB0aGlzLnBhZ2luYXRlKHRoaXMuaXRlbXMubGVuZ3RoLCBwYWdlLCB0aGlzLnBhZ2VTaXplLCB0aGlzLm1heFBhZ2VzKTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IG5ldyBwYWdlIG9mIGl0ZW1zIGZyb20gaXRlbXMgYXJyYXlcclxuICAgICAgICB2YXIgcGFnZU9mSXRlbXMgPSB0aGlzLml0ZW1zLnNsaWNlKHRoaXMucGFnZXIuc3RhcnRJbmRleCwgdGhpcy5wYWdlci5lbmRJbmRleCArIDEpO1xyXG5cclxuICAgICAgICAvLyBjYWxsIGNoYW5nZSBwYWdlIGZ1bmN0aW9uIGluIHBhcmVudCBjb21wb25lbnRcclxuICAgICAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh0aGlzLnBhZ2VyLmN1cnJlbnRQYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBwYWdpbmF0ZSh0b3RhbEl0ZW1zLCBjdXJyZW50UGFnZSwgcGFnZVNpemUsIG1heFBhZ2VzKSB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSB2b2lkIDApIHsgY3VycmVudFBhZ2UgPSAxOyB9XHJcbiAgICAgICAgaWYgKHBhZ2VTaXplID09PSB2b2lkIDApIHsgcGFnZVNpemUgPSAxMDsgfVxyXG4gICAgICAgIGlmIChtYXhQYWdlcyA9PT0gdm9pZCAwKSB7IG1heFBhZ2VzID0gMTA7IH1cclxuICAgICAgICAvLyBjYWxjdWxhdGUgdG90YWwgcGFnZXNcclxuICAgICAgICB2YXIgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbEl0ZW1zIC8gcGFnZVNpemUpO1xyXG4gICAgICAgIC8vIGVuc3VyZSBjdXJyZW50IHBhZ2UgaXNuJ3Qgb3V0IG9mIHJhbmdlXHJcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlIDwgMSkge1xyXG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRQYWdlID4gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRvdGFsUGFnZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBzdGFydFBhZ2UsIGVuZFBhZ2U7XHJcbiAgICAgICAgaWYgKHRvdGFsUGFnZXMgPD0gbWF4UGFnZXMpIHtcclxuICAgICAgICAgICAgLy8gdG90YWwgcGFnZXMgbGVzcyB0aGFuIG1heCBzbyBzaG93IGFsbCBwYWdlc1xyXG4gICAgICAgICAgICBzdGFydFBhZ2UgPSAxO1xyXG4gICAgICAgICAgICBlbmRQYWdlID0gdG90YWxQYWdlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRvdGFsIHBhZ2VzIG1vcmUgdGhhbiBtYXggc28gY2FsY3VsYXRlIHN0YXJ0IGFuZCBlbmQgcGFnZXNcclxuICAgICAgICAgICAgdmFyIG1heFBhZ2VzQmVmb3JlQ3VycmVudFBhZ2UgPSBNYXRoLmZsb29yKG1heFBhZ2VzIC8gMik7XHJcbiAgICAgICAgICAgIHZhciBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2UgPSBNYXRoLmNlaWwobWF4UGFnZXMgLyAyKSAtIDE7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSA8PSBtYXhQYWdlc0JlZm9yZUN1cnJlbnRQYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHBhZ2UgbmVhciB0aGUgc3RhcnRcclxuICAgICAgICAgICAgICAgIHN0YXJ0UGFnZSA9IDE7XHJcbiAgICAgICAgICAgICAgICBlbmRQYWdlID0gbWF4UGFnZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudFBhZ2UgKyBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2UgPj0gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICAgICAgLy8gY3VycmVudCBwYWdlIG5lYXIgdGhlIGVuZFxyXG4gICAgICAgICAgICAgICAgc3RhcnRQYWdlID0gdG90YWxQYWdlcyAtIG1heFBhZ2VzICsgMTtcclxuICAgICAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gY3VycmVudCBwYWdlIHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlXHJcbiAgICAgICAgICAgICAgICBzdGFydFBhZ2UgPSBjdXJyZW50UGFnZSAtIG1heFBhZ2VzQmVmb3JlQ3VycmVudFBhZ2U7XHJcbiAgICAgICAgICAgICAgICBlbmRQYWdlID0gY3VycmVudFBhZ2UgKyBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY2FsY3VsYXRlIHN0YXJ0IGFuZCBlbmQgaXRlbSBpbmRleGVzXHJcbiAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplO1xyXG4gICAgICAgIHZhciBlbmRJbmRleCA9IE1hdGgubWluKHN0YXJ0SW5kZXggKyBwYWdlU2l6ZSAtIDEsIHRvdGFsSXRlbXMgLSAxKTtcclxuICAgICAgICAvLyBjcmVhdGUgYW4gYXJyYXkgb2YgcGFnZXMgdG8gbmctcmVwZWF0IGluIHRoZSBwYWdlciBjb250cm9sXHJcbiAgICAgICAgdmFyIHBhZ2VzID0gQXJyYXkuZnJvbShBcnJheSgoZW5kUGFnZSArIDEpIC0gc3RhcnRQYWdlKS5rZXlzKCkpLm1hcChmdW5jdGlvbiAoaSkgeyByZXR1cm4gc3RhcnRQYWdlICsgaTsgfSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIG9iamVjdCB3aXRoIGFsbCBwYWdlciBwcm9wZXJ0aWVzIHJlcXVpcmVkIGJ5IHRoZSB2aWV3XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG90YWxJdGVtczogdG90YWxJdGVtcyxcclxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxyXG4gICAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXHJcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHRvdGFsUGFnZXMsXHJcbiAgICAgICAgICAgIHN0YXJ0UGFnZTogc3RhcnRQYWdlLFxyXG4gICAgICAgICAgICBlbmRQYWdlOiBlbmRQYWdlLFxyXG4gICAgICAgICAgICBzdGFydEluZGV4OiBzdGFydEluZGV4LFxyXG4gICAgICAgICAgICBlbmRJbmRleDogZW5kSW5kZXgsXHJcbiAgICAgICAgICAgIHBhZ2VzOiBwYWdlc1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59Il19
156
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSndQYWdpbmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Jic2YtY29udHJvbHMvc3JjL2xpYi9jb250cm9scy9QYWdpbmcvSndQYWdpbmF0aW9uLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFvQyxNQUFNLGVBQWUsQ0FBQzs7O0FBeUJ6RyxNQUFNLE9BQU8scUJBQXFCO0lBdkJsQztRQXlCYyxlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNqQyxnQkFBVyxHQUFHLENBQUMsQ0FBQztRQUNoQixhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2QsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLHFCQUFnQixHQUFHLEtBQUssQ0FBQztRQUdsQyxVQUFLLEdBQVEsRUFBRSxDQUFDO0tBdUZuQjtJQXJGRyxRQUFRO1FBQ0osc0NBQXNDO1FBQ3RDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRTtZQUNqQyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUNsQztJQUNMLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDOUIsSUFBSSxPQUFPLENBQUMsS0FBSyxDQUFDLFdBQVc7WUFDekIsT0FBTTtRQUNWLHdDQUF3QztRQUN4QyxJQUFJLE9BQU8sQ0FBQyxLQUFLLENBQUMsWUFBWSxLQUFLLE9BQU8sQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFO1lBQzVELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxJQUFZO1FBQ2hCLDBDQUEwQztRQUMxQyxJQUFJLENBQUMsS0FBSyxHQUFHLElB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Q0FBQyxDQUFDLENBQUM7UUFDNUcsK0RBQStEO1FBQy9ELE9BQU87WUFDSCxVQUFVLEVBQUUsVUFBVTtZQUN0QixXQUFXLEVBQUUsV0FBVztZQUN4QixRQUFRLEVBQUUsUUFBUTtZQUNsQixVQUFVLEVBQUUsVUFBVTtZQUN0QixTQUFTLEVBQUUsU0FBUztZQUNwQixPQUFPLEVBQUUsT0FBTztZQUNoQixVQUFVLEVBQUUsVUFBVTtZQUN0QixRQUFRLEVBQUUsUUFBUTtZQUNsQixLQUFLLEVBQUUsS0FBSztTQUNmLENBQUM7SUFDTixDQUFDOytHQTlGUSxxQkFBcUI7bUdBQXJCLHFCQUFxQiwyUEFyQnBCOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FrQmI7OzRGQUdZLHFCQUFxQjtrQkF2QmpDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFFBQVEsRUFBRTs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBa0JiO2lCQUNBOzhCQUdZLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNFLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkluaXQsIE9uQ2hhbmdlcywgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICBzZWxlY3RvcjogJ2p3LXBhZ2luYXRpb24nLFxyXG4gICAgdGVtcGxhdGU6IGBcclxuICA8dWwgKm5nSWY9XCJwYWdlci5wYWdlcyAmJiBwYWdlci5wYWdlcy5sZW5ndGhcIiBjbGFzcz1cInBhZ2luYXRpb25cIj5cclxuICA8bGkgKm5nSWY9XCJTaG93Rmlyc3RBbmRMYXN0XCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlID09PSAxfVwiIGNsYXNzPVwicGFnZS1pdGVtIGZpcnN0LWl0ZW1cIj5cclxuICAgICAgPGEgKGNsaWNrKT1cInNldFBhZ2UoMSlcIiBjbGFzcz1cInBhZ2UtbGlua1wiPuKdruKdrjwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2UgPT09IDF9XCIgY2xhc3M9XCJwYWdlLWl0ZW0gcHJldmlvdXMtaXRlbVwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwic2V0UGFnZShwYWdlci5jdXJyZW50UGFnZSAtIDEpXCIgY2xhc3M9XCJwYWdlLWxpbmtcIj7ina48L2E+XHJcbiAgPC9saT5cclxuICA8bGkgKm5nRm9yPVwibGV0IHBhZ2Ugb2YgcGFnZXIucGFnZXNcIiBbbmdDbGFzc109XCJ7YWN0aXZlOnBhZ2VyLmN1cnJlbnRQYWdlID09PSBwYWdlfVwiIGNsYXNzPVwicGFnZS1pdGVtIG51bWJlci1pdGVtXCI+XHJcbiAgICAgIDxhIChjbGljayk9XCJzZXRQYWdlKHBhZ2UpXCIgY2xhc3M9XCJwYWdlLWxpbmtcIj57e3BhZ2V9fTwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSBbbmdDbGFzc109XCJ7ZGlzYWJsZWQ6cGFnZXIuY3VycmVudFBhZ2UgPT09IHBhZ2VyLnRvdGFsUGFnZXN9XCIgY2xhc3M9XCJwYWdlLWl0ZW0gbmV4dC1pdGVtXCI+XHJcbiAgICAgIDxhIChjbGljayk9XCJzZXRQYWdlKHBhZ2VyLmN1cnJlbnRQYWdlICsgMSlcIiBjbGFzcz1cInBhZ2UtbGlua1wiPuKdrzwvYT5cclxuICA8L2xpPlxyXG4gIDxsaSAgKm5nSWY9XCJTaG93Rmlyc3RBbmRMYXN0XCIgW25nQ2xhc3NdPVwie2Rpc2FibGVkOnBhZ2VyLmN1cnJlbnRQYWdlID09PSBwYWdlci50b3RhbFBhZ2VzfVwiIGNsYXNzPVwicGFnZS1pdGVtIGxhc3QtaXRlbVwiPlxyXG4gICAgICA8YSAoY2xpY2spPVwic2V0UGFnZShwYWdlci50b3RhbFBhZ2VzKVwiIGNsYXNzPVwicGFnZS1saW5rXCI+4p2v4p2vPC9hPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbmBcclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBKd1BhZ2luYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgICBASW5wdXQoKSBpdGVtczogQXJyYXk8YW55PjtcclxuICAgIEBPdXRwdXQoKSBjaGFuZ2VQYWdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gICAgQElucHV0KCkgaW5pdGlhbFBhZ2UgPSAxO1xyXG4gICAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcclxuICAgIEBJbnB1dCgpIG1heFBhZ2VzID0gMTA7XHJcbiAgICBASW5wdXQoKSBTaG93Rmlyc3RBbmRMYXN0ID0gZmFsc2U7XHJcblxyXG5cclxuICAgIHBhZ2VyOiBhbnkgPSB7fTtcclxuXHJcbiAgICBuZ09uSW5pdCgpIHtcclxuICAgICAgICAvLyBzZXQgcGFnZSBpZiBpdGVtcyBhcnJheSBpc24ndCBlbXB0eVxyXG4gICAgICAgIGlmICh0aGlzLml0ZW1zICYmIHRoaXMuaXRlbXMubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuc2V0UGFnZSh0aGlzLmluaXRpYWxQYWdlKTtcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgICAgIGlmIChjaGFuZ2VzLml0ZW1zLmZpcnN0Q2hhbmdlKVxyXG4gICAgICAgICAgICByZXR1cm5cclxuICAgICAgICAvLyByZXNldCBwYWdlIGlmIGl0ZW1zIGFycmF5IGhhcyBjaGFuZ2VkXHJcbiAgICAgICAgaWYgKGNoYW5nZXMuaXRlbXMuY3VycmVudFZhbHVlICE9PSBjaGFuZ2VzLml0ZW1zLnByZXZpb3VzVmFsdWUpIHtcclxuICAgICAgICAgICAgdGhpcy5zZXRQYWdlKHRoaXMuaW5pdGlhbFBhZ2UpO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICBzZXRQYWdlKHBhZ2U6IG51bWJlcikge1xyXG4gICAgICAgIC8vIGdldCBuZXcgcGFnZXIgb2JqZWN0IGZvciBzcGVjaWZpZWQgcGFnZVxyXG4gICAgICAgIHRoaXMucGFnZXIgPSB0aGlzLnBhZ2luYXRlKHRoaXMuaXRlbXMubGVuZ3RoLCBwYWdlLCB0aGlzLnBhZ2VTaXplLCB0aGlzLm1heFBhZ2VzKTtcclxuXHJcbiAgICAgICAgLy8gZ2V0IG5ldyBwYWdlIG9mIGl0ZW1zIGZyb20gaXRlbXMgYXJyYXlcclxuICAgICAgICB2YXIgcGFnZU9mSXRlbXMgPSB0aGlzLml0ZW1zLnNsaWNlKHRoaXMucGFnZXIuc3RhcnRJbmRleCwgdGhpcy5wYWdlci5lbmRJbmRleCArIDEpO1xyXG5cclxuICAgICAgICAvLyBjYWxsIGNoYW5nZSBwYWdlIGZ1bmN0aW9uIGluIHBhcmVudCBjb21wb25lbnRcclxuICAgICAgICB0aGlzLmNoYW5nZVBhZ2UuZW1pdCh0aGlzLnBhZ2VyLmN1cnJlbnRQYWdlKTtcclxuICAgIH1cclxuXHJcbiAgICBwYWdpbmF0ZSh0b3RhbEl0ZW1zLCBjdXJyZW50UGFnZSwgcGFnZVNpemUsIG1heFBhZ2VzKSB7XHJcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlID09PSB2b2lkIDApIHsgY3VycmVudFBhZ2UgPSAxOyB9XHJcbiAgICAgICAgaWYgKHBhZ2VTaXplID09PSB2b2lkIDApIHsgcGFnZVNpemUgPSAxMDsgfVxyXG4gICAgICAgIGlmIChtYXhQYWdlcyA9PT0gdm9pZCAwKSB7IG1heFBhZ2VzID0gMTA7IH1cclxuICAgICAgICAvLyBjYWxjdWxhdGUgdG90YWwgcGFnZXNcclxuICAgICAgICB2YXIgdG90YWxQYWdlcyA9IE1hdGguY2VpbCh0b3RhbEl0ZW1zIC8gcGFnZVNpemUpO1xyXG4gICAgICAgIC8vIGVuc3VyZSBjdXJyZW50IHBhZ2UgaXNuJ3Qgb3V0IG9mIHJhbmdlXHJcbiAgICAgICAgaWYgKGN1cnJlbnRQYWdlIDwgMSkge1xyXG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IDE7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGVsc2UgaWYgKGN1cnJlbnRQYWdlID4gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICBjdXJyZW50UGFnZSA9IHRvdGFsUGFnZXM7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHZhciBzdGFydFBhZ2UsIGVuZFBhZ2U7XHJcbiAgICAgICAgaWYgKHRvdGFsUGFnZXMgPD0gbWF4UGFnZXMpIHtcclxuICAgICAgICAgICAgLy8gdG90YWwgcGFnZXMgbGVzcyB0aGFuIG1heCBzbyBzaG93IGFsbCBwYWdlc1xyXG4gICAgICAgICAgICBzdGFydFBhZ2UgPSAxO1xyXG4gICAgICAgICAgICBlbmRQYWdlID0gdG90YWxQYWdlcztcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIC8vIHRvdGFsIHBhZ2VzIG1vcmUgdGhhbiBtYXggc28gY2FsY3VsYXRlIHN0YXJ0IGFuZCBlbmQgcGFnZXNcclxuICAgICAgICAgICAgdmFyIG1heFBhZ2VzQmVmb3JlQ3VycmVudFBhZ2UgPSBNYXRoLmZsb29yKG1heFBhZ2VzIC8gMik7XHJcbiAgICAgICAgICAgIHZhciBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2UgPSBNYXRoLmNlaWwobWF4UGFnZXMgLyAyKSAtIDE7XHJcbiAgICAgICAgICAgIGlmIChjdXJyZW50UGFnZSA8PSBtYXhQYWdlc0JlZm9yZUN1cnJlbnRQYWdlKSB7XHJcbiAgICAgICAgICAgICAgICAvLyBjdXJyZW50IHBhZ2UgbmVhciB0aGUgc3RhcnRcclxuICAgICAgICAgICAgICAgIHN0YXJ0UGFnZSA9IDE7XHJcbiAgICAgICAgICAgICAgICBlbmRQYWdlID0gbWF4UGFnZXM7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgZWxzZSBpZiAoY3VycmVudFBhZ2UgKyBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2UgPj0gdG90YWxQYWdlcykge1xyXG4gICAgICAgICAgICAgICAgLy8gY3VycmVudCBwYWdlIG5lYXIgdGhlIGVuZFxyXG4gICAgICAgICAgICAgICAgc3RhcnRQYWdlID0gdG90YWxQYWdlcyAtIG1heFBhZ2VzICsgMTtcclxuICAgICAgICAgICAgICAgIGVuZFBhZ2UgPSB0b3RhbFBhZ2VzO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgLy8gY3VycmVudCBwYWdlIHNvbWV3aGVyZSBpbiB0aGUgbWlkZGxlXHJcbiAgICAgICAgICAgICAgICBzdGFydFBhZ2UgPSBjdXJyZW50UGFnZSAtIG1heFBhZ2VzQmVmb3JlQ3VycmVudFBhZ2U7XHJcbiAgICAgICAgICAgICAgICBlbmRQYWdlID0gY3VycmVudFBhZ2UgKyBtYXhQYWdlc0FmdGVyQ3VycmVudFBhZ2U7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gY2FsY3VsYXRlIHN0YXJ0IGFuZCBlbmQgaXRlbSBpbmRleGVzXHJcbiAgICAgICAgdmFyIHN0YXJ0SW5kZXggPSAoY3VycmVudFBhZ2UgLSAxKSAqIHBhZ2VTaXplO1xyXG4gICAgICAgIHZhciBlbmRJbmRleCA9IE1hdGgubWluKHN0YXJ0SW5kZXggKyBwYWdlU2l6ZSAtIDEsIHRvdGFsSXRlbXMgLSAxKTtcclxuICAgICAgICAvLyBjcmVhdGUgYW4gYXJyYXkgb2YgcGFnZXMgdG8gbmctcmVwZWF0IGluIHRoZSBwYWdlciBjb250cm9sXHJcbiAgICAgICAgdmFyIHBhZ2VzID0gQXJyYXkuZnJvbShBcnJheSgoZW5kUGFnZSArIDEpIC0gc3RhcnRQYWdlKS5rZXlzKCkpLm1hcChmdW5jdGlvbiAoaSkgeyByZXR1cm4gc3RhcnRQYWdlICsgaTsgfSk7XHJcbiAgICAgICAgLy8gcmV0dXJuIG9iamVjdCB3aXRoIGFsbCBwYWdlciBwcm9wZXJ0aWVzIHJlcXVpcmVkIGJ5IHRoZSB2aWV3XHJcbiAgICAgICAgcmV0dXJuIHtcclxuICAgICAgICAgICAgdG90YWxJdGVtczogdG90YWxJdGVtcyxcclxuICAgICAgICAgICAgY3VycmVudFBhZ2U6IGN1cnJlbnRQYWdlLFxyXG4gICAgICAgICAgICBwYWdlU2l6ZTogcGFnZVNpemUsXHJcbiAgICAgICAgICAgIHRvdGFsUGFnZXM6IHRvdGFsUGFnZXMsXHJcbiAgICAgICAgICAgIHN0YXJ0UGFnZTogc3RhcnRQYWdlLFxyXG4gICAgICAgICAgICBlbmRQYWdlOiBlbmRQYWdlLFxyXG4gICAgICAgICAgICBzdGFydEluZGV4OiBzdGFydEluZGV4LFxyXG4gICAgICAgICAgICBlbmRJbmRleDogZW5kSW5kZXgsXHJcbiAgICAgICAgICAgIHBhZ2VzOiBwYWdlc1xyXG4gICAgICAgIH07XHJcbiAgICB9XHJcblxyXG59Il19