@nova-design-system/nova-angular-18 3.24.0 → 3.25.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/nova-components/esm2022/lib/components/nv-datatable.component.mjs +43 -13
- package/dist/nova-components/esm2022/lib/nova-components.module.mjs +3 -3
- package/dist/nova-components/esm2022/lib/stencil-generated/component-value-accessors.mjs +37 -1
- package/dist/nova-components/esm2022/lib/stencil-generated/components.mjs +35 -1
- package/dist/nova-components/esm2022/lib/stencil-generated/index.mjs +2 -1
- package/dist/nova-components/fesm2022/nova-components.mjs +115 -15
- package/dist/nova-components/fesm2022/nova-components.mjs.map +1 -1
- package/dist/nova-components/lib/components/nv-datatable.component.d.ts +9 -0
- package/dist/nova-components/lib/nova-components.module.d.ts +2 -2
- package/dist/nova-components/lib/stencil-generated/component-value-accessors.d.ts +8 -1
- package/dist/nova-components/lib/stencil-generated/components.d.ts +19 -0
- package/dist/nova-components/lib/stencil-generated/index.d.ts +1 -1
- package/package.json +1 -1
|
@@ -417,12 +417,27 @@ export class NvDatatable {
|
|
|
417
417
|
|
|
418
418
|
<!-- Render pagination if configured -->
|
|
419
419
|
@if (paginationAPI()) {
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
420
|
+
@if (paginationTemplate) {
|
|
421
|
+
<ng-container
|
|
422
|
+
*ngTemplateOutlet="
|
|
423
|
+
paginationTemplate;
|
|
424
|
+
context: { $implicit: paginationAPI() }
|
|
425
|
+
"
|
|
426
|
+
></ng-container>
|
|
427
|
+
} @else if (mode() === 'client' && pagination() && !pagination()?.infinite) {
|
|
428
|
+
<!-- Default pagination with nv-paginationtable (client mode only) -->
|
|
429
|
+
<nv-paginationtable
|
|
430
|
+
[pageIndex]="paginationAPI()!.pageIndex"
|
|
431
|
+
[pageSize]="paginationAPI()!.pageSize"
|
|
432
|
+
[pageCount]="paginationAPI()!.pageCount"
|
|
433
|
+
[rowCount]="paginationAPI()!.rowCount"
|
|
434
|
+
[attr.label-page]="pagination()?.labels?.page || null"
|
|
435
|
+
[attr.label-total]="pagination()?.labels?.total || null"
|
|
436
|
+
[attr.label-page-size-option]="pagination()?.labels?.pageSizeOption || null"
|
|
437
|
+
(pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
|
|
438
|
+
(pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
|
|
439
|
+
></nv-paginationtable>
|
|
440
|
+
}
|
|
426
441
|
}
|
|
427
442
|
`, isInline: true, dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: FlexRenderDirective, selector: "[flexRender]", inputs: ["flexRender", "flexRenderProps", "flexRenderInjector"] }] }); }
|
|
428
443
|
}
|
|
@@ -504,12 +519,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
504
519
|
|
|
505
520
|
<!-- Render pagination if configured -->
|
|
506
521
|
@if (paginationAPI()) {
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
|
|
511
|
-
|
|
512
|
-
|
|
522
|
+
@if (paginationTemplate) {
|
|
523
|
+
<ng-container
|
|
524
|
+
*ngTemplateOutlet="
|
|
525
|
+
paginationTemplate;
|
|
526
|
+
context: { $implicit: paginationAPI() }
|
|
527
|
+
"
|
|
528
|
+
></ng-container>
|
|
529
|
+
} @else if (mode() === 'client' && pagination() && !pagination()?.infinite) {
|
|
530
|
+
<!-- Default pagination with nv-paginationtable (client mode only) -->
|
|
531
|
+
<nv-paginationtable
|
|
532
|
+
[pageIndex]="paginationAPI()!.pageIndex"
|
|
533
|
+
[pageSize]="paginationAPI()!.pageSize"
|
|
534
|
+
[pageCount]="paginationAPI()!.pageCount"
|
|
535
|
+
[rowCount]="paginationAPI()!.rowCount"
|
|
536
|
+
[attr.label-page]="pagination()?.labels?.page || null"
|
|
537
|
+
[attr.label-total]="pagination()?.labels?.total || null"
|
|
538
|
+
[attr.label-page-size-option]="pagination()?.labels?.pageSizeOption || null"
|
|
539
|
+
(pageIndexChanged)="paginationAPI()!.setPageIndex($event.detail)"
|
|
540
|
+
(pageSizeChanged)="paginationAPI()!.setPageSize($event.detail)"
|
|
541
|
+
></nv-paginationtable>
|
|
542
|
+
}
|
|
513
543
|
}
|
|
514
544
|
`,
|
|
515
545
|
}]
|
|
@@ -546,4 +576,4 @@ export function makeColumn() {
|
|
|
546
576
|
};
|
|
547
577
|
}
|
|
548
578
|
export { flexRenderComponent as nvDatatableRenderComponent } from './datatable.utils';
|
|
549
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnYtZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbnYtZGF0YXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsMENBQTBDO0FBQzFDLHdDQUF3QztBQUV4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxFQUVmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsZ0hBQWdIO0FBQ2hILE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBT3BCLE1BQU0sbUJBQW1CLENBQUM7OztBQUUzQjs7O0dBR0c7QUFzRkgsTUFBTSxPQUFPLFdBQVc7SUErUHRCLHdDQUF3QztJQUN4QyxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwwQkFBMEIsQ0FDeEIsS0FBMkMsRUFDM0MsTUFLQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLFNBQWtDLENBQUM7UUFFdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixTQUFTLEdBQUcsS0FBZ0MsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxT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b0JBQzVDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQThFVDtpQkFDRjt3REFxQkMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekQsYUFBYTtzQkFEWixlQUFlO3VCQUFDLHdCQUF3Qjs7QUF1WjNDLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxTQUFTLE1BQU0sQ0FDcEIsR0FBaUM7UUFFakMsT0FBTyxHQUF3QyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtcmV0dXJucyAqL1xuLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1wYXJhbSAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIGVmZmVjdCxcbiAgc2lnbmFsLFxuICBFbGVtZW50UmVmLFxuICB2aWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlLFxuICB0eXBlIE52RGF0YXRhYmxlQ2VsbENvbnRleHQsXG59IGZyb20gJy4vbnYtZGF0YXRhYmxlLWNlbGwuZGlyZWN0aXZlJztcblxuLy8gbG9jYWwgY29weSBvZiBAdGFuc3RhY2svYW5ndWxhci10YWJsZSAocmVxdWlyZWQgZm9yIG11bHRpIGFuZ3VsYXIgdmVyc2lvbnMsIHRoZSBidWlsdCB2ZXJzaW9uIGlzIG5vdCB3b3JraW5nKVxuaW1wb3J0IHtcbiAgY3JlYXRlQW5ndWxhclRhYmxlLFxuICBnZXRDb3JlUm93TW9kZWwsXG4gIGdldFBhZ2luYXRpb25Sb3dNb2RlbCxcbiAgZ2V0U29ydGVkUm93TW9kZWwsXG4gIEZsZXhSZW5kZXJEaXJlY3RpdmUsXG4gIHR5cGUgRmxleFJlbmRlckNvbXBvbmVudCxcbiAgdHlwZSBDb2x1bW5EZWYsXG4gIHR5cGUgQ2VsbENvbnRleHQsXG4gIHR5cGUgUGFnaW5hdGlvblN0YXRlLFxuICB0eXBlIFNvcnRpbmdTdGF0ZSxcbiAgdHlwZSBOb0luZmVyLFxufSBmcm9tICcuL2RhdGF0YWJsZS51dGlscyc7XG5cbi8qKlxuICogQSBwb3dlcmZ1bCwgZmxleGlibGUgZGF0YXRhYmxlIGNvbXBvbmVudCBidWlsdCBvbiBUYW5TdGFjayBUYWJsZS5cbiAqIFN1cHBvcnRzIGN1c3RvbSBjZWxsIHJlbmRlcmluZywgY29sdW1uIGNvbmZpZ3VyYXRpb24sIHBhZ2luYXRpb24sIGFuZCBmdWxsIFR5cGVTY3JpcHQgdHlwaW5nLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kYXRhdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4UmVuZGVyRGlyZWN0aXZlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxudi10YWJsZT5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRoZWFkIFthdHRyLmRhdGEtc3RpY2t5LXRvcF09XCJzdGlja3lIZWFkZXIoKSA/ICd0cnVlJyA6IG51bGxcIj5cbiAgICAgICAgICBAZm9yIChoZWFkZXJHcm91cCBvZiB0YWJsZSgpLmdldEhlYWRlckdyb3VwcygpOyB0cmFjayBoZWFkZXJHcm91cC5pZClcbiAgICAgICAgICB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoaGVhZGVyIG9mIGhlYWRlckdyb3VwLmhlYWRlcnM7IHRyYWNrIGhlYWRlci5pZCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtaGVhZGVyLScgKyBoZWFkZXIuaWRcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiXG4gICAgICAgICAgICAgICAgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuc2l6ZVxuICAgICAgICAgICAgICAgICAgPyBoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5zaXplICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtbm8tcmVzaXplXT1cIlxuICAgICAgICAgICAgICAgICFoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5lbmFibGVSZXNpemluZyA/ICd0cnVlJyA6IG51bGxcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaGVhZGVyLmlzUGxhY2Vob2xkZXIpIHsgQGlmIChoZWFkZXIuY29sdW1uLmdldENhblNvcnQoKSkge1xuICAgICAgICAgICAgICA8bnYtdGFibGVoZWFkZXJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NvcnREaXJlY3Rpb25dPVwiaGVhZGVyLmNvbHVtbi5nZXRJc1NvcnRlZCgpIHx8ICdub25lJ1wiXG4gICAgICAgICAgICAgICAgKHNvcnREaXJlY3Rpb25DaGFuZ2VkKT1cIlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU29ydERpcmVjdGlvbkNoYW5nZWQoJGV2ZW50LCBoZWFkZXIpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGhlYWRlci5jb2x1bW4uY29sdW1uRGVmLmhlYWRlciB9fVxuICAgICAgICAgICAgICA8L252LXRhYmxlaGVhZGVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuaGVhZGVyIH19XG4gICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90aGVhZD5cblxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgQGZvciAocm93IG9mIHRhYmxlKCkuZ2V0Um93TW9kZWwoKS5yb3dzOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4KVxuICAgICAgICAgIHtcbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtcm93LScgKyBpXCJcbiAgICAgICAgICAgICN0YWJsZVJvd1xuICAgICAgICAgICAgW2F0dHIuZGF0YS1pcy1sYXN0XT1cIlxuICAgICAgICAgICAgICBpc0luZmluaXRlU2Nyb2xsKCkgJiYgaSA9PT0gdGFibGUoKS5nZXRSb3dNb2RlbCgpLnJvd3MubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGNlbGwgb2Ygcm93LmdldFZpc2libGVDZWxscygpOyB0cmFjayBjZWxsLmlkKSB7XG4gICAgICAgICAgICA8dGQgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2RhdGF0YWJsZS1jZWxsLScgKyBjZWxsLmNvbHVtbi5pZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKmZsZXhSZW5kZXI9XCJcbiAgICAgICAgICAgICAgICAgIGNlbGwuY29sdW1uLmNvbHVtbkRlZi5jZWxsO1xuICAgICAgICAgICAgICAgICAgcHJvcHM6IGNlbGwuZ2V0Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgICAgbGV0IGNlbGxDb250ZW50XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNlbGxDb250ZW50IH19XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9udi10YWJsZT5cblxuICAgIDwhLS0gUmVuZGVyIHBhZ2luYXRpb24gaWYgY29uZmlndXJlZCAtLT5cbiAgICBAaWYgKHBhZ2luYXRpb25BUEkoKSkge1xuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgIHBhZ2luYXRpb25UZW1wbGF0ZSB8fCBudWxsO1xuICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFnaW5hdGlvbkFQSSgpIH1cbiAgICAgIFwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICAgIH1cbiAgYCxcbn0pXG5leHBvcnQgY2xhc3MgTnZEYXRhdGFibGU8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICAvKiogQ29sdW1uIGRlZmluaXRpb25zICovXG4gIGNvbHVtbnMgPSBpbnB1dDxOdkRhdGF0YWJsZUNvbHVtbjxUPltdPihbXSk7XG4gIC8qKiBSb3cgZGF0YSAqL1xuICByb3dzID0gaW5wdXQ8VFtdPihbXSk7XG4gIC8qKlxuICAgKiBEYXRhIGhhbmRsaW5nIG1vZGUgZm9yIHNvcnRpbmcgYW5kIGZpbHRlcmluZyBvcGVyYXRpb25zLlxuICAgKiAtICdjbGllbnQnOiBBbGwgb3BlcmF0aW9ucyBoYW5kbGVkIGluIGJyb3dzZXIgKGRlZmF1bHQpXG4gICAqIC0gJ3NlcnZlcic6IE9wZXJhdGlvbnMgdHJpZ2dlciBjYWxsYmFja3MgZm9yIHNlcnZlci1zaWRlIGhhbmRsaW5nXG4gICAqL1xuICBtb2RlID0gaW5wdXQ8J2NsaWVudCcgfCAnc2VydmVyJz4oJ2NsaWVudCcpO1xuICAvKiogT3B0aW9uYWwgcGFnaW5hdGlvbiBjb25maWd1cmF0aW9uICovXG4gIHBhZ2luYXRpb24gPSBpbnB1dDxOdkRhdGF0YWJsZVBhZ2luYXRpb25Db25maWcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIC8qKiBPcHRpb25hbCBzb3J0aW5nIGNvbmZpZ3VyYXRpb24gKi9cbiAgc29ydGluZyA9IGlucHV0PE52RGF0YXRhYmxlU29ydGluZ0NvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLyoqIFNob3VsZCB0aGUgaGVhZGVyIHN0aWNrIHRvIHRoZSB0b3Agb2YgdGhlIHRhYmxlIHdoZW4gc2Nyb2xsaW5nPyAqL1xuICBzdGlja3lIZWFkZXIgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG5cbiAgLyoqIFRlbXBsYXRlIGZvciBjdXN0b20gcGFnaW5hdGlvbiBVSSAqL1xuICBAQ29udGVudENoaWxkKCdwYWdpbmF0aW9uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmIH0pXG4gIHBhZ2luYXRpb25UZW1wbGF0ZT86IFRlbXBsYXRlUmVmPHtcbiAgICAkaW1wbGljaXQ6IE52RGF0YXRhYmxlUmVuZGVyUGFnaW5hdGlvbkFQSTtcbiAgfT47XG5cbiAgLyoqIENlbGwgdGVtcGxhdGVzIHByb3ZpZGVkIHZpYSBudkRhdGF0YWJsZUNlbGwgZGlyZWN0aXZlICovXG4gIEBDb250ZW50Q2hpbGRyZW4oTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlKVxuICBjZWxsVGVtcGxhdGVzPzogUXVlcnlMaXN0PE52RGF0YXRhYmxlQ2VsbERpcmVjdGl2ZTxULCBUW2tleW9mIFRdPj47XG5cbiAgLyoqIFNpZ25hbCB0byB0cmFjayBjZWxsIHRlbXBsYXRlcyBhcnJheSAqL1xuICBwcml2YXRlIGNlbGxUZW1wbGF0ZXNTaWduYWwgPSBzaWduYWw8XG4gICAgTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlPFQsIFRba2V5b2YgVF0+W11cbiAgPihbXSk7XG5cbiAgLyoqIE1hcCBvZiBmaWVsZCBuYW1lcyB0byBjZWxsIHRlbXBsYXRlcyAqL1xuICBwcml2YXRlIGNlbGxUZW1wbGF0ZU1hcCA9IGNvbXB1dGVkKCgpID0+IHtcbiAgICBjb25zdCBtYXAgPSBuZXcgTWFwPFxuICAgICAgc3RyaW5nLFxuICAgICAgVGVtcGxhdGVSZWY8TnZEYXRhdGFibGVDZWxsQ29udGV4dDxULCBUW2tleW9mIFRdPj5cbiAgICA+KCk7XG4gICAgdGhpcy5jZWxsVGVtcGxhdGVzU2lnbmFsKCkuZm9yRWFjaCgoZGlyZWN0aXZlKSA9PiB7XG4gICAgICBtYXAuc2V0KGRpcmVjdGl2ZS5udkRhdGF0YWJsZUNlbGwsIGRpcmVjdGl2ZS50ZW1wbGF0ZSk7XG4gICAgfSk7XG4gICAgcmV0dXJuIG1hcDtcbiAgfSk7XG5cbiAgLyoqIFBhZ2luYXRpb24gc3RhdGUgZm9yIHNlcnZlciBtb2RlICovXG4gIHByaXZhdGUgcGFnaW5hdGlvblN0YXRlID0gc2lnbmFsPFBhZ2luYXRpb25TdGF0ZT4oe1xuICAgIHBhZ2VJbmRleDogMCxcbiAgICBwYWdlU2l6ZTogdGhpcy5wYWdpbmF0aW9uKCk/LmluaXRpYWxQYWdlU2l6ZSB8fCAxMCxcbiAgfSk7XG5cbiAgLyoqIFNvcnRpbmcgc3RhdGUgZm9yIGNvbnRyb2xsZWQgc29ydGluZyAoc2VydmVyIG1vZGUpICovXG4gIHByaXZhdGUgc29ydGluZ1N0YXRlID0gc2lnbmFsPFNvcnRpbmdTdGF0ZT4odGhpcy5zb3J0aW5nKCk/LnNvcnRTdGF0ZSB8fCBbXSk7XG5cbiAgLyoqIFJlZmVyZW5jZSB0byB0YWJsZSByb3dzIGZvciBpbmZpbml0ZSBzY3JvbGwgb2JzZXJ2ZXIgKi9cbiAgcHJpdmF0ZSB0YWJsZVJvd3MgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZj4oJ3RhYmxlUm93Jyk7XG5cbiAgLyoqIEludGVyc2VjdGlvbiBvYnNlcnZlciBmb3IgaW5maW5pdGUgc2Nyb2xsICovXG4gIHByaXZhdGUgb2JzZXJ2ZXI6IEludGVyc2VjdGlvbk9ic2VydmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIEhlbHBlciB0byBjaGVjayBpZiB1c2luZyBpbmZpbml0ZSBzY3JvbGwgKi9cbiAgaXNJbmZpbml0ZVNjcm9sbCA9IGNvbXB1dGVkKCgpID0+IHRoaXMucGFnaW5hdGlvbigpPy5pbmZpbml0ZSA9PT0gdHJ1ZSk7XG5cbiAgLyoqIENvbXB1dGVkIHRhYmxlIGNvbHVtbnMgd2l0aCBwcm9wZXIgdHlwaW5nIGFuZCBmaWx0ZXJpbmcuICovXG4gIHRhYmxlQ29sdW1ucyA9IGNvbXB1dGVkPENvbHVtbkRlZjxULCBUW2tleW9mIFRdPltdPigoKSA9PiB7XG4gICAgY29uc3QgdGVtcGxhdGVNYXAgPSB0aGlzLmNlbGxUZW1wbGF0ZU1hcCgpO1xuXG4gICAgcmV0dXJuIHRoaXMuY29sdW1ucygpXG4gICAgICAuZmlsdGVyKChjb2wpID0+ICFjb2wuaGlkZGVuKVxuICAgICAgLm1hcCgoY29sKSA9PiB7XG4gICAgICAgIC8vIFNoYXJlZCBjZWxsIHJlbmRlcmVyXG4gICAgICAgIGNvbnN0IGNlbGxSZW5kZXJlciA9IChjb250ZXh0OiBDZWxsQ29udGV4dDxULCBUW2tleW9mIFRdPikgPT4ge1xuICAgICAgICAgIGNvbnN0IGZpZWxkTmFtZSA9IFN0cmluZyhjb2wuZmllbGQpO1xuICAgICAgICAgIGNvbnN0IGNlbGxUZW1wbGF0ZSA9IHRlbXBsYXRlTWFwLmdldChmaWVsZE5hbWUpO1xuXG4gICAgICAgICAgLy8gUHJpb3JpdHk6IHRlbXBsYXRlID4gcmVuZGVyQ2VsbCA+IGRlZmF1bHRcbiAgICAgICAgICBpZiAoY2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAvLyBSZXR1cm4gVGVtcGxhdGVSZWYgZGlyZWN0bHkgLSBnZXRWYWx1ZSgpIHJldHVybnMgZm9ybWF0dGVkIHZhbHVlXG4gICAgICAgICAgICByZXR1cm4gY2VsbFRlbXBsYXRlO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIC8vIEZhbGwgYmFjayB0byByZW5kZXJDZWxsIGlmIHByb3ZpZGVkXG4gICAgICAgICAgaWYgKGNvbC5yZW5kZXJDZWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gY29sLnJlbmRlckNlbGwoY29udGV4dCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRGVmYXVsdDoganVzdCByZXR1cm4gdGhlIHZhbHVlIChmb3JtYXR0ZWQgaWYgdmFsdWVGb3JtYXR0ZXIgd2FzIHVzZWQpXG4gICAgICAgICAgcmV0dXJuIGNvbnRleHQuZ2V0VmFsdWUoKTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBjb2x1bW5EZWY6IENvbHVtbkRlZjxULCBUW2tleW9mIFRdPiA9IHtcbiAgICAgICAgICBhY2Nlc3NvcktleTogY29sLmZpZWxkLFxuICAgICAgICAgIGFjY2Vzc29yRm46IGNvbC52YWx1ZUZvcm1hdHRlclxuICAgICAgICAgICAgPyAocm93OiBUKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgcmF3VmFsdWUgPSByb3dbY29sLmZpZWxkXTtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29sLnZhbHVlRm9ybWF0dGVyISh7XG4gICAgICAgICAgICAgICAgICB2YWx1ZTogcmF3VmFsdWUsXG4gICAgICAgICAgICAgICAgICByb3csXG4gICAgICAgICAgICAgICAgICBmaWVsZDogY29sLmZpZWxkLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHVuZGVmaW5lZCxcbiAgICAgICAgICBoZWFkZXI6IGNvbC5oZWFkZXJOYW1lIHx8IFN0cmluZyhjb2wuZmllbGQpLFxuICAgICAgICAgIHNpemU6IGNvbC53aWR0aCxcbiAgICAgICAgICBlbmFibGVSZXNpemluZzogY29sLnJlc2l6YWJsZSA/PyB0cnVlLFxuICAgICAgICAgIC8vIFNvcnRpbmcgY29uZmlndXJhdGlvblxuICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRoaXMuc29ydGluZygpID8gY29sLnNvcnRhYmxlID8/IHRydWUgOiBmYWxzZSxcbiAgICAgICAgICBjZWxsOiBjZWxsUmVuZGVyZXIsXG4gICAgICAgIH07XG5cbiAgICAgICAgLy8gQWRkIG9wdGlvbmFsIHNvcnRpbmcgcHJvcGVydGllcyBvbmx5IGlmIGRlZmluZWRcbiAgICAgICAgaWYgKGNvbC5zb3J0aW5nRm4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIC8vIEB0cy1leHBlY3QtZXJyb3IgLSBUYW5TdGFjayB0eXBpbmcgaXMgc3RyaWN0IGJ1dCB0aGlzIHdvcmtzIGF0IHJ1bnRpbWVcbiAgICAgICAgICBjb2x1bW5EZWYuc29ydGluZ0ZuID0gY29sLnNvcnRpbmdGbjtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sLnNvcnREZXNjRmlyc3QgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbHVtbkRlZi5zb3J0RGVzY0ZpcnN0ID0gY29sLnNvcnREZXNjRmlyc3Q7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbC5pbnZlcnRTb3J0aW5nICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb2x1bW5EZWYuaW52ZXJ0U29ydGluZyA9IGNvbC5pbnZlcnRTb3J0aW5nO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2wuc29ydFVuZGVmaW5lZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29sdW1uRGVmLnNvcnRVbmRlZmluZWQgPSBjb2wuc29ydFVuZGVmaW5lZDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBjb2x1bW5EZWY7XG4gICAgICB9KTtcbiAgfSk7XG5cbiAgLyoqIFRhblN0YWNrIHRhYmxlIGluc3RhbmNlIHdpdGggU2lnbmFscyAqL1xuICBwcml2YXRlIHRhYmxlSW5zdGFuY2UgPSBjcmVhdGVBbmd1bGFyVGFibGUoKCkgPT4ge1xuICAgIGNvbnN0IHBhZ2luYXRpb25Db25maWcgPSB0aGlzLnBhZ2luYXRpb24oKTtcbiAgICBjb25zdCBzb3J0aW5nQ29uZmlnID0gdGhpcy5zb3J0aW5nKCk7XG4gICAgY29uc3QgY29tcG9uZW50TW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIGNvbnN0IGlzU2VydmVyTW9kZSA9IGNvbXBvbmVudE1vZGUgPT09ICdzZXJ2ZXInO1xuICAgIGNvbnN0IGlzSW5maW5pdGUgPSBwYWdpbmF0aW9uQ29uZmlnPy5pbmZpbml0ZSA9PT0gdHJ1ZTtcblxuICAgIC8vIERldGVybWluZSBiYXNlIHRhYmxlIGNvbmZpZ3VyYXRpb24gd2l0aCBzb3J0aW5nXG4gICAgY29uc3QgZ2V0QmFzZVRhYmxlQ29uZmlnID0gKCkgPT4ge1xuICAgICAgY29uc3QgYmFzZUNvbmZpZyA9IHtcbiAgICAgICAgZGF0YTogdGhpcy5yb3dzKCksXG4gICAgICAgIGNvbHVtbnM6IHRoaXMudGFibGVDb2x1bW5zKCksXG4gICAgICAgIGdldENvcmVSb3dNb2RlbDogZ2V0Q29yZVJvd01vZGVsKCksXG4gICAgICAgIC8vIFNvcnRpbmcgY29uZmlndXJhdGlvbiAtIHVzZXMgdG9wLWxldmVsIG1vZGVcbiAgICAgICAgLi4uKHNvcnRpbmdDb25maWcgJiYge1xuICAgICAgICAgIHN0YXRlOiB7XG4gICAgICAgICAgICBzb3J0aW5nOlxuICAgICAgICAgICAgICBpc1NlcnZlck1vZGUgJiYgc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA/IHNvcnRpbmdDb25maWcuc29ydFN0YXRlXG4gICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRpbmdTdGF0ZSgpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgb25Tb3J0aW5nQ2hhbmdlOiAoXG4gICAgICAgICAgICB1cGRhdGVyT3JWYWx1ZTpcbiAgICAgICAgICAgICAgfCBTb3J0aW5nU3RhdGVcbiAgICAgICAgICAgICAgfCAoKG9sZDogU29ydGluZ1N0YXRlKSA9PiBTb3J0aW5nU3RhdGUpLFxuICAgICAgICAgICkgPT4ge1xuICAgICAgICAgICAgY29uc3QgY3VycmVudFNvcnQgPVxuICAgICAgICAgICAgICBpc1NlcnZlck1vZGUgJiYgc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA/IHNvcnRpbmdDb25maWcuc29ydFN0YXRlXG4gICAgICAgICAgICAgICAgOiB0aGlzLnNvcnRpbmdTdGF0ZSgpO1xuXG4gICAgICAgICAgICBjb25zdCBuZXdTb3J0ID1cbiAgICAgICAgICAgICAgdHlwZW9mIHVwZGF0ZXJPclZhbHVlID09PSAnZnVuY3Rpb24nXG4gICAgICAgICAgICAgICAgPyB1cGRhdGVyT3JWYWx1ZShjdXJyZW50U29ydClcbiAgICAgICAgICAgICAgICA6IHVwZGF0ZXJPclZhbHVlO1xuXG4gICAgICAgICAgICAvLyBBbHdheXMgdXBkYXRlIGludGVybmFsIHN0YXRlIGZvciByZWFjdGl2aXR5XG4gICAgICAgICAgICB0aGlzLnNvcnRpbmdTdGF0ZS5zZXQobmV3U29ydCk7XG5cbiAgICAgICAgICAgIC8vIEZvciBzZXJ2ZXItc2lkZSBzb3J0aW5nLCBhbHNvIGNhbGwgdGhlIGNhbGxiYWNrXG4gICAgICAgICAgICBpZiAoaXNTZXJ2ZXJNb2RlICYmIHNvcnRpbmdDb25maWcub25Tb3J0aW5nQ2hhbmdlKSB7XG4gICAgICAgICAgICAgIHNvcnRpbmdDb25maWcub25Tb3J0aW5nQ2hhbmdlKG5ld1NvcnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0sXG4gICAgICAgICAgbWFudWFsU29ydGluZzogaXNTZXJ2ZXJNb2RlLFxuICAgICAgICAgIGVuYWJsZVNvcnRpbmc6IHRydWUsXG4gICAgICAgICAgZW5hYmxlTXVsdGlTb3J0OiBzb3J0aW5nQ29uZmlnLmVuYWJsZU11bHRpU29ydCA/PyBmYWxzZSxcbiAgICAgICAgICBlbmFibGVTb3J0aW5nUmVtb3ZhbDogc29ydGluZ0NvbmZpZy5lbmFibGVTb3J0aW5nUmVtb3ZhbCA/PyB0cnVlLFxuICAgICAgICAgIG1heE11bHRpU29ydENvbENvdW50OiBzb3J0aW5nQ29uZmlnLm1heE11bHRpU29ydENvbENvdW50LFxuICAgICAgICAgIHNvcnREZXNjRmlyc3Q6IHNvcnRpbmdDb25maWcuc29ydERlc2NGaXJzdCA/PyBmYWxzZSxcbiAgICAgICAgICAvLyBXaGVuIG11bHRpLXNvcnQgaXMgZW5hYmxlZCwgdHJlYXQgYWxsIGNsaWNrcyBhcyBtdWx0aS1zb3J0IGV2ZW50c1xuICAgICAgICAgIGlzTXVsdGlTb3J0RXZlbnQ6IHNvcnRpbmdDb25maWcuZW5hYmxlTXVsdGlTb3J0XG4gICAgICAgICAgICA/ICgpID0+IHRydWVcbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGdldFNvcnRlZFJvd01vZGVsOiAhaXNTZXJ2ZXJNb2RlID8gZ2V0U29ydGVkUm93TW9kZWwoKSA6IHVuZGVmaW5lZCxcbiAgICAgICAgfSksXG4gICAgICB9O1xuXG4gICAgICByZXR1cm4gYmFzZUNvbmZpZztcbiAgICB9O1xuXG4gICAgLy8gSW5maW5pdGUgc2Nyb2xsIG1vZGUgKHJlcXVpcmVzIHNlcnZlciBtb2RlKVxuICAgIGlmIChpc0luZmluaXRlKSB7XG4gICAgICAvLyBObyBwYWdpbmF0aW9uIHJvdyBtb2RlbCBmb3IgaW5maW5pdGUgc2Nyb2xsIC0gc2ltcGxlIGNvbmZpZ1xuICAgICAgcmV0dXJuIGdldEJhc2VUYWJsZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIE5vIHBhZ2luYXRpb24gY29uZmlndXJlZFxuICAgIGlmICghcGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgcmV0dXJuIGdldEJhc2VUYWJsZUNvbmZpZygpO1xuICAgIH1cblxuICAgIC8vIENsaWVudC1zaWRlIHBhZ2luYXRpb25cbiAgICBpZiAoIWlzU2VydmVyTW9kZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgLi4uZ2V0QmFzZVRhYmxlQ29uZmlnKCksXG4gICAgICAgIGdldFBhZ2luYXRpb25Sb3dNb2RlbDogZ2V0UGFnaW5hdGlvblJvd01vZGVsKCksXG4gICAgICAgIGluaXRpYWxTdGF0ZToge1xuICAgICAgICAgIHBhZ2luYXRpb246IHtcbiAgICAgICAgICAgIHBhZ2VJbmRleDogMCxcbiAgICAgICAgICAgIHBhZ2VTaXplOiBwYWdpbmF0aW9uQ29uZmlnLmluaXRpYWxQYWdlU2l6ZSB8fCAxMCxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBTZXJ2ZXItc2lkZSBwYWdpbmF0aW9uIC0gbWFudWFsIHBhZ2luYXRpb24gd2l0aCByZWFjdGl2ZSBzdGF0ZVxuICAgIGNvbnN0IGJhc2VDb25maWcgPSBnZXRCYXNlVGFibGVDb25maWcoKTtcbiAgICBjb25zdCBwYWdlU2l6ZSA9IHRoaXMucGFnaW5hdGlvblN0YXRlKCkucGFnZVNpemU7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmJhc2VDb25maWcsXG4gICAgICBtYW51YWxQYWdpbmF0aW9uOiB0cnVlLFxuICAgICAgcGFnZUNvdW50OlxuICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLnRvdGFsUGFnZUNvdW50ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IHBhZ2luYXRpb25Db25maWcudG90YWxQYWdlQ291bnRcbiAgICAgICAgICA6IHBhZ2luYXRpb25Db25maWcudG90YWxSb3dDb3VudCAhPT0gdW5kZWZpbmVkXG4gICAgICAgICAgICA/IE1hdGguY2VpbChwYWdpbmF0aW9uQ29uZmlnLnRvdGFsUm93Q291bnQgLyBwYWdlU2l6ZSlcbiAgICAgICAgICAgIDogLTEsXG4gICAgICBzdGF0ZToge1xuICAgICAgICBwYWdpbmF0aW9uOiB0aGlzLnBhZ2luYXRpb25TdGF0ZSgpLFxuICAgICAgICAuLi4oYmFzZUNvbmZpZy5zdGF0ZSAmJiB7IHNvcnRpbmc6IGJhc2VDb25maWcuc3RhdGUuc29ydGluZyB9KSxcbiAgICAgIH0sXG4gICAgICBvblBhZ2luYXRpb25DaGFuZ2U6IChcbiAgICAgICAgdXBkYXRlck9yVmFsdWU6XG4gICAgICAgICAgfCBQYWdpbmF0aW9uU3RhdGVcbiAgICAgICAgICB8ICgob2xkOiBQYWdpbmF0aW9uU3RhdGUpID0+IFBhZ2luYXRpb25TdGF0ZSksXG4gICAgICApID0+IHtcbiAgICAgICAgY29uc3QgbmV3U3RhdGUgPVxuICAgICAgICAgIHR5cGVvZiB1cGRhdGVyT3JWYWx1ZSA9PT0gJ2Z1bmN0aW9uJ1xuICAgICAgICAgICAgPyB1cGRhdGVyT3JWYWx1ZSh0aGlzLnBhZ2luYXRpb25TdGF0ZSgpKVxuICAgICAgICAgICAgOiB1cGRhdGVyT3JWYWx1ZTtcblxuICAgICAgICB0aGlzLnBhZ2luYXRpb25TdGF0ZS5zZXQobmV3U3RhdGUpO1xuXG4gICAgICAgIC8vIENhbGwgdXNlcidzIGNhbGxiYWNrIGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uXG4gICAgICAgIGlmIChwYWdpbmF0aW9uQ29uZmlnLm9uUGFnaW5hdGlvbkNoYW5nZSkge1xuICAgICAgICAgIHBhZ2luYXRpb25Db25maWcub25QYWdpbmF0aW9uQ2hhbmdlKHtcbiAgICAgICAgICAgIHBhZ2VJbmRleDogbmV3U3RhdGUucGFnZUluZGV4LFxuICAgICAgICAgICAgcGFnZVNpemU6IG5ld1N0YXRlLnBhZ2VTaXplLFxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICB9LFxuICAgIH07XG4gIH0pO1xuXG4gIC8qKiBQdWJsaWMgZ2V0dGVyIGZvciB0YWJsZSBpbnN0YW5jZS4gKi9cbiAgdGFibGUoKSB7XG4gICAgcmV0dXJuIHRoaXMudGFibGVJbnN0YW5jZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEhhbmRsZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZnJvbSB0YWJsZSBoZWFkZXJcbiAgICogQHBhcmFtIHtFdmVudH0gZXZlbnQgVGhlIHNvcnQgZGlyZWN0aW9uIGNoYW5nZSBldmVudCBvciBkaXJlY3Rpb24gc3RyaW5nXG4gICAqIEBwYXJhbSB7b2JqZWN0fSBoZWFkZXIgVGhlIHRhYmxlIGhlYWRlciBvYmplY3RcbiAgICovXG4gIGhhbmRsZVNvcnREaXJlY3Rpb25DaGFuZ2VkKFxuICAgIGV2ZW50OiBFdmVudCB8IEN1c3RvbUV2ZW50PHN0cmluZz4gfCBzdHJpbmcsXG4gICAgaGVhZGVyOiB7XG4gICAgICBjb2x1bW46IHtcbiAgICAgICAgY2xlYXJTb3J0aW5nOiAoKSA9PiB2b2lkO1xuICAgICAgICB0b2dnbGVTb3J0aW5nOiAoZGVzYz86IGJvb2xlYW4sIG11bHRpPzogYm9vbGVhbikgPT4gdm9pZDtcbiAgICAgIH07XG4gICAgfSxcbiAgKSB7XG4gICAgLy8gRXh0cmFjdCBkaXJlY3Rpb24gZnJvbSBldmVudCBvciB1c2UgZGlyZWN0bHkgaWYgc3RyaW5nXG4gICAgbGV0IGRpcmVjdGlvbjogJ2FzYycgfCAnZGVzYycgfCAnbm9uZSc7XG5cbiAgICBpZiAodHlwZW9mIGV2ZW50ID09PSAnc3RyaW5nJykge1xuICAgICAgZGlyZWN0aW9uID0gZXZlbnQgYXMgJ2FzYycgfCAnZGVzYycgfCAnbm9uZSc7XG4gICAgfSBlbHNlIGlmICgnZGV0YWlsJyBpbiBldmVudCAmJiB0eXBlb2YgZXZlbnQuZGV0YWlsID09PSAnc3RyaW5nJykge1xuICAgICAgZGlyZWN0aW9uID0gZXZlbnQuZGV0YWlsIGFzICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBGYWxsYmFjayAtIHNob3VsZG4ndCBoYXBwZW4gYnV0IGhhbmRsZSBncmFjZWZ1bGx5XG4gICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICdVbmV4cGVjdGVkIGV2ZW50IHR5cGUgaW4gaGFuZGxlU29ydERpcmVjdGlvbkNoYW5nZWQ6JyxcbiAgICAgICAgZXZlbnQsXG4gICAgICApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHNvcnRpbmdDb25maWcgPSB0aGlzLnNvcnRpbmcoKTtcblxuICAgIC8vIENoZWNrIGlmIG11bHRpLXNvcnQgaXMgZW5hYmxlZFxuICAgIGNvbnN0IGlzTXVsdGlTb3J0ID0gc29ydGluZ0NvbmZpZz8uZW5hYmxlTXVsdGlTb3J0ID8/IGZhbHNlO1xuXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ25vbmUnKSB7XG4gICAgICAvLyBDbGVhciB0aGlzIGNvbHVtbidzIHNvcnRcbiAgICAgIGhlYWRlci5jb2x1bW4uY2xlYXJTb3J0aW5nKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIFRvZ2dsZSBzb3J0IC0gVGFuU3RhY2sgd2lsbCBoYW5kbGUgdGhlIGxvZ2ljIGludGVybmFsbHlcbiAgICAgIGhlYWRlci5jb2x1bW4udG9nZ2xlU29ydGluZyhkaXJlY3Rpb24gPT09ICdkZXNjJywgaXNNdWx0aVNvcnQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBCdWlsZCBwYWdpbmF0aW9uIEFQSSBmb3IgdGVtcGxhdGUgKi9cbiAgcGFnaW5hdGlvbkFQSSA9IGNvbXB1dGVkPE52RGF0YXRhYmxlUmVuZGVyUGFnaW5hdGlvbkFQSSB8IG51bGw+KCgpID0+IHtcbiAgICBjb25zdCBwYWdpbmF0aW9uQ29uZmlnID0gdGhpcy5wYWdpbmF0aW9uKCk7XG4gICAgaWYgKCFwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgY29uc3QgaXNTZXJ2ZXJNb2RlID0gY29tcG9uZW50TW9kZSA9PT0gJ3NlcnZlcic7XG4gICAgY29uc3QgaXNJbmZpbml0ZSA9IHBhZ2luYXRpb25Db25maWcuaW5maW5pdGUgPT09IHRydWU7XG4gICAgY29uc3QgdGFibGUgPSB0aGlzLnRhYmxlKCk7XG4gICAgY29uc3QgdGFibGVQYWdpbmF0aW9uU3RhdGUgPSB0YWJsZS5nZXRTdGF0ZSgpLnBhZ2luYXRpb247XG4gICAgY29uc3QgcGFnZUNvdW50ID0gdGFibGUuZ2V0UGFnZUNvdW50KCk7XG4gICAgY29uc3Qgcm93Q291bnQgPSBpc1NlcnZlck1vZGVcbiAgICAgID8gcGFnaW5hdGlvbkNvbmZpZy50b3RhbFJvd0NvdW50IHx8IHRoaXMucm93cygpLmxlbmd0aFxuICAgICAgOiB0aGlzLnJvd3MoKS5sZW5ndGg7XG5cbiAgICByZXR1cm4ge1xuICAgICAgcGFnZUluZGV4OiB0YWJsZVBhZ2luYXRpb25TdGF0ZS5wYWdlSW5kZXgsXG4gICAgICBwYWdlU2l6ZTogdGFibGVQYWdpbmF0aW9uU3RhdGUucGFnZVNpemUsXG4gICAgICBwYWdlQ291bnQsXG4gICAgICByb3dDb3VudCxcbiAgICAgIGZpcnN0UGFnZTogKCkgPT4gdGFibGUuc2V0UGFnZUluZGV4KDApLFxuICAgICAgcHJldmlvdXNQYWdlOiAoKSA9PiB0YWJsZS5wcmV2aW91c1BhZ2UoKSxcbiAgICAgIG5leHRQYWdlOiAoKSA9PiB0YWJsZS5uZXh0UGFnZSgpLFxuICAgICAgbGFzdFBhZ2U6ICgpID0+IHRhYmxlLnNldFBhZ2VJbmRleChwYWdlQ291bnQgLSAxKSxcbiAgICAgIHNldFBhZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHRhYmxlLnNldFBhZ2VJbmRleChpbmRleCksXG4gICAgICBzZXRQYWdlU2l6ZTogKHNpemU6IG51bWJlcikgPT4gdGFibGUuc2V0UGFnZVNpemUoc2l6ZSksXG4gICAgICBjYW5QcmV2aW91c1BhZ2U6IHRhYmxlLmdldENhblByZXZpb3VzUGFnZSgpLFxuICAgICAgY2FuTmV4dFBhZ2U6IHRhYmxlLmdldENhbk5leHRQYWdlKCksXG4gICAgICBpc0xvYWRpbmc6IGlzSW5maW5pdGUgPyBwYWdpbmF0aW9uQ29uZmlnLmlzTG9hZGluZyA6IHVuZGVmaW5lZCxcbiAgICAgIGhhc01vcmU6IGlzSW5maW5pdGUgPyBwYWdpbmF0aW9uQ29uZmlnLmhhc01vcmUgOiB1bmRlZmluZWQsXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gVmFsaWRhdGUgaW5maW5pdGUgc2Nyb2xsIHJlcXVpcmVzIHNlcnZlciBtb2RlXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IHBhZ2luYXRpb25Db25maWcgPSB0aGlzLnBhZ2luYXRpb24oKTtcbiAgICAgIGNvbnN0IGNvbXBvbmVudE1vZGUgPSB0aGlzLm1vZGUoKTtcblxuICAgICAgaWYgKHBhZ2luYXRpb25Db25maWc/LmluZmluaXRlID09PSB0cnVlICYmIGNvbXBvbmVudE1vZGUgIT09ICdzZXJ2ZXInKSB7XG4gICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAnW052RGF0YXRhYmxlXSBwYWdpbmF0aW9uLmluZmluaXRlPXRydWUgcmVxdWlyZXMgbW9kZT1cInNlcnZlclwiLiAnICtcbiAgICAgICAgICAgICdJbmZpbml0ZSBzY3JvbGwgcmVsaWVzIG9uIHNlcnZlci1zaWRlIGRhdGEgbG9hZGluZy4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgLy8gU2V0IHVwIGludGVyc2VjdGlvbiBvYnNlcnZlciBmb3IgaW5maW5pdGUgc2Nyb2xsXG4gICAgZWZmZWN0KFxuICAgICAgKCkgPT4ge1xuICAgICAgICBjb25zdCBwYWdpbmF0aW9uQ29uZmlnID0gdGhpcy5wYWdpbmF0aW9uKCk7XG4gICAgICAgIGNvbnN0IHJvd3MgPSB0aGlzLnJvd3MoKTsgLy8gVHJhY2sgcm93cyBjaGFuZ2VzXG4gICAgICAgIGNvbnN0IGlzSW5maW5pdGUgPSBwYWdpbmF0aW9uQ29uZmlnPy5pbmZpbml0ZSA9PT0gdHJ1ZTtcblxuICAgICAgICAvLyBDbGVhbiB1cCBleGlzdGluZyBvYnNlcnZlclxuICAgICAgICBpZiAodGhpcy5vYnNlcnZlcikge1xuICAgICAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gT25seSBzZXQgdXAgb2JzZXJ2ZXIgZm9yIGluZmluaXRlIHNjcm9sbCBtb2RlXG4gICAgICAgIGlmICghaXNJbmZpbml0ZSB8fCByb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIFVzZSBzZXRUaW1lb3V0IHRvIGVuc3VyZSBET00gaXMgdXBkYXRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICBjb25zdCB0aHJlc2hvbGQgPSBwYWdpbmF0aW9uQ29uZmlnLmxvYWRNb3JlVGhyZXNob2xkIHx8IDUwMDtcblxuICAgICAgICAgIC8vIEZpbmQgdGhlIGxhc3Qgcm93IGVsZW1lbnRcbiAgICAgICAgICBjb25zdCB0YWJsZVJvd0VsZW1lbnRzID0gZG9jdW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgICdbZGF0YS1pcy1sYXN0PVwidHJ1ZVwiXScsXG4gICAgICAgICAgKTtcbiAgICAgICAgICBjb25zdCBsYXN0Um93RWxlbWVudCA9IHRhYmxlUm93RWxlbWVudHNbdGFibGVSb3dFbGVtZW50cy5sZW5ndGggLSAxXTtcblxuICAgICAgICAgIGlmICghbGFzdFJvd0VsZW1lbnQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbmV3IEludGVyc2VjdGlvbk9ic2VydmVyKFxuICAgICAgICAgICAgKGVudHJpZXMpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZW50cnkgPSBlbnRyaWVzWzBdO1xuICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgZW50cnkuaXNJbnRlcnNlY3RpbmcgJiZcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLmhhc01vcmUgJiZcbiAgICAgICAgICAgICAgICAhcGFnaW5hdGlvbkNvbmZpZy5pc0xvYWRpbmcgJiZcbiAgICAgICAgICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLm9uTG9hZE1vcmVcbiAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5vbkxvYWRNb3JlKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHJvb3RNYXJnaW46IGAke3RocmVzaG9sZH1weGAsXG4gICAgICAgICAgICAgIHJvb3Q6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICk7XG5cbiAgICAgICAgICB0aGlzLm9ic2VydmVyLm9ic2VydmUobGFzdFJvd0VsZW1lbnQpO1xuICAgICAgICB9LCAwKTtcbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAvLyBTeW5jIGNlbGwgdGVtcGxhdGVzIFF1ZXJ5TGlzdCB0byBzaWduYWxcbiAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGVzKSB7XG4gICAgICB0aGlzLmNlbGxUZW1wbGF0ZXNTaWduYWwuc2V0KHRoaXMuY2VsbFRlbXBsYXRlcy50b0FycmF5KCkpO1xuXG4gICAgICAvLyBTdWJzY3JpYmUgdG8gY2hhbmdlcyBpbiB0aGUgUXVlcnlMaXN0XG4gICAgICB0aGlzLmNlbGxUZW1wbGF0ZXMuY2hhbmdlcy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICBpZiAodGhpcy5jZWxsVGVtcGxhdGVzKSB7XG4gICAgICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzU2lnbmFsLnNldCh0aGlzLmNlbGxUZW1wbGF0ZXMudG9BcnJheSgpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMub2JzZXJ2ZXIuZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5vYnNlcnZlciA9IG51bGw7XG4gICAgfVxuICB9XG59XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiogVVRJTFMgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qKlxuICogQ3JlYXRlcyBhIHN0cm9uZ2x5LXR5cGVkIGNvbHVtbiBmYWN0b3J5IGZvciBhIGdpdmVuIHJvdyB0eXBlLlxuICpcbiAqIEB0ZW1wbGF0ZSBSb3cgVGhlIHJvdyBkYXRhIHR5cGUgKGUuZy4sIGBQcm9kdWN0YClcbiAqXG4gKiBAcmV0dXJucyB7ZnVuY3Rpb259IEEgZnVuY3Rpb24gdGhhdCBhY2NlcHRzIGEgY29sdW1uIGRlZmluaXRpb24gYW5kIGluZmVyczpcbiAqIC0gYEtgIGFzIHRoZSBmaWVsZCBrZXkgKGBrZXlvZiBSb3dgKVxuICogLSBgRmAgYXMgdGhlIHJldHVybiB0eXBlIG9mIGB2YWx1ZUZvcm1hdHRlcmAgKGRlZmF1bHRzIHRvIGBSb3dbS11gKVxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGB0c1xuICogLy8gRGVmaW5lIHlvdXIgcm93IHR5cGVcbiAqIGludGVyZmFjZSBQcm9kdWN0IHtcbiAqICAgbmFtZTogc3RyaW5nO1xuICogICBwcmljZTogbnVtYmVyO1xuICogfVxuICpcbiAqIGNvbnN0IGNvbCA9IG1ha2VDb2x1bW48UHJvZHVjdD4oKTtcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIG1ha2VDb2x1bW48Um93PigpIHtcbiAgcmV0dXJuIGZ1bmN0aW9uIGRlZmluZTxLIGV4dGVuZHMga2V5b2YgUm93LCBGID0gUm93W0tdPihcbiAgICBjb2w6IE52RGF0YXRhYmxlQ29sdW1uPFJvdywgSywgRj4sXG4gICkge1xuICAgIHJldHVybiBjb2wgYXMgdW5rbm93biBhcyBOdkRhdGF0YWJsZUNvbHVtbjxSb3c+O1xuICB9O1xufVxuXG5leHBvcnQgeyBmbGV4UmVuZGVyQ29tcG9uZW50IGFzIG52RGF0YXRhYmxlUmVuZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRhdGFibGUudXRpbHMnO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFRZUEVTICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuZXhwb3J0IHR5cGUgeyBDZWxsQ29udGV4dCBhcyBOdkRhdGF0YWJsZUNlbGxDb250ZXh0IH07XG5cbi8qKiBDb2x1bW4gZGVmaW5pdGlvbiBmb3IgTnZEYXRhdGFibGUuICovXG5leHBvcnQgaW50ZXJmYWNlIE52RGF0YXRhYmxlQ29sdW1uPFxuICBSb3csXG4gIEsgZXh0ZW5kcyBrZXlvZiBSb3cgPSBrZXlvZiBSb3csXG4gIEYgPSBSb3dbS10sXG4+IHtcbiAgLyoqIEZpZWxkIG5hbWUgZnJvbSByb3cgZGF0YSAqL1xuICBmaWVsZDogSztcbiAgLyoqIERpc3BsYXkgbmFtZSBmb3IgY29sdW1uIGhlYWRlciAqL1xuICBoZWFkZXJOYW1lPzogc3RyaW5nO1xuICAvKiogQ29sdW1uIHdpZHRoIGluIHBpeGVscyAqL1xuICB3aWR0aD86IG51bWJlcjtcbiAgLyoqIFdoZXRoZXIgY29sdW1uIGlzIHJlc2l6YWJsZSAqL1xuICByZXNpemFibGU/OiBib29sZWFuO1xuICAvKiogV2hldGhlciBjb2x1bW4gaXMgaGlkZGVuICovXG4gIGhpZGRlbj86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBUcmFuc2Zvcm0gdGhlIHJhdyB2YWx1ZSBiZWZvcmUgcmVuZGVyaW5nLiBSZWNlaXZlcyB0aGUgY2VsbCB2YWx1ZSBhbmQgZnVsbCByb3cgb2JqZWN0LlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBmb3IgZm9ybWF0dGluZyBkYXRlcywgY29udmVydGluZyBhcnJheXMgdG8gc3RyaW5ncywgYWNjZXNzaW5nIG5lc3RlZCBvYmplY3RzLCBldGMuXG4gICAqIFRoZSB0cmFuc2Zvcm1lZCB2YWx1ZSBpcyB0aGVuIHBhc3NlZCB0byByZW5kZXJDZWxsIG9yIHRlbXBsYXRlcy5cbiAgICovXG4gIHZhbHVlRm9ybWF0dGVyPzogKHBhcmFtczogTnZUYWJsZVZhbHVlRm9ybWF0dGVyUGFyYW1zPFJvdywgUm93W0tdLCBLPikgPT4gRjtcbiAgLyoqXG4gICAqIEN1c3RvbSBjZWxsIHJlbmRlcmVyIGZ1bmN0aW9uIHRoYXQgY2FuIHJldHVybiBlaXRoZXIgYSBzdHJpbmcgb3IgQW5ndWxhciBUZW1wbGF0ZVJlZi5cbiAgICogVXNlIGAkaW1wbGljaXRgIGluIHlvdXIgdGVtcGxhdGUgdG8gcmVjZWl2ZSB0aGUgQ2VsbENvbnRleHQuXG4gICAqIE5vdGU6IElmIHZhbHVlRm9ybWF0dGVyIGlzIHByb3ZpZGVkLCByZW5kZXJDZWxsIHJlY2VpdmVzIHRoZSBmb3JtYXR0ZWQgdmFsdWUuXG4gICAqL1xuICByZW5kZXJDZWxsPzogKGNvbnRleHQ6IENlbGxDb250ZXh0PFJvdywgRj4pID0+XG4gICAgfCBzdHJpbmdcbiAgICB8IEZsZXhSZW5kZXJDb21wb25lbnRcbiAgICB8IFRlbXBsYXRlUmVmPHtcbiAgICAgICAgJGltcGxpY2l0OiBDZWxsQ29udGV4dDxSb3csIEY+O1xuICAgICAgfT47XG4gIC8qKiBFbmFibGUvZGlzYWJsZSBzb3J0aW5nIGZvciB0aGlzIGNvbHVtbiAqL1xuICBzb3J0YWJsZT86IGJvb2xlYW47XG4gIC8qKiBDdXN0b20gc29ydGluZyBmdW5jdGlvbiBvciBidWlsdC1pbiBmdW5jdGlvbiBuYW1lICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIHNvcnRpbmdGbj86ICgocm93QTogYW55LCByb3dCOiBhbnksIGNvbHVtbklkOiBzdHJpbmcpID0+IG51bWJlcikgfCBzdHJpbmc7XG4gIC8qKiBTdGFydCB3aXRoIGRlc2NlbmRpbmcgc29ydCBmb3IgdGhpcyBjb2x1bW4gKi9cbiAgc29ydERlc2NGaXJzdD86IGJvb2xlYW47XG4gIC8qKiBJbnZlcnQgdGhlIHNvcnQgb3JkZXIgKHVzZWZ1bCBmb3IgcmFua2luZ3MpICovXG4gIGludmVydFNvcnRpbmc/OiBib29sZWFuO1xuICAvKiogV2hlcmUgdG8gcGxhY2UgdW5kZWZpbmVkIHZhbHVlcyBpbiBzb3J0ICovXG4gIHNvcnRVbmRlZmluZWQ/OiAnZmlyc3QnIHwgJ2xhc3QnIHwgZmFsc2UgfCAtMSB8IDE7XG59XG5cbi8qKiBQYXJhbWV0ZXJzIGZvciBjdXN0b20gY2VsbCByZW5kZXJpbmcgZnVuY3Rpb24uICovXG5leHBvcnQgaW50ZXJmYWNlIE52VGFibGVSZW5kZXJDZWxsUGFyYW1zPFJvdywgVmFsdWUsIEZpZWxkPiB7XG4gIC8qKiBDZWxsIHZhbHVlICovXG4gIHZhbHVlOiBWYWx1ZSB8IE5vSW5mZXI8VmFsdWU+O1xuICAvKiogUm93IGRhdGEgKi9cbiAgcm93OiBSb3c7XG4gIC8qKiBGaWVsZCBuYW1lICovXG4gIGZpZWxkOiBGaWVsZDtcbiAgLyoqIFJvdyBpbmRleCAqL1xuICByb3dJbmRleDogbnVtYmVyO1xufVxuXG4vKipcbiAqIFBhcmFtZXRlcnMgZm9yIHZhbHVlRm9ybWF0dGVyIGZ1bmN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE52VGFibGVWYWx1ZUZvcm1hdHRlclBhcmFtczxSb3csIFZhbHVlLCBGaWVsZD4ge1xuICAvKiogQ2VsbCBvcmlnaW5hbCB2YWx1ZSAqL1xuICB2YWx1ZTogVmFsdWU7XG4gIC8qKiBSb3cgZGF0YSAqL1xuICByb3c6IFJvdztcbiAgLyoqIEZpZWxkIG5hbWUgKi9cbiAgZmllbGQ6IEZpZWxkO1xufVxuXG4vKipcbiAqIFBhZ2luYXRpb24gY29uZmlndXJhdGlvbiBmb3IgTnZEYXRhdGFibGUuXG4gKiBUaGUgcGFnaW5hdGlvbiBiZWhhdmlvciAoY2xpZW50IHZzIHNlcnZlcikgaXMgZGVyaXZlZCBmcm9tIHRoZSB0b3AtbGV2ZWwgYG1vZGVgIHByb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVQYWdpbmF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBpbmZpbml0ZSBzY3JvbGwgbW9kZS5cbiAgICogV2hlbiB0cnVlLCByZXF1aXJlcyB0aGUgY29tcG9uZW50J3MgdG9wLWxldmVsIGBtb2RlYCB0byBiZSBzZXQgdG8gJ3NlcnZlcicuXG4gICAqIERhdGEgaXMgbG9hZGVkIGluY3JlbWVudGFsbHkgYXMgdGhlIHVzZXIgc2Nyb2xscy5cbiAgICovXG4gIGluZmluaXRlPzogYm9vbGVhbjtcbiAgLyoqIEluaXRpYWwgcGFnZSBzaXplIChkZWZhdWx0OiAxMCkgKi9cbiAgaW5pdGlhbFBhZ2VTaXplPzogbnVtYmVyO1xuICAvKiogQXZhaWxhYmxlIHBhZ2Ugc2l6ZSBvcHRpb25zIChkZWZhdWx0OiBbMTAsIDIwLCA1MCwgMTAwXSkgKi9cbiAgcGFnZVNpemVPcHRpb25zPzogbnVtYmVyW107XG5cbiAgLy8gU2VydmVyLXNpZGUgKGJ1dHRvbnMpIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFRvdGFsIG51bWJlciBvZiByb3dzIChmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvbikgKi9cbiAgdG90YWxSb3dDb3VudD86IG51bWJlcjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBwYWdlcyAoZm9yIHNlcnZlci1zaWRlIHBhZ2luYXRpb24pICovXG4gIHRvdGFsUGFnZUNvdW50PzogbnVtYmVyO1xuICAvKiogQ2FsbGJhY2sgd2hlbiBwYWdpbmF0aW9uIHN0YXRlIGNoYW5nZXMgKGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uKSAqL1xuICBvblBhZ2luYXRpb25DaGFuZ2U/OiAoc3RhdGU6IHtcbiAgICAvKiogQ3VycmVudCBwYWdlIGluZGV4ICovXG4gICAgcGFnZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIEN1cnJlbnQgcGFnZSBzaXplICovXG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcblxuICAvLyBJbmZpbml0ZSBzY3JvbGwgc3BlY2lmaWMgcHJvcGVydGllcyAodXNlZCB3aGVuIGluZmluaXRlOiB0cnVlKVxuICAvKiogV2hldGhlciB0aGVyZSBhcmUgbW9yZSBpdGVtcyB0byBsb2FkIChmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgZGF0YSBpcyBjdXJyZW50bHkgbG9hZGluZyAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqIERpc3RhbmNlIGZyb20gYm90dG9tIGluIHBpeGVscyB0byB0cmlnZ2VyIGxvYWQgKGRlZmF1bHQ6IDUwMCkgKi9cbiAgbG9hZE1vcmVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBDYWxsYmFjayB0byBsb2FkIG1vcmUgZGF0YSAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgb25Mb2FkTW9yZT86ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQVBJIGV4cG9zZWQgdG8gcGFnaW5hdGlvbiB0ZW1wbGF0ZSBmb3IgYnVpbGRpbmcgY3VzdG9tIHBhZ2luYXRpb24gVUkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJIHtcbiAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleCAoemVyby1iYXNlZCkgKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IHBhZ2Ugc2l6ZSAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHBhZ2VzICovXG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHJvd3MgKi9cbiAgcm93Q291bnQ6IG51bWJlcjtcbiAgLyoqIE5hdmlnYXRlIHRvIGZpcnN0IHBhZ2UgKi9cbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgdG8gcHJldmlvdXMgcGFnZSAqL1xuICBwcmV2aW91c1BhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBuZXh0IHBhZ2UgKi9cbiAgbmV4dFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBsYXN0IHBhZ2UgKi9cbiAgbGFzdFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBzcGVjaWZpYyBwYWdlIGJ5IGluZGV4ICovXG4gIHNldFBhZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKiBDaGFuZ2UgcGFnZSBzaXplICovXG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAvKiogV2hldGhlciBwcmV2aW91cyBwYWdlIGlzIGF2YWlsYWJsZSAqL1xuICBjYW5QcmV2aW91c1BhZ2U6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG5leHQgcGFnZSBpcyBhdmFpbGFibGUgKi9cbiAgY2FuTmV4dFBhZ2U6IGJvb2xlYW47XG4gIC8qKiBMb2FkaW5nIHN0YXRlIChvbmx5IGZvciBpbmZpbml0ZSBzY3JvbGwpICovXG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG1vcmUgaXRlbXMgYXJlIGF2YWlsYWJsZSAob25seSBmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHNvcnRpbmcgbW9kZSAoY2xpZW50IHZzIHNlcnZlcikgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb21wb25lbnQncyB0b3AtbGV2ZWwgYG1vZGVgIHByb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHtcbiAgLyoqIEVuYWJsZSBtdWx0aS1jb2x1bW4gc29ydGluZyB3aXRoIFNoaWZ0K0NsaWNrICovXG4gIGVuYWJsZU11bHRpU29ydD86IGJvb2xlYW47XG4gIC8qKiBBbGxvdyBjeWNsaW5nIHRocm91Z2ggdG8gXCJubyBzb3J0XCIgc3RhdGUgKi9cbiAgZW5hYmxlU29ydGluZ1JlbW92YWw/OiBib29sZWFuO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29sdW1ucyBmb3IgbXVsdGktc29ydCAqL1xuICBtYXhNdWx0aVNvcnRDb2xDb3VudD86IG51bWJlcjtcbiAgLyoqIFN0YXJ0IHdpdGggZGVzY2VuZGluZyBzb3J0IGFzIGZpcnN0IHRvZ2dsZSBzdGF0ZSAqL1xuICBzb3J0RGVzY0ZpcnN0PzogYm9vbGVhbjtcbiAgLyoqIENvbnRyb2xsZWQgc29ydCBzdGF0ZSAoZm9yIHNlcnZlci1zaWRlIHNvcnRpbmcpICovXG4gIHNvcnRTdGF0ZT86IFNvcnRpbmdTdGF0ZTtcbiAgLyoqIENhbGxiYWNrIHdoZW4gc29ydGluZyBjaGFuZ2VzIChmb3Igc2VydmVyLXNpZGUgc29ydGluZykgKi9cbiAgb25Tb3J0aW5nQ2hhbmdlPzogKHNvcnRpbmc6IFNvcnRpbmdTdGF0ZSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIHN0YXRlIHR5cGUgLSBhcnJheSBvZiBzb3J0IGRlc2NyaXB0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIE52RGF0YVRhYmxlU29ydGluZ1N0YXRlID0gU29ydGluZ1N0YXRlO1xuIl19
|
|
579
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnYtZGF0YXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbnYtZGF0YXRhYmxlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx3Q0FBd0M7QUFDeEMsMENBQTBDO0FBQzFDLHdDQUF3QztBQUV4QyxPQUFPLEVBQ0wsU0FBUyxFQUNULFFBQVEsRUFDUixLQUFLLEVBQ0wsV0FBVyxFQUNYLHNCQUFzQixFQUN0QixZQUFZLEVBQ1osZUFBZSxFQUVmLE1BQU0sRUFDTixNQUFNLEVBRU4sU0FBUyxHQUdWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQ0wsd0JBQXdCLEdBRXpCLE1BQU0sK0JBQStCLENBQUM7QUFFdkMsZ0hBQWdIO0FBQ2hILE9BQU8sRUFDTCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLHFCQUFxQixFQUNyQixpQkFBaUIsRUFDakIsbUJBQW1CLEdBT3BCLE1BQU0sbUJBQW1CLENBQUM7OztBQUUzQjs7O0dBR0c7QUFxR0gsTUFBTSxPQUFPLFdBQVc7SUErUHRCLHdDQUF3QztJQUN4QyxLQUFLO1FBQ0gsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCwwQkFBMEIsQ0FDeEIsS0FBMkMsRUFDM0MsTUFLQztRQUVELHlEQUF5RDtRQUN6RCxJQUFJLFNBQWtDLENBQUM7UUFFdkMsSUFBSSxPQUFPLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM5QixTQUFTLEdBQUcsS0FBZ0MsQ0FBQztRQUMvQyxDQUFDO2FBQU0sSUFBSSxRQUFRLElBQUksS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNqRSxT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QUUsbUJBQW1CLENBQUM7b0JBQzVDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO29CQUNqQyxRQUFRLEVBQUU7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQTZGVDtpQkFDRjt3REFxQkMsa0JBQWtCO3NCQURqQixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtnQkFPekQsYUFBYTtzQkFEWixlQUFlO3VCQUFDLHdCQUF3Qjs7QUF1WjNDLGdGQUFnRjtBQUVoRjs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBa0JHO0FBQ0gsTUFBTSxVQUFVLFVBQVU7SUFDeEIsT0FBTyxTQUFTLE1BQU0sQ0FDcEIsR0FBaUM7UUFFakMsT0FBTyxHQUF3QyxDQUFDO0lBQ2xELENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRCxPQUFPLEVBQUUsbUJBQW1CLElBQUksMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtanNkb2MgKi9cbi8qIGVzbGludC1kaXNhYmxlIGpzZG9jL3JlcXVpcmUtcmV0dXJucyAqL1xuLyogZXNsaW50LWRpc2FibGUganNkb2MvcmVxdWlyZS1wYXJhbSAqL1xuXG5pbXBvcnQge1xuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBpbnB1dCxcbiAgVGVtcGxhdGVSZWYsXG4gIENVU1RPTV9FTEVNRU5UU19TQ0hFTUEsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBRdWVyeUxpc3QsXG4gIGVmZmVjdCxcbiAgc2lnbmFsLFxuICBFbGVtZW50UmVmLFxuICB2aWV3Q2hpbGQsXG4gIEFmdGVyVmlld0luaXQsXG4gIE9uRGVzdHJveSxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgTnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlLFxuICB0eXBlIE52RGF0YXRhYmxlQ2VsbENvbnRleHQsXG59IGZyb20gJy4vbnYtZGF0YXRhYmxlLWNlbGwuZGlyZWN0aXZlJztcblxuLy8gbG9jYWwgY29weSBvZiBAdGFuc3RhY2svYW5ndWxhci10YWJsZSAocmVxdWlyZWQgZm9yIG11bHRpIGFuZ3VsYXIgdmVyc2lvbnMsIHRoZSBidWlsdCB2ZXJzaW9uIGlzIG5vdCB3b3JraW5nKVxuaW1wb3J0IHtcbiAgY3JlYXRlQW5ndWxhclRhYmxlLFxuICBnZXRDb3JlUm93TW9kZWwsXG4gIGdldFBhZ2luYXRpb25Sb3dNb2RlbCxcbiAgZ2V0U29ydGVkUm93TW9kZWwsXG4gIEZsZXhSZW5kZXJEaXJlY3RpdmUsXG4gIHR5cGUgRmxleFJlbmRlckNvbXBvbmVudCxcbiAgdHlwZSBDb2x1bW5EZWYsXG4gIHR5cGUgQ2VsbENvbnRleHQsXG4gIHR5cGUgUGFnaW5hdGlvblN0YXRlLFxuICB0eXBlIFNvcnRpbmdTdGF0ZSxcbiAgdHlwZSBOb0luZmVyLFxufSBmcm9tICcuL2RhdGF0YWJsZS51dGlscyc7XG5cbi8qKlxuICogQSBwb3dlcmZ1bCwgZmxleGlibGUgZGF0YXRhYmxlIGNvbXBvbmVudCBidWlsdCBvbiBUYW5TdGFjayBUYWJsZS5cbiAqIFN1cHBvcnRzIGN1c3RvbSBjZWxsIHJlbmRlcmluZywgY29sdW1uIGNvbmZpZ3VyYXRpb24sIHBhZ2luYXRpb24sIGFuZCBmdWxsIFR5cGVTY3JpcHQgdHlwaW5nLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdudi1kYXRhdGFibGUnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGbGV4UmVuZGVyRGlyZWN0aXZlXSxcbiAgc2NoZW1hczogW0NVU1RPTV9FTEVNRU5UU19TQ0hFTUFdLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxudi10YWJsZT5cbiAgICAgIDx0YWJsZT5cbiAgICAgICAgPHRoZWFkIFthdHRyLmRhdGEtc3RpY2t5LXRvcF09XCJzdGlja3lIZWFkZXIoKSA/ICd0cnVlJyA6IG51bGxcIj5cbiAgICAgICAgICBAZm9yIChoZWFkZXJHcm91cCBvZiB0YWJsZSgpLmdldEhlYWRlckdyb3VwcygpOyB0cmFjayBoZWFkZXJHcm91cC5pZClcbiAgICAgICAgICB7XG4gICAgICAgICAgPHRyPlxuICAgICAgICAgICAgQGZvciAoaGVhZGVyIG9mIGhlYWRlckdyb3VwLmhlYWRlcnM7IHRyYWNrIGhlYWRlci5pZCkge1xuICAgICAgICAgICAgPHRoXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtaGVhZGVyLScgKyBoZWFkZXIuaWRcIlxuICAgICAgICAgICAgICBbc3R5bGUud2lkdGhdPVwiXG4gICAgICAgICAgICAgICAgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuc2l6ZVxuICAgICAgICAgICAgICAgICAgPyBoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5zaXplICsgJ3B4J1xuICAgICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICAgIFwiXG4gICAgICAgICAgICAgIFthdHRyLmRhdGEtbm8tcmVzaXplXT1cIlxuICAgICAgICAgICAgICAgICFoZWFkZXIuY29sdW1uLmNvbHVtbkRlZi5lbmFibGVSZXNpemluZyA/ICd0cnVlJyA6IG51bGxcbiAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgQGlmICghaGVhZGVyLmlzUGxhY2Vob2xkZXIpIHsgQGlmIChoZWFkZXIuY29sdW1uLmdldENhblNvcnQoKSkge1xuICAgICAgICAgICAgICA8bnYtdGFibGVoZWFkZXJcbiAgICAgICAgICAgICAgICBbc29ydGFibGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgW3NvcnREaXJlY3Rpb25dPVwiaGVhZGVyLmNvbHVtbi5nZXRJc1NvcnRlZCgpIHx8ICdub25lJ1wiXG4gICAgICAgICAgICAgICAgKHNvcnREaXJlY3Rpb25DaGFuZ2VkKT1cIlxuICAgICAgICAgICAgICAgICAgaGFuZGxlU29ydERpcmVjdGlvbkNoYW5nZWQoJGV2ZW50LCBoZWFkZXIpXG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGhlYWRlci5jb2x1bW4uY29sdW1uRGVmLmhlYWRlciB9fVxuICAgICAgICAgICAgICA8L252LXRhYmxlaGVhZGVyPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAge3sgaGVhZGVyLmNvbHVtbi5jb2x1bW5EZWYuaGVhZGVyIH19XG4gICAgICAgICAgICAgIH0gfVxuICAgICAgICAgICAgPC90aD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90aGVhZD5cblxuICAgICAgICA8dGJvZHk+XG4gICAgICAgICAgQGZvciAocm93IG9mIHRhYmxlKCkuZ2V0Um93TW9kZWwoKS5yb3dzOyB0cmFjayByb3cuaWQ7IGxldCBpID0gJGluZGV4KVxuICAgICAgICAgIHtcbiAgICAgICAgICA8dHJcbiAgICAgICAgICAgIFthdHRyLmRhdGEtdGVzdGlkXT1cIidkYXRhdGFibGUtcm93LScgKyBpXCJcbiAgICAgICAgICAgICN0YWJsZVJvd1xuICAgICAgICAgICAgW2F0dHIuZGF0YS1pcy1sYXN0XT1cIlxuICAgICAgICAgICAgICBpc0luZmluaXRlU2Nyb2xsKCkgJiYgaSA9PT0gdGFibGUoKS5nZXRSb3dNb2RlbCgpLnJvd3MubGVuZ3RoIC0gMVxuICAgICAgICAgICAgICAgID8gJ3RydWUnXG4gICAgICAgICAgICAgICAgOiBudWxsXG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIEBmb3IgKGNlbGwgb2Ygcm93LmdldFZpc2libGVDZWxscygpOyB0cmFjayBjZWxsLmlkKSB7XG4gICAgICAgICAgICA8dGQgW2F0dHIuZGF0YS10ZXN0aWRdPVwiJ2RhdGF0YWJsZS1jZWxsLScgKyBjZWxsLmNvbHVtbi5pZFwiPlxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAgICAgKmZsZXhSZW5kZXI9XCJcbiAgICAgICAgICAgICAgICAgIGNlbGwuY29sdW1uLmNvbHVtbkRlZi5jZWxsO1xuICAgICAgICAgICAgICAgICAgcHJvcHM6IGNlbGwuZ2V0Q29udGV4dCgpO1xuICAgICAgICAgICAgICAgICAgbGV0IGNlbGxDb250ZW50XG4gICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHt7IGNlbGxDb250ZW50IH19XG4gICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPC90ZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA8L3RyPlxuICAgICAgICAgIH1cbiAgICAgICAgPC90Ym9keT5cbiAgICAgIDwvdGFibGU+XG4gICAgPC9udi10YWJsZT5cblxuICAgIDwhLS0gUmVuZGVyIHBhZ2luYXRpb24gaWYgY29uZmlndXJlZCAtLT5cbiAgICBAaWYgKHBhZ2luYXRpb25BUEkoKSkge1xuICAgICAgQGlmIChwYWdpbmF0aW9uVGVtcGxhdGUpIHtcbiAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwiXG4gICAgICAgICAgICBwYWdpbmF0aW9uVGVtcGxhdGU7XG4gICAgICAgICAgICBjb250ZXh0OiB7ICRpbXBsaWNpdDogcGFnaW5hdGlvbkFQSSgpIH1cbiAgICAgICAgICBcIlxuICAgICAgICA+PC9uZy1jb250YWluZXI+XG4gICAgICB9IEBlbHNlIGlmIChtb2RlKCkgPT09ICdjbGllbnQnICYmIHBhZ2luYXRpb24oKSAmJiAhcGFnaW5hdGlvbigpPy5pbmZpbml0ZSkge1xuICAgICAgICA8IS0tIERlZmF1bHQgcGFnaW5hdGlvbiB3aXRoIG52LXBhZ2luYXRpb250YWJsZSAoY2xpZW50IG1vZGUgb25seSkgLS0+XG4gICAgICAgIDxudi1wYWdpbmF0aW9udGFibGVcbiAgICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2luYXRpb25BUEkoKSEucGFnZUluZGV4XCJcbiAgICAgICAgICBbcGFnZVNpemVdPVwicGFnaW5hdGlvbkFQSSgpIS5wYWdlU2l6ZVwiXG4gICAgICAgICAgW3BhZ2VDb3VudF09XCJwYWdpbmF0aW9uQVBJKCkhLnBhZ2VDb3VudFwiXG4gICAgICAgICAgW3Jvd0NvdW50XT1cInBhZ2luYXRpb25BUEkoKSEucm93Q291bnRcIlxuICAgICAgICAgIFthdHRyLmxhYmVsLXBhZ2VdPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnBhZ2UgfHwgbnVsbFwiXG4gICAgICAgICAgW2F0dHIubGFiZWwtdG90YWxdPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnRvdGFsIHx8IG51bGxcIlxuICAgICAgICAgIFthdHRyLmxhYmVsLXBhZ2Utc2l6ZS1vcHRpb25dPVwicGFnaW5hdGlvbigpPy5sYWJlbHM/LnBhZ2VTaXplT3B0aW9uIHx8IG51bGxcIlxuICAgICAgICAgIChwYWdlSW5kZXhDaGFuZ2VkKT1cInBhZ2luYXRpb25BUEkoKSEuc2V0UGFnZUluZGV4KCRldmVudC5kZXRhaWwpXCJcbiAgICAgICAgICAocGFnZVNpemVDaGFuZ2VkKT1cInBhZ2luYXRpb25BUEkoKSEuc2V0UGFnZVNpemUoJGV2ZW50LmRldGFpbClcIlxuICAgICAgICA+PC9udi1wYWdpbmF0aW9udGFibGU+XG4gICAgICB9XG4gICAgfVxuICBgLFxufSlcbmV4cG9ydCBjbGFzcyBOdkRhdGF0YWJsZTxUPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gIC8qKiBDb2x1bW4gZGVmaW5pdGlvbnMgKi9cbiAgY29sdW1ucyA9IGlucHV0PE52RGF0YXRhYmxlQ29sdW1uPFQ+W10+KFtdKTtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvd3MgPSBpbnB1dDxUW10+KFtdKTtcbiAgLyoqXG4gICAqIERhdGEgaGFuZGxpbmcgbW9kZSBmb3Igc29ydGluZyBhbmQgZmlsdGVyaW5nIG9wZXJhdGlvbnMuXG4gICAqIC0gJ2NsaWVudCc6IEFsbCBvcGVyYXRpb25zIGhhbmRsZWQgaW4gYnJvd3NlciAoZGVmYXVsdClcbiAgICogLSAnc2VydmVyJzogT3BlcmF0aW9ucyB0cmlnZ2VyIGNhbGxiYWNrcyBmb3Igc2VydmVyLXNpZGUgaGFuZGxpbmdcbiAgICovXG4gIG1vZGUgPSBpbnB1dDwnY2xpZW50JyB8ICdzZXJ2ZXInPignY2xpZW50Jyk7XG4gIC8qKiBPcHRpb25hbCBwYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gKi9cbiAgcGFnaW5hdGlvbiA9IGlucHV0PE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgLyoqIE9wdGlvbmFsIHNvcnRpbmcgY29uZmlndXJhdGlvbiAqL1xuICBzb3J0aW5nID0gaW5wdXQ8TnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICAvKiogU2hvdWxkIHRoZSBoZWFkZXIgc3RpY2sgdG8gdGhlIHRvcCBvZiB0aGUgdGFibGUgd2hlbiBzY3JvbGxpbmc/ICovXG4gIHN0aWNreUhlYWRlciA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcblxuICAvKiogVGVtcGxhdGUgZm9yIGN1c3RvbSBwYWdpbmF0aW9uIFVJICovXG4gIEBDb250ZW50Q2hpbGQoJ3BhZ2luYXRpb25UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYgfSlcbiAgcGFnaW5hdGlvblRlbXBsYXRlPzogVGVtcGxhdGVSZWY8e1xuICAgICRpbXBsaWNpdDogTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJO1xuICB9PjtcblxuICAvKiogQ2VsbCB0ZW1wbGF0ZXMgcHJvdmlkZWQgdmlhIG52RGF0YXRhYmxlQ2VsbCBkaXJlY3RpdmUgKi9cbiAgQENvbnRlbnRDaGlsZHJlbihOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmUpXG4gIGNlbGxUZW1wbGF0ZXM/OiBRdWVyeUxpc3Q8TnZEYXRhdGFibGVDZWxsRGlyZWN0aXZlPFQsIFRba2V5b2YgVF0+PjtcblxuICAvKiogU2lnbmFsIHRvIHRyYWNrIGNlbGwgdGVtcGxhdGVzIGFycmF5ICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlc1NpZ25hbCA9IHNpZ25hbDxcbiAgICBOdkRhdGF0YWJsZUNlbGxEaXJlY3RpdmU8VCwgVFtrZXlvZiBUXT5bXVxuICA+KFtdKTtcblxuICAvKiogTWFwIG9mIGZpZWxkIG5hbWVzIHRvIGNlbGwgdGVtcGxhdGVzICovXG4gIHByaXZhdGUgY2VsbFRlbXBsYXRlTWFwID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1hcCA9IG5ldyBNYXA8XG4gICAgICBzdHJpbmcsXG4gICAgICBUZW1wbGF0ZVJlZjxOdkRhdGF0YWJsZUNlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+PlxuICAgID4oKTtcbiAgICB0aGlzLmNlbGxUZW1wbGF0ZXNTaWduYWwoKS5mb3JFYWNoKChkaXJlY3RpdmUpID0+IHtcbiAgICAgIG1hcC5zZXQoZGlyZWN0aXZlLm52RGF0YXRhYmxlQ2VsbCwgZGlyZWN0aXZlLnRlbXBsYXRlKTtcbiAgICB9KTtcbiAgICByZXR1cm4gbWFwO1xuICB9KTtcblxuICAvKiogUGFnaW5hdGlvbiBzdGF0ZSBmb3Igc2VydmVyIG1vZGUgKi9cbiAgcHJpdmF0ZSBwYWdpbmF0aW9uU3RhdGUgPSBzaWduYWw8UGFnaW5hdGlvblN0YXRlPih7XG4gICAgcGFnZUluZGV4OiAwLFxuICAgIHBhZ2VTaXplOiB0aGlzLnBhZ2luYXRpb24oKT8uaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICB9KTtcblxuICAvKiogU29ydGluZyBzdGF0ZSBmb3IgY29udHJvbGxlZCBzb3J0aW5nIChzZXJ2ZXIgbW9kZSkgKi9cbiAgcHJpdmF0ZSBzb3J0aW5nU3RhdGUgPSBzaWduYWw8U29ydGluZ1N0YXRlPih0aGlzLnNvcnRpbmcoKT8uc29ydFN0YXRlIHx8IFtdKTtcblxuICAvKiogUmVmZXJlbmNlIHRvIHRhYmxlIHJvd3MgZm9yIGluZmluaXRlIHNjcm9sbCBvYnNlcnZlciAqL1xuICBwcml2YXRlIHRhYmxlUm93cyA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPigndGFibGVSb3cnKTtcblxuICAvKiogSW50ZXJzZWN0aW9uIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgKi9cbiAgcHJpdmF0ZSBvYnNlcnZlcjogSW50ZXJzZWN0aW9uT2JzZXJ2ZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogSGVscGVyIHRvIGNoZWNrIGlmIHVzaW5nIGluZmluaXRlIHNjcm9sbCAqL1xuICBpc0luZmluaXRlU2Nyb2xsID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5wYWdpbmF0aW9uKCk/LmluZmluaXRlID09PSB0cnVlKTtcblxuICAvKiogQ29tcHV0ZWQgdGFibGUgY29sdW1ucyB3aXRoIHByb3BlciB0eXBpbmcgYW5kIGZpbHRlcmluZy4gKi9cbiAgdGFibGVDb2x1bW5zID0gY29tcHV0ZWQ8Q29sdW1uRGVmPFQsIFRba2V5b2YgVF0+W10+KCgpID0+IHtcbiAgICBjb25zdCB0ZW1wbGF0ZU1hcCA9IHRoaXMuY2VsbFRlbXBsYXRlTWFwKCk7XG5cbiAgICByZXR1cm4gdGhpcy5jb2x1bW5zKClcbiAgICAgIC5maWx0ZXIoKGNvbCkgPT4gIWNvbC5oaWRkZW4pXG4gICAgICAubWFwKChjb2wpID0+IHtcbiAgICAgICAgLy8gU2hhcmVkIGNlbGwgcmVuZGVyZXJcbiAgICAgICAgY29uc3QgY2VsbFJlbmRlcmVyID0gKGNvbnRleHQ6IENlbGxDb250ZXh0PFQsIFRba2V5b2YgVF0+KSA9PiB7XG4gICAgICAgICAgY29uc3QgZmllbGROYW1lID0gU3RyaW5nKGNvbC5maWVsZCk7XG4gICAgICAgICAgY29uc3QgY2VsbFRlbXBsYXRlID0gdGVtcGxhdGVNYXAuZ2V0KGZpZWxkTmFtZSk7XG5cbiAgICAgICAgICAvLyBQcmlvcml0eTogdGVtcGxhdGUgPiByZW5kZXJDZWxsID4gZGVmYXVsdFxuICAgICAgICAgIGlmIChjZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIC8vIFJldHVybiBUZW1wbGF0ZVJlZiBkaXJlY3RseSAtIGdldFZhbHVlKCkgcmV0dXJucyBmb3JtYXR0ZWQgdmFsdWVcbiAgICAgICAgICAgIHJldHVybiBjZWxsVGVtcGxhdGU7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgLy8gRmFsbCBiYWNrIHRvIHJlbmRlckNlbGwgaWYgcHJvdmlkZWRcbiAgICAgICAgICBpZiAoY29sLnJlbmRlckNlbGwpIHtcbiAgICAgICAgICAgIHJldHVybiBjb2wucmVuZGVyQ2VsbChjb250ZXh0KTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICAvLyBEZWZhdWx0OiBqdXN0IHJldHVybiB0aGUgdmFsdWUgKGZvcm1hdHRlZCBpZiB2YWx1ZUZvcm1hdHRlciB3YXMgdXNlZClcbiAgICAgICAgICByZXR1cm4gY29udGV4dC5nZXRWYWx1ZSgpO1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNvbHVtbkRlZjogQ29sdW1uRGVmPFQsIFRba2V5b2YgVF0+ID0ge1xuICAgICAgICAgIGFjY2Vzc29yS2V5OiBjb2wuZmllbGQsXG4gICAgICAgICAgYWNjZXNzb3JGbjogY29sLnZhbHVlRm9ybWF0dGVyXG4gICAgICAgICAgICA/IChyb3c6IFQpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCByYXdWYWx1ZSA9IHJvd1tjb2wuZmllbGRdO1xuICAgICAgICAgICAgICAgIHJldHVybiBjb2wudmFsdWVGb3JtYXR0ZXIhKHtcbiAgICAgICAgICAgICAgICAgIHZhbHVlOiByYXdWYWx1ZSxcbiAgICAgICAgICAgICAgICAgIHJvdyxcbiAgICAgICAgICAgICAgICAgIGZpZWxkOiBjb2wuZmllbGQsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgIGhlYWRlcjogY29sLmhlYWRlck5hbWUgfHwgU3RyaW5nKGNvbC5maWVsZCksXG4gICAgICAgICAgc2l6ZTogY29sLndpZHRoLFxuICAgICAgICAgIGVuYWJsZVJlc2l6aW5nOiBjb2wucmVzaXphYmxlID8/IHRydWUsXG4gICAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdGhpcy5zb3J0aW5nKCkgPyBjb2wuc29ydGFibGUgPz8gdHJ1ZSA6IGZhbHNlLFxuICAgICAgICAgIGNlbGw6IGNlbGxSZW5kZXJlcixcbiAgICAgICAgfTtcblxuICAgICAgICAvLyBBZGQgb3B0aW9uYWwgc29ydGluZyBwcm9wZXJ0aWVzIG9ubHkgaWYgZGVmaW5lZFxuICAgICAgICBpZiAoY29sLnNvcnRpbmdGbiAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgLy8gQHRzLWV4cGVjdC1lcnJvciAtIFRhblN0YWNrIHR5cGluZyBpcyBzdHJpY3QgYnV0IHRoaXMgd29ya3MgYXQgcnVudGltZVxuICAgICAgICAgIGNvbHVtbkRlZi5zb3J0aW5nRm4gPSBjb2wuc29ydGluZ0ZuO1xuICAgICAgICB9XG4gICAgICAgIGlmIChjb2wuc29ydERlc2NGaXJzdCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgY29sdW1uRGVmLnNvcnREZXNjRmlyc3QgPSBjb2wuc29ydERlc2NGaXJzdDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoY29sLmludmVydFNvcnRpbmcgIT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgIGNvbHVtbkRlZi5pbnZlcnRTb3J0aW5nID0gY29sLmludmVydFNvcnRpbmc7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGNvbC5zb3J0VW5kZWZpbmVkICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICBjb2x1bW5EZWYuc29ydFVuZGVmaW5lZCA9IGNvbC5zb3J0VW5kZWZpbmVkO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGNvbHVtbkRlZjtcbiAgICAgIH0pO1xuICB9KTtcblxuICAvKiogVGFuU3RhY2sgdGFibGUgaW5zdGFuY2Ugd2l0aCBTaWduYWxzICovXG4gIHByaXZhdGUgdGFibGVJbnN0YW5jZSA9IGNyZWF0ZUFuZ3VsYXJUYWJsZSgoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGNvbnN0IHNvcnRpbmdDb25maWcgPSB0aGlzLnNvcnRpbmcoKTtcbiAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG4gICAgY29uc3QgaXNTZXJ2ZXJNb2RlID0gY29tcG9uZW50TW9kZSA9PT0gJ3NlcnZlcic7XG4gICAgY29uc3QgaXNJbmZpbml0ZSA9IHBhZ2luYXRpb25Db25maWc/LmluZmluaXRlID09PSB0cnVlO1xuXG4gICAgLy8gRGV0ZXJtaW5lIGJhc2UgdGFibGUgY29uZmlndXJhdGlvbiB3aXRoIHNvcnRpbmdcbiAgICBjb25zdCBnZXRCYXNlVGFibGVDb25maWcgPSAoKSA9PiB7XG4gICAgICBjb25zdCBiYXNlQ29uZmlnID0ge1xuICAgICAgICBkYXRhOiB0aGlzLnJvd3MoKSxcbiAgICAgICAgY29sdW1uczogdGhpcy50YWJsZUNvbHVtbnMoKSxcbiAgICAgICAgZ2V0Q29yZVJvd01vZGVsOiBnZXRDb3JlUm93TW9kZWwoKSxcbiAgICAgICAgLy8gU29ydGluZyBjb25maWd1cmF0aW9uIC0gdXNlcyB0b3AtbGV2ZWwgbW9kZVxuICAgICAgICAuLi4oc29ydGluZ0NvbmZpZyAmJiB7XG4gICAgICAgICAgc3RhdGU6IHtcbiAgICAgICAgICAgIHNvcnRpbmc6XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBvblNvcnRpbmdDaGFuZ2U6IChcbiAgICAgICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgICAgICB8IFNvcnRpbmdTdGF0ZVxuICAgICAgICAgICAgICB8ICgob2xkOiBTb3J0aW5nU3RhdGUpID0+IFNvcnRpbmdTdGF0ZSksXG4gICAgICAgICAgKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBjdXJyZW50U29ydCA9XG4gICAgICAgICAgICAgIGlzU2VydmVyTW9kZSAmJiBzb3J0aW5nQ29uZmlnLnNvcnRTdGF0ZVxuICAgICAgICAgICAgICAgID8gc29ydGluZ0NvbmZpZy5zb3J0U3RhdGVcbiAgICAgICAgICAgICAgICA6IHRoaXMuc29ydGluZ1N0YXRlKCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG5ld1NvcnQgPVxuICAgICAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgICAgICA/IHVwZGF0ZXJPclZhbHVlKGN1cnJlbnRTb3J0KVxuICAgICAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgICAgIC8vIEFsd2F5cyB1cGRhdGUgaW50ZXJuYWwgc3RhdGUgZm9yIHJlYWN0aXZpdHlcbiAgICAgICAgICAgIHRoaXMuc29ydGluZ1N0YXRlLnNldChuZXdTb3J0KTtcblxuICAgICAgICAgICAgLy8gRm9yIHNlcnZlci1zaWRlIHNvcnRpbmcsIGFsc28gY2FsbCB0aGUgY2FsbGJhY2tcbiAgICAgICAgICAgIGlmIChpc1NlcnZlck1vZGUgJiYgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UpIHtcbiAgICAgICAgICAgICAgc29ydGluZ0NvbmZpZy5vblNvcnRpbmdDaGFuZ2UobmV3U29ydCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSxcbiAgICAgICAgICBtYW51YWxTb3J0aW5nOiBpc1NlcnZlck1vZGUsXG4gICAgICAgICAgZW5hYmxlU29ydGluZzogdHJ1ZSxcbiAgICAgICAgICBlbmFibGVNdWx0aVNvcnQ6IHNvcnRpbmdDb25maWcuZW5hYmxlTXVsdGlTb3J0ID8/IGZhbHNlLFxuICAgICAgICAgIGVuYWJsZVNvcnRpbmdSZW1vdmFsOiBzb3J0aW5nQ29uZmlnLmVuYWJsZVNvcnRpbmdSZW1vdmFsID8/IHRydWUsXG4gICAgICAgICAgbWF4TXVsdGlTb3J0Q29sQ291bnQ6IHNvcnRpbmdDb25maWcubWF4TXVsdGlTb3J0Q29sQ291bnQsXG4gICAgICAgICAgc29ydERlc2NGaXJzdDogc29ydGluZ0NvbmZpZy5zb3J0RGVzY0ZpcnN0ID8/IGZhbHNlLFxuICAgICAgICAgIC8vIFdoZW4gbXVsdGktc29ydCBpcyBlbmFibGVkLCB0cmVhdCBhbGwgY2xpY2tzIGFzIG11bHRpLXNvcnQgZXZlbnRzXG4gICAgICAgICAgaXNNdWx0aVNvcnRFdmVudDogc29ydGluZ0NvbmZpZy5lbmFibGVNdWx0aVNvcnRcbiAgICAgICAgICAgID8gKCkgPT4gdHJ1ZVxuICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgZ2V0U29ydGVkUm93TW9kZWw6ICFpc1NlcnZlck1vZGUgPyBnZXRTb3J0ZWRSb3dNb2RlbCgpIDogdW5kZWZpbmVkLFxuICAgICAgICB9KSxcbiAgICAgIH07XG5cbiAgICAgIHJldHVybiBiYXNlQ29uZmlnO1xuICAgIH07XG5cbiAgICAvLyBJbmZpbml0ZSBzY3JvbGwgbW9kZSAocmVxdWlyZXMgc2VydmVyIG1vZGUpXG4gICAgaWYgKGlzSW5maW5pdGUpIHtcbiAgICAgIC8vIE5vIHBhZ2luYXRpb24gcm93IG1vZGVsIGZvciBpbmZpbml0ZSBzY3JvbGwgLSBzaW1wbGUgY29uZmlnXG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gTm8gcGFnaW5hdGlvbiBjb25maWd1cmVkXG4gICAgaWYgKCFwYWdpbmF0aW9uQ29uZmlnKSB7XG4gICAgICByZXR1cm4gZ2V0QmFzZVRhYmxlQ29uZmlnKCk7XG4gICAgfVxuXG4gICAgLy8gQ2xpZW50LXNpZGUgcGFnaW5hdGlvblxuICAgIGlmICghaXNTZXJ2ZXJNb2RlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICAuLi5nZXRCYXNlVGFibGVDb25maWcoKSxcbiAgICAgICAgZ2V0UGFnaW5hdGlvblJvd01vZGVsOiBnZXRQYWdpbmF0aW9uUm93TW9kZWwoKSxcbiAgICAgICAgaW5pdGlhbFN0YXRlOiB7XG4gICAgICAgICAgcGFnaW5hdGlvbjoge1xuICAgICAgICAgICAgcGFnZUluZGV4OiAwLFxuICAgICAgICAgICAgcGFnZVNpemU6IHBhZ2luYXRpb25Db25maWcuaW5pdGlhbFBhZ2VTaXplIHx8IDEwLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIFNlcnZlci1zaWRlIHBhZ2luYXRpb24gLSBtYW51YWwgcGFnaW5hdGlvbiB3aXRoIHJlYWN0aXZlIHN0YXRlXG4gICAgY29uc3QgYmFzZUNvbmZpZyA9IGdldEJhc2VUYWJsZUNvbmZpZygpO1xuICAgIGNvbnN0IHBhZ2VTaXplID0gdGhpcy5wYWdpbmF0aW9uU3RhdGUoKS5wYWdlU2l6ZTtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uYmFzZUNvbmZpZyxcbiAgICAgIG1hbnVhbFBhZ2luYXRpb246IHRydWUsXG4gICAgICBwYWdlQ291bnQ6XG4gICAgICAgIHBhZ2luYXRpb25Db25maWcudG90YWxQYWdlQ291bnQgIT09IHVuZGVmaW5lZFxuICAgICAgICAgID8gcGFnaW5hdGlvbkNvbmZpZy50b3RhbFBhZ2VDb3VudFxuICAgICAgICAgIDogcGFnaW5hdGlvbkNvbmZpZy50b3RhbFJvd0NvdW50ICE9PSB1bmRlZmluZWRcbiAgICAgICAgICA/IE1hdGguY2VpbChwYWdpbmF0aW9uQ29uZmlnLnRvdGFsUm93Q291bnQgLyBwYWdlU2l6ZSlcbiAgICAgICAgICA6IC0xLFxuICAgICAgc3RhdGU6IHtcbiAgICAgICAgcGFnaW5hdGlvbjogdGhpcy5wYWdpbmF0aW9uU3RhdGUoKSxcbiAgICAgICAgLi4uKGJhc2VDb25maWcuc3RhdGUgJiYgeyBzb3J0aW5nOiBiYXNlQ29uZmlnLnN0YXRlLnNvcnRpbmcgfSksXG4gICAgICB9LFxuICAgICAgb25QYWdpbmF0aW9uQ2hhbmdlOiAoXG4gICAgICAgIHVwZGF0ZXJPclZhbHVlOlxuICAgICAgICAgIHwgUGFnaW5hdGlvblN0YXRlXG4gICAgICAgICAgfCAoKG9sZDogUGFnaW5hdGlvblN0YXRlKSA9PiBQYWdpbmF0aW9uU3RhdGUpLFxuICAgICAgKSA9PiB7XG4gICAgICAgIGNvbnN0IG5ld1N0YXRlID1cbiAgICAgICAgICB0eXBlb2YgdXBkYXRlck9yVmFsdWUgPT09ICdmdW5jdGlvbidcbiAgICAgICAgICAgID8gdXBkYXRlck9yVmFsdWUodGhpcy5wYWdpbmF0aW9uU3RhdGUoKSlcbiAgICAgICAgICAgIDogdXBkYXRlck9yVmFsdWU7XG5cbiAgICAgICAgdGhpcy5wYWdpbmF0aW9uU3RhdGUuc2V0KG5ld1N0YXRlKTtcblxuICAgICAgICAvLyBDYWxsIHVzZXIncyBjYWxsYmFjayBmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvblxuICAgICAgICBpZiAocGFnaW5hdGlvbkNvbmZpZy5vblBhZ2luYXRpb25DaGFuZ2UpIHtcbiAgICAgICAgICBwYWdpbmF0aW9uQ29uZmlnLm9uUGFnaW5hdGlvbkNoYW5nZSh7XG4gICAgICAgICAgICBwYWdlSW5kZXg6IG5ld1N0YXRlLnBhZ2VJbmRleCxcbiAgICAgICAgICAgIHBhZ2VTaXplOiBuZXdTdGF0ZS5wYWdlU2l6ZSxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgfSxcbiAgICB9O1xuICB9KTtcblxuICAvKiogUHVibGljIGdldHRlciBmb3IgdGFibGUgaW5zdGFuY2UuICovXG4gIHRhYmxlKCkge1xuICAgIHJldHVybiB0aGlzLnRhYmxlSW5zdGFuY2UoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgc29ydCBkaXJlY3Rpb24gY2hhbmdlIGZyb20gdGFibGUgaGVhZGVyXG4gICAqIEBwYXJhbSB7RXZlbnR9IGV2ZW50IFRoZSBzb3J0IGRpcmVjdGlvbiBjaGFuZ2UgZXZlbnQgb3IgZGlyZWN0aW9uIHN0cmluZ1xuICAgKiBAcGFyYW0ge29iamVjdH0gaGVhZGVyIFRoZSB0YWJsZSBoZWFkZXIgb2JqZWN0XG4gICAqL1xuICBoYW5kbGVTb3J0RGlyZWN0aW9uQ2hhbmdlZChcbiAgICBldmVudDogRXZlbnQgfCBDdXN0b21FdmVudDxzdHJpbmc+IHwgc3RyaW5nLFxuICAgIGhlYWRlcjoge1xuICAgICAgY29sdW1uOiB7XG4gICAgICAgIGNsZWFyU29ydGluZzogKCkgPT4gdm9pZDtcbiAgICAgICAgdG9nZ2xlU29ydGluZzogKGRlc2M/OiBib29sZWFuLCBtdWx0aT86IGJvb2xlYW4pID0+IHZvaWQ7XG4gICAgICB9O1xuICAgIH0sXG4gICkge1xuICAgIC8vIEV4dHJhY3QgZGlyZWN0aW9uIGZyb20gZXZlbnQgb3IgdXNlIGRpcmVjdGx5IGlmIHN0cmluZ1xuICAgIGxldCBkaXJlY3Rpb246ICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuXG4gICAgaWYgKHR5cGVvZiBldmVudCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50IGFzICdhc2MnIHwgJ2Rlc2MnIHwgJ25vbmUnO1xuICAgIH0gZWxzZSBpZiAoJ2RldGFpbCcgaW4gZXZlbnQgJiYgdHlwZW9mIGV2ZW50LmRldGFpbCA9PT0gJ3N0cmluZycpIHtcbiAgICAgIGRpcmVjdGlvbiA9IGV2ZW50LmRldGFpbCBhcyAnYXNjJyB8ICdkZXNjJyB8ICdub25lJztcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gRmFsbGJhY2sgLSBzaG91bGRuJ3QgaGFwcGVuIGJ1dCBoYW5kbGUgZ3JhY2VmdWxseVxuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAnVW5leHBlY3RlZCBldmVudCB0eXBlIGluIGhhbmRsZVNvcnREaXJlY3Rpb25DaGFuZ2VkOicsXG4gICAgICAgIGV2ZW50LFxuICAgICAgKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBzb3J0aW5nQ29uZmlnID0gdGhpcy5zb3J0aW5nKCk7XG5cbiAgICAvLyBDaGVjayBpZiBtdWx0aS1zb3J0IGlzIGVuYWJsZWRcbiAgICBjb25zdCBpc011bHRpU29ydCA9IHNvcnRpbmdDb25maWc/LmVuYWJsZU11bHRpU29ydCA/PyBmYWxzZTtcblxuICAgIGlmIChkaXJlY3Rpb24gPT09ICdub25lJykge1xuICAgICAgLy8gQ2xlYXIgdGhpcyBjb2x1bW4ncyBzb3J0XG4gICAgICBoZWFkZXIuY29sdW1uLmNsZWFyU29ydGluZygpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvLyBUb2dnbGUgc29ydCAtIFRhblN0YWNrIHdpbGwgaGFuZGxlIHRoZSBsb2dpYyBpbnRlcm5hbGx5XG4gICAgICBoZWFkZXIuY29sdW1uLnRvZ2dsZVNvcnRpbmcoZGlyZWN0aW9uID09PSAnZGVzYycsIGlzTXVsdGlTb3J0KTtcbiAgICB9XG4gIH1cblxuICAvKiogQnVpbGQgcGFnaW5hdGlvbiBBUEkgZm9yIHRlbXBsYXRlICovXG4gIHBhZ2luYXRpb25BUEkgPSBjb21wdXRlZDxOdkRhdGF0YWJsZVJlbmRlclBhZ2luYXRpb25BUEkgfCBudWxsPigoKSA9PiB7XG4gICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgIGlmICghcGFnaW5hdGlvbkNvbmZpZykge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgY29uc3QgY29tcG9uZW50TW9kZSA9IHRoaXMubW9kZSgpO1xuICAgIGNvbnN0IGlzU2VydmVyTW9kZSA9IGNvbXBvbmVudE1vZGUgPT09ICdzZXJ2ZXInO1xuICAgIGNvbnN0IGlzSW5maW5pdGUgPSBwYWdpbmF0aW9uQ29uZmlnLmluZmluaXRlID09PSB0cnVlO1xuICAgIGNvbnN0IHRhYmxlID0gdGhpcy50YWJsZSgpO1xuICAgIGNvbnN0IHRhYmxlUGFnaW5hdGlvblN0YXRlID0gdGFibGUuZ2V0U3RhdGUoKS5wYWdpbmF0aW9uO1xuICAgIGNvbnN0IHBhZ2VDb3VudCA9IHRhYmxlLmdldFBhZ2VDb3VudCgpO1xuICAgIGNvbnN0IHJvd0NvdW50ID0gaXNTZXJ2ZXJNb2RlXG4gICAgICA/IHBhZ2luYXRpb25Db25maWcudG90YWxSb3dDb3VudCB8fCB0aGlzLnJvd3MoKS5sZW5ndGhcbiAgICAgIDogdGhpcy5yb3dzKCkubGVuZ3RoO1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIHBhZ2VJbmRleDogdGFibGVQYWdpbmF0aW9uU3RhdGUucGFnZUluZGV4LFxuICAgICAgcGFnZVNpemU6IHRhYmxlUGFnaW5hdGlvblN0YXRlLnBhZ2VTaXplLFxuICAgICAgcGFnZUNvdW50LFxuICAgICAgcm93Q291bnQsXG4gICAgICBmaXJzdFBhZ2U6ICgpID0+IHRhYmxlLnNldFBhZ2VJbmRleCgwKSxcbiAgICAgIHByZXZpb3VzUGFnZTogKCkgPT4gdGFibGUucHJldmlvdXNQYWdlKCksXG4gICAgICBuZXh0UGFnZTogKCkgPT4gdGFibGUubmV4dFBhZ2UoKSxcbiAgICAgIGxhc3RQYWdlOiAoKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgocGFnZUNvdW50IC0gMSksXG4gICAgICBzZXRQYWdlSW5kZXg6IChpbmRleDogbnVtYmVyKSA9PiB0YWJsZS5zZXRQYWdlSW5kZXgoaW5kZXgpLFxuICAgICAgc2V0UGFnZVNpemU6IChzaXplOiBudW1iZXIpID0+IHRhYmxlLnNldFBhZ2VTaXplKHNpemUpLFxuICAgICAgY2FuUHJldmlvdXNQYWdlOiB0YWJsZS5nZXRDYW5QcmV2aW91c1BhZ2UoKSxcbiAgICAgIGNhbk5leHRQYWdlOiB0YWJsZS5nZXRDYW5OZXh0UGFnZSgpLFxuICAgICAgaXNMb2FkaW5nOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5pc0xvYWRpbmcgOiB1bmRlZmluZWQsXG4gICAgICBoYXNNb3JlOiBpc0luZmluaXRlID8gcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlIDogdW5kZWZpbmVkLFxuICAgIH07XG4gIH0pO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIC8vIFZhbGlkYXRlIGluZmluaXRlIHNjcm9sbCByZXF1aXJlcyBzZXJ2ZXIgbW9kZVxuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBwYWdpbmF0aW9uQ29uZmlnID0gdGhpcy5wYWdpbmF0aW9uKCk7XG4gICAgICBjb25zdCBjb21wb25lbnRNb2RlID0gdGhpcy5tb2RlKCk7XG5cbiAgICAgIGlmIChwYWdpbmF0aW9uQ29uZmlnPy5pbmZpbml0ZSA9PT0gdHJ1ZSAmJiBjb21wb25lbnRNb2RlICE9PSAnc2VydmVyJykge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgJ1tOdkRhdGF0YWJsZV0gcGFnaW5hdGlvbi5pbmZpbml0ZT10cnVlIHJlcXVpcmVzIG1vZGU9XCJzZXJ2ZXJcIi4gJyArXG4gICAgICAgICAgICAnSW5maW5pdGUgc2Nyb2xsIHJlbGllcyBvbiBzZXJ2ZXItc2lkZSBkYXRhIGxvYWRpbmcuJyxcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIC8vIFNldCB1cCBpbnRlcnNlY3Rpb24gb2JzZXJ2ZXIgZm9yIGluZmluaXRlIHNjcm9sbFxuICAgIGVmZmVjdChcbiAgICAgICgpID0+IHtcbiAgICAgICAgY29uc3QgcGFnaW5hdGlvbkNvbmZpZyA9IHRoaXMucGFnaW5hdGlvbigpO1xuICAgICAgICBjb25zdCByb3dzID0gdGhpcy5yb3dzKCk7IC8vIFRyYWNrIHJvd3MgY2hhbmdlc1xuICAgICAgICBjb25zdCBpc0luZmluaXRlID0gcGFnaW5hdGlvbkNvbmZpZz8uaW5maW5pdGUgPT09IHRydWU7XG5cbiAgICAgICAgLy8gQ2xlYW4gdXAgZXhpc3Rpbmcgb2JzZXJ2ZXJcbiAgICAgICAgaWYgKHRoaXMub2JzZXJ2ZXIpIHtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgICB0aGlzLm9ic2VydmVyID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIE9ubHkgc2V0IHVwIG9ic2VydmVyIGZvciBpbmZpbml0ZSBzY3JvbGwgbW9kZVxuICAgICAgICBpZiAoIWlzSW5maW5pdGUgfHwgcm93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICAvLyBVc2Ugc2V0VGltZW91dCB0byBlbnN1cmUgRE9NIGlzIHVwZGF0ZWRcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdGhyZXNob2xkID0gcGFnaW5hdGlvbkNvbmZpZy5sb2FkTW9yZVRocmVzaG9sZCB8fCA1MDA7XG5cbiAgICAgICAgICAvLyBGaW5kIHRoZSBsYXN0IHJvdyBlbGVtZW50XG4gICAgICAgICAgY29uc3QgdGFibGVSb3dFbGVtZW50cyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICAnW2RhdGEtaXMtbGFzdD1cInRydWVcIl0nLFxuICAgICAgICAgICk7XG4gICAgICAgICAgY29uc3QgbGFzdFJvd0VsZW1lbnQgPSB0YWJsZVJvd0VsZW1lbnRzW3RhYmxlUm93RWxlbWVudHMubGVuZ3RoIC0gMV07XG5cbiAgICAgICAgICBpZiAoIWxhc3RSb3dFbGVtZW50KSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgICAgICAgIChlbnRyaWVzKSA9PiB7XG4gICAgICAgICAgICAgIGNvbnN0IGVudHJ5ID0gZW50cmllc1swXTtcbiAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgIGVudHJ5LmlzSW50ZXJzZWN0aW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5oYXNNb3JlICYmXG4gICAgICAgICAgICAgICAgIXBhZ2luYXRpb25Db25maWcuaXNMb2FkaW5nICYmXG4gICAgICAgICAgICAgICAgcGFnaW5hdGlvbkNvbmZpZy5vbkxvYWRNb3JlXG4gICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgIHBhZ2luYXRpb25Db25maWcub25Mb2FkTW9yZSgpO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICByb290TWFyZ2luOiBgJHt0aHJlc2hvbGR9cHhgLFxuICAgICAgICAgICAgICByb290OiBudWxsLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgdGhpcy5vYnNlcnZlci5vYnNlcnZlKGxhc3RSb3dFbGVtZW50KTtcbiAgICAgICAgfSwgMCk7XG4gICAgICB9LFxuICAgICAgeyBhbGxvd1NpZ25hbFdyaXRlczogdHJ1ZSB9LFxuICAgICk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgLy8gU3luYyBjZWxsIHRlbXBsYXRlcyBRdWVyeUxpc3QgdG8gc2lnbmFsXG4gICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzU2lnbmFsLnNldCh0aGlzLmNlbGxUZW1wbGF0ZXMudG9BcnJheSgpKTtcblxuICAgICAgLy8gU3Vic2NyaWJlIHRvIGNoYW5nZXMgaW4gdGhlIFF1ZXJ5TGlzdFxuICAgICAgdGhpcy5jZWxsVGVtcGxhdGVzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuY2VsbFRlbXBsYXRlcykge1xuICAgICAgICAgIHRoaXMuY2VsbFRlbXBsYXRlc1NpZ25hbC5zZXQodGhpcy5jZWxsVGVtcGxhdGVzLnRvQXJyYXkoKSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm9ic2VydmVyKSB7XG4gICAgICB0aGlzLm9ic2VydmVyLmRpc2Nvbm5lY3QoKTtcbiAgICAgIHRoaXMub2JzZXJ2ZXIgPSBudWxsO1xuICAgIH1cbiAgfVxufVxuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqIFVUSUxTICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIENyZWF0ZXMgYSBzdHJvbmdseS10eXBlZCBjb2x1bW4gZmFjdG9yeSBmb3IgYSBnaXZlbiByb3cgdHlwZS5cbiAqXG4gKiBAdGVtcGxhdGUgUm93IFRoZSByb3cgZGF0YSB0eXBlIChlLmcuLCBgUHJvZHVjdGApXG4gKlxuICogQHJldHVybnMge2Z1bmN0aW9ufSBBIGZ1bmN0aW9uIHRoYXQgYWNjZXB0cyBhIGNvbHVtbiBkZWZpbml0aW9uIGFuZCBpbmZlcnM6XG4gKiAtIGBLYCBhcyB0aGUgZmllbGQga2V5IChga2V5b2YgUm93YClcbiAqIC0gYEZgIGFzIHRoZSByZXR1cm4gdHlwZSBvZiBgdmFsdWVGb3JtYXR0ZXJgIChkZWZhdWx0cyB0byBgUm93W0tdYClcbiAqXG4gKiBAZXhhbXBsZVxuICogYGBgdHNcbiAqIC8vIERlZmluZSB5b3VyIHJvdyB0eXBlXG4gKiBpbnRlcmZhY2UgUHJvZHVjdCB7XG4gKiAgIG5hbWU6IHN0cmluZztcbiAqICAgcHJpY2U6IG51bWJlcjtcbiAqIH1cbiAqXG4gKiBjb25zdCBjb2wgPSBtYWtlQ29sdW1uPFByb2R1Y3Q+KCk7XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBtYWtlQ29sdW1uPFJvdz4oKSB7XG4gIHJldHVybiBmdW5jdGlvbiBkZWZpbmU8SyBleHRlbmRzIGtleW9mIFJvdywgRiA9IFJvd1tLXT4oXG4gICAgY29sOiBOdkRhdGF0YWJsZUNvbHVtbjxSb3csIEssIEY+LFxuICApIHtcbiAgICByZXR1cm4gY29sIGFzIHVua25vd24gYXMgTnZEYXRhdGFibGVDb2x1bW48Um93PjtcbiAgfTtcbn1cblxuZXhwb3J0IHsgZmxleFJlbmRlckNvbXBvbmVudCBhcyBudkRhdGF0YWJsZVJlbmRlckNvbXBvbmVudCB9IGZyb20gJy4vZGF0YXRhYmxlLnV0aWxzJztcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBUWVBFUyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cbmV4cG9ydCB0eXBlIHsgQ2VsbENvbnRleHQgYXMgTnZEYXRhdGFibGVDZWxsQ29udGV4dCB9O1xuXG4vKiogQ29sdW1uIGRlZmluaXRpb24gZm9yIE52RGF0YXRhYmxlLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdkRhdGF0YWJsZUNvbHVtbjxcbiAgUm93LFxuICBLIGV4dGVuZHMga2V5b2YgUm93ID0ga2V5b2YgUm93LFxuICBGID0gUm93W0tdLFxuPiB7XG4gIC8qKiBGaWVsZCBuYW1lIGZyb20gcm93IGRhdGEgKi9cbiAgZmllbGQ6IEs7XG4gIC8qKiBEaXNwbGF5IG5hbWUgZm9yIGNvbHVtbiBoZWFkZXIgKi9cbiAgaGVhZGVyTmFtZT86IHN0cmluZztcbiAgLyoqIENvbHVtbiB3aWR0aCBpbiBwaXhlbHMgKi9cbiAgd2lkdGg/OiBudW1iZXI7XG4gIC8qKiBXaGV0aGVyIGNvbHVtbiBpcyByZXNpemFibGUgKi9cbiAgcmVzaXphYmxlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgY29sdW1uIGlzIGhpZGRlbiAqL1xuICBoaWRkZW4/OiBib29sZWFuO1xuICAvKipcbiAgICogVHJhbnNmb3JtIHRoZSByYXcgdmFsdWUgYmVmb3JlIHJlbmRlcmluZy4gUmVjZWl2ZXMgdGhlIGNlbGwgdmFsdWUgYW5kIGZ1bGwgcm93IG9iamVjdC5cbiAgICogVGhpcyBpcyB1c2VmdWwgZm9yIGZvcm1hdHRpbmcgZGF0ZXMsIGNvbnZlcnRpbmcgYXJyYXlzIHRvIHN0cmluZ3MsIGFjY2Vzc2luZyBuZXN0ZWQgb2JqZWN0cywgZXRjLlxuICAgKiBUaGUgdHJhbnNmb3JtZWQgdmFsdWUgaXMgdGhlbiBwYXNzZWQgdG8gcmVuZGVyQ2VsbCBvciB0ZW1wbGF0ZXMuXG4gICAqL1xuICB2YWx1ZUZvcm1hdHRlcj86IChwYXJhbXM6IE52VGFibGVWYWx1ZUZvcm1hdHRlclBhcmFtczxSb3csIFJvd1tLXSwgSz4pID0+IEY7XG4gIC8qKlxuICAgKiBDdXN0b20gY2VsbCByZW5kZXJlciBmdW5jdGlvbiB0aGF0IGNhbiByZXR1cm4gZWl0aGVyIGEgc3RyaW5nIG9yIEFuZ3VsYXIgVGVtcGxhdGVSZWYuXG4gICAqIFVzZSBgJGltcGxpY2l0YCBpbiB5b3VyIHRlbXBsYXRlIHRvIHJlY2VpdmUgdGhlIENlbGxDb250ZXh0LlxuICAgKiBOb3RlOiBJZiB2YWx1ZUZvcm1hdHRlciBpcyBwcm92aWRlZCwgcmVuZGVyQ2VsbCByZWNlaXZlcyB0aGUgZm9ybWF0dGVkIHZhbHVlLlxuICAgKi9cbiAgcmVuZGVyQ2VsbD86IChjb250ZXh0OiBDZWxsQ29udGV4dDxSb3csIEY+KSA9PlxuICAgIHwgc3RyaW5nXG4gICAgfCBGbGV4UmVuZGVyQ29tcG9uZW50XG4gICAgfCBUZW1wbGF0ZVJlZjx7XG4gICAgICAgICRpbXBsaWNpdDogQ2VsbENvbnRleHQ8Um93LCBGPjtcbiAgICAgIH0+O1xuICAvKiogRW5hYmxlL2Rpc2FibGUgc29ydGluZyBmb3IgdGhpcyBjb2x1bW4gKi9cbiAgc29ydGFibGU/OiBib29sZWFuO1xuICAvKiogQ3VzdG9tIHNvcnRpbmcgZnVuY3Rpb24gb3IgYnVpbHQtaW4gZnVuY3Rpb24gbmFtZSAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzb3J0aW5nRm4/OiAoKHJvd0E6IGFueSwgcm93QjogYW55LCBjb2x1bW5JZDogc3RyaW5nKSA9PiBudW1iZXIpIHwgc3RyaW5nO1xuICAvKiogU3RhcnQgd2l0aCBkZXNjZW5kaW5nIHNvcnQgZm9yIHRoaXMgY29sdW1uICovXG4gIHNvcnREZXNjRmlyc3Q/OiBib29sZWFuO1xuICAvKiogSW52ZXJ0IHRoZSBzb3J0IG9yZGVyICh1c2VmdWwgZm9yIHJhbmtpbmdzKSAqL1xuICBpbnZlcnRTb3J0aW5nPzogYm9vbGVhbjtcbiAgLyoqIFdoZXJlIHRvIHBsYWNlIHVuZGVmaW5lZCB2YWx1ZXMgaW4gc29ydCAqL1xuICBzb3J0VW5kZWZpbmVkPzogJ2ZpcnN0JyB8ICdsYXN0JyB8IGZhbHNlIHwgLTEgfCAxO1xufVxuXG4vKiogUGFyYW1ldGVycyBmb3IgY3VzdG9tIGNlbGwgcmVuZGVyaW5nIGZ1bmN0aW9uLiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlUmVuZGVyQ2VsbFBhcmFtczxSb3csIFZhbHVlLCBGaWVsZD4ge1xuICAvKiogQ2VsbCB2YWx1ZSAqL1xuICB2YWx1ZTogVmFsdWUgfCBOb0luZmVyPFZhbHVlPjtcbiAgLyoqIFJvdyBkYXRhICovXG4gIHJvdzogUm93O1xuICAvKiogRmllbGQgbmFtZSAqL1xuICBmaWVsZDogRmllbGQ7XG4gIC8qKiBSb3cgaW5kZXggKi9cbiAgcm93SW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciB2YWx1ZUZvcm1hdHRlciBmdW5jdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOdlRhYmxlVmFsdWVGb3JtYXR0ZXJQYXJhbXM8Um93LCBWYWx1ZSwgRmllbGQ+IHtcbiAgLyoqIENlbGwgb3JpZ2luYWwgdmFsdWUgKi9cbiAgdmFsdWU6IFZhbHVlO1xuICAvKiogUm93IGRhdGEgKi9cbiAgcm93OiBSb3c7XG4gIC8qKiBGaWVsZCBuYW1lICovXG4gIGZpZWxkOiBGaWVsZDtcbn1cblxuLyoqXG4gKiBQYWdpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHBhZ2luYXRpb24gYmVoYXZpb3IgKGNsaWVudCB2cyBzZXJ2ZXIpIGlzIGRlcml2ZWQgZnJvbSB0aGUgdG9wLWxldmVsIGBtb2RlYCBwcm9wLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE52RGF0YXRhYmxlUGFnaW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBFbmFibGUgaW5maW5pdGUgc2Nyb2xsIG1vZGUuXG4gICAqIFdoZW4gdHJ1ZSwgcmVxdWlyZXMgdGhlIGNvbXBvbmVudCdzIHRvcC1sZXZlbCBgbW9kZWAgdG8gYmUgc2V0IHRvICdzZXJ2ZXInLlxuICAgKiBEYXRhIGlzIGxvYWRlZCBpbmNyZW1lbnRhbGx5IGFzIHRoZSB1c2VyIHNjcm9sbHMuXG4gICAqL1xuICBpbmZpbml0ZT86IGJvb2xlYW47XG4gIC8qKiBJbml0aWFsIHBhZ2Ugc2l6ZSAoZGVmYXVsdDogMTApICovXG4gIGluaXRpYWxQYWdlU2l6ZT86IG51bWJlcjtcbiAgLyoqIEF2YWlsYWJsZSBwYWdlIHNpemUgb3B0aW9ucyAoZGVmYXVsdDogWzEwLCAyMCwgNTAsIDEwMF0pICovXG4gIHBhZ2VTaXplT3B0aW9ucz86IG51bWJlcltdO1xuICAvKiogQ3VzdG9tIGxhYmVscyBmb3IgcGFnaW5hdGlvbiBjb21wb25lbnQgKGkxOG4gc3VwcG9ydCkgKi9cbiAgbGFiZWxzPzoge1xuICAgIC8qKiBMYWJlbCB0ZW1wbGF0ZSBmb3IgdGhlIHBhZ2UgaW5kaWNhdG9yLiBTdXBwb3J0cyBwbGFjZWhvbGRlcnM6IHtwYWdlSW5kZXh9LCB7cGFnZUNvdW50fSAqL1xuICAgIHBhZ2U/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgdG90YWwgcm93IGNvdW50IGRpc3BsYXkuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cm93Q291bnR9ICovXG4gICAgdG90YWw/OiBzdHJpbmc7XG4gICAgLyoqIExhYmVsIHRlbXBsYXRlIGZvciB0aGUgcGFnZSBzaXplIGRyb3Bkb3duIG9wdGlvbnMuIFN1cHBvcnRzIHBsYWNlaG9sZGVyOiB7cGFnZVNpemV9ICovXG4gICAgcGFnZVNpemVPcHRpb24/OiBzdHJpbmc7XG4gIH07XG5cbiAgLy8gU2VydmVyLXNpZGUgKGJ1dHRvbnMpIHNwZWNpZmljIHByb3BlcnRpZXNcbiAgLyoqIFRvdGFsIG51bWJlciBvZiByb3dzIChmb3Igc2VydmVyLXNpZGUgcGFnaW5hdGlvbikgKi9cbiAgdG90YWxSb3dDb3VudD86IG51bWJlcjtcbiAgLyoqIFRvdGFsIG51bWJlciBvZiBwYWdlcyAoZm9yIHNlcnZlci1zaWRlIHBhZ2luYXRpb24pICovXG4gIHRvdGFsUGFnZUNvdW50PzogbnVtYmVyO1xuICAvKiogQ2FsbGJhY2sgd2hlbiBwYWdpbmF0aW9uIHN0YXRlIGNoYW5nZXMgKGZvciBzZXJ2ZXItc2lkZSBwYWdpbmF0aW9uKSAqL1xuICBvblBhZ2luYXRpb25DaGFuZ2U/OiAoc3RhdGU6IHtcbiAgICAvKiogQ3VycmVudCBwYWdlIGluZGV4ICovXG4gICAgcGFnZUluZGV4OiBudW1iZXI7XG4gICAgLyoqIEN1cnJlbnQgcGFnZSBzaXplICovXG4gICAgcGFnZVNpemU6IG51bWJlcjtcbiAgfSkgPT4gdm9pZDtcblxuICAvLyBJbmZpbml0ZSBzY3JvbGwgc3BlY2lmaWMgcHJvcGVydGllcyAodXNlZCB3aGVuIGluZmluaXRlOiB0cnVlKVxuICAvKiogV2hldGhlciB0aGVyZSBhcmUgbW9yZSBpdGVtcyB0byBsb2FkIChmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbiAgLyoqIFdoZXRoZXIgZGF0YSBpcyBjdXJyZW50bHkgbG9hZGluZyAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgaXNMb2FkaW5nPzogYm9vbGVhbjtcbiAgLyoqIERpc3RhbmNlIGZyb20gYm90dG9tIGluIHBpeGVscyB0byB0cmlnZ2VyIGxvYWQgKGRlZmF1bHQ6IDUwMCkgKi9cbiAgbG9hZE1vcmVUaHJlc2hvbGQ/OiBudW1iZXI7XG4gIC8qKiBDYWxsYmFjayB0byBsb2FkIG1vcmUgZGF0YSAoZm9yIGluZmluaXRlIHNjcm9sbCkgKi9cbiAgb25Mb2FkTW9yZT86ICgpID0+IHZvaWQ7XG59XG5cbi8qKlxuICogQVBJIGV4cG9zZWQgdG8gcGFnaW5hdGlvbiB0ZW1wbGF0ZSBmb3IgYnVpbGRpbmcgY3VzdG9tIHBhZ2luYXRpb24gVUkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVSZW5kZXJQYWdpbmF0aW9uQVBJIHtcbiAgLyoqIEN1cnJlbnQgcGFnZSBpbmRleCAoemVyby1iYXNlZCkgKi9cbiAgcGFnZUluZGV4OiBudW1iZXI7XG4gIC8qKiBDdXJyZW50IHBhZ2Ugc2l6ZSAqL1xuICBwYWdlU2l6ZTogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHBhZ2VzICovXG4gIHBhZ2VDb3VudDogbnVtYmVyO1xuICAvKiogVG90YWwgbnVtYmVyIG9mIHJvd3MgKi9cbiAgcm93Q291bnQ6IG51bWJlcjtcbiAgLyoqIE5hdmlnYXRlIHRvIGZpcnN0IHBhZ2UgKi9cbiAgZmlyc3RQYWdlOiAoKSA9PiB2b2lkO1xuICAvKiogTmF2aWdhdGUgdG8gcHJldmlvdXMgcGFnZSAqL1xuICBwcmV2aW91c1BhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBuZXh0IHBhZ2UgKi9cbiAgbmV4dFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBsYXN0IHBhZ2UgKi9cbiAgbGFzdFBhZ2U6ICgpID0+IHZvaWQ7XG4gIC8qKiBOYXZpZ2F0ZSB0byBzcGVjaWZpYyBwYWdlIGJ5IGluZGV4ICovXG4gIHNldFBhZ2VJbmRleDogKGluZGV4OiBudW1iZXIpID0+IHZvaWQ7XG4gIC8qKiBDaGFuZ2UgcGFnZSBzaXplICovXG4gIHNldFBhZ2VTaXplOiAoc2l6ZTogbnVtYmVyKSA9PiB2b2lkO1xuICAvKiogV2hldGhlciBwcmV2aW91cyBwYWdlIGlzIGF2YWlsYWJsZSAqL1xuICBjYW5QcmV2aW91c1BhZ2U6IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG5leHQgcGFnZSBpcyBhdmFpbGFibGUgKi9cbiAgY2FuTmV4dFBhZ2U6IGJvb2xlYW47XG4gIC8qKiBMb2FkaW5nIHN0YXRlIChvbmx5IGZvciBpbmZpbml0ZSBzY3JvbGwpICovXG4gIGlzTG9hZGluZz86IGJvb2xlYW47XG4gIC8qKiBXaGV0aGVyIG1vcmUgaXRlbXMgYXJlIGF2YWlsYWJsZSAob25seSBmb3IgaW5maW5pdGUgc2Nyb2xsKSAqL1xuICBoYXNNb3JlPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIGNvbmZpZ3VyYXRpb24gZm9yIE52RGF0YXRhYmxlLlxuICogVGhlIHNvcnRpbmcgbW9kZSAoY2xpZW50IHZzIHNlcnZlcikgaXMgZGVyaXZlZCBmcm9tIHRoZSBjb21wb25lbnQncyB0b3AtbGV2ZWwgYG1vZGVgIHByb3AuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTnZEYXRhdGFibGVTb3J0aW5nQ29uZmlnIHtcbiAgLyoqIEVuYWJsZSBtdWx0aS1jb2x1bW4gc29ydGluZyB3aXRoIFNoaWZ0K0NsaWNrICovXG4gIGVuYWJsZU11bHRpU29ydD86IGJvb2xlYW47XG4gIC8qKiBBbGxvdyBjeWNsaW5nIHRocm91Z2ggdG8gXCJubyBzb3J0XCIgc3RhdGUgKi9cbiAgZW5hYmxlU29ydGluZ1JlbW92YWw/OiBib29sZWFuO1xuICAvKiogTWF4aW11bSBudW1iZXIgb2YgY29sdW1ucyBmb3IgbXVsdGktc29ydCAqL1xuICBtYXhNdWx0aVNvcnRDb2xDb3VudD86IG51bWJlcjtcbiAgLyoqIFN0YXJ0IHdpdGggZGVzY2VuZGluZyBzb3J0IGFzIGZpcnN0IHRvZ2dsZSBzdGF0ZSAqL1xuICBzb3J0RGVzY0ZpcnN0PzogYm9vbGVhbjtcbiAgLyoqIENvbnRyb2xsZWQgc29ydCBzdGF0ZSAoZm9yIHNlcnZlci1zaWRlIHNvcnRpbmcpICovXG4gIHNvcnRTdGF0ZT86IFNvcnRpbmdTdGF0ZTtcbiAgLyoqIENhbGxiYWNrIHdoZW4gc29ydGluZyBjaGFuZ2VzIChmb3Igc2VydmVyLXNpZGUgc29ydGluZykgKi9cbiAgb25Tb3J0aW5nQ2hhbmdlPzogKHNvcnRpbmc6IFNvcnRpbmdTdGF0ZSkgPT4gdm9pZDtcbn1cblxuLyoqXG4gKiBTb3J0aW5nIHN0YXRlIHR5cGUgLSBhcnJheSBvZiBzb3J0IGRlc2NyaXB0b3JzXG4gKi9cbmV4cG9ydCB0eXBlIE52RGF0YVRhYmxlU29ydGluZ1N0YXRlID0gU29ydGluZ1N0YXRlO1xuIl19
|
|
@@ -20,7 +20,7 @@ export function provideNovaComponents() {
|
|
|
20
20
|
}
|
|
21
21
|
export class NovaComponentsModule {
|
|
22
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
23
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, declarations: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip], imports: [NvDatatable], exports: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip, NvDatatable] }); }
|
|
23
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, declarations: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip], imports: [NvDatatable], exports: [i1.NvAccordion, i1.NvAccordionItem, i1.NvAlert, i1.NvAvatar, i1.NvBadge, i1.NvBreadcrumb, i1.NvBreadcrumbs, i1.NvButton, i1.NvButtongroup, i1.NvCalendar, i1.NvCol, i1.NvDatagrid, i1.NvDatagridcolumn, i1.NvDialog, i1.NvDialogfooter, i1.NvDialogheader, i1.NvDrawer, i1.NvDrawerfooter, i1.NvDrawerheader, i1.NvFieldcheckbox, i1.NvFielddate, i1.NvFielddaterange, i1.NvFielddropdown, i1.NvFielddropdownitem, i1.NvFielddropdownitemcheck, i1.NvFieldmultiselect, i1.NvFieldnumber, i1.NvFieldpassword, i1.NvFieldradio, i1.NvFieldselect, i1.NvFieldslider, i1.NvFieldtext, i1.NvFieldtextarea, i1.NvFieldtime, i1.NvIcon, i1.NvIconbutton, i1.NvLoader, i1.NvMenu, i1.NvMenuitem, i1.NvNotification, i1.NvNotificationBullet, i1.NvNotificationcontainer, i1.NvPaginationtable, i1.NvPopover, i1.NvRow, i1.NvSidebar, i1.NvSidebarcontent, i1.NvSidebardivider, i1.NvSidebarfooter, i1.NvSidebargroup, i1.NvSidebarheader, i1.NvSidebarlogo, i1.NvSidebarnavitem, i1.NvSidebarnavsubitem, i1.NvSplit, i1.NvStack, i1.NvTable, i1.NvTableheader, i1.NvToggle, i1.NvTogglebutton, i1.NvTogglebuttongroup, i1.NvTooltip, NvDatatable] }); }
|
|
24
24
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, providers: [provideNovaComponents()], imports: [NvDatatable] }); }
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsModule, decorators: [{
|
|
@@ -34,7 +34,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
34
34
|
}] });
|
|
35
35
|
export class NovaComponentsValueAccessorModule {
|
|
36
36
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
37
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, declarations: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor], exports: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor] }); }
|
|
37
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, declarations: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor], exports: [i2.NvAccordionValueAccessor, i2.NvAlertValueAccessor, i2.NvCalendarValueAccessor, i2.NvDatagridValueAccessor, i2.NvDialogValueAccessor, i2.NvDrawerValueAccessor, i2.NvFieldcheckboxValueAccessor, i2.NvFielddateValueAccessor, i2.NvFielddaterangeValueAccessor, i2.NvFielddropdownValueAccessor, i2.NvFieldmultiselectValueAccessor, i2.NvFieldnumberValueAccessor, i2.NvFieldpasswordValueAccessor, i2.NvFieldradioValueAccessor, i2.NvFieldselectValueAccessor, i2.NvFieldsliderValueAccessor, i2.NvFieldtextValueAccessor, i2.NvFieldtextareaValueAccessor, i2.NvFieldtimeValueAccessor, i2.NvNotificationValueAccessor, i2.NvPaginationtableValueAccessor, i2.NvPopoverValueAccessor, i2.NvSidebarValueAccessor, i2.NvSplitValueAccessor, i2.NvToggleValueAccessor, i2.NvTogglebuttongroupValueAccessor] }); }
|
|
38
38
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule }); }
|
|
39
39
|
}
|
|
40
40
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NovaComponentsValueAccessorModule, decorators: [{
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
44
44
|
exports: [...VALUE_ACCESSORS],
|
|
45
45
|
}]
|
|
46
46
|
}] });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm92YS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL25vdmEtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBRXJGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLCtDQUErQyxDQUFDOzs7O0FBRWhGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUscUJBQXFCO0lBQ25DLE9BQU87UUFDTCxPQUFPLEVBQUUsZUFBZTtRQUN4QixVQUFVLEVBQUUsR0FBRyxFQUFFLENBQUMsb0JBQW9CO1FBQ3RDLEtBQUssRUFBRSxJQUFJO0tBQ1osQ0FBQztBQUNKLENBQUM7QUFRRCxNQUFNLE9BQU8sb0JBQW9COytHQUFwQixvQkFBb0I7Z0hBQXBCLG9CQUFvQix5bENBTHJCLFdBQVcsMGtDQUVJLFdBQVc7Z0hBR3pCLG9CQUFvQixhQUZwQixDQUFDLHFCQUFxQixFQUFFLENBQUMsWUFIMUIsV0FBVzs7NEZBS1Ysb0JBQW9CO2tCQU5oQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLFdBQVcsQ0FBQztvQkFDdEIsWUFBWSxFQUFFLENBQUMsR0FBRyxVQUFVLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLEdBQUcsVUFBVSxFQUFFLFdBQVcsQ0FBQztvQkFDckMsU0FBUyxFQUFFLENBQUMscUJBQXFCLEVBQUUsQ0FBQztpQkFDckM7O0FBT0QsTUFBTSxPQUFPLGlDQUFpQzsrR0FBakMsaUNBQWlDO2dIQUFqQyxpQ0FBaUM7Z0hBQWpDLGlDQUFpQzs7NEZBQWpDLGlDQUFpQztrQkFKN0MsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyxHQUFHLGVBQWUsQ0FBQztvQkFDbEMsT0FBTyxFQUFFLENBQUMsR0FBRyxlQUFlLENBQUM7aUJBQzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVBQX0lOSVRJQUxJWkVSLCBOZ01vZHVsZSwgdHlwZSBQcm92aWRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgZGVmaW5lQ3VzdG9tRWxlbWVudHMgfSBmcm9tICdAbm92YS1kZXNpZ24tc3lzdGVtL25vdmEtd2ViY29tcG9uZW50cy9sb2FkZXInO1xuXG5pbXBvcnQgeyBESVJFQ1RJVkVTIH0gZnJvbSAnLi9zdGVuY2lsLWdlbmVyYXRlZCc7XG5pbXBvcnQgeyBOdkRhdGF0YWJsZSB9IGZyb20gJy4vY29tcG9uZW50cy9pbmRleCc7XG5pbXBvcnQgeyBWQUxVRV9BQ0NFU1NPUlMgfSBmcm9tICcuL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudC12YWx1ZS1hY2Nlc3NvcnMnO1xuXG4vKipcbiAqIEluaXRpYWxpemUgdGhlIE5vdmEgQ29tcG9uZW50c1xuICpcbiAqIEByZXR1cm5zIHtQcm92aWRlcn0gLSBUaGUgcHJvdmlkZXIgdG8gYmUgdXNlZCBmb3Igbm92YSBjb21wb25lbnRzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwcm92aWRlTm92YUNvbXBvbmVudHMoKTogUHJvdmlkZXIge1xuICByZXR1cm4ge1xuICAgIHByb3ZpZGU6IEFQUF9JTklUSUFMSVpFUixcbiAgICB1c2VGYWN0b3J5OiAoKSA9PiBkZWZpbmVDdXN0b21FbGVtZW50cyxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfTtcbn1cblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW052RGF0YXRhYmxlXSxcbiAgZGVjbGFyYXRpb25zOiBbLi4uRElSRUNUSVZFU10sXG4gIGV4cG9ydHM6IFsuLi5ESVJFQ1RJVkVTLCBOdkRhdGF0YWJsZV0sXG4gIHByb3ZpZGVyczogW3Byb3ZpZGVOb3ZhQ29tcG9uZW50cygpXSxcbn0pXG5leHBvcnQgY2xhc3MgTm92YUNvbXBvbmVudHNNb2R1bGUge31cblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbLi4uVkFMVUVfQUNDRVNTT1JTXSxcbiAgZXhwb3J0czogWy4uLlZBTFVFX0FDQ0VTU09SU10sXG59KVxuZXhwb3J0IGNsYXNzIE5vdmFDb21wb25lbnRzVmFsdWVBY2Nlc3Nvck1vZHVsZSB7fVxuIl19
|
|
@@ -702,6 +702,41 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
702
702
|
type: HostListener,
|
|
703
703
|
args: ['hiddenChanged', ['$event']]
|
|
704
704
|
}] } });
|
|
705
|
+
export class NvPaginationtableValueAccessor extends ValueAccessor {
|
|
706
|
+
constructor(el) {
|
|
707
|
+
super(el);
|
|
708
|
+
}
|
|
709
|
+
handlePageIndexChanged(event) {
|
|
710
|
+
this.handleChangeEvent(event.target.pageIndex);
|
|
711
|
+
}
|
|
712
|
+
writeValue(value) {
|
|
713
|
+
this.el.nativeElement.pageIndex = this.lastValue = value;
|
|
714
|
+
}
|
|
715
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvPaginationtableValueAccessor, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
716
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.13", type: NvPaginationtableValueAccessor, selector: "nv-paginationtable", host: { listeners: { "pageIndexChanged": "handlePageIndexChanged($event)" } }, providers: [
|
|
717
|
+
{
|
|
718
|
+
provide: NG_VALUE_ACCESSOR,
|
|
719
|
+
useExisting: NvPaginationtableValueAccessor,
|
|
720
|
+
multi: true,
|
|
721
|
+
},
|
|
722
|
+
], usesInheritance: true, ngImport: i0 }); }
|
|
723
|
+
}
|
|
724
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NvPaginationtableValueAccessor, decorators: [{
|
|
725
|
+
type: Directive,
|
|
726
|
+
args: [{
|
|
727
|
+
selector: 'nv-paginationtable',
|
|
728
|
+
providers: [
|
|
729
|
+
{
|
|
730
|
+
provide: NG_VALUE_ACCESSOR,
|
|
731
|
+
useExisting: NvPaginationtableValueAccessor,
|
|
732
|
+
multi: true,
|
|
733
|
+
},
|
|
734
|
+
],
|
|
735
|
+
}]
|
|
736
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { handlePageIndexChanged: [{
|
|
737
|
+
type: HostListener,
|
|
738
|
+
args: ['pageIndexChanged', ['$event']]
|
|
739
|
+
}] } });
|
|
705
740
|
export class NvPopoverValueAccessor extends ValueAccessor {
|
|
706
741
|
constructor(el) {
|
|
707
742
|
super(el);
|
|
@@ -898,10 +933,11 @@ export const VALUE_ACCESSORS = [
|
|
|
898
933
|
NvFieldtextareaValueAccessor,
|
|
899
934
|
NvFieldtimeValueAccessor,
|
|
900
935
|
NvNotificationValueAccessor,
|
|
936
|
+
NvPaginationtableValueAccessor,
|
|
901
937
|
NvPopoverValueAccessor,
|
|
902
938
|
NvSidebarValueAccessor,
|
|
903
939
|
NvSplitValueAccessor,
|
|
904
940
|
NvToggleValueAccessor,
|
|
905
941
|
NvTogglebuttongroupValueAccessor,
|
|
906
942
|
];
|
|
907
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXZhbHVlLWFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudC12YWx1ZS1hY2Nlc3NvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVlsRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUN6RCxZQUFZLEVBQWM7UUFDeEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUdELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUM3RCxDQUFDOytHQVpVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDBIQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsd0JBQXdCO2tCQVZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywwQkFBMEI7NEJBQ3JDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNG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NEI7SUFDNUIsK0JBQStCO0lBQy9CLDBCQUEwQjtJQUMxQiw0QkFBNEI7SUFDNUIseUJBQXlCO0lBQ3pCLDBCQUEwQjtJQUMxQiwwQkFBMEI7SUFDMUIsd0JBQXdCO0lBQ3hCLDRCQUE0QjtJQUM1Qix3QkFBd0I7SUFDeEIsMkJBQTJCO0lBQzNCLHNCQUFzQjtJQUN0QixzQkFBc0I7SUFDdEIsb0JBQW9CO0lBQ3BCLHFCQUFxQjtJQUNyQixnQ0FBZ0M7Q0FDakMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgVmFsdWVBY2Nlc3NvciB9IGZyb20gJy4uL3ZhbHVlLWFjY2Vzc29yJztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtYWNjb3JkaW9uJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZBY2NvcmRpb25WYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZBY2NvcmRpb25WYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb3BlbkluZGV4ZXNDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlT3BlbkluZGV4ZXNDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5vcGVuSW5kZXhlcylcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vcGVuSW5kZXhlcyA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtYWxlcnQnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkFsZXJ0VmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52QWxlcnRWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaGlkZGVuQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUhpZGRlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LmhpZGRlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5oaWRkZW4gPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWNhbGVuZGFyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZDYWxlbmRhclZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkNhbGVuZGFyVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWRhdGFncmlkJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZEYXRhZ3JpZFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkRhdGFncmlkVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3N0YXRlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVN0YXRlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQuc3RhdGUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc3RhdGUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWRpYWxvZycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RGlhbG9nVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RGlhbG9nVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ29wZW5DaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlT3BlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0Lm9wZW4pXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3BlbiA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZHJhd2VyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZEcmF3ZXJWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZEcmF3ZXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb3BlbkNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVPcGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQub3BlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vcGVuID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZGNoZWNrYm94JyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZGNoZWNrYm94VmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRjaGVja2JveFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGVja2VkQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNoZWNrZWRDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5jaGVja2VkKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkZGF0ZScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRkYXRlVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRkYXRlVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkZGF0ZXJhbmdlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZGRhdGVyYW5nZVZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZGF0ZXJhbmdlVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkZHJvcGRvd24nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkZHJvcGRvd25WYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRyb3Bkb3duVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkbXVsdGlzZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkbXVsdGlzZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZG11bHRpc2VsZWN0VmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkbnVtYmVyJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZG51bWJlclZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkbnVtYmVyVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkcGFzc3dvcmQnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkcGFzc3dvcmRWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHBhc3N3b3JkVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkcmFkaW8nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkcmFkaW9WYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHJhZGlvVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoZWNrZWRDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2hlY2tlZENoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LmNoZWNrZWQpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRzZWxlY3QnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkc2VsZWN0VmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRzZWxlY3RWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRzbGlkZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkc2xpZGVyVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRzbGlkZXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGR0ZXh0JyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZHRleHRWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHRleHRWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGR0ZXh0YXJlYScsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGR0ZXh0YXJlYVZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkdGV4dGFyZWFWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGR0aW1lJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZHRpbWVWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHRpbWVWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtbm90aWZpY2F0aW9uJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZOb3RpZmljYXRpb25WYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZOb3RpZmljYXRpb25WYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignaGlkZGVuQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUhpZGRlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LmhpZGRlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5oaWRkZW4gPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LXBvcG92ZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdlBvcG92ZXJWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZQb3BvdmVyVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ29wZW5DaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlT3BlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0Lm9wZW4pXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3BlbiA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52U2lkZWJhclZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb3BlbkNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVPcGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQub3BlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vcGVuID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1zcGxpdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52U3BsaXRWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZTcGxpdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdzaXplc0NoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVTaXplc0NoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnNpemVzKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNpemVzID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi10b2dnbGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdlRvZ2dsZVZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlRvZ2dsZVZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGVja2VkQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNoZWNrZWRDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5jaGVja2VkKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LXRvZ2dsZWJ1dHRvbmdyb3VwJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZUb2dnbGVidXR0b25ncm91cFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlRvZ2dsZWJ1dHRvbmdyb3VwVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IFZBTFVFX0FDQ0VTU09SUyA9IFtcbiAgTnZBY2NvcmRpb25WYWx1ZUFjY2Vzc29yLFxuICBOdkFsZXJ0VmFsdWVBY2Nlc3NvcixcbiAgTnZDYWxlbmRhclZhbHVlQWNjZXNzb3IsXG4gIE52RGF0YWdyaWRWYWx1ZUFjY2Vzc29yLFxuICBOdkRpYWxvZ1ZhbHVlQWNjZXNzb3IsXG4gIE52RHJhd2VyVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGNoZWNrYm94VmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGRhdGVWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkZGF0ZXJhbmdlVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGRyb3Bkb3duVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZG11bHRpc2VsZWN0VmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZG51bWJlclZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRwYXNzd29yZFZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRyYWRpb1ZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRzZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkc2xpZGVyVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZHRleHRWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkdGV4dGFyZWFWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkdGltZVZhbHVlQWNjZXNzb3IsXG4gIE52Tm90aWZpY2F0aW9uVmFsdWVBY2Nlc3NvcixcbiAgTnZQb3BvdmVyVmFsdWVBY2Nlc3NvcixcbiAgTnZTaWRlYmFyVmFsdWVBY2Nlc3NvcixcbiAgTnZTcGxpdFZhbHVlQWNjZXNzb3IsXG4gIE52VG9nZ2xlVmFsdWVBY2Nlc3NvcixcbiAgTnZUb2dnbGVidXR0b25ncm91cFZhbHVlQWNjZXNzb3IsXG5dOyJdfQ==
|
|
943
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50LXZhbHVlLWFjY2Vzc29ycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25vdmEtY29tcG9uZW50cy9zcmMvbGliL3N0ZW5jaWwtZ2VuZXJhdGVkL2NvbXBvbmVudC12YWx1ZS1hY2Nlc3NvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDcEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQVlsRCxNQUFNLE9BQU8sd0JBQXlCLFNBQVEsYUFBYTtJQUN6RCxZQUFZLEVBQWM7UUFDeEIsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ1osQ0FBQztJQUdELHdCQUF3QixDQUFDLEtBQVU7UUFDakMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDbEQsQ0FBQztJQUVRLFVBQVUsQ0FBQyxLQUFVO1FBQzVCLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztJQUM3RCxDQUFDOytHQVpVLHdCQUF3QjttR0FBeEIsd0JBQXdCLDBIQVJ4QjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSx3QkFBd0I7Z0JBQ3JDLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRjs7NEZBRVUsd0JBQXdCO2tCQVZwQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUU7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVywwQkFBMEI7NEJBQ3JDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNG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UmVmLCBIb3N0TGlzdGVuZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBWYWx1ZUFjY2Vzc29yIH0gZnJvbSAnLi4vdmFsdWUtYWNjZXNzb3InO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1hY2NvcmRpb24nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkFjY29yZGlvblZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkFjY29yZGlvblZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdvcGVuSW5kZXhlc0NoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVPcGVuSW5kZXhlc0NoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0Lm9wZW5JbmRleGVzKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9wZW5JbmRleGVzID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1hbGVydCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52QWxlcnRWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZBbGVydFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdoaWRkZW5DaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlSGlkZGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQuaGlkZGVuKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtY2FsZW5kYXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkNhbGVuZGFyVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52Q2FsZW5kYXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZGF0YWdyaWQnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkRhdGFncmlkVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RGF0YWdyaWRWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc3RhdGVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlU3RhdGVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5zdGF0ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5zdGF0ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZGlhbG9nJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZEaWFsb2dWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZEaWFsb2dWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb3BlbkNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVPcGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQub3BlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vcGVuID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1kcmF3ZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkRyYXdlclZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkRyYXdlclZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdvcGVuQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZU9wZW5DaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5vcGVuKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50Lm9wZW4gPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LWZpZWxkY2hlY2tib3gnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkY2hlY2tib3hWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGNoZWNrYm94VmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NoZWNrZWRDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlQ2hlY2tlZENoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LmNoZWNrZWQpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuY2hlY2tlZCA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkYXRlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZGRhdGVWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZGRhdGVWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkYXRlcmFuZ2UnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkZGF0ZXJhbmdlVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRkYXRlcmFuZ2VWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRkcm9wZG93bicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRkcm9wZG93blZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkZHJvcGRvd25WYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRtdWx0aXNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRtdWx0aXNlbGVjdFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkbXVsdGlzZWxlY3RWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRudW1iZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkbnVtYmVyVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGRudW1iZXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRwYXNzd29yZCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRwYXNzd29yZFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkcGFzc3dvcmRWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigndmFsdWVDaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlVmFsdWVDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC52YWx1ZSlcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC52YWx1ZSA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtZmllbGRyYWRpbycsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRyYWRpb1ZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkcmFkaW9WYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignY2hlY2tlZENoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVDaGVja2VkQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQuY2hlY2tlZClcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5jaGVja2VkID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHNlbGVjdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRzZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHNlbGVjdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd2YWx1ZUNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHNsaWRlcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52RmllbGRzbGlkZXJWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZGaWVsZHNsaWRlclZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd2YWx1ZUNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRleHQnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkdGV4dFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkdGV4dFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd2YWx1ZUNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRleHRhcmVhJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZGaWVsZHRleHRhcmVhVmFsdWVBY2Nlc3NvcixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE52RmllbGR0ZXh0YXJlYVZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd2YWx1ZUNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1maWVsZHRpbWUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdkZpZWxkdGltZVZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdkZpZWxkdGltZVZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd2YWx1ZUNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVWYWx1ZUNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnZhbHVlKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnZhbHVlID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1ub3RpZmljYXRpb24nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdk5vdGlmaWNhdGlvblZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdk5vdGlmaWNhdGlvblZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdoaWRkZW5DaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlSGlkZGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQuaGlkZGVuKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtcGFnaW5hdGlvbnRhYmxlJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZQYWdpbmF0aW9udGFibGVWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZQYWdpbmF0aW9udGFibGVWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcigncGFnZUluZGV4Q2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVBhZ2VJbmRleENoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnBhZ2VJbmRleClcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5wYWdlSW5kZXggPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LXBvcG92ZXInLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdlBvcG92ZXJWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZQb3BvdmVyVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ29wZW5DaGFuZ2VkJywgWyckZXZlbnQnXSlcbiAgaGFuZGxlT3BlbkNoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0Lm9wZW4pXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub3BlbiA9IHRoaXMubGFzdFZhbHVlID0gdmFsdWU7XG4gIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnbnYtc2lkZWJhcicsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52U2lkZWJhclZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlNpZGViYXJWYWx1ZUFjY2Vzc29yIGV4dGVuZHMgVmFsdWVBY2Nlc3NvciB7XG4gIGNvbnN0cnVjdG9yKGVsOiBFbGVtZW50UmVmKSB7XG4gICAgc3VwZXIoZWwpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignb3BlbkNoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVPcGVuQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQub3BlbilcbiAgfVxuXG4gIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IGFueSkge1xuICAgIHRoaXMuZWwubmF0aXZlRWxlbWVudC5vcGVuID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi1zcGxpdCcsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IE52U3BsaXRWYWx1ZUFjY2Vzc29yLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgTnZTcGxpdFZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdzaXplc0NoYW5nZWQnLCBbJyRldmVudCddKVxuICBoYW5kbGVTaXplc0NoYW5nZWQoZXZlbnQ6IGFueSkge1xuICAgIHRoaXMuaGFuZGxlQ2hhbmdlRXZlbnQoZXZlbnQudGFyZ2V0LnNpemVzKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LnNpemVzID0gdGhpcy5sYXN0VmFsdWUgPSB2YWx1ZTtcbiAgfVxufVxuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdudi10b2dnbGUnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBOdlRvZ2dsZVZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlRvZ2dsZVZhbHVlQWNjZXNzb3IgZXh0ZW5kcyBWYWx1ZUFjY2Vzc29yIHtcbiAgY29uc3RydWN0b3IoZWw6IEVsZW1lbnRSZWYpIHtcbiAgICBzdXBlcihlbCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjaGVja2VkQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZUNoZWNrZWRDaGFuZ2VkKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLmhhbmRsZUNoYW5nZUV2ZW50KGV2ZW50LnRhcmdldC5jaGVja2VkKVxuICB9XG5cbiAgb3ZlcnJpZGUgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5lbC5uYXRpdmVFbGVtZW50LmNoZWNrZWQgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ252LXRvZ2dsZWJ1dHRvbmdyb3VwJyxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogTnZUb2dnbGVidXR0b25ncm91cFZhbHVlQWNjZXNzb3IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBOdlRvZ2dsZWJ1dHRvbmdyb3VwVmFsdWVBY2Nlc3NvciBleHRlbmRzIFZhbHVlQWNjZXNzb3Ige1xuICBjb25zdHJ1Y3RvcihlbDogRWxlbWVudFJlZikge1xuICAgIHN1cGVyKGVsKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3ZhbHVlQ2hhbmdlZCcsIFsnJGV2ZW50J10pXG4gIGhhbmRsZVZhbHVlQ2hhbmdlZChldmVudDogYW55KSB7XG4gICAgdGhpcy5oYW5kbGVDaGFuZ2VFdmVudChldmVudC50YXJnZXQudmFsdWUpXG4gIH1cblxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQudmFsdWUgPSB0aGlzLmxhc3RWYWx1ZSA9IHZhbHVlO1xuICB9XG59XG5cblxuZXhwb3J0IGNvbnN0IFZBTFVFX0FDQ0VTU09SUyA9IFtcbiAgTnZBY2NvcmRpb25WYWx1ZUFjY2Vzc29yLFxuICBOdkFsZXJ0VmFsdWVBY2Nlc3NvcixcbiAgTnZDYWxlbmRhclZhbHVlQWNjZXNzb3IsXG4gIE52RGF0YWdyaWRWYWx1ZUFjY2Vzc29yLFxuICBOdkRpYWxvZ1ZhbHVlQWNjZXNzb3IsXG4gIE52RHJhd2VyVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGNoZWNrYm94VmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGRhdGVWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkZGF0ZXJhbmdlVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZGRyb3Bkb3duVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZG11bHRpc2VsZWN0VmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZG51bWJlclZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRwYXNzd29yZFZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRyYWRpb1ZhbHVlQWNjZXNzb3IsXG4gIE52RmllbGRzZWxlY3RWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkc2xpZGVyVmFsdWVBY2Nlc3NvcixcbiAgTnZGaWVsZHRleHRWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkdGV4dGFyZWFWYWx1ZUFjY2Vzc29yLFxuICBOdkZpZWxkdGltZVZhbHVlQWNjZXNzb3IsXG4gIE52Tm90aWZpY2F0aW9uVmFsdWVBY2Nlc3NvcixcbiAgTnZQYWdpbmF0aW9udGFibGVWYWx1ZUFjY2Vzc29yLFxuICBOdlBvcG92ZXJWYWx1ZUFjY2Vzc29yLFxuICBOdlNpZGViYXJWYWx1ZUFjY2Vzc29yLFxuICBOdlNwbGl0VmFsdWVBY2Nlc3NvcixcbiAgTnZUb2dnbGVWYWx1ZUFjY2Vzc29yLFxuICBOdlRvZ2dsZWJ1dHRvbmdyb3VwVmFsdWVBY2Nlc3Nvcixcbl07Il19
|