@datorama/core 22.13.0-beta.8 → 22.13.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/bundle.scss +55 -22
- package/bundles/datorama-core.umd.js +77 -66
- package/bundles/datorama-core.umd.js.map +1 -1
- package/bundles/datorama-core.umd.min.js +25 -25
- package/bundles/datorama-core.umd.min.js.map +1 -1
- package/datorama-core.metadata.json +1 -1
- package/esm2015/lib/directives/clipboard.directive.js +7 -16
- package/esm2015/lib/grid/dato-grid-api.js +1 -1
- package/esm2015/lib/grid/dato-grid.js +1 -1
- package/esm2015/lib/grid/grid/grid.component.js +4 -3
- package/esm2015/lib/grid/grid-header/grid-header.component.js +1 -1
- package/esm2015/lib/grid/grid-helper.js +1 -1
- package/esm2015/lib/grid/grid-pagination/grid-pagination.component.js +2 -2
- package/esm2015/lib/grid/grid-toolbar/grid-toolbar.component.js +2 -2
- package/esm2015/lib/grid/grid.module.js +2 -2
- package/esm2015/lib/grid-v2/grid/grid-v2.component.js +2 -2
- package/esm2015/lib/grid-v2/grid/grid-v2.types.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-cell-components/grid-avatar-cell/grid-avatar-cell.component.js +3 -3
- package/esm2015/lib/grid-v2/grid-column-cell-components/grid-initials-cell/grid-initials-cell.component.js +2 -2
- package/esm2015/lib/grid-v2/grid-column-cell-components/grid-items-cell/grid-items-cell.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-cell-components/grid-items-count-cell/grid-items-count-cell.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-header/grid-column-header.types.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-column-header-more-menu/grid-column-header-more-menu.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-columns-display-menu/grid-columns-display-menu.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.component.js +4 -4
- package/esm2015/lib/grid-v2/grid-controller/grid-controller.types.js +1 -1
- package/esm2015/lib/grid-v2/grid-custom-header/custom-header-template.directive.js +1 -1
- package/esm2015/lib/grid-v2/grid-filter/filter-validator.js +1 -1
- package/esm2015/lib/grid-v2/grid-filter/grid-filter.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-groups-menu/grid-groups-menu.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-loader/grid-v2-loader.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-no-data-overlay/grid-v2-no-data-overlay.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-pagination/grid-pagination.component.js +1 -1
- package/esm2015/lib/grid-v2/grid-store/grid.query.js +2 -2
- package/esm2015/lib/grid-v2/grid-store/grid.service.js +40 -30
- package/esm2015/lib/grid-v2/grid-store/util.js +1 -1
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +7 -1
- package/esm2015/lib/grid-v2/grid-toolbar/grid-toolbar.types.js +1 -1
- package/esm2015/lib/grid-v2/grid-v2.module.js +2 -2
- package/esm2015/lib/grid-v2/grid-v2.util.js +1 -1
- package/esm2015/lib/icon/icon.types.js +1 -1
- package/esm2015/lib/version.js +1 -1
- package/esm5/lib/directives/clipboard.directive.js +7 -16
- package/esm5/lib/grid/dato-grid-api.js +1 -1
- package/esm5/lib/grid/dato-grid.js +1 -1
- package/esm5/lib/grid/grid/grid.component.js +4 -3
- package/esm5/lib/grid/grid-header/grid-header.component.js +1 -1
- package/esm5/lib/grid/grid-helper.js +1 -1
- package/esm5/lib/grid/grid-pagination/grid-pagination.component.js +2 -2
- package/esm5/lib/grid/grid-toolbar/grid-toolbar.component.js +2 -2
- package/esm5/lib/grid/grid.module.js +2 -2
- package/esm5/lib/grid-v2/grid/grid-v2.component.js +2 -2
- package/esm5/lib/grid-v2/grid/grid-v2.types.js +1 -1
- package/esm5/lib/grid-v2/grid-column-cell-components/grid-avatar-cell/grid-avatar-cell.component.js +3 -3
- package/esm5/lib/grid-v2/grid-column-cell-components/grid-initials-cell/grid-initials-cell.component.js +2 -2
- package/esm5/lib/grid-v2/grid-column-cell-components/grid-items-cell/grid-items-cell.component.js +1 -1
- package/esm5/lib/grid-v2/grid-column-cell-components/grid-items-count-cell/grid-items-count-cell.component.js +1 -1
- package/esm5/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.js +1 -1
- package/esm5/lib/grid-v2/grid-column-header/grid-column-header.component.js +1 -1
- package/esm5/lib/grid-v2/grid-column-header/grid-column-header.types.js +1 -1
- package/esm5/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.js +1 -1
- package/esm5/lib/grid-v2/grid-column-header-more-menu/grid-column-header-more-menu.component.js +1 -1
- package/esm5/lib/grid-v2/grid-columns-display-menu/grid-columns-display-menu.component.js +1 -1
- package/esm5/lib/grid-v2/grid-controller/grid-controller.component.js +4 -4
- package/esm5/lib/grid-v2/grid-controller/grid-controller.types.js +1 -1
- package/esm5/lib/grid-v2/grid-custom-header/custom-header-template.directive.js +1 -1
- package/esm5/lib/grid-v2/grid-filter/filter-validator.js +1 -1
- package/esm5/lib/grid-v2/grid-filter/grid-filter.component.js +1 -1
- package/esm5/lib/grid-v2/grid-groups-menu/grid-groups-menu.component.js +1 -1
- package/esm5/lib/grid-v2/grid-loader/grid-v2-loader.component.js +1 -1
- package/esm5/lib/grid-v2/grid-no-data-overlay/grid-v2-no-data-overlay.component.js +1 -1
- package/esm5/lib/grid-v2/grid-on-hover/grid-on-hover.component.js +1 -1
- package/esm5/lib/grid-v2/grid-pagination/grid-pagination.component.js +1 -1
- package/esm5/lib/grid-v2/grid-store/grid.query.js +2 -2
- package/esm5/lib/grid-v2/grid-store/grid.service.js +40 -30
- package/esm5/lib/grid-v2/grid-store/util.js +1 -1
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.component.js +8 -1
- package/esm5/lib/grid-v2/grid-toolbar/grid-toolbar.types.js +1 -1
- package/esm5/lib/grid-v2/grid-v2.module.js +2 -2
- package/esm5/lib/grid-v2/grid-v2.util.js +1 -1
- package/esm5/lib/icon/icon.types.js +1 -1
- package/esm5/lib/version.js +1 -1
- package/fesm2015/datorama-core.js +59 -50
- package/fesm2015/datorama-core.js.map +1 -1
- package/fesm5/datorama-core.js +60 -50
- package/fesm5/datorama-core.js.map +1 -1
- package/lib/directives/clipboard.directive.d.ts +2 -1
- package/lib/grid/dato-grid-api.d.ts +1 -1
- package/lib/grid/dato-grid.d.ts +1 -1
- package/lib/grid/grid/grid.component.d.ts +2 -3
- package/lib/grid/grid-helper.d.ts +1 -1
- package/lib/grid/grid-pagination/grid-pagination.component.d.ts +1 -1
- package/lib/grid-v2/grid/grid-v2.component.d.ts +1 -1
- package/lib/grid-v2/grid/grid-v2.types.d.ts +1 -2
- package/lib/grid-v2/grid-column-cell-components/grid-avatar-cell/grid-avatar-cell.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-cell-components/grid-initials-cell/grid-initials-cell.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-cell-components/grid-items-cell/grid-items-cell.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-cell-components/grid-items-count-cell/grid-items-count-cell.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-cell-components/grid-status-cell/grid-status-cell.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-header/grid-column-header.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-header/grid-column-header.types.d.ts +1 -1
- package/lib/grid-v2/grid-column-header/grid-multi-select-header/grid-multi-select-header.component.d.ts +2 -2
- package/lib/grid-v2/grid-column-header-more-menu/grid-column-header-more-menu.component.d.ts +1 -1
- package/lib/grid-v2/grid-columns-display-menu/grid-columns-display-menu.component.d.ts +1 -1
- package/lib/grid-v2/grid-controller/grid-controller.component.d.ts +3 -3
- package/lib/grid-v2/grid-controller/grid-controller.types.d.ts +1 -1
- package/lib/grid-v2/grid-custom-header/custom-header-template.directive.d.ts +1 -1
- package/lib/grid-v2/grid-filter/filter-validator.d.ts +1 -1
- package/lib/grid-v2/grid-groups-menu/grid-groups-menu.component.d.ts +1 -1
- package/lib/grid-v2/grid-loader/grid-v2-loader.component.d.ts +2 -2
- package/lib/grid-v2/grid-no-data-overlay/grid-v2-no-data-overlay.component.d.ts +2 -2
- package/lib/grid-v2/grid-on-hover/grid-on-hover.component.d.ts +1 -1
- package/lib/grid-v2/grid-store/grid.query.d.ts +2 -2
- package/lib/grid-v2/grid-store/grid.service.d.ts +377 -2
- package/lib/grid-v2/grid-store/util.d.ts +1 -1
- package/lib/grid-v2/grid-toolbar/grid-toolbar.component.d.ts +1 -0
- package/lib/grid-v2/grid-toolbar/grid-toolbar.types.d.ts +1 -1
- package/lib/grid-v2/grid-v2.util.d.ts +1 -1
- package/lib/icon/icon.types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -630,4 +630,4 @@ DatoGridFilterComponent = __decorate([
|
|
|
630
630
|
], DatoGridFilterComponent);
|
|
631
631
|
export { DatoGridFilterComponent };
|
|
632
632
|
export { ɵ0, ɵ1, ɵ2 };
|
|
633
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2NvcmUvIiwic291cmNlcyI6WyJsaWIvZ3JpZC12Mi9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUdwQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBRWpCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxLQUFLLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FB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RUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUVqRixJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7O1lBdm9CaUIsVUFBVTtZQUNQLFVBQVU7WUFDZixXQUFXO1lBQ0osb0JBQW9CO1lBQzFCLGlCQUFpQjs7QUFyRGhDO0lBREMsWUFBWSxDQUFDLGlCQUFpQixDQUFDOzhCQUNGLFNBQVM7cUNBQVQsU0FBUzs4REFVdEM7QUFaVSx1QkFBdUI7SUFObkMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QiwyeGFBQTJDO1FBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO3FDQW9EZ0IsVUFBVTtRQUNQLFVBQVU7UUFDZixXQUFXO1FBQ0osb0JBQW9CO1FBQzFCLGlCQUFpQjtHQXZEckIsdUJBQXVCLENBMHJCbkM7U0ExckJZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGF0b0ZpbHRlckNvbmRpdGlvbnMsXG4gIERhdG9HcmlkRmlsdGVyLFxuICBEYXRvR3JpZEZpbHRlckNvbmRpdGlvbixcbiAgRGF0b0dyaWRGaWx0ZXJPcHRpb25zTWFwLFxuICBEYXRvR3JpZEZpbHRlclNlY3Rpb25zLFxuICBEYXRvR3JpZEZpbHRlclR5cGVzLFxuICBEYXRvR3JpZFJhbmdlRmlsdGVyQ29uZGl0aW9uLFxuICBEYXRvR3JpZFN0cmluZ0ZpbHRlck9wdGlvbnMsXG4gIGlzUmFuZ2VDb25kaXRpb24sXG4gIExpc3RJdGVtXG59IGZyb20gJy4vZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci1yZWYnO1xuaW1wb3J0IHsgR3JpZFF1ZXJ5IH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS9ncmlkLnF1ZXJ5JztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGRpZmZlcmVuY2UsIGlzQXJyYXlWYWx1ZXNFcXVhbCwgdW5pcUJ5IH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXknO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3ItdG9nZ2xlci9vcGVyYXRvci10b2dnbGVyLnR5cGVzJztcbmltcG9ydCB7IERhdG9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlci12YWxpZGF0b3InO1xuaW1wb3J0IHsgRGF0b0dyaWRDb2x1bW5EZWYsIERhdG9HcmlkR2V0Um93c1BhcmFtcyB9IGZyb20gJy4uL2dyaWQvZ3JpZC12Mi50eXBlcyc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgRGF0b0NvbHVtbk1lbnVEYXRhIH0gZnJvbSAnLi4vZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtY29sdW1uLWhlYWRlci50eXBlcyc7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtbkdyb3VwLCBHcmlkQXBpLCBSb3dOb2RlIH0gZnJvbSAnYWctZ3JpZC1jb21tdW5pdHknO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgY3VycnkgfSBmcm9tICcuLi8uLi91dGlscy9mdW5jdGlvbic7XG5pbXBvcnQgeyBTb3J0TGFiZWxUeXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2VhcmNoLXJlc3VsdHMucGlwZSc7XG5pbXBvcnQgeyBIb3RLZXlDb25maWcgfSBmcm9tICcuLi8uLi9ob3RrZXlzL2hvdGtleS50eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXRLZXlzIH0gZnJvbSAnLi4vLi4vaG90a2V5cy9ob3RrZXlzLWZvcm1hdHRlcic7XG5pbXBvcnQgeyBnZXRDb2xGaWVsZCB9IGZyb20gJy4uL2dyaWQtc3RvcmUvdXRpbCc7XG5pbXBvcnQgeyBEYXRvVG9nZ2xlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RvZ2dsZXIvdG9nZ2xlci5jb21wb25lbnQnO1xuXG5jb25zdCBtYXBUb1ZhbHVlID0gKHsgdmFsdWUgfSkgPT4gdmFsdWU7XG5jb25zdCBtYXBUb0xpc3RJdGVtID0gdmFsID0+ICh7IGlkOiB2YWwsIGxhYmVsOiBpc05pbCh2YWwpID8gYChFbXB0eSlgIDogYCR7dmFsfWAudHJpbSgpLCB2YWx1ZTogdmFsIH0pO1xuY29uc3QgbWFwVG9MaXN0SXRlbVdpdGhGb3JtYXR0ZWQgPSAoeyB2YWx1ZSwgZm9ybWF0dGVkVmFsdWUgfSwga2V5PykgPT4gKHtcbiAgaWQ6IGtleSAmJiB2YWx1ZSA/IHZhbHVlW2tleV0gOiB2YWx1ZSxcbiAgbGFiZWw6IGlzTmlsKGZvcm1hdHRlZFZhbHVlKSA/IGAoRW1wdHkpYCA6IGAke2tleSA/IGZvcm1hdHRlZFZhbHVlW2tleV0gOiBmb3JtYXR0ZWRWYWx1ZX1gLnRyaW0oKSxcbiAgdmFsdWU6IGtleSAmJiB2YWx1ZSA/IHZhbHVlW2tleV0gOiB2YWx1ZVxufSk7XG5cbnR5cGUgQ29uZGl0aW9ucyA9IHtcbiAgdHlwZToge1xuICAgIG9wZXJhbmQ6IEV4Y2x1ZGU8RGF0b0ZpbHRlckNvbmRpdGlvbnMsIERhdG9GaWx0ZXJDb25kaXRpb25zLklOX0xJU1QgfCBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfSU5fTElTVD47XG4gIH07XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIHJhbmdlRW5kOiBzdHJpbmcgfCBudW1iZXI7XG59W107XG5cbnR5cGUgQ29uZGl0aW9uT3B0aW9uID0geyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nOyBvcGVyYW5kOiBEYXRvRmlsdGVyQ29uZGl0aW9ucyB9O1xuXG50eXBlIFZhbHVlQW5kRm9ybWF0dGVkVmFsdWUgPSB7IHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7IGZvcm1hdHRlZFZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZHJlbignb3BlcmF0b3JUb2dnbGVyJylcbiAgc2V0IG9wZXJhdG9yVG9nZ2xlcih0b2dnbGVyczogUXVlcnlMaXN0PERhdG9Ub2dnbGVyQ29tcG9uZW50Pikge1xuICAgIGlmICh0b2dnbGVycyAmJiB0aGlzLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yKSB7XG4gICAgICB0b2dnbGVycy5mb3JFYWNoKCh0b2dnbGVyOiBEYXRvVG9nZ2xlckNvbXBvbmVudCkgPT4ge1xuICAgICAgICBpZiAoIXRvZ2dsZXIuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHRvZ2dsZXIuc2V0RGlzYWJsZWRTdGF0ZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBncmlkRmlsdGVyVHlwZXMgPSBEYXRvR3JpZEZpbHRlclR5cGVzO1xuICBmaWx0ZXJUeXBlOiBEYXRvR3JpZEZpbHRlclR5cGVzO1xuICBjb2x1bW5WYWx1ZXM6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcbiAgbGlzdE9wdGlvbnM6IExpc3RJdGVtW10gPSBbXTtcbiAgY29uZGl0aW9uYWxGaWx0ZXJPcHRpb25zOiBDb25kaXRpb25PcHRpb25bXTtcbiAgaGFzRmlsdGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xuICBmaWx0ZXJTZWN0aW9uczogeyBbRGF0b0dyaWRGaWx0ZXJTZWN0aW9ucy5CeV9WYWx1ZV0/OiBib29sZWFuOyBbRGF0b0dyaWRGaWx0ZXJTZWN0aW9ucy5Db25kaXRpb25hbF0/OiBib29sZWFuIH0gPSB7XG4gICAgW0RhdG9HcmlkRmlsdGVyU2VjdGlvbnMuQnlfVmFsdWVdOiB0cnVlLFxuICAgIFtEYXRvR3JpZEZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsXTogdHJ1ZVxuICB9O1xuICByYW5nZU9wZXJhbmQgPSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRTtcbiAgbGlzdExhYmVsVHlwZTogU29ydExhYmVsVHlwZTtcbiAgbGlzdFNvcnRCeUtleTogc3RyaW5nO1xuICBpc0NsaWVudFNpZGVHcmlkID0gZmFsc2U7XG4gIGxpc3RTZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGxvYWRpbmdMaXN0ID0gZmFsc2U7XG4gIHNlcnZlclNlYXJjaEVycm9yZWQgPSBmYWxzZTtcbiAgYXBwbHlIb3RLZXlDb25maWc6IEhvdEtleUNvbmZpZyA9IHtcbiAgICBrZXlzOiAnbWV0YS5lbnRlcicsXG4gICAgaGFuZGxlcjogKCkgPT4gdGhpcy5jbG9zZVBvcFVwKCksXG4gICAgZGVzY3JpcHRpb246ICdjb3JlLmFwcGx5LWZpbHRlcnMnXG4gIH07XG4gIGhvdEtleVRvb2x0aXAgPSBmb3JtYXRLZXlzKHRoaXMuYXBwbHlIb3RLZXlDb25maWcua2V5cyk7XG4gIGFjdGl2ZUFjY29yZGlvbklkID0gMDtcbiAga2VlcFByZWRlZmluZWRMaXN0T3JpZ2luYWxPcmRlcjogYm9vbGVhbjtcbiAgc2hvd0NsZWFyRmlsdGVyc0J1dHRvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeTtcbiAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2U7XG4gIHByaXZhdGUgY29sRmllbGQ6IHN0cmluZztcbiAgcHJpdmF0ZSBleGNsdWRlZFZhbHVlcyA9IG5ldyBTZXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuICBwcml2YXRlIGJ5VmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwaXZvdENvbHVtbjogQ29sdW1uO1xuICBwcml2YXRlIGlucHV0Q29uZGl0aW9uc09wZXJhdG9yOiBPcGVyYXRvclR5cGVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBvcG92ZXI6IFBvcG92ZXJSZWY8RGF0b0NvbHVtbk1lbnVEYXRhPixcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogRGF0b1RyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBnZXQgYnlWYWx1ZUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldCgnYnlWYWx1ZScpO1xuICB9XG5cbiAgZ2V0IGNvbmRpdGlvbnNDb250cm9scygpOiBBYnN0cmFjdENvbnRyb2xbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9ucy5jb250cm9scztcbiAgfVxuXG4gIGdldCBjb25kaXRpb25zT3BlcmF0b3IoKTogT3BlcmF0b3JUeXBlcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ2NvbmRpdGlvbmFsLm9wZXJhdG9yJykudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0T3BlcmFuZCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHR5cGU6IFt0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9uc1swXV0sXG4gICAgICB2YWx1ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcmFuZ2VFbmQ6IFtudWxsXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNQcmVkZWZpbmVkTGlzdEl0ZW1zKCkge1xuICAgIGNvbnN0IHsgZmlsdGVyc0NvbmZpZyA9IHt9IH0gPSB0aGlzLmNvbERlZjtcbiAgICByZXR1cm4gZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlcyAmJiB0eXBlb2YgZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlc1swXSA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0Q29uZGl0aW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgb3BlcmF0b3I6IFt0aGlzLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yIHx8IE9wZXJhdG9yVHlwZXMuQU5EXSxcbiAgICAgIGNvbmRpdGlvbnM6IHRoaXMuZmIuYXJyYXkoW3RoaXMuZGVmYXVsdE9wZXJhbmRdKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGVmYXVsdEJ5VmFsdWUoKSB7XG4gICAgcmV0dXJuIFt0aGlzLmNvbHVtblZhbHVlc107XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0Rm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGZpbHRlcnM6IHsgYnlWYWx1ZT87IGNvbmRpdGlvbmFsPyB9ID0ge307XG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIGZpbHRlcnMuYnlWYWx1ZSA9IHRoaXMuZGVmYXVsdEJ5VmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICBmaWx0ZXJzLmNvbmRpdGlvbmFsID0gdGhpcy5kZWZhdWx0Q29uZGl0aW9uYWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKGZpbHRlcnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZGl0aW9ucygpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KCdjb25kaXRpb25hbC5jb25kaXRpb25zJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29sRmlsdGVyKCk6IERhdG9HcmlkRmlsdGVyIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdyaWRRdWVyeS5nZXRGaWx0ZXIoKVt0aGlzLmNvbEZpZWxkXTtcblxuICAgIHJldHVybiBmaWx0ZXIgJiYgaXNBcnJheVZhbHVlc0VxdWFsKHRoaXMucGl2b3RLZXlzLCBmaWx0ZXIucGl2b3RLZXlzKSA/IGZpbHRlciA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb2xEZWYoKTogRGF0b0dyaWRDb2x1bW5EZWYge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YS5jb2x1bW4uZ2V0Q29sRGVmKCkgYXMgRGF0b0dyaWRDb2x1bW5EZWY7XG4gIH1cblxuICBwcml2YXRlIGdldCBwaXZvdEtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbERlZi5waXZvdEtleXMgfHwgW107XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IGdyaWRTZXJ2aWNlLCBncmlkUXVlcnkgfSA9IHRoaXMucG9wb3Zlci5kYXRhO1xuICAgIGNvbnN0IHsgZmlsdGVyLCBwaXZvdFZhbHVlQ29sdW1uLCBwaXZvdEtleXMgfSA9IHRoaXMuY29sRGVmO1xuICAgIGNvbnN0IGNvbERlZnMgPSBncmlkUXVlcnkuYXBpLmNvbHVtbnMuZ2V0QWxsQ29sdW1ucygpLm1hcChjb2x1bW4gPT4gY29sdW1uLmdldENvbERlZigpKTtcblxuICAgIHRoaXMuY29sRmllbGQgPSBnZXRDb2xGaWVsZCh0aGlzLmNvbERlZik7XG5cbiAgICBjb25zdCBjb2xEZWY6IERhdG9HcmlkQ29sdW1uRGVmID0gY29sRGVmcy5maW5kKGNvbERlZiA9PiBjb2xEZWYuZmllbGQgPT09IHRoaXMuY29sRmllbGQpO1xuICAgIGNvbnN0IGZpbHRlcnNDb25maWcgPSBjb2xEZWYuZmlsdGVyc0NvbmZpZyB8fCB0aGlzLmNvbERlZi5maWx0ZXJzQ29uZmlnIHx8IHt9O1xuICAgIGNvbnN0IGNvbEZpbHRlciA9IGZpbHRlciB8fCBjb2xEZWYuZmlsdGVyO1xuICAgIGNvbnN0IGZpbHRlck9wdGlvbnMgPSBEYXRvR3JpZEZpbHRlck9wdGlvbnNNYXBbY29sRmlsdGVyIGFzIHN0cmluZ107XG5cbiAgICAvKiogVXNlIGdldFBpdm90UmVzdWx0Q29sdW1uIGZyb20gdmVyIDI4ICovXG4gICAgdGhpcy5waXZvdENvbHVtbiA9IGdyaWRRdWVyeS5hcGkuY29sdW1ucy5nZXRTZWNvbmRhcnlQaXZvdENvbHVtbihwaXZvdEtleXMsIHBpdm90VmFsdWVDb2x1bW4pO1xuICAgIHRoaXMuaW5wdXRDb25kaXRpb25zT3BlcmF0b3IgPSBmaWx0ZXJzQ29uZmlnLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yO1xuXG4gICAgaWYgKCFpc05pbChmaWx0ZXJzQ29uZmlnLnNob3dDbGVhckZpbHRlcnNCdXR0b24pKSB7XG4gICAgICB0aGlzLnNob3dDbGVhckZpbHRlcnNCdXR0b24gPSBmaWx0ZXJzQ29uZmlnLnNob3dDbGVhckZpbHRlcnNCdXR0b247XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcnNDb25maWcuc2VjdGlvbnMpIHtcbiAgICAgIHRoaXMuZmlsdGVyU2VjdGlvbnMgPSB7IFtmaWx0ZXJzQ29uZmlnLnNlY3Rpb25zXTogdHJ1ZSB9O1xuICAgIH1cblxuICAgIHRoaXMua2VlcFByZWRlZmluZWRMaXN0T3JpZ2luYWxPcmRlciA9XG4gICAgICBmaWx0ZXJzQ29uZmlnLmtlZXBQcmVkZWZpbmVkTGlzdE9yaWdpbmFsT3JkZXIgJiYgIWlzRW1wdHkoZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlcyk7XG5cbiAgICB0aGlzLmZpbHRlclR5cGUgPSBmaWx0ZXJPcHRpb25zID8gKGNvbEZpbHRlciBhcyBEYXRvR3JpZEZpbHRlclR5cGVzKSA6IERhdG9HcmlkRmlsdGVyVHlwZXMuU3RyaW5nO1xuICAgIHRoaXMubGlzdExhYmVsVHlwZSA9IHRoaXMuZmlsdGVyVHlwZS50b0xvd2VyQ2FzZSgpIGFzIFNvcnRMYWJlbFR5cGU7XG4gICAgdGhpcy5saXN0U29ydEJ5S2V5ID0gdGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlciAmJiB0aGlzLmNvbERlZi52YWx1ZUZvcm1hdHRlciA/ICdpZCcgOiAnbGFiZWwnO1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0gZ3JpZFF1ZXJ5O1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UgPSBncmlkU2VydmljZTtcbiAgICB0aGlzLmhhc0ZpbHRlciQgPSB0aGlzLmdyaWRRdWVyeVxuICAgICAgLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5zZXR0aW5ncy5maWx0ZXJbdGhpcy5jb2xGaWVsZF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGZpbHRlciA9PiB7XG4gICAgICAgICAgcmV0dXJuICFpc05pbChmaWx0ZXIpICYmIGlzQXJyYXlWYWx1ZXNFcXVhbChmaWx0ZXIucGl2b3RLZXlzLCB0aGlzLnBpdm90S2V5cyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQ29uZGl0aW9uYWwpIHtcbiAgICAgIGxldCBmaWx0ZXJDb25kaXRpb25zOiBEYXRvRmlsdGVyQ29uZGl0aW9uc1tdID0gZmlsdGVyT3B0aW9ucyB8fCBEYXRvR3JpZFN0cmluZ0ZpbHRlck9wdGlvbnM7XG5cbiAgICAgIGlmIChmaWx0ZXJzQ29uZmlnLnNob3dFbXB0eUNvbmRpdGlvbnMpIHtcbiAgICAgICAgbGV0IGVtcHR5Q29uZGl0aW9ucyA9IFtEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWSwgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VNUFRZXTtcblxuICAgICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlcikge1xuICAgICAgICAgIGVtcHR5Q29uZGl0aW9ucyA9IFtEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19OVUxMLCBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfTlVMTF07XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXJDb25kaXRpb25zID0gWy4uLmZpbHRlckNvbmRpdGlvbnMsIC4uLmVtcHR5Q29uZGl0aW9uc107XG4gICAgICB9XG4gICAgICB0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9ucyA9IGZpbHRlckNvbmRpdGlvbnMubWFwKChvcGVyYW5kLCBpZCkgPT4gKHtcbiAgICAgICAgaWQsXG4gICAgICAgIG9wZXJhbmQsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS50cmFuc2Zvcm0oYGNvcmUuJHt0aGlzLmZpbHRlclR5cGUgPT09IERhdG9HcmlkRmlsdGVyVHlwZXMuRGF0ZSA/ICdEQVRFXycgOiAnJ30ke29wZXJhbmR9YClcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBsZXQgb3JpZ2luYWxPcHRpb25zO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIGNvbnN0IHsgcHJlZGVmaW5lZExpc3RWYWx1ZXMgfSA9IGZpbHRlcnNDb25maWc7XG4gICAgICB0aGlzLmlzQ2xpZW50U2lkZUdyaWQgPSAhaXNOaWwocHJlZGVmaW5lZExpc3RWYWx1ZXMpIHx8ICFncmlkUXVlcnkuaXNTZXJ2ZXJTaWRlO1xuICAgICAgaWYgKCFwcmVkZWZpbmVkTGlzdFZhbHVlcyB8fCB0aGlzLmlzU3RyaW5nQXJyYXkocHJlZGVmaW5lZExpc3RWYWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlcyA9IHByZWRlZmluZWRMaXN0VmFsdWVzIGFzIHN0cmluZ1tdO1xuICAgICAgICBpZiAocmF3VmFsdWVzKSB7XG4gICAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSByYXdWYWx1ZXM7XG4gICAgICAgICAgdGhpcy5saXN0T3B0aW9ucyA9IHJhd1ZhbHVlcy5tYXAobWFwVG9MaXN0SXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uVmFsdWVzID0gdGhpcy5nZXRDb2x1bW5WYWx1ZXMoKS5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gIWlzTmlsKHZhbHVlKSk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZXMubWFwKCh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhaXNOaWwodGhpcy5waXZvdENvbHVtbikgJiYgdmFsdWUgPyB2YWx1ZVt0aGlzLmNvbEZpZWxkXSA6IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSBjb2x1bW5WYWx1ZXMubWFwKGNvbFZhbHVlID0+XG4gICAgICAgICAgICBtYXBUb0xpc3RJdGVtV2l0aEZvcm1hdHRlZChjb2xWYWx1ZSwgIWlzTmlsKHRoaXMucGl2b3RDb2x1bW4pICYmIHRoaXMuY29sRmllbGQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWVzID0gcHJlZGVmaW5lZExpc3RWYWx1ZXMgYXMgTGlzdEl0ZW1bXTtcbiAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSByYXdWYWx1ZXMubWFwKG1hcFRvVmFsdWUpO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gcmF3VmFsdWVzO1xuICAgICAgfVxuXG4gICAgICBvcmlnaW5hbE9wdGlvbnMgPSB0aGlzLmxpc3RPcHRpb25zO1xuXG4gICAgICBpZiAoIXRoaXMuaXNDbGllbnRTaWRlR3JpZCkge1xuICAgICAgICB0aGlzLmxpc3RTZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHNlYXJjaFRlcm06IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc2VydmVyU2VhcmNoRXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChzZWFyY2hUZXJtLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSBvcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLnBhdGNoQW5kUmVSZWdpc3Rlcih0aGlzLmNvbHVtblZhbHVlcyk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVzRnJvbVNlcnZlcihzZWFyY2hUZXJtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIGNsb3NlUG9wVXAoKSB7XG4gICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB0aGlzLnBvcG92ZXIuY2xvc2UoKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0udmFsaWQgJiYgdGhpcy5maWx0ZXJGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLmRpcnR5ICYmICh0aGlzLmZpbHRlckZvcm0udmFsaWQgfHwgdGhpcy5maWx0ZXJGb3JtLmdldCgnY29uZGl0aW9uYWwnKS5wcmlzdGluZSkpIHtcbiAgICAgIGNvbnN0IHsgY29sdW1uIH0gPSB0aGlzLnBvcG92ZXIuZGF0YTtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuYnVpbGRGaWx0ZXIoKTtcbiAgICAgIGlzRW1wdHkoZmlsdGVyKVxuICAgICAgICA/IHRoaXMuZ3JpZFNlcnZpY2UuY2xlYXJDb2x1bW5GaWx0ZXIodGhpcy5jb2xGaWVsZClcbiAgICAgICAgOiB0aGlzLmdyaWRTZXJ2aWNlLnNldENvbHVtbkZpbHRlcihjb2x1bW4sIGZpbHRlcik7XG5cbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uubm90aWZ5RmlsdGVyVXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UuY2xlYXJDb2x1bW5GaWx0ZXIodGhpcy5jb2xGaWVsZCk7XG4gICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIHJlbW92ZUNvbmRpdGlvbihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25kaXRpb25zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB0aGlzLmZpbHRlckZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGFkZENvbmRpdGlvbigpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICB0aGlzLmNvbmRpdGlvbnMucHVzaCh0aGlzLmRlZmF1bHRPcGVyYW5kKTtcbiAgfVxuXG4gIGdldE9wZXJhbmRUeXBlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSB0aGlzLmNvbmRpdGlvbnMuYXQoaSkudmFsdWUudHlwZTtcbiAgICByZXR1cm4gY29uZGl0aW9uVHlwZSA/IGNvbmRpdGlvblR5cGUub3BlcmFuZCA6IG51bGw7XG4gIH1cblxuICBpc0NvbmRpdGlvbmFsRW1wdHkoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMgPVxuICAgICAgY29udHJvbCAmJiBjb250cm9sLnZhbHVlICYmIGNvbnRyb2wudmFsdWUudHlwZSA/IGNvbnRyb2wudmFsdWUudHlwZS5vcGVyYW5kIDogbnVsbDtcbiAgICByZXR1cm4gdGhpcy5pc0VtcHR5T3BlcmFuZChvcGVyYW5kKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYnlWYWx1ZVN1YnNjcmlwdGlvbiAmJiB0aGlzLmJ5VmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgdHlwZTogXCJFeGNsdWRlXCJcbiAgICogU2VsZWN0ZWQgdmFsdWVzOiBBLCBDLCBEXG4gICAqIEFsbCBsaXN0OiBBLCBCLCBDLCBEXG4gICAqIFJlc3VsdDogQlxuICAgKiBAcGFyYW0gaW5jbHVkZWRBcnIgLVRoZSBsaXN0IG9mIHZhbHVlcyB0byBpbmNsdWRlXG4gICAqIEBwYXJhbSBhc0xpc3RJdGVtIC1JbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIG5lZWRzIHRvIGJlIGFzIHN0cmluZyBvciBhcyBMaXN0SXRlbVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdLCBhc0xpc3RJdGVtOiB0cnVlKTogTGlzdEl0ZW1bXTtcbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdKTogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhcbiAgICBpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdLFxuICAgIGFzTGlzdEl0ZW0gPSBmYWxzZVxuICApOiAoc3RyaW5nIHwgbnVtYmVyKVtdIHwgTGlzdEl0ZW1bXSB7XG4gICAgbGV0IGluY2x1ZGVkU2V0O1xuICAgIGlmICh0aGlzLmlzUHJlZGVmaW5lZExpc3RJdGVtcykge1xuICAgICAgY29uc3QgcHJlZGVmaW5lZExpc3QgPSB0aGlzLmNvbERlZi5maWx0ZXJzQ29uZmlnLnByZWRlZmluZWRMaXN0VmFsdWVzIGFzIExpc3RJdGVtW107XG4gICAgICBpbmNsdWRlZFNldCA9IG5ldyBTZXQoXG4gICAgICAgIGluY2x1ZGVkQXJyLm1hcCh2YWwgPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBwcmVkZWZpbmVkTGlzdC5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSB2YWwpO1xuICAgICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5jbHVkZWRTZXQgPSBuZXcgU2V0KGluY2x1ZGVkQXJyLm1hcCh2YWwgPT4gKGlzT2JqZWN0PExpc3RJdGVtPih2YWwpID8gdmFsLnZhbHVlIDogdmFsKSkpO1xuICAgIH1cbiAgICBpZiAoYXNMaXN0SXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMubGlzdE9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+ICFpbmNsdWRlZFNldC5oYXModmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVmFsdWVzLmZpbHRlcih2YWx1ZSA9PiAhaW5jbHVkZWRTZXQuaGFzKHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRmlsdGVyKCk6IERhdG9HcmlkRmlsdGVyIHtcbiAgICBjb25zdCB7IGJ5VmFsdWUsIGNvbmRpdGlvbmFsIH0gPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG4gICAgY29uc3QgZmlsdGVyOiBEYXRvR3JpZEZpbHRlciA9IHt9O1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQ29uZGl0aW9uYWwpIHtcbiAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxGaWx0ZXIoZmlsdGVyLCBjb25kaXRpb25hbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkJ5X1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldEJ5VmFsdWVGaWx0ZXIoZmlsdGVyLCBieVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogSWYgZmlsdGVycyBhcHBsaWVkLCBhZGQgdGhlIGV4dHJhIHByb3BlcnRpZXMgdG8gYmUgdXNlZCBieSBwaXZvdCBtb2RlICovXG4gICAgaWYgKGZpbHRlci5ieVZhbHVlIHx8IGZpbHRlci5jb25kaXRpb25hbCkge1xuICAgICAgZmlsdGVyLmNvbElkID0gdGhpcy5jb2xEZWYuY29sSWQ7XG4gICAgICBmaWx0ZXIucGl2b3RLZXlzID0gdGhpcy5waXZvdEtleXM7XG5cbiAgICAgIGlmICh0aGlzLnBpdm90Q29sdW1uKSB7XG4gICAgICAgIGZpbHRlci5waXZvdEZpZWxkc01hcCA9IHRoaXMuZ2V0UGl2b3RGaWVsZHModGhpcy5waXZvdENvbHVtbi5nZXRQYXJlbnQoKSkucmVkdWNlKChmaWVsZE1hcCwgZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucGl2b3RLZXlzW2luZGV4XSkge1xuICAgICAgICAgICAgZmllbGRNYXBbZmllbGRdID0gdGhpcy5waXZvdEtleXNbaW5kZXhdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWVsZE1hcDtcbiAgICAgICAgfSwge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gZmlsdGVyVmFsdWUgPyB0aGlzLmJ1aWxkRm9ybUZyb21GaWx0ZXIoZmlsdGVyVmFsdWUpIDogdGhpcy5kZWZhdWx0Rm9ybTtcbiAgICB0aGlzLnJlZ2lzdGVyT3BlcmFuZExpc3RlbmVycygpO1xuICAgIGlmICghdGhpcy5pc0NsaWVudFNpZGVHcmlkICYmIHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIGZpbHRlciB2aWV3IGZyb20gYSBnaXZlbiBmaWx0ZXJcbiAgICovXG4gIHByaXZhdGUgYnVpbGRGb3JtRnJvbUZpbHRlcihmaWx0ZXI6IERhdG9HcmlkRmlsdGVyKTogRm9ybUdyb3VwIHtcbiAgICBjb25zdCBmaWx0ZXJHcm91cCA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICBmaWx0ZXJHcm91cFsnY29uZGl0aW9uYWwnXSA9IHRoaXMuYnVpbGRDb25kaXRpb25hbEZpbHRlcihmaWx0ZXIuY29uZGl0aW9uYWwpO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJTZWN0aW9ucy5CeV9WYWx1ZSkge1xuICAgICAgZmlsdGVyR3JvdXBbJ2J5VmFsdWUnXSA9IHRoaXMuYnVpbGRCeVZhbHVlRmlsdGVyKGZpbHRlci5ieVZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoZmlsdGVyR3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBmaWx0ZXIgdmlld1xuICAgKi9cbiAgcHJpdmF0ZSByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnNldEVycm9ycyhudWxsKTtcbiAgICBsZXQgb3JpZ2luYWxTdGF0ZSA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkJ5X1ZhbHVlKSB7XG4gICAgICBvcmlnaW5hbFN0YXRlID0geyBieVZhbHVlOiB0aGlzLmNvbHVtblZhbHVlcyB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJTZWN0aW9ucy5Db25kaXRpb25hbCkge1xuICAgICAgb3JpZ2luYWxTdGF0ZSA9IHtcbiAgICAgICAgLi4ub3JpZ2luYWxTdGF0ZSxcbiAgICAgICAgY29uZGl0aW9uYWw6IHtcbiAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3JUeXBlcy5BTkQsXG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogdGhpcy5jb25kaXRpb25hbEZpbHRlck9wdGlvbnNbMF0sIHZhbHVlOiBudWxsLCByYW5nZUVuZDogbnVsbCB9XVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgY29uZGl0aW9uYWwgPSB0aGlzLmZpbHRlckZvcm0uY29udHJvbHMuY29uZGl0aW9uYWwgYXMgRm9ybUdyb3VwO1xuICAgICAgY29uZGl0aW9uYWwucmVtb3ZlQ29udHJvbCgnY29uZGl0aW9ucycpO1xuICAgICAgY29uZGl0aW9uYWwuYWRkQ29udHJvbCgnY29uZGl0aW9ucycsIHRoaXMuZmIuYXJyYXkoW3RoaXMuZGVmYXVsdE9wZXJhbmRdKSk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldChvcmlnaW5hbFN0YXRlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBjb2x1bW4gdmFsdWVzIHRvIGRpc3BsYXkgb24gdGhlIGxpc3QuXG4gICAqIDEuIEl0ZXJhdGUgb3ZlciB0aGUgcm93cyBhZnRlciBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgd2FzIGFwcGxpZWRcbiAgICogMi4gU2luY2Ugd2UgYWxzbyB3YW50IHRvIHNob3cgdmFsdWVzIHRoYXQgd2VyZSBmaWx0ZXJlZCBieSB0aGlzIGNvbHVtbiBmaWx0ZXIgd2UgYXJlIGl0ZXJhdGluZyBhbGwgdGhlIHJvd3NcbiAgICogKGJlZm9yZSB0aGUgZmlsdGVyaW5nKSwgZmluZGluZyB3aGljaCB3ZXJlIHJlbW92ZWQgYnkgdGhpcyBjb2x1bW4ncyBmaWx0ZXIgYW5kIGFkZGluZyB0aGVtIGJhY2suXG4gICAqL1xuICBwcml2YXRlIGdldENvbHVtblZhbHVlcygpOiBWYWx1ZUFuZEZvcm1hdHRlZFZhbHVlW10ge1xuICAgIGxldCB2YWx1ZXM6IFZhbHVlQW5kRm9ybWF0dGVkVmFsdWVbXSA9IFtdO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgY29uc3QgZGlzcGxheWVkUm93ID0ge307XG4gICAgY29uc3QgYnlWYWx1ZVR5cGUgPSBmaWx0ZXJWYWx1ZSAmJiBmaWx0ZXJWYWx1ZS5ieVZhbHVlICYmIGZpbHRlclZhbHVlLmJ5VmFsdWUuY29uZGl0aW9uO1xuICAgIGNvbnN0IGFwaSA9IHRoaXMuZ3JpZFF1ZXJ5LmFwaS5ncmlkO1xuICAgIGNvbnN0IGdldFZhbHVlQ3VycmllZCA9IGN1cnJ5KHRoaXMuZ2V0VmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZSkodGhpcy5jb2xGaWVsZCwgYXBpLCB0aGlzLmNvbERlZi52YWx1ZUZvcm1hdHRlcik7XG4gICAgLyoqIDEuIEl0ZXJhdGUgb3ZlciB0aGUgcm93cyBhZnRlciBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgd2FzIGFwcGxpZWQgKi9cbiAgICBpZiAodGhpcy5pc0NsaWVudFNpZGVHcmlkKSB7XG4gICAgICBhcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQocm93ID0+IHtcbiAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVDdXJyaWVkKHJvdykpO1xuICAgICAgICBkaXNwbGF5ZWRSb3dbcm93LmlkXSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLyogV2Ugb25seSBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgaW4gdGhlIGxpc3QgKi9cbiAgICAgIGNvbnN0IHBhZ2VTaXplID0gYXBpLnBhZ2luYXRpb25HZXRQYWdlU2l6ZSgpO1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBhcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCk7XG4gICAgICBjb25zdCBzdGFydEluZGV4ID0gcGFnZVNpemUgKiBjdXJyZW50UGFnZTtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHBhZ2VTaXplO1xuICAgICAgYXBpLmZvckVhY2hOb2RlKHJvdyA9PiB7XG4gICAgICAgIGNvbnN0IHsgcm93SW5kZXggfSA9IHJvdztcbiAgICAgICAgaWYgKHJvd0luZGV4ID49IHN0YXJ0SW5kZXggJiYgcm93SW5kZXggPCBlbmRJbmRleCkge1xuICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlQ3VycmllZChyb3cpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIDIuIEFkZCBiYWNrIHZhbHVlcyB0aGF0IHdlcmUgZmlsdGVyZWQgYnkgdGhpcyBjb2x1bW4gKi9cbiAgICBpZiAoYnlWYWx1ZVR5cGUpIHtcbiAgICAgIGlmIChieVZhbHVlVHlwZSA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0lOX0xJU1QpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdGhpcy5jb2xEZWYudmFsdWVGb3JtYXR0ZXIgYXMgKHBhcmFtczogYW55KSA9PiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IGN1cnJGaWx0ZXJWYWx1ZXMgPSBmaWx0ZXJWYWx1ZS5ieVZhbHVlLnZhbHVlcy5tYXAoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0pIDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWUsIGZvcm1hdHRlZFZhbHVlIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KGN1cnJGaWx0ZXJWYWx1ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBjb25kaXRpb25hbCB9ID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUZpbHRlcnMgPSB7XG4gICAgICAgICAgLi4udGhpcy5ncmlkUXVlcnkuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgW3RoaXMuY29sRmllbGRdOiB7IGNvbmRpdGlvbmFsIH1cbiAgICAgICAgfTtcbiAgICAgICAgYXBpLmZvckVhY2hMZWFmTm9kZShyb3cgPT4ge1xuICAgICAgICAgIGlmICghZGlzcGxheWVkUm93Lmhhc093blByb3BlcnR5KHJvdy5pZCkgJiYgdmFsaWRhdGVGaWx0ZXIoeyByb3csIGFwaSB9LCBhY3RpdmVGaWx0ZXJzKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVDdXJyaWVkKHJvdykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmlxQnkodmFsdWVzLCAndmFsdWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZShcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGFwaTogR3JpZEFwaSxcbiAgICAvLyBUT0RPOiBmb2xsb3d1cDogaHR0cHM6Ly9hZy1ncmlkLnplbmRlc2suY29tL2hjL2VuLXVzL3JlcXVlc3RzLzExMDE5XG4gICAgZm9ybWF0dGVyOiAocGFyYW1zOiBhbnkpID0+IHN0cmluZyxcbiAgICByb3c6IFJvd05vZGVcbiAgKTogVmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZSB7XG4gICAgY29uc3QgdmFsdWUgPSBhcGkuZ2V0VmFsdWUoZmllbGQsIHJvdyk7XG4gICAgLy8gVE9ETzogZm9sbG93dXA6IGh0dHBzOi8vYWctZ3JpZC56ZW5kZXNrLmNvbS9oYy9lbi11cy9yZXF1ZXN0cy8xMDk2Mz9wYWdlPTFcbiAgICByZXR1cm4geyB2YWx1ZSwgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIHNldENvbmRpdGlvbmFsRmlsdGVyKFxuICAgIGZpbHRlcjogRGF0b0dyaWRGaWx0ZXIsXG4gICAgeyBvcGVyYXRvciwgY29uZGl0aW9ucyB9OiB7IG9wZXJhdG9yOiBPcGVyYXRvclR5cGVzOyBjb25kaXRpb25zOiBDb25kaXRpb25zIH1cbiAgKSB7XG4gICAgY29uc3QgdmFsaWRDb25kaXRpb25zID0gY29uZGl0aW9ucy5maWx0ZXIoKHsgdmFsdWUsIHR5cGUgfSkgPT4gIWlzTmlsKHZhbHVlKSB8fCB0aGlzLmlzRW1wdHlPcGVyYW5kKHR5cGUub3BlcmFuZCkpO1xuICAgIGlmICh2YWxpZENvbmRpdGlvbnMubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXIuY29uZGl0aW9uYWwgPSB7XG4gICAgICAgIHR5cGU6ICh0aGlzLmNvbERlZi5maWx0ZXIgYXMgRGF0b0dyaWRGaWx0ZXJUeXBlcykgfHwgRGF0b0dyaWRGaWx0ZXJUeXBlcy5TdHJpbmcsXG4gICAgICAgIG9wZXJhdG9yLFxuICAgICAgICBjb25kaXRpb25zOiBjb25kaXRpb25zLm1hcCgoeyB2YWx1ZSwgdHlwZSwgcmFuZ2VFbmQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGJhc2UgPSB7IGNvbmRpdGlvbjogdHlwZS5vcGVyYW5kLCB2YWx1ZSB9O1xuICAgICAgICAgIGlmICh0eXBlLm9wZXJhbmQgPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLklOX1JBTkdFKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0geyAuLi5iYXNlLCByYW5nZUVuZCB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gRGF0b0dyaWRGaWx0ZXJUeXBlcy5EYXRlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9IHZhbHVlIGFzIERhdGVSYW5nZTtcbiAgICAgICAgICAgICAgcmVzdWx0ID0geyBjb25kaXRpb246IHR5cGUub3BlcmFuZCwgdmFsdWU6IGZyb20gYXMgc3RyaW5nLCByYW5nZUVuZDogdG8gYXMgc3RyaW5nIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlIGFzIERhdG9HcmlkRmlsdGVyQ29uZGl0aW9uO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEJ5VmFsdWVGaWx0ZXIoZmlsdGVyOiBEYXRvR3JpZEZpbHRlciwgYnlWYWx1ZTogKHN0cmluZyB8IG51bWJlcilbXSkge1xuICAgIGlmICh0aGlzLmlzQ2xpZW50U2lkZUdyaWQpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0NvdW50ID0gdGhpcy5jb2x1bW5WYWx1ZXMubGVuZ3RoO1xuICAgICAgaWYgKGJ5VmFsdWUubGVuZ3RoICE9PSB2YWx1ZXNDb3VudCkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPVxuICAgICAgICAgIGJ5VmFsdWUubGVuZ3RoIDwgdmFsdWVzQ291bnQgLyAyID8gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fTElTVCA6IERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9JTl9MSVNUO1xuICAgICAgICBmaWx0ZXIuYnlWYWx1ZSA9IHtcbiAgICAgICAgICBjb25kaXRpb24sXG4gICAgICAgICAgdmFsdWVzOiBjb25kaXRpb24gPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLklOX0xJU1QgPyBieVZhbHVlIDogdGhpcy5nZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhieVZhbHVlKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5mcm9tKHRoaXMuZXhjbHVkZWRWYWx1ZXMudmFsdWVzKCkpO1xuICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlci5ieVZhbHVlID0ge1xuICAgICAgICAgIGNvbmRpdGlvbjogRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0lOX0xJU1QsXG4gICAgICAgICAgdmFsdWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEJ5VmFsdWVGaWx0ZXIoYnlWYWx1ZTogRGF0b0dyaWRGaWx0ZXJbJ2J5VmFsdWUnXSk6IChzdHJpbmcgfCBudW1iZXIpW11bXSB7XG4gICAgaWYgKCFieVZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0QnlWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGJ5VmFsdWUudmFsdWVzLmxlbmd0aCAmJiB0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICB0aGlzLmFjdGl2ZUFjY29yZGlvbklkID0gMTtcbiAgICB9XG4gICAgaWYgKGJ5VmFsdWUuY29uZGl0aW9uID09PSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfSU5fTElTVCkge1xuICAgICAgaWYgKCF0aGlzLmlzQ2xpZW50U2lkZUdyaWQpIHtcbiAgICAgICAgdGhpcy5leGNsdWRlZFZhbHVlcyA9IG5ldyBTZXQoYnlWYWx1ZS52YWx1ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFt0aGlzLmdldEJ5VmFsdWVFeGNsdWRlVmFsdWVzKGJ5VmFsdWUudmFsdWVzKV07XG4gICAgfVxuICAgIHJldHVybiBbYnlWYWx1ZS52YWx1ZXNdO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbmRpdGlvbmFsRmlsdGVyKGNvbmRpdGlvbmFsOiBEYXRvR3JpZEZpbHRlclsnY29uZGl0aW9uYWwnXSk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKCFjb25kaXRpb25hbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbmRpdGlvbmFsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcGVyYXRvcjogW3RoaXMuaW5wdXRDb25kaXRpb25zT3BlcmF0b3IgfHwgY29uZGl0aW9uYWwub3BlcmF0b3JdLFxuICAgICAgY29uZGl0aW9uczogdGhpcy5mYi5hcnJheSh0aGlzLmJ1aWxkQ29uZGl0aW9ucyhjb25kaXRpb25hbC5jb25kaXRpb25zKSlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25kaXRpb25zKGNvbmRpdGlvbnM6IChEYXRvR3JpZEZpbHRlckNvbmRpdGlvbiB8IERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb24pW10pOiBGb3JtR3JvdXBbXSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICBjb25zdCB7IGNvbmRpdGlvbjogY3VycmVudE9wZXJhbmQsIHZhbHVlIH0gPSBjb25kaXRpb247XG4gICAgICBjb25zdCBncm91cCA9IHtcbiAgICAgICAgdHlwZTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9ucy5maW5kSW5kZXgoKHsgb3BlcmFuZCB9KSA9PiBvcGVyYW5kID09PSBjdXJyZW50T3BlcmFuZCksXG4gICAgICAgICAgICBvcGVyYW5kOiBjdXJyZW50T3BlcmFuZCxcbiAgICAgICAgICAgIGxhYmVsOiBgY29yZS4ke2N1cnJlbnRPcGVyYW5kfWBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHZhbHVlOiBbdmFsdWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICByYW5nZUVuZDogbnVsbFxuICAgICAgfTtcbiAgICAgIGlmIChpc1JhbmdlQ29uZGl0aW9uPERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb24+KGNvbmRpdGlvbikpIHtcbiAgICAgICAgZ3JvdXAucmFuZ2VFbmQgPSBbY29uZGl0aW9uLnJhbmdlRW5kLCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgZ3JvdXAudmFsdWUgPSBbeyBmcm9tOiBjb25kaXRpb24udmFsdWUgYXMgc3RyaW5nLCB0bzogY29uZGl0aW9uLnJhbmdlRW5kIGFzIHN0cmluZyB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKGdyb3VwKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYW5nZSBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdCwgd2Ugd2FudCB0byBtYWtlIGl0IHJlcXVpcmVkIG9uY2UgdGhpcyBvcGVyYW5kIGlzIHNlbGVjdGVkLlxuICAgKiAqL1xuICBwcml2YXRlIHJlZ2lzdGVyT3BlcmFuZExpc3RlbmVycygpIHtcbiAgICBpZiAoIXRoaXMuY29uZGl0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmRpdGlvbnMudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29uZGl0aW9ucy5sZW5ndGgpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb25kaXRpb25zLmxlbmd0aCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gdGhpcy5jb25kaXRpb25zLmNvbnRyb2xzLm1hcCgoZ3JvdXA6IEZvcm1Hcm91cCwgaW5kZXgpID0+XG4gICAgICAgICAgICBncm91cC5nZXQoJ3R5cGUnKS52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlOiBDb25kaXRpb25PcHRpb24pID0+ICh7IHZhbHVlLCBpbmRleCB9KSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4udmFsdWVDaGFuZ2VzKTtcbiAgICAgICAgfSksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHZhbHVlOiB7IG9wZXJhbmQgfSwgaW5kZXggfSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IGluZGV4LCBpblJhbmdlOiBvcGVyYW5kID09PSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRSB9O1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLkRhdGUpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGVJbnB1dChwYXJhbXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gRGF0b0dyaWRGaWx0ZXJUeXBlcy5OdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU51bWJlcklucHV0KHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUNvbnRyb2xWYWxpZGF0b3Iob3BlcmFuZCwgaW5kZXgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGVJbnB1dCh7IGluUmFuZ2UsIGluZGV4IH0pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25kaXRpb25zLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJyk7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gY29udHJvbDtcbiAgICBpZiAoaW5SYW5nZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUoeyBmcm9tOiB2YWx1ZSwgdG86IHZhbHVlLCBpZDogJ0NVU1RPTScgfSk7XG4gICAgfSBlbHNlIGlmICghaW5SYW5nZSAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUuZnJvbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVOdW1iZXJJbnB1dCh7IGluUmFuZ2UsIGluZGV4IH0pIHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSBpblJhbmdlID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IG51bGw7XG4gICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLmNvbmRpdGlvbnMuYXQoaW5kZXgpLmdldCgncmFuZ2VFbmQnKTtcbiAgICByYW5nZUVuZC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgcmFuZ2VFbmQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUNvbnRyb2xWYWxpZGF0b3Iob3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSAhdGhpcy5pc0VtcHR5T3BlcmFuZChvcGVyYW5kKSA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBudWxsO1xuICAgIGNvbnN0IHZhbHVlQ29udHJvbCA9IHRoaXMuY29uZGl0aW9ucy5hdChpbmRleCkuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Db250cm9sO1xuICAgIHZhbHVlQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgdmFsdWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eU9wZXJhbmQob3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFkgfHxcbiAgICAgIG9wZXJhbmQgPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FTVBUWSB8fFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfTlVMTCB8fFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX05VTExcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1N0cmluZ0FycmF5KHZhbHVlOiAoc3RyaW5nIHwgTGlzdEl0ZW0pW10pOiB2YWx1ZSBpcyBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlWzBdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVzRnJvbVNlcnZlcihzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRpbmdMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmxpc3RPcHRpb25zID0gW107XG4gICAgY29uc3QgcGFyYW1zOiBQYXJ0aWFsPERhdG9HcmlkR2V0Um93c1BhcmFtcz4gPSB7XG4gICAgICBmYWlsQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nTGlzdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlcnZlclNlYXJjaEVycm9yZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gW107XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdMaXN0ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZsYXREYXRhID0gZGF0YS5tYXAodmFsdWUgPT4gdmFsdWVbdGhpcy5jb2xGaWVsZF0pO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gZmxhdERhdGEubWFwKG1hcFRvTGlzdEl0ZW0pO1xuICAgICAgICB0aGlzLnBhdGNoQW5kUmVSZWdpc3RlcihmbGF0RGF0YSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICBzZXJ2ZXJDb25maWc6IHtcbiAgICAgICAgcGFnZVNpemU6IDMwLFxuICAgICAgICBwYWdlTnVtYmVyOiAxLFxuICAgICAgICBjb2x1bW5GaWx0ZXJzOiB7XG4gICAgICAgICAgW3RoaXMuY29sRmllbGRdOiB7XG4gICAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3JUeXBlcy5BTkQsXG4gICAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IERhdG9GaWx0ZXJDb25kaXRpb25zLkNPTlRBSU5TLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBzZWFyY2hUZXJtXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNvcnQ6IFtdLFxuICAgICAgICBjb2x1bW5zVG9SZXR1cm46IFt0aGlzLmNvbEZpZWxkXSxcbiAgICAgICAgZGlzdGluY3RSZXN1bHRzOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9vcmlnaW5hbEdldFJvd3MocGFyYW1zIGFzIGFueSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyogV2hlbiBzZWFyY2hpbmcgdGhlIGJ5IHZhbHVlIGZpbHRlciBvbiBzZXJ2ZXIgc2lkZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29udHJvbCB3aXRoIHRoZSBuZXcgdmFsdWVzIGFuZCByZS1yZWdpc3RlciB0byB0aGUgY2hhbmdlcyAqL1xuICBwcml2YXRlIHBhdGNoQW5kUmVSZWdpc3RlcihkYXRhOiAoc3RyaW5nIHwgbnVtYmVyKVtdKSB7XG4gICAgdGhpcy5ieVZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5ieVZhbHVlQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuZ2V0Tm9uRXhjbHVkZWRWYWx1ZXMoZGF0YSkpO1xuICAgIHRoaXMucmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKSB7XG4gICAgY29uc3QgYnlWYWx1ZSA9IHRoaXMuYnlWYWx1ZUNvbnRyb2w7XG4gICAgdGhpcy5ieVZhbHVlU3Vic2NyaXB0aW9uID0gYnlWYWx1ZS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoYnlWYWx1ZS52YWx1ZSksXG4gICAgICAgIHBhaXJ3aXNlKClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcmV2LCBjdXJyZW50XSkgPT4ge1xuICAgICAgICBjb25zdCBhZGRUb0V4Y2x1ZGVkID0gY3VycmVudC5sZW5ndGggPCBwcmV2Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGlmZiA9IGFkZFRvRXhjbHVkZWQgPyBkaWZmZXJlbmNlKHByZXYsIGN1cnJlbnQpIDogZGlmZmVyZW5jZShjdXJyZW50LCBwcmV2KTtcbiAgICAgICAgZGlmZi5mb3JFYWNoKHYgPT4gKGFkZFRvRXhjbHVkZWQgPyB0aGlzLmV4Y2x1ZGVkVmFsdWVzLmFkZCh2KSA6IHRoaXMuZXhjbHVkZWRWYWx1ZXMuZGVsZXRlKHYpKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9uRXhjbHVkZWRWYWx1ZXMoZGF0YTogKHN0cmluZyB8IG51bWJlcilbXSk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlcih2ID0+ICF0aGlzLmV4Y2x1ZGVkVmFsdWVzLmhhcyh2KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBpdm90IGRpbWVuc2lvbnMgYXMgZGVmaW5lZCBpbiB0aGUgcGFyZW50IGdyb3VwIGNvbHVtbiBoZWFkZXIgY2xhc3MuXG4gICAqL1xuICBwcml2YXRlIGdldFBpdm90RmllbGRzKHBhcmVudDogQ29sdW1uR3JvdXAsIGZpZWxkcyA9IFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGhlYWRlckNsYXNzID0gcGFyZW50LmdldE9yaWdpbmFsQ29sdW1uR3JvdXAoKS5nZXRDb2xHcm91cERlZigpLmhlYWRlckNsYXNzO1xuXG4gICAgaWYgKGdyYW5kUGFyZW50KSB7XG4gICAgICB0aGlzLmdldFBpdm90RmllbGRzKGdyYW5kUGFyZW50LCBmaWVsZHMpO1xuICAgIH1cblxuICAgIGhlYWRlckNsYXNzICYmIGZpZWxkcy5wdXNoKGhlYWRlckNsYXNzWzBdKTtcblxuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cbn1cbiJdfQ==
|
|
633
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2NvcmUvIiwic291cmNlcyI6WyJsaWIvZ3JpZC12Mi9ncmlkLWZpbHRlci9ncmlkLWZpbHRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsU0FBUyxFQUNULFNBQVMsRUFDVCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUNMLG9CQUFvQixFQUdwQix3QkFBd0IsRUFDeEIsc0JBQXNCLEVBQ3RCLG1CQUFtQixFQUVuQiwyQkFBMkIsRUFDM0IsZ0JBQWdCLEVBRWpCLE1BQU0scUJBQXFCLENBQUM7QUFDN0IsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0csT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRXZELE9BQU8sRUFBRSxLQUFLLEVBQTRCLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzRixPQUFPLEVBQUUsVUFBVSxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQzNFLE9BQU8sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDOUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDeEUsT0FB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RUFBRSxDQUFDLGNBQWMsRUFBRSxDQUFDLFdBQVcsQ0FBQztRQUVqRixJQUFJLFdBQVcsRUFBRTtZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1NBQzFDO1FBRUQsV0FBVyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFM0MsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztDQUNGLENBQUE7O1lBdm9CaUIsVUFBVTtZQUNQLFVBQVU7WUFDZixXQUFXO1lBQ0osb0JBQW9CO1lBQzFCLGlCQUFpQjs7QUFyRGhDO0lBREMsWUFBWSxDQUFDLGlCQUFpQixDQUFDOzhCQUNGLFNBQVM7cUNBQVQsU0FBUzs4REFVdEM7QUFaVSx1QkFBdUI7SUFObkMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLGtCQUFrQjtRQUM1QiwyeGFBQTJDO1FBRTNDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO3FDQW9EZ0IsVUFBVTtRQUNQLFVBQVU7UUFDZixXQUFXO1FBQ0osb0JBQW9CO1FBQzFCLGlCQUFpQjtHQXZEckIsdUJBQXVCLENBMHJCbkM7U0ExckJZLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkcmVuXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgRGF0b0ZpbHRlckNvbmRpdGlvbnMsXG4gIERhdG9HcmlkRmlsdGVyLFxuICBEYXRvR3JpZEZpbHRlckNvbmRpdGlvbixcbiAgRGF0b0dyaWRGaWx0ZXJPcHRpb25zTWFwLFxuICBEYXRvR3JpZEZpbHRlclNlY3Rpb25zLFxuICBEYXRvR3JpZEZpbHRlclR5cGVzLFxuICBEYXRvR3JpZFJhbmdlRmlsdGVyQ29uZGl0aW9uLFxuICBEYXRvR3JpZFN0cmluZ0ZpbHRlck9wdGlvbnMsXG4gIGlzUmFuZ2VDb25kaXRpb24sXG4gIExpc3RJdGVtXG59IGZyb20gJy4vZ3JpZC1maWx0ZXIudHlwZXMnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci1yZWYnO1xuaW1wb3J0IHsgR3JpZFF1ZXJ5IH0gZnJvbSAnLi4vZ3JpZC1zdG9yZS9ncmlkLnF1ZXJ5JztcbmltcG9ydCB7IG1lcmdlLCBPYnNlcnZhYmxlLCBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGgsIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGRpZmZlcmVuY2UsIGlzQXJyYXlWYWx1ZXNFcXVhbCwgdW5pcUJ5IH0gZnJvbSAnLi4vLi4vdXRpbHMvYXJyYXknO1xuaW1wb3J0IHsgaXNFbXB0eSwgaXNOaWwsIGlzT2JqZWN0LCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBPcGVyYXRvclR5cGVzIH0gZnJvbSAnLi4vLi4vb3BlcmF0b3ItdG9nZ2xlci9vcGVyYXRvci10b2dnbGVyLnR5cGVzJztcbmltcG9ydCB7IERhdG9UcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdHJhbnNsYXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgdmFsaWRhdGVGaWx0ZXIgfSBmcm9tICcuL2ZpbHRlci12YWxpZGF0b3InO1xuaW1wb3J0IHsgRGF0b0dyaWRDb2x1bW5EZWYsIERhdG9HcmlkR2V0Um93c1BhcmFtcyB9IGZyb20gJy4uL2dyaWQvZ3JpZC12Mi50eXBlcyc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgRGF0b0NvbHVtbk1lbnVEYXRhIH0gZnJvbSAnLi4vZ3JpZC1jb2x1bW4taGVhZGVyL2dyaWQtY29sdW1uLWhlYWRlci50eXBlcyc7XG5pbXBvcnQgeyBDb2x1bW4sIENvbHVtbkdyb3VwLCBHcmlkQXBpLCBSb3dOb2RlIH0gZnJvbSAnQGFnLWdyaWQtY29tbXVuaXR5L2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi4vLi4vZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgY3VycnkgfSBmcm9tICcuLi8uLi91dGlscy9mdW5jdGlvbic7XG5pbXBvcnQgeyBTb3J0TGFiZWxUeXBlIH0gZnJvbSAnLi4vLi4vcGlwZXMvc2VhcmNoLXJlc3VsdHMucGlwZSc7XG5pbXBvcnQgeyBIb3RLZXlDb25maWcgfSBmcm9tICcuLi8uLi9ob3RrZXlzL2hvdGtleS50eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXRLZXlzIH0gZnJvbSAnLi4vLi4vaG90a2V5cy9ob3RrZXlzLWZvcm1hdHRlcic7XG5pbXBvcnQgeyBnZXRDb2xGaWVsZCB9IGZyb20gJy4uL2dyaWQtc3RvcmUvdXRpbCc7XG5pbXBvcnQgeyBEYXRvVG9nZ2xlckNvbXBvbmVudCB9IGZyb20gJy4uLy4uL3RvZ2dsZXIvdG9nZ2xlci5jb21wb25lbnQnO1xuXG5jb25zdCBtYXBUb1ZhbHVlID0gKHsgdmFsdWUgfSkgPT4gdmFsdWU7XG5jb25zdCBtYXBUb0xpc3RJdGVtID0gdmFsID0+ICh7IGlkOiB2YWwsIGxhYmVsOiBpc05pbCh2YWwpID8gYChFbXB0eSlgIDogYCR7dmFsfWAudHJpbSgpLCB2YWx1ZTogdmFsIH0pO1xuY29uc3QgbWFwVG9MaXN0SXRlbVdpdGhGb3JtYXR0ZWQgPSAoeyB2YWx1ZSwgZm9ybWF0dGVkVmFsdWUgfSwga2V5PykgPT4gKHtcbiAgaWQ6IGtleSAmJiB2YWx1ZSA/IHZhbHVlW2tleV0gOiB2YWx1ZSxcbiAgbGFiZWw6IGlzTmlsKGZvcm1hdHRlZFZhbHVlKSA/IGAoRW1wdHkpYCA6IGAke2tleSA/IGZvcm1hdHRlZFZhbHVlW2tleV0gOiBmb3JtYXR0ZWRWYWx1ZX1gLnRyaW0oKSxcbiAgdmFsdWU6IGtleSAmJiB2YWx1ZSA/IHZhbHVlW2tleV0gOiB2YWx1ZVxufSk7XG5cbnR5cGUgQ29uZGl0aW9ucyA9IHtcbiAgdHlwZToge1xuICAgIG9wZXJhbmQ6IEV4Y2x1ZGU8RGF0b0ZpbHRlckNvbmRpdGlvbnMsIERhdG9GaWx0ZXJDb25kaXRpb25zLklOX0xJU1QgfCBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfSU5fTElTVD47XG4gIH07XG4gIHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7XG4gIHJhbmdlRW5kOiBzdHJpbmcgfCBudW1iZXI7XG59W107XG5cbnR5cGUgQ29uZGl0aW9uT3B0aW9uID0geyBpZDogbnVtYmVyOyBsYWJlbDogc3RyaW5nOyBvcGVyYW5kOiBEYXRvRmlsdGVyQ29uZGl0aW9ucyB9O1xuXG50eXBlIFZhbHVlQW5kRm9ybWF0dGVkVmFsdWUgPSB7IHZhbHVlOiBzdHJpbmcgfCBudW1iZXI7IGZvcm1hdHRlZFZhbHVlOiBzdHJpbmcgfCBudW1iZXIgfTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLWZpbHRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWZpbHRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtZmlsdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkRmlsdGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgQFZpZXdDaGlsZHJlbignb3BlcmF0b3JUb2dnbGVyJylcbiAgc2V0IG9wZXJhdG9yVG9nZ2xlcih0b2dnbGVyczogUXVlcnlMaXN0PERhdG9Ub2dnbGVyQ29tcG9uZW50Pikge1xuICAgIGlmICh0b2dnbGVycyAmJiB0aGlzLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yKSB7XG4gICAgICB0b2dnbGVycy5mb3JFYWNoKCh0b2dnbGVyOiBEYXRvVG9nZ2xlckNvbXBvbmVudCkgPT4ge1xuICAgICAgICBpZiAoIXRvZ2dsZXIuaXNEaXNhYmxlZCkge1xuICAgICAgICAgIHRvZ2dsZXIuc2V0RGlzYWJsZWRTdGF0ZSh0cnVlKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG4gIH1cblxuICBncmlkRmlsdGVyVHlwZXMgPSBEYXRvR3JpZEZpbHRlclR5cGVzO1xuICBmaWx0ZXJUeXBlOiBEYXRvR3JpZEZpbHRlclR5cGVzO1xuICBjb2x1bW5WYWx1ZXM6IChzdHJpbmcgfCBudW1iZXIpW10gPSBbXTtcbiAgbGlzdE9wdGlvbnM6IExpc3RJdGVtW10gPSBbXTtcbiAgY29uZGl0aW9uYWxGaWx0ZXJPcHRpb25zOiBDb25kaXRpb25PcHRpb25bXTtcbiAgaGFzRmlsdGVyJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgZmlsdGVyRm9ybTogRm9ybUdyb3VwO1xuICBmaWx0ZXJTZWN0aW9uczogeyBbRGF0b0dyaWRGaWx0ZXJTZWN0aW9ucy5CeV9WYWx1ZV0/OiBib29sZWFuOyBbRGF0b0dyaWRGaWx0ZXJTZWN0aW9ucy5Db25kaXRpb25hbF0/OiBib29sZWFuIH0gPSB7XG4gICAgW0RhdG9HcmlkRmlsdGVyU2VjdGlvbnMuQnlfVmFsdWVdOiB0cnVlLFxuICAgIFtEYXRvR3JpZEZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsXTogdHJ1ZVxuICB9O1xuICByYW5nZU9wZXJhbmQgPSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRTtcbiAgbGlzdExhYmVsVHlwZTogU29ydExhYmVsVHlwZTtcbiAgbGlzdFNvcnRCeUtleTogc3RyaW5nO1xuICBpc0NsaWVudFNpZGVHcmlkID0gZmFsc2U7XG4gIGxpc3RTZWFyY2hDb250cm9sID0gbmV3IEZvcm1Db250cm9sKCk7XG4gIGxvYWRpbmdMaXN0ID0gZmFsc2U7XG4gIHNlcnZlclNlYXJjaEVycm9yZWQgPSBmYWxzZTtcbiAgYXBwbHlIb3RLZXlDb25maWc6IEhvdEtleUNvbmZpZyA9IHtcbiAgICBrZXlzOiAnbWV0YS5lbnRlcicsXG4gICAgaGFuZGxlcjogKCkgPT4gdGhpcy5jbG9zZVBvcFVwKCksXG4gICAgZGVzY3JpcHRpb246ICdjb3JlLmFwcGx5LWZpbHRlcnMnXG4gIH07XG4gIGhvdEtleVRvb2x0aXAgPSBmb3JtYXRLZXlzKHRoaXMuYXBwbHlIb3RLZXlDb25maWcua2V5cyk7XG4gIGFjdGl2ZUFjY29yZGlvbklkID0gMDtcbiAga2VlcFByZWRlZmluZWRMaXN0T3JpZ2luYWxPcmRlcjogYm9vbGVhbjtcbiAgc2hvd0NsZWFyRmlsdGVyc0J1dHRvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeTtcbiAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2U7XG4gIHByaXZhdGUgY29sRmllbGQ6IHN0cmluZztcbiAgcHJpdmF0ZSBleGNsdWRlZFZhbHVlcyA9IG5ldyBTZXQ8c3RyaW5nIHwgbnVtYmVyPigpO1xuICBwcml2YXRlIGJ5VmFsdWVTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHJpdmF0ZSBwaXZvdENvbHVtbjogQ29sdW1uO1xuICBwcml2YXRlIGlucHV0Q29uZGl0aW9uc09wZXJhdG9yOiBPcGVyYXRvclR5cGVzO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgaG9zdDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHBvcG92ZXI6IFBvcG92ZXJSZWY8RGF0b0NvbHVtbk1lbnVEYXRhPixcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHRyYW5zbGF0ZTogRGF0b1RyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBnZXQgYnlWYWx1ZUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJGb3JtLmdldCgnYnlWYWx1ZScpO1xuICB9XG5cbiAgZ2V0IGNvbmRpdGlvbnNDb250cm9scygpOiBBYnN0cmFjdENvbnRyb2xbXSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZGl0aW9ucy5jb250cm9scztcbiAgfVxuXG4gIGdldCBjb25kaXRpb25zT3BlcmF0b3IoKTogT3BlcmF0b3JUeXBlcyB7XG4gICAgcmV0dXJuIHRoaXMuZmlsdGVyRm9ybS5nZXQoJ2NvbmRpdGlvbmFsLm9wZXJhdG9yJykudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0T3BlcmFuZCgpOiBGb3JtR3JvdXAge1xuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHR5cGU6IFt0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9uc1swXV0sXG4gICAgICB2YWx1ZTogW251bGwsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgcmFuZ2VFbmQ6IFtudWxsXVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgaXNQcmVkZWZpbmVkTGlzdEl0ZW1zKCkge1xuICAgIGNvbnN0IHsgZmlsdGVyc0NvbmZpZyA9IHt9IH0gPSB0aGlzLmNvbERlZjtcbiAgICByZXR1cm4gZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlcyAmJiB0eXBlb2YgZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlc1swXSA9PT0gJ29iamVjdCc7XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0Q29uZGl0aW9uYWwoKSB7XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgb3BlcmF0b3I6IFt0aGlzLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yIHx8IE9wZXJhdG9yVHlwZXMuQU5EXSxcbiAgICAgIGNvbmRpdGlvbnM6IHRoaXMuZmIuYXJyYXkoW3RoaXMuZGVmYXVsdE9wZXJhbmRdKVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgZGVmYXVsdEJ5VmFsdWUoKSB7XG4gICAgcmV0dXJuIFt0aGlzLmNvbHVtblZhbHVlc107XG4gIH1cblxuICBwcml2YXRlIGdldCBkZWZhdWx0Rm9ybSgpOiBGb3JtR3JvdXAge1xuICAgIGNvbnN0IGZpbHRlcnM6IHsgYnlWYWx1ZT87IGNvbmRpdGlvbmFsPyB9ID0ge307XG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIGZpbHRlcnMuYnlWYWx1ZSA9IHRoaXMuZGVmYXVsdEJ5VmFsdWU7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICBmaWx0ZXJzLmNvbmRpdGlvbmFsID0gdGhpcy5kZWZhdWx0Q29uZGl0aW9uYWw7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKGZpbHRlcnMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29uZGl0aW9ucygpOiBGb3JtQXJyYXkge1xuICAgIHJldHVybiB0aGlzLmZpbHRlckZvcm0uZ2V0KCdjb25kaXRpb25hbC5jb25kaXRpb25zJykgYXMgRm9ybUFycmF5O1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgY29sRmlsdGVyKCk6IERhdG9HcmlkRmlsdGVyIHtcbiAgICBjb25zdCBmaWx0ZXIgPSB0aGlzLmdyaWRRdWVyeS5nZXRGaWx0ZXIoKVt0aGlzLmNvbEZpZWxkXTtcblxuICAgIHJldHVybiBmaWx0ZXIgJiYgaXNBcnJheVZhbHVlc0VxdWFsKHRoaXMucGl2b3RLZXlzLCBmaWx0ZXIucGl2b3RLZXlzKSA/IGZpbHRlciA6IG51bGw7XG4gIH1cblxuICBwcml2YXRlIGdldCBjb2xEZWYoKTogRGF0b0dyaWRDb2x1bW5EZWYge1xuICAgIHJldHVybiB0aGlzLnBvcG92ZXIuZGF0YS5jb2x1bW4uZ2V0Q29sRGVmKCkgYXMgRGF0b0dyaWRDb2x1bW5EZWY7XG4gIH1cblxuICBwcml2YXRlIGdldCBwaXZvdEtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiB0aGlzLmNvbERlZi5waXZvdEtleXMgfHwgW107XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCB7IGdyaWRTZXJ2aWNlLCBncmlkUXVlcnkgfSA9IHRoaXMucG9wb3Zlci5kYXRhO1xuICAgIGNvbnN0IHsgZmlsdGVyLCBwaXZvdFZhbHVlQ29sdW1uLCBwaXZvdEtleXMgfSA9IHRoaXMuY29sRGVmO1xuICAgIGNvbnN0IGNvbERlZnMgPSBncmlkUXVlcnkuYXBpLmNvbHVtbnMuZ2V0QWxsQ29sdW1ucygpLm1hcChjb2x1bW4gPT4gY29sdW1uLmdldENvbERlZigpKTtcblxuICAgIHRoaXMuY29sRmllbGQgPSBnZXRDb2xGaWVsZCh0aGlzLmNvbERlZik7XG5cbiAgICBjb25zdCBjb2xEZWY6IERhdG9HcmlkQ29sdW1uRGVmID0gY29sRGVmcy5maW5kKGNvbERlZiA9PiBjb2xEZWYuZmllbGQgPT09IHRoaXMuY29sRmllbGQpO1xuICAgIGNvbnN0IGZpbHRlcnNDb25maWcgPSBjb2xEZWYuZmlsdGVyc0NvbmZpZyB8fCB0aGlzLmNvbERlZi5maWx0ZXJzQ29uZmlnIHx8IHt9O1xuICAgIGNvbnN0IGNvbEZpbHRlciA9IGZpbHRlciB8fCBjb2xEZWYuZmlsdGVyO1xuICAgIGNvbnN0IGZpbHRlck9wdGlvbnMgPSBEYXRvR3JpZEZpbHRlck9wdGlvbnNNYXBbY29sRmlsdGVyIGFzIHN0cmluZ107XG5cbiAgICAvKiogVXNlIGdldFBpdm90UmVzdWx0Q29sdW1uIGZyb20gdmVyIDI4ICovXG4gICAgdGhpcy5waXZvdENvbHVtbiA9IGdyaWRRdWVyeS5hcGkuY29sdW1ucy5nZXRTZWNvbmRhcnlQaXZvdENvbHVtbihwaXZvdEtleXMsIHBpdm90VmFsdWVDb2x1bW4pO1xuICAgIHRoaXMuaW5wdXRDb25kaXRpb25zT3BlcmF0b3IgPSBmaWx0ZXJzQ29uZmlnLmlucHV0Q29uZGl0aW9uc09wZXJhdG9yO1xuXG4gICAgaWYgKCFpc05pbChmaWx0ZXJzQ29uZmlnLnNob3dDbGVhckZpbHRlcnNCdXR0b24pKSB7XG4gICAgICB0aGlzLnNob3dDbGVhckZpbHRlcnNCdXR0b24gPSBmaWx0ZXJzQ29uZmlnLnNob3dDbGVhckZpbHRlcnNCdXR0b247XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlcnNDb25maWcuc2VjdGlvbnMpIHtcbiAgICAgIHRoaXMuZmlsdGVyU2VjdGlvbnMgPSB7IFtmaWx0ZXJzQ29uZmlnLnNlY3Rpb25zXTogdHJ1ZSB9O1xuICAgIH1cblxuICAgIHRoaXMua2VlcFByZWRlZmluZWRMaXN0T3JpZ2luYWxPcmRlciA9XG4gICAgICBmaWx0ZXJzQ29uZmlnLmtlZXBQcmVkZWZpbmVkTGlzdE9yaWdpbmFsT3JkZXIgJiYgIWlzRW1wdHkoZmlsdGVyc0NvbmZpZy5wcmVkZWZpbmVkTGlzdFZhbHVlcyk7XG5cbiAgICB0aGlzLmZpbHRlclR5cGUgPSBmaWx0ZXJPcHRpb25zID8gKGNvbEZpbHRlciBhcyBEYXRvR3JpZEZpbHRlclR5cGVzKSA6IERhdG9HcmlkRmlsdGVyVHlwZXMuU3RyaW5nO1xuICAgIHRoaXMubGlzdExhYmVsVHlwZSA9IHRoaXMuZmlsdGVyVHlwZS50b0xvd2VyQ2FzZSgpIGFzIFNvcnRMYWJlbFR5cGU7XG4gICAgdGhpcy5saXN0U29ydEJ5S2V5ID0gdGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlciAmJiB0aGlzLmNvbERlZi52YWx1ZUZvcm1hdHRlciA/ICdpZCcgOiAnbGFiZWwnO1xuICAgIHRoaXMuZ3JpZFF1ZXJ5ID0gZ3JpZFF1ZXJ5O1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UgPSBncmlkU2VydmljZTtcbiAgICB0aGlzLmhhc0ZpbHRlciQgPSB0aGlzLmdyaWRRdWVyeVxuICAgICAgLnNlbGVjdChzdGF0ZSA9PiBzdGF0ZS5zZXR0aW5ncy5maWx0ZXJbdGhpcy5jb2xGaWVsZF0pXG4gICAgICAucGlwZShcbiAgICAgICAgbWFwKGZpbHRlciA9PiB7XG4gICAgICAgICAgcmV0dXJuICFpc05pbChmaWx0ZXIpICYmIGlzQXJyYXlWYWx1ZXNFcXVhbChmaWx0ZXIucGl2b3RLZXlzLCB0aGlzLnBpdm90S2V5cyk7XG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQ29uZGl0aW9uYWwpIHtcbiAgICAgIGxldCBmaWx0ZXJDb25kaXRpb25zOiBEYXRvRmlsdGVyQ29uZGl0aW9uc1tdID0gZmlsdGVyT3B0aW9ucyB8fCBEYXRvR3JpZFN0cmluZ0ZpbHRlck9wdGlvbnM7XG5cbiAgICAgIGlmIChmaWx0ZXJzQ29uZmlnLnNob3dFbXB0eUNvbmRpdGlvbnMpIHtcbiAgICAgICAgbGV0IGVtcHR5Q29uZGl0aW9ucyA9IFtEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19FTVBUWSwgRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0VNUFRZXTtcblxuICAgICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLk51bWJlcikge1xuICAgICAgICAgIGVtcHR5Q29uZGl0aW9ucyA9IFtEYXRvRmlsdGVyQ29uZGl0aW9ucy5JU19OVUxMLCBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfTlVMTF07XG4gICAgICAgIH1cblxuICAgICAgICBmaWx0ZXJDb25kaXRpb25zID0gWy4uLmZpbHRlckNvbmRpdGlvbnMsIC4uLmVtcHR5Q29uZGl0aW9uc107XG4gICAgICB9XG4gICAgICB0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9ucyA9IGZpbHRlckNvbmRpdGlvbnMubWFwKChvcGVyYW5kLCBpZCkgPT4gKHtcbiAgICAgICAgaWQsXG4gICAgICAgIG9wZXJhbmQsXG4gICAgICAgIGxhYmVsOiB0aGlzLnRyYW5zbGF0ZS50cmFuc2Zvcm0oYGNvcmUuJHt0aGlzLmZpbHRlclR5cGUgPT09IERhdG9HcmlkRmlsdGVyVHlwZXMuRGF0ZSA/ICdEQVRFXycgOiAnJ30ke29wZXJhbmR9YClcbiAgICAgIH0pKTtcbiAgICB9XG5cbiAgICBsZXQgb3JpZ2luYWxPcHRpb25zO1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIGNvbnN0IHsgcHJlZGVmaW5lZExpc3RWYWx1ZXMgfSA9IGZpbHRlcnNDb25maWc7XG4gICAgICB0aGlzLmlzQ2xpZW50U2lkZUdyaWQgPSAhaXNOaWwocHJlZGVmaW5lZExpc3RWYWx1ZXMpIHx8ICFncmlkUXVlcnkuaXNTZXJ2ZXJTaWRlO1xuICAgICAgaWYgKCFwcmVkZWZpbmVkTGlzdFZhbHVlcyB8fCB0aGlzLmlzU3RyaW5nQXJyYXkocHJlZGVmaW5lZExpc3RWYWx1ZXMpKSB7XG4gICAgICAgIGNvbnN0IHJhd1ZhbHVlcyA9IHByZWRlZmluZWRMaXN0VmFsdWVzIGFzIHN0cmluZ1tdO1xuICAgICAgICBpZiAocmF3VmFsdWVzKSB7XG4gICAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSByYXdWYWx1ZXM7XG4gICAgICAgICAgdGhpcy5saXN0T3B0aW9ucyA9IHJhd1ZhbHVlcy5tYXAobWFwVG9MaXN0SXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY29uc3QgY29sdW1uVmFsdWVzID0gdGhpcy5nZXRDb2x1bW5WYWx1ZXMoKS5maWx0ZXIoKHsgdmFsdWUgfSkgPT4gIWlzTmlsKHZhbHVlKSk7XG4gICAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSBjb2x1bW5WYWx1ZXMubWFwKCh7IHZhbHVlIH0pID0+IHtcbiAgICAgICAgICAgIHJldHVybiAhaXNOaWwodGhpcy5waXZvdENvbHVtbikgJiYgdmFsdWUgPyB2YWx1ZVt0aGlzLmNvbEZpZWxkXSA6IHZhbHVlO1xuICAgICAgICAgIH0pO1xuICAgICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSBjb2x1bW5WYWx1ZXMubWFwKGNvbFZhbHVlID0+XG4gICAgICAgICAgICBtYXBUb0xpc3RJdGVtV2l0aEZvcm1hdHRlZChjb2xWYWx1ZSwgIWlzTmlsKHRoaXMucGl2b3RDb2x1bW4pICYmIHRoaXMuY29sRmllbGQpXG4gICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgcmF3VmFsdWVzID0gcHJlZGVmaW5lZExpc3RWYWx1ZXMgYXMgTGlzdEl0ZW1bXTtcbiAgICAgICAgdGhpcy5jb2x1bW5WYWx1ZXMgPSByYXdWYWx1ZXMubWFwKG1hcFRvVmFsdWUpO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gcmF3VmFsdWVzO1xuICAgICAgfVxuXG4gICAgICBvcmlnaW5hbE9wdGlvbnMgPSB0aGlzLmxpc3RPcHRpb25zO1xuXG4gICAgICBpZiAoIXRoaXMuaXNDbGllbnRTaWRlR3JpZCkge1xuICAgICAgICB0aGlzLmxpc3RTZWFyY2hDb250cm9sLnZhbHVlQ2hhbmdlcy5waXBlKHVudGlsRGVzdHJveWVkKHRoaXMpKS5zdWJzY3JpYmUoKHNlYXJjaFRlcm06IHN0cmluZykgPT4ge1xuICAgICAgICAgIHRoaXMuc2VydmVyU2VhcmNoRXJyb3JlZCA9IGZhbHNlO1xuICAgICAgICAgIGlmIChzZWFyY2hUZXJtLnRyaW0oKSA9PT0gJycpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZGluZ0xpc3QgPSBmYWxzZTtcbiAgICAgICAgICAgIHRoaXMubGlzdE9wdGlvbnMgPSBvcmlnaW5hbE9wdGlvbnM7XG4gICAgICAgICAgICB0aGlzLnBhdGNoQW5kUmVSZWdpc3Rlcih0aGlzLmNvbHVtblZhbHVlcyk7XG4gICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZ2V0VmFsdWVzRnJvbVNlcnZlcihzZWFyY2hUZXJtKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIGNsb3NlUG9wVXAoKSB7XG4gICAgdGhpcy5hcHBseUZpbHRlcnMoKTtcbiAgICB0aGlzLnBvcG92ZXIuY2xvc2UoKTtcbiAgfVxuXG4gIGFwcGx5RmlsdGVycygpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0udmFsaWQgJiYgdGhpcy5maWx0ZXJGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICBpZiAodGhpcy5maWx0ZXJGb3JtLmRpcnR5ICYmICh0aGlzLmZpbHRlckZvcm0udmFsaWQgfHwgdGhpcy5maWx0ZXJGb3JtLmdldCgnY29uZGl0aW9uYWwnKS5wcmlzdGluZSkpIHtcbiAgICAgIGNvbnN0IHsgY29sdW1uIH0gPSB0aGlzLnBvcG92ZXIuZGF0YTtcbiAgICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuYnVpbGRGaWx0ZXIoKTtcbiAgICAgIGlzRW1wdHkoZmlsdGVyKVxuICAgICAgICA/IHRoaXMuZ3JpZFNlcnZpY2UuY2xlYXJDb2x1bW5GaWx0ZXIodGhpcy5jb2xGaWVsZClcbiAgICAgICAgOiB0aGlzLmdyaWRTZXJ2aWNlLnNldENvbHVtbkZpbHRlcihjb2x1bW4sIGZpbHRlcik7XG5cbiAgICAgIHRoaXMuZ3JpZFNlcnZpY2Uubm90aWZ5RmlsdGVyVXBkYXRlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xlYXJGaWx0ZXJzKCkge1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UuY2xlYXJDb2x1bW5GaWx0ZXIodGhpcy5jb2xGaWVsZCk7XG4gICAgdGhpcy5yZXNldEZvcm0oKTtcbiAgfVxuXG4gIHJlbW92ZUNvbmRpdGlvbihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5jb25kaXRpb25zLnJlbW92ZUF0KGluZGV4KTtcbiAgICB0aGlzLmZpbHRlckZvcm0ubWFya0FzRGlydHkoKTtcbiAgfVxuXG4gIGFkZENvbmRpdGlvbigpIHtcbiAgICB0aGlzLmZpbHRlckZvcm0ubWFya0FzUHJpc3RpbmUoKTtcbiAgICB0aGlzLmNvbmRpdGlvbnMucHVzaCh0aGlzLmRlZmF1bHRPcGVyYW5kKTtcbiAgfVxuXG4gIGdldE9wZXJhbmRUeXBlKGk6IG51bWJlcikge1xuICAgIGNvbnN0IGNvbmRpdGlvblR5cGUgPSB0aGlzLmNvbmRpdGlvbnMuYXQoaSkudmFsdWUudHlwZTtcbiAgICByZXR1cm4gY29uZGl0aW9uVHlwZSA/IGNvbmRpdGlvblR5cGUub3BlcmFuZCA6IG51bGw7XG4gIH1cblxuICBpc0NvbmRpdGlvbmFsRW1wdHkoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgb3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMgPVxuICAgICAgY29udHJvbCAmJiBjb250cm9sLnZhbHVlICYmIGNvbnRyb2wudmFsdWUudHlwZSA/IGNvbnRyb2wudmFsdWUudHlwZS5vcGVyYW5kIDogbnVsbDtcbiAgICByZXR1cm4gdGhpcy5pc0VtcHR5T3BlcmFuZChvcGVyYW5kKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuYnlWYWx1ZVN1YnNjcmlwdGlvbiAmJiB0aGlzLmJ5VmFsdWVTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgdHlwZTogXCJFeGNsdWRlXCJcbiAgICogU2VsZWN0ZWQgdmFsdWVzOiBBLCBDLCBEXG4gICAqIEFsbCBsaXN0OiBBLCBCLCBDLCBEXG4gICAqIFJlc3VsdDogQlxuICAgKiBAcGFyYW0gaW5jbHVkZWRBcnIgLVRoZSBsaXN0IG9mIHZhbHVlcyB0byBpbmNsdWRlXG4gICAqIEBwYXJhbSBhc0xpc3RJdGVtIC1JbmRpY2F0ZXMgaWYgdGhlIHJlc3BvbnNlIG5lZWRzIHRvIGJlIGFzIHN0cmluZyBvciBhcyBMaXN0SXRlbVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdLCBhc0xpc3RJdGVtOiB0cnVlKTogTGlzdEl0ZW1bXTtcbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdKTogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgcHJpdmF0ZSBnZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhcbiAgICBpbmNsdWRlZEFycjogKExpc3RJdGVtIHwgc3RyaW5nIHwgbnVtYmVyKVtdLFxuICAgIGFzTGlzdEl0ZW0gPSBmYWxzZVxuICApOiAoc3RyaW5nIHwgbnVtYmVyKVtdIHwgTGlzdEl0ZW1bXSB7XG4gICAgbGV0IGluY2x1ZGVkU2V0O1xuICAgIGlmICh0aGlzLmlzUHJlZGVmaW5lZExpc3RJdGVtcykge1xuICAgICAgY29uc3QgcHJlZGVmaW5lZExpc3QgPSB0aGlzLmNvbERlZi5maWx0ZXJzQ29uZmlnLnByZWRlZmluZWRMaXN0VmFsdWVzIGFzIExpc3RJdGVtW107XG4gICAgICBpbmNsdWRlZFNldCA9IG5ldyBTZXQoXG4gICAgICAgIGluY2x1ZGVkQXJyLm1hcCh2YWwgPT4ge1xuICAgICAgICAgIGNvbnN0IGl0ZW0gPSBwcmVkZWZpbmVkTGlzdC5maW5kKCh7IHZhbHVlIH0pID0+IHZhbHVlID09PSB2YWwpO1xuICAgICAgICAgIHJldHVybiBpdGVtLmlkO1xuICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgaW5jbHVkZWRTZXQgPSBuZXcgU2V0KGluY2x1ZGVkQXJyLm1hcCh2YWwgPT4gKGlzT2JqZWN0PExpc3RJdGVtPih2YWwpID8gdmFsLnZhbHVlIDogdmFsKSkpO1xuICAgIH1cbiAgICBpZiAoYXNMaXN0SXRlbSkge1xuICAgICAgcmV0dXJuIHRoaXMubGlzdE9wdGlvbnMuZmlsdGVyKCh7IHZhbHVlIH0pID0+ICFpbmNsdWRlZFNldC5oYXModmFsdWUpKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuY29sdW1uVmFsdWVzLmZpbHRlcih2YWx1ZSA9PiAhaW5jbHVkZWRTZXQuaGFzKHZhbHVlKSk7XG4gIH1cblxuICBwcml2YXRlIGJ1aWxkRmlsdGVyKCk6IERhdG9HcmlkRmlsdGVyIHtcbiAgICBjb25zdCB7IGJ5VmFsdWUsIGNvbmRpdGlvbmFsIH0gPSB0aGlzLmZpbHRlckZvcm0udmFsdWU7XG4gICAgY29uc3QgZmlsdGVyOiBEYXRvR3JpZEZpbHRlciA9IHt9O1xuXG4gICAgaWYgKHRoaXMuZmlsdGVyU2VjdGlvbnMuQ29uZGl0aW9uYWwpIHtcbiAgICAgIHRoaXMuc2V0Q29uZGl0aW9uYWxGaWx0ZXIoZmlsdGVyLCBjb25kaXRpb25hbCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkJ5X1ZhbHVlKSB7XG4gICAgICB0aGlzLnNldEJ5VmFsdWVGaWx0ZXIoZmlsdGVyLCBieVZhbHVlKTtcbiAgICB9XG5cbiAgICAvKiogSWYgZmlsdGVycyBhcHBsaWVkLCBhZGQgdGhlIGV4dHJhIHByb3BlcnRpZXMgdG8gYmUgdXNlZCBieSBwaXZvdCBtb2RlICovXG4gICAgaWYgKGZpbHRlci5ieVZhbHVlIHx8IGZpbHRlci5jb25kaXRpb25hbCkge1xuICAgICAgZmlsdGVyLmNvbElkID0gdGhpcy5jb2xEZWYuY29sSWQ7XG4gICAgICBmaWx0ZXIucGl2b3RLZXlzID0gdGhpcy5waXZvdEtleXM7XG5cbiAgICAgIGlmICh0aGlzLnBpdm90Q29sdW1uKSB7XG4gICAgICAgIGZpbHRlci5waXZvdEZpZWxkc01hcCA9IHRoaXMuZ2V0UGl2b3RGaWVsZHModGhpcy5waXZvdENvbHVtbi5nZXRQYXJlbnQoKSkucmVkdWNlKChmaWVsZE1hcCwgZmllbGQsIGluZGV4KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMucGl2b3RLZXlzW2luZGV4XSkge1xuICAgICAgICAgICAgZmllbGRNYXBbZmllbGRdID0gdGhpcy5waXZvdEtleXNbaW5kZXhdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIHJldHVybiBmaWVsZE1hcDtcbiAgICAgICAgfSwge30pO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXI7XG4gIH1cblxuICBwcml2YXRlIGluaXRGb3JtKCkge1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgdGhpcy5maWx0ZXJGb3JtID0gZmlsdGVyVmFsdWUgPyB0aGlzLmJ1aWxkRm9ybUZyb21GaWx0ZXIoZmlsdGVyVmFsdWUpIDogdGhpcy5kZWZhdWx0Rm9ybTtcbiAgICB0aGlzLnJlZ2lzdGVyT3BlcmFuZExpc3RlbmVycygpO1xuICAgIGlmICghdGhpcy5pc0NsaWVudFNpZGVHcmlkICYmIHRoaXMuZmlsdGVyU2VjdGlvbnMuQnlfVmFsdWUpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQnVpbGQgdGhlIGZpbHRlciB2aWV3IGZyb20gYSBnaXZlbiBmaWx0ZXJcbiAgICovXG4gIHByaXZhdGUgYnVpbGRGb3JtRnJvbUZpbHRlcihmaWx0ZXI6IERhdG9HcmlkRmlsdGVyKTogRm9ybUdyb3VwIHtcbiAgICBjb25zdCBmaWx0ZXJHcm91cCA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICBmaWx0ZXJHcm91cFsnY29uZGl0aW9uYWwnXSA9IHRoaXMuYnVpbGRDb25kaXRpb25hbEZpbHRlcihmaWx0ZXIuY29uZGl0aW9uYWwpO1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJTZWN0aW9ucy5CeV9WYWx1ZSkge1xuICAgICAgZmlsdGVyR3JvdXBbJ2J5VmFsdWUnXSA9IHRoaXMuYnVpbGRCeVZhbHVlRmlsdGVyKGZpbHRlci5ieVZhbHVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuZmIuZ3JvdXAoZmlsdGVyR3JvdXApO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc2V0IHRoZSBmaWx0ZXIgdmlld1xuICAgKi9cbiAgcHJpdmF0ZSByZXNldEZvcm0oKSB7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnNldEVycm9ycyhudWxsKTtcbiAgICBsZXQgb3JpZ2luYWxTdGF0ZSA9IHt9O1xuICAgIGlmICh0aGlzLmZpbHRlclNlY3Rpb25zLkJ5X1ZhbHVlKSB7XG4gICAgICBvcmlnaW5hbFN0YXRlID0geyBieVZhbHVlOiB0aGlzLmNvbHVtblZhbHVlcyB9O1xuICAgIH1cbiAgICBpZiAodGhpcy5maWx0ZXJTZWN0aW9ucy5Db25kaXRpb25hbCkge1xuICAgICAgb3JpZ2luYWxTdGF0ZSA9IHtcbiAgICAgICAgLi4ub3JpZ2luYWxTdGF0ZSxcbiAgICAgICAgY29uZGl0aW9uYWw6IHtcbiAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3JUeXBlcy5BTkQsXG4gICAgICAgICAgY29uZGl0aW9uczogW3sgdHlwZTogdGhpcy5jb25kaXRpb25hbEZpbHRlck9wdGlvbnNbMF0sIHZhbHVlOiBudWxsLCByYW5nZUVuZDogbnVsbCB9XVxuICAgICAgICB9XG4gICAgICB9O1xuICAgICAgY29uc3QgY29uZGl0aW9uYWwgPSB0aGlzLmZpbHRlckZvcm0uY29udHJvbHMuY29uZGl0aW9uYWwgYXMgRm9ybUdyb3VwO1xuICAgICAgY29uZGl0aW9uYWwucmVtb3ZlQ29udHJvbCgnY29uZGl0aW9ucycpO1xuICAgICAgY29uZGl0aW9uYWwuYWRkQ29udHJvbCgnY29uZGl0aW9ucycsIHRoaXMuZmIuYXJyYXkoW3RoaXMuZGVmYXVsdE9wZXJhbmRdKSk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyRm9ybS5yZXNldChvcmlnaW5hbFN0YXRlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgdGhpcy5maWx0ZXJGb3JtLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIHRoZSBjb2x1bW4gdmFsdWVzIHRvIGRpc3BsYXkgb24gdGhlIGxpc3QuXG4gICAqIDEuIEl0ZXJhdGUgb3ZlciB0aGUgcm93cyBhZnRlciBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgd2FzIGFwcGxpZWRcbiAgICogMi4gU2luY2Ugd2UgYWxzbyB3YW50IHRvIHNob3cgdmFsdWVzIHRoYXQgd2VyZSBmaWx0ZXJlZCBieSB0aGlzIGNvbHVtbiBmaWx0ZXIgd2UgYXJlIGl0ZXJhdGluZyBhbGwgdGhlIHJvd3NcbiAgICogKGJlZm9yZSB0aGUgZmlsdGVyaW5nKSwgZmluZGluZyB3aGljaCB3ZXJlIHJlbW92ZWQgYnkgdGhpcyBjb2x1bW4ncyBmaWx0ZXIgYW5kIGFkZGluZyB0aGVtIGJhY2suXG4gICAqL1xuICBwcml2YXRlIGdldENvbHVtblZhbHVlcygpOiBWYWx1ZUFuZEZvcm1hdHRlZFZhbHVlW10ge1xuICAgIGxldCB2YWx1ZXM6IFZhbHVlQW5kRm9ybWF0dGVkVmFsdWVbXSA9IFtdO1xuICAgIGNvbnN0IGZpbHRlclZhbHVlID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgY29uc3QgZGlzcGxheWVkUm93ID0ge307XG4gICAgY29uc3QgYnlWYWx1ZVR5cGUgPSBmaWx0ZXJWYWx1ZSAmJiBmaWx0ZXJWYWx1ZS5ieVZhbHVlICYmIGZpbHRlclZhbHVlLmJ5VmFsdWUuY29uZGl0aW9uO1xuICAgIGNvbnN0IGFwaSA9IHRoaXMuZ3JpZFF1ZXJ5LmFwaS5ncmlkO1xuICAgIGNvbnN0IGdldFZhbHVlQ3VycmllZCA9IGN1cnJ5KHRoaXMuZ2V0VmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZSkodGhpcy5jb2xGaWVsZCwgYXBpLCB0aGlzLmNvbERlZi52YWx1ZUZvcm1hdHRlcik7XG4gICAgLyoqIDEuIEl0ZXJhdGUgb3ZlciB0aGUgcm93cyBhZnRlciBmaWx0ZXJpbmcgYW5kIHNvcnRpbmcgd2FzIGFwcGxpZWQgKi9cbiAgICBpZiAodGhpcy5pc0NsaWVudFNpZGVHcmlkKSB7XG4gICAgICBhcGkuZm9yRWFjaE5vZGVBZnRlckZpbHRlckFuZFNvcnQocm93ID0+IHtcbiAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVDdXJyaWVkKHJvdykpO1xuICAgICAgICBkaXNwbGF5ZWRSb3dbcm93LmlkXSA9IHRydWU7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgLyogV2Ugb25seSBkaXNwbGF5IHRoZSBjdXJyZW50IHBhZ2UgaW4gdGhlIGxpc3QgKi9cbiAgICAgIGNvbnN0IHBhZ2VTaXplID0gYXBpLnBhZ2luYXRpb25HZXRQYWdlU2l6ZSgpO1xuICAgICAgY29uc3QgY3VycmVudFBhZ2UgPSBhcGkucGFnaW5hdGlvbkdldEN1cnJlbnRQYWdlKCk7XG4gICAgICBjb25zdCBzdGFydEluZGV4ID0gcGFnZVNpemUgKiBjdXJyZW50UGFnZTtcbiAgICAgIGNvbnN0IGVuZEluZGV4ID0gc3RhcnRJbmRleCArIHBhZ2VTaXplO1xuICAgICAgYXBpLmZvckVhY2hOb2RlKHJvdyA9PiB7XG4gICAgICAgIGNvbnN0IHsgcm93SW5kZXggfSA9IHJvdztcbiAgICAgICAgaWYgKHJvd0luZGV4ID49IHN0YXJ0SW5kZXggJiYgcm93SW5kZXggPCBlbmRJbmRleCkge1xuICAgICAgICAgIHZhbHVlcy5wdXNoKGdldFZhbHVlQ3VycmllZChyb3cpKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqIDIuIEFkZCBiYWNrIHZhbHVlcyB0aGF0IHdlcmUgZmlsdGVyZWQgYnkgdGhpcyBjb2x1bW4gKi9cbiAgICBpZiAoYnlWYWx1ZVR5cGUpIHtcbiAgICAgIGlmIChieVZhbHVlVHlwZSA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0lOX0xJU1QpIHtcbiAgICAgICAgY29uc3QgZm9ybWF0dGVyID0gdGhpcy5jb2xEZWYudmFsdWVGb3JtYXR0ZXIgYXMgKHBhcmFtczogYW55KSA9PiBzdHJpbmc7XG4gICAgICAgIGNvbnN0IGN1cnJGaWx0ZXJWYWx1ZXMgPSBmaWx0ZXJWYWx1ZS5ieVZhbHVlLnZhbHVlcy5tYXAoKHZhbHVlOiBzdHJpbmcgfCBudW1iZXIpID0+IHtcbiAgICAgICAgICBjb25zdCBmb3JtYXR0ZWRWYWx1ZSA9IGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0pIDogdmFsdWU7XG4gICAgICAgICAgcmV0dXJuIHsgdmFsdWUsIGZvcm1hdHRlZFZhbHVlIH07XG4gICAgICAgIH0pO1xuICAgICAgICB2YWx1ZXMgPSB2YWx1ZXMuY29uY2F0KGN1cnJGaWx0ZXJWYWx1ZXMpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uc3QgeyBjb25kaXRpb25hbCB9ID0gdGhpcy5jb2xGaWx0ZXI7XG4gICAgICAgIGNvbnN0IGFjdGl2ZUZpbHRlcnMgPSB7XG4gICAgICAgICAgLi4udGhpcy5ncmlkUXVlcnkuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgW3RoaXMuY29sRmllbGRdOiB7IGNvbmRpdGlvbmFsIH1cbiAgICAgICAgfTtcbiAgICAgICAgYXBpLmZvckVhY2hMZWFmTm9kZShyb3cgPT4ge1xuICAgICAgICAgIGlmICghZGlzcGxheWVkUm93Lmhhc093blByb3BlcnR5KHJvdy5pZCkgJiYgdmFsaWRhdGVGaWx0ZXIoeyByb3csIGFwaSB9LCBhY3RpdmVGaWx0ZXJzKSkge1xuICAgICAgICAgICAgdmFsdWVzLnB1c2goZ2V0VmFsdWVDdXJyaWVkKHJvdykpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmlxQnkodmFsdWVzLCAndmFsdWUnKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZShcbiAgICBmaWVsZDogc3RyaW5nLFxuICAgIGFwaTogR3JpZEFwaSxcbiAgICAvLyBUT0RPOiBmb2xsb3d1cDogaHR0cHM6Ly9hZy1ncmlkLnplbmRlc2suY29tL2hjL2VuLXVzL3JlcXVlc3RzLzExMDE5XG4gICAgZm9ybWF0dGVyOiAocGFyYW1zOiBhbnkpID0+IHN0cmluZyxcbiAgICByb3c6IFJvd05vZGVcbiAgKTogVmFsdWVBbmRGb3JtYXR0ZWRWYWx1ZSB7XG4gICAgY29uc3QgdmFsdWUgPSBhcGkuZ2V0VmFsdWUoZmllbGQsIHJvdyk7XG4gICAgLy8gVE9ETzogZm9sbG93dXA6IGh0dHBzOi8vYWctZ3JpZC56ZW5kZXNrLmNvbS9oYy9lbi11cy9yZXF1ZXN0cy8xMDk2Mz9wYWdlPTFcbiAgICByZXR1cm4geyB2YWx1ZSwgZm9ybWF0dGVkVmFsdWU6IGZvcm1hdHRlciA/IGZvcm1hdHRlcih7IHZhbHVlIH0gYXMgYW55KSA6IHZhbHVlIH07XG4gIH1cblxuICBwcml2YXRlIHNldENvbmRpdGlvbmFsRmlsdGVyKFxuICAgIGZpbHRlcjogRGF0b0dyaWRGaWx0ZXIsXG4gICAgeyBvcGVyYXRvciwgY29uZGl0aW9ucyB9OiB7IG9wZXJhdG9yOiBPcGVyYXRvclR5cGVzOyBjb25kaXRpb25zOiBDb25kaXRpb25zIH1cbiAgKSB7XG4gICAgY29uc3QgdmFsaWRDb25kaXRpb25zID0gY29uZGl0aW9ucy5maWx0ZXIoKHsgdmFsdWUsIHR5cGUgfSkgPT4gIWlzTmlsKHZhbHVlKSB8fCB0aGlzLmlzRW1wdHlPcGVyYW5kKHR5cGUub3BlcmFuZCkpO1xuICAgIGlmICh2YWxpZENvbmRpdGlvbnMubGVuZ3RoKSB7XG4gICAgICBmaWx0ZXIuY29uZGl0aW9uYWwgPSB7XG4gICAgICAgIHR5cGU6ICh0aGlzLmNvbERlZi5maWx0ZXIgYXMgRGF0b0dyaWRGaWx0ZXJUeXBlcykgfHwgRGF0b0dyaWRGaWx0ZXJUeXBlcy5TdHJpbmcsXG4gICAgICAgIG9wZXJhdG9yLFxuICAgICAgICBjb25kaXRpb25zOiBjb25kaXRpb25zLm1hcCgoeyB2YWx1ZSwgdHlwZSwgcmFuZ2VFbmQgfSkgPT4ge1xuICAgICAgICAgIGNvbnN0IGJhc2UgPSB7IGNvbmRpdGlvbjogdHlwZS5vcGVyYW5kLCB2YWx1ZSB9O1xuICAgICAgICAgIGlmICh0eXBlLm9wZXJhbmQgPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLklOX1JBTkdFKSB7XG4gICAgICAgICAgICBsZXQgcmVzdWx0ID0geyAuLi5iYXNlLCByYW5nZUVuZCB9O1xuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gRGF0b0dyaWRGaWx0ZXJUeXBlcy5EYXRlKSB7XG4gICAgICAgICAgICAgIGNvbnN0IHsgZnJvbSwgdG8gfSA9IHZhbHVlIGFzIERhdGVSYW5nZTtcbiAgICAgICAgICAgICAgcmVzdWx0ID0geyBjb25kaXRpb246IHR5cGUub3BlcmFuZCwgdmFsdWU6IGZyb20gYXMgc3RyaW5nLCByYW5nZUVuZDogdG8gYXMgc3RyaW5nIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4gcmVzdWx0IGFzIERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb247XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBiYXNlIGFzIERhdG9HcmlkRmlsdGVyQ29uZGl0aW9uO1xuICAgICAgICB9KVxuICAgICAgfTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldEJ5VmFsdWVGaWx0ZXIoZmlsdGVyOiBEYXRvR3JpZEZpbHRlciwgYnlWYWx1ZTogKHN0cmluZyB8IG51bWJlcilbXSkge1xuICAgIGlmICh0aGlzLmlzQ2xpZW50U2lkZUdyaWQpIHtcbiAgICAgIGNvbnN0IHZhbHVlc0NvdW50ID0gdGhpcy5jb2x1bW5WYWx1ZXMubGVuZ3RoO1xuICAgICAgaWYgKGJ5VmFsdWUubGVuZ3RoICE9PSB2YWx1ZXNDb3VudCkge1xuICAgICAgICBjb25zdCBjb25kaXRpb24gPVxuICAgICAgICAgIGJ5VmFsdWUubGVuZ3RoIDwgdmFsdWVzQ291bnQgLyAyID8gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSU5fTElTVCA6IERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9JTl9MSVNUO1xuICAgICAgICBmaWx0ZXIuYnlWYWx1ZSA9IHtcbiAgICAgICAgICBjb25kaXRpb24sXG4gICAgICAgICAgdmFsdWVzOiBjb25kaXRpb24gPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLklOX0xJU1QgPyBieVZhbHVlIDogdGhpcy5nZXRCeVZhbHVlRXhjbHVkZVZhbHVlcyhieVZhbHVlKVxuICAgICAgICB9O1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCB2YWx1ZXMgPSBBcnJheS5mcm9tKHRoaXMuZXhjbHVkZWRWYWx1ZXMudmFsdWVzKCkpO1xuICAgICAgaWYgKHZhbHVlcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIGZpbHRlci5ieVZhbHVlID0ge1xuICAgICAgICAgIGNvbmRpdGlvbjogRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX0lOX0xJU1QsXG4gICAgICAgICAgdmFsdWVzXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBidWlsZEJ5VmFsdWVGaWx0ZXIoYnlWYWx1ZTogRGF0b0dyaWRGaWx0ZXJbJ2J5VmFsdWUnXSk6IChzdHJpbmcgfCBudW1iZXIpW11bXSB7XG4gICAgaWYgKCFieVZhbHVlKSB7XG4gICAgICByZXR1cm4gdGhpcy5kZWZhdWx0QnlWYWx1ZTtcbiAgICB9XG4gICAgaWYgKGJ5VmFsdWUudmFsdWVzLmxlbmd0aCAmJiB0aGlzLmZpbHRlclNlY3Rpb25zLkNvbmRpdGlvbmFsKSB7XG4gICAgICB0aGlzLmFjdGl2ZUFjY29yZGlvbklkID0gMTtcbiAgICB9XG4gICAgaWYgKGJ5VmFsdWUuY29uZGl0aW9uID09PSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5OT1RfSU5fTElTVCkge1xuICAgICAgaWYgKCF0aGlzLmlzQ2xpZW50U2lkZUdyaWQpIHtcbiAgICAgICAgdGhpcy5leGNsdWRlZFZhbHVlcyA9IG5ldyBTZXQoYnlWYWx1ZS52YWx1ZXMpO1xuICAgICAgfVxuICAgICAgcmV0dXJuIFt0aGlzLmdldEJ5VmFsdWVFeGNsdWRlVmFsdWVzKGJ5VmFsdWUudmFsdWVzKV07XG4gICAgfVxuICAgIHJldHVybiBbYnlWYWx1ZS52YWx1ZXNdO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZENvbmRpdGlvbmFsRmlsdGVyKGNvbmRpdGlvbmFsOiBEYXRvR3JpZEZpbHRlclsnY29uZGl0aW9uYWwnXSk6IEZvcm1Hcm91cCB7XG4gICAgaWYgKCFjb25kaXRpb25hbCkge1xuICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdENvbmRpdGlvbmFsO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5mYi5ncm91cCh7XG4gICAgICBvcGVyYXRvcjogW3RoaXMuaW5wdXRDb25kaXRpb25zT3BlcmF0b3IgfHwgY29uZGl0aW9uYWwub3BlcmF0b3JdLFxuICAgICAgY29uZGl0aW9uczogdGhpcy5mYi5hcnJheSh0aGlzLmJ1aWxkQ29uZGl0aW9ucyhjb25kaXRpb25hbC5jb25kaXRpb25zKSlcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRDb25kaXRpb25zKGNvbmRpdGlvbnM6IChEYXRvR3JpZEZpbHRlckNvbmRpdGlvbiB8IERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb24pW10pOiBGb3JtR3JvdXBbXSB7XG4gICAgcmV0dXJuIGNvbmRpdGlvbnMubWFwKGNvbmRpdGlvbiA9PiB7XG4gICAgICBjb25zdCB7IGNvbmRpdGlvbjogY3VycmVudE9wZXJhbmQsIHZhbHVlIH0gPSBjb25kaXRpb247XG4gICAgICBjb25zdCBncm91cCA9IHtcbiAgICAgICAgdHlwZTogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGlkOiB0aGlzLmNvbmRpdGlvbmFsRmlsdGVyT3B0aW9ucy5maW5kSW5kZXgoKHsgb3BlcmFuZCB9KSA9PiBvcGVyYW5kID09PSBjdXJyZW50T3BlcmFuZCksXG4gICAgICAgICAgICBvcGVyYW5kOiBjdXJyZW50T3BlcmFuZCxcbiAgICAgICAgICAgIGxhYmVsOiBgY29yZS4ke2N1cnJlbnRPcGVyYW5kfWBcbiAgICAgICAgICB9XG4gICAgICAgIF0sXG4gICAgICAgIHZhbHVlOiBbdmFsdWUsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgICByYW5nZUVuZDogbnVsbFxuICAgICAgfTtcbiAgICAgIGlmIChpc1JhbmdlQ29uZGl0aW9uPERhdG9HcmlkUmFuZ2VGaWx0ZXJDb25kaXRpb24+KGNvbmRpdGlvbikpIHtcbiAgICAgICAgZ3JvdXAucmFuZ2VFbmQgPSBbY29uZGl0aW9uLnJhbmdlRW5kLCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgICAgZ3JvdXAudmFsdWUgPSBbeyBmcm9tOiBjb25kaXRpb24udmFsdWUgYXMgc3RyaW5nLCB0bzogY29uZGl0aW9uLnJhbmdlRW5kIGFzIHN0cmluZyB9LCBWYWxpZGF0b3JzLnJlcXVpcmVkXTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmZiLmdyb3VwKGdyb3VwKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbiByYW5nZSBpcyBub3QgcmVxdWlyZWQgYnkgZGVmYXVsdCwgd2Ugd2FudCB0byBtYWtlIGl0IHJlcXVpcmVkIG9uY2UgdGhpcyBvcGVyYW5kIGlzIHNlbGVjdGVkLlxuICAgKiAqL1xuICBwcml2YXRlIHJlZ2lzdGVyT3BlcmFuZExpc3RlbmVycygpIHtcbiAgICBpZiAoIXRoaXMuY29uZGl0aW9ucykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbmRpdGlvbnMudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgc3RhcnRXaXRoKHRoaXMuY29uZGl0aW9ucy5sZW5ndGgpLFxuICAgICAgICBtYXAoKCkgPT4gdGhpcy5jb25kaXRpb25zLmxlbmd0aCksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB7XG4gICAgICAgICAgY29uc3QgdmFsdWVDaGFuZ2VzID0gdGhpcy5jb25kaXRpb25zLmNvbnRyb2xzLm1hcCgoZ3JvdXA6IEZvcm1Hcm91cCwgaW5kZXgpID0+XG4gICAgICAgICAgICBncm91cC5nZXQoJ3R5cGUnKS52YWx1ZUNoYW5nZXMucGlwZShtYXAoKHZhbHVlOiBDb25kaXRpb25PcHRpb24pID0+ICh7IHZhbHVlLCBpbmRleCB9KSkpXG4gICAgICAgICAgKTtcbiAgICAgICAgICByZXR1cm4gbWVyZ2UoLi4udmFsdWVDaGFuZ2VzKTtcbiAgICAgICAgfSksXG4gICAgICAgIHVudGlsRGVzdHJveWVkKHRoaXMpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh7IHZhbHVlOiB7IG9wZXJhbmQgfSwgaW5kZXggfSkgPT4ge1xuICAgICAgICBjb25zdCBwYXJhbXMgPSB7IGluZGV4LCBpblJhbmdlOiBvcGVyYW5kID09PSBEYXRvRmlsdGVyQ29uZGl0aW9ucy5JTl9SQU5HRSB9O1xuICAgICAgICBpZiAodGhpcy5maWx0ZXJUeXBlID09PSBEYXRvR3JpZEZpbHRlclR5cGVzLkRhdGUpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZURhdGVJbnB1dChwYXJhbXMpO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyVHlwZSA9PT0gRGF0b0dyaWRGaWx0ZXJUeXBlcy5OdW1iZXIpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU51bWJlcklucHV0KHBhcmFtcyk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy51cGRhdGVWYWx1ZUNvbnRyb2xWYWxpZGF0b3Iob3BlcmFuZCwgaW5kZXgpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHVwZGF0ZURhdGVJbnB1dCh7IGluUmFuZ2UsIGluZGV4IH0pIHtcbiAgICBjb25zdCBjb250cm9sID0gdGhpcy5jb25kaXRpb25zLmF0KGluZGV4KS5nZXQoJ3ZhbHVlJyk7XG4gICAgY29uc3QgeyB2YWx1ZSB9ID0gY29udHJvbDtcbiAgICBpZiAoaW5SYW5nZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUoeyBmcm9tOiB2YWx1ZSwgdG86IHZhbHVlLCBpZDogJ0NVU1RPTScgfSk7XG4gICAgfSBlbHNlIGlmICghaW5SYW5nZSAmJiB2YWx1ZSAmJiB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICBjb250cm9sLnBhdGNoVmFsdWUodmFsdWUuZnJvbSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVOdW1iZXJJbnB1dCh7IGluUmFuZ2UsIGluZGV4IH0pIHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSBpblJhbmdlID8gVmFsaWRhdG9ycy5yZXF1aXJlZCA6IG51bGw7XG4gICAgY29uc3QgcmFuZ2VFbmQgPSB0aGlzLmNvbmRpdGlvbnMuYXQoaW5kZXgpLmdldCgncmFuZ2VFbmQnKTtcbiAgICByYW5nZUVuZC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgcmFuZ2VFbmQudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVWYWx1ZUNvbnRyb2xWYWxpZGF0b3Iob3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCB2YWxpZGF0b3IgPSAhdGhpcy5pc0VtcHR5T3BlcmFuZChvcGVyYW5kKSA/IFZhbGlkYXRvcnMucmVxdWlyZWQgOiBudWxsO1xuICAgIGNvbnN0IHZhbHVlQ29udHJvbCA9IHRoaXMuY29uZGl0aW9ucy5hdChpbmRleCkuZ2V0KCd2YWx1ZScpIGFzIEZvcm1Db250cm9sO1xuICAgIHZhbHVlQ29udHJvbC5zZXRWYWxpZGF0b3JzKHZhbGlkYXRvcik7XG4gICAgdmFsdWVDb250cm9sLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNFbXB0eU9wZXJhbmQob3BlcmFuZDogRGF0b0ZpbHRlckNvbmRpdGlvbnMpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfRU1QVFkgfHxcbiAgICAgIG9wZXJhbmQgPT09IERhdG9GaWx0ZXJDb25kaXRpb25zLk5PVF9FTVBUWSB8fFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuSVNfTlVMTCB8fFxuICAgICAgb3BlcmFuZCA9PT0gRGF0b0ZpbHRlckNvbmRpdGlvbnMuTk9UX05VTExcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1N0cmluZ0FycmF5KHZhbHVlOiAoc3RyaW5nIHwgTGlzdEl0ZW0pW10pOiB2YWx1ZSBpcyBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIGlzU3RyaW5nKHZhbHVlWzBdKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0VmFsdWVzRnJvbVNlcnZlcihzZWFyY2hUZXJtOiBzdHJpbmcpIHtcbiAgICB0aGlzLmxvYWRpbmdMaXN0ID0gdHJ1ZTtcbiAgICB0aGlzLmxpc3RPcHRpb25zID0gW107XG4gICAgY29uc3QgcGFyYW1zOiBQYXJ0aWFsPERhdG9HcmlkR2V0Um93c1BhcmFtcz4gPSB7XG4gICAgICBmYWlsQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgdGhpcy5sb2FkaW5nTGlzdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNlcnZlclNlYXJjaEVycm9yZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gW107XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICBzdWNjZXNzQ2FsbGJhY2s6IGRhdGEgPT4ge1xuICAgICAgICB0aGlzLmxvYWRpbmdMaXN0ID0gZmFsc2U7XG4gICAgICAgIGNvbnN0IGZsYXREYXRhID0gZGF0YS5tYXAodmFsdWUgPT4gdmFsdWVbdGhpcy5jb2xGaWVsZF0pO1xuICAgICAgICB0aGlzLmxpc3RPcHRpb25zID0gZmxhdERhdGEubWFwKG1hcFRvTGlzdEl0ZW0pO1xuICAgICAgICB0aGlzLnBhdGNoQW5kUmVSZWdpc3RlcihmbGF0RGF0YSk7XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgIH0sXG4gICAgICBzZXJ2ZXJDb25maWc6IHtcbiAgICAgICAgcGFnZVNpemU6IDMwLFxuICAgICAgICBwYWdlTnVtYmVyOiAxLFxuICAgICAgICBjb2x1bW5GaWx0ZXJzOiB7XG4gICAgICAgICAgW3RoaXMuY29sRmllbGRdOiB7XG4gICAgICAgICAgICBvcGVyYXRvcjogT3BlcmF0b3JUeXBlcy5BTkQsXG4gICAgICAgICAgICBmaWx0ZXJzOiBbXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBjb25kaXRpb246IERhdG9GaWx0ZXJDb25kaXRpb25zLkNPTlRBSU5TLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBzZWFyY2hUZXJtXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF1cbiAgICAgICAgICB9XG4gICAgICAgIH0sXG4gICAgICAgIHNvcnQ6IFtdLFxuICAgICAgICBjb2x1bW5zVG9SZXR1cm46IFt0aGlzLmNvbEZpZWxkXSxcbiAgICAgICAgZGlzdGluY3RSZXN1bHRzOiB0cnVlXG4gICAgICB9XG4gICAgfTtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLl9vcmlnaW5hbEdldFJvd3MocGFyYW1zIGFzIGFueSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgLyogV2hlbiBzZWFyY2hpbmcgdGhlIGJ5IHZhbHVlIGZpbHRlciBvbiBzZXJ2ZXIgc2lkZSB3ZSBuZWVkIHRvIHVwZGF0ZSB0aGUgY29udHJvbCB3aXRoIHRoZSBuZXcgdmFsdWVzIGFuZCByZS1yZWdpc3RlciB0byB0aGUgY2hhbmdlcyAqL1xuICBwcml2YXRlIHBhdGNoQW5kUmVSZWdpc3RlcihkYXRhOiAoc3RyaW5nIHwgbnVtYmVyKVtdKSB7XG4gICAgdGhpcy5ieVZhbHVlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5ieVZhbHVlQ29udHJvbC5wYXRjaFZhbHVlKHRoaXMuZ2V0Tm9uRXhjbHVkZWRWYWx1ZXMoZGF0YSkpO1xuICAgIHRoaXMucmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVnaXN0ZXJCeVZhbHVlTGlzdGVuZXIoKSB7XG4gICAgY29uc3QgYnlWYWx1ZSA9IHRoaXMuYnlWYWx1ZUNvbnRyb2w7XG4gICAgdGhpcy5ieVZhbHVlU3Vic2NyaXB0aW9uID0gYnlWYWx1ZS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgoYnlWYWx1ZS52YWx1ZSksXG4gICAgICAgIHBhaXJ3aXNlKClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKFtwcmV2LCBjdXJyZW50XSkgPT4ge1xuICAgICAgICBjb25zdCBhZGRUb0V4Y2x1ZGVkID0gY3VycmVudC5sZW5ndGggPCBwcmV2Lmxlbmd0aDtcbiAgICAgICAgY29uc3QgZGlmZiA9IGFkZFRvRXhjbHVkZWQgPyBkaWZmZXJlbmNlKHByZXYsIGN1cnJlbnQpIDogZGlmZmVyZW5jZShjdXJyZW50LCBwcmV2KTtcbiAgICAgICAgZGlmZi5mb3JFYWNoKHYgPT4gKGFkZFRvRXhjbHVkZWQgPyB0aGlzLmV4Y2x1ZGVkVmFsdWVzLmFkZCh2KSA6IHRoaXMuZXhjbHVkZWRWYWx1ZXMuZGVsZXRlKHYpKSk7XG4gICAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Tm9uRXhjbHVkZWRWYWx1ZXMoZGF0YTogKHN0cmluZyB8IG51bWJlcilbXSk6IChzdHJpbmcgfCBudW1iZXIpW10ge1xuICAgIHJldHVybiBkYXRhLmZpbHRlcih2ID0+ICF0aGlzLmV4Y2x1ZGVkVmFsdWVzLmhhcyh2KSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHBpdm90IGRpbWVuc2lvbnMgYXMgZGVmaW5lZCBpbiB0aGUgcGFyZW50IGdyb3VwIGNvbHVtbiBoZWFkZXIgY2xhc3MuXG4gICAqL1xuICBwcml2YXRlIGdldFBpdm90RmllbGRzKHBhcmVudDogQ29sdW1uR3JvdXAsIGZpZWxkcyA9IFtdKTogc3RyaW5nW10ge1xuICAgIGNvbnN0IGdyYW5kUGFyZW50ID0gcGFyZW50LmdldFBhcmVudCgpO1xuICAgIGNvbnN0IGhlYWRlckNsYXNzID0gcGFyZW50LmdldE9yaWdpbmFsQ29sdW1uR3JvdXAoKS5nZXRDb2xHcm91cERlZigpLmhlYWRlckNsYXNzO1xuXG4gICAgaWYgKGdyYW5kUGFyZW50KSB7XG4gICAgICB0aGlzLmdldFBpdm90RmllbGRzKGdyYW5kUGFyZW50LCBmaWVsZHMpO1xuICAgIH1cblxuICAgIGhlYWRlckNsYXNzICYmIGZpZWxkcy5wdXNoKGhlYWRlckNsYXNzWzBdKTtcblxuICAgIHJldHVybiBmaWVsZHM7XG4gIH1cbn1cbiJdfQ==
|
|
@@ -69,4 +69,4 @@ DatoGridGroupsMenuComponent = __decorate([
|
|
|
69
69
|
__metadata("design:paramtypes", [PopoverRef])
|
|
70
70
|
], DatoGridGroupsMenuComponent);
|
|
71
71
|
export { DatoGridGroupsMenuComponent };
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1ncm91cHMtbWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ncmlkLXYyL2dyaWQtZ3JvdXBzLW1lbnUvZ3JpZC1ncm91cHMtbWVudS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQ3RGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBZXhELElBQWEsMkJBQTJCLEdBQXhDLE1BQWEsMkJBQTJCO0lBTXRDLFlBQW9CLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO1FBTGpELGFBQVEsR0FBRyxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQzdCLGlCQUFZLEdBQWEsRUFBRSxDQUFDO0lBSXdCLENBQUM7SUFFckQsUUFBUTtRQUNOLElBQUksQ0FBQyxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLEVBQUUsRUFBRTtZQUM3RSxJQUFJLENBQUMsR0FBRyxDQUFDLGlCQUFpQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25DLElBQUksQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLCtDQUFrQztnQkFDdkUsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLE1BQU07Z0JBQ3RELE1BQU0sRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFO2dCQUN6QixXQUFXLEVBQUUsZUFBZTthQUM3QixDQUFDLENBQUM7WUFDSCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVyxLQUFVLENBQUM7SUFFdEIsYUFBYSxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBbUI7UUFDbkQsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELG9FQUFvRTtRQUNwRSxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsR0FBRzthQUN4QixzQkFBc0IsRUFBRTthQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxDQUFDLFFBQVEsRUFBRSxLQUFLLFlBQVksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGFBQWE7UUFDWCxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNoQyxJQUFJLENBQUMsR0FBRyxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ2hDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztTQUNqQjtJQUNILENBQUM7SUFFRCxZQUFZLENBQUMsTUFBYztRQUN6QixJQUFJLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU8sUUFBUTtRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxZQUFZLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsa0JBQWtCLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLEdBQUc7YUFDNUIsc0JBQXNCLEVBQUU7YUFDeEIsTUFBTSxDQUNMLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxRQUFRLEVBQUUsS0FBSyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQy9HO2FBQ0EsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1osTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDLFVBQVUsQ0FBQztZQUM1QyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDN0IsT0FBTyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDL0IsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0NBQ0YsQ0FBQTs7WUF4RDhCLFVBQVU7O0FBTjVCLDJCQUEyQjtJQU52QyxTQUFTLENBQUM7UUFDVCxRQUFRLEVBQUUsdUJBQXVCO1FBQ2pDLCt4RUFBZ0Q7UUFFaEQsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O0tBQ2hELENBQUM7cUNBTzZCLFVBQVU7R0FONUIsMkJBQTJCLENBOER2QztTQTlEWSwyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUG9wb3ZlclJlZiB9IGZyb20gJy4uLy4uL3BvcG92ZXIvcG9wb3Zlci1yZWYnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB1bnRpbERlc3Ryb3llZCB9IGZyb20gJ25neC10YWtlLXVudGlsLWRlc3Ryb3knO1xuaW1wb3J0IHsgQ29sdW1uLCBDb2x1bW5BcGkgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvY29yZSc7XG5pbXBvcnQgeyBTb3J0YWJsZUpTRXZlbnQgfSBmcm9tICcuLi8uLi9zb3J0YWJsZS9zb3J0YWJsZS50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZEFwaSB9IGZyb20gJy4uL2dyaWQtY29udHJvbGxlci9ncmlkLWNvbnRyb2xsZXIudHlwZXMnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBDb3JlRXZlbnRUeXBlcyB9IGZyb20gJy4uLy4uL2V2ZW50LWxvZ2dlcic7XG5cbnR5cGUgTWVudURhdGEgPSB7IGFwaTogRGF0b0dyaWRBcGk7IGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRvLWdyaWQtZ3JvdXBzLW1lbnUnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1ncm91cHMtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydncmlkLWdyb3Vwcy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkR3JvdXBzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgYWRkR3JvdXAgPSBuZXcgRm9ybUNvbnRyb2woKTtcbiAgYWN0aXZlR3JvdXBzOiBDb2x1bW5bXSA9IFtdO1xuICBvcHRpb25hbENvbHVtbnM7XG4gIHByaXZhdGUgYXBpOiBDb2x1bW5BcGk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwb3BvdmVyOiBQb3BvdmVyUmVmPE1lbnVEYXRhPikge31cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmFwaSA9IHRoaXMucG9wb3Zlci5kYXRhLmFwaS5jb2x1bW5zO1xuICAgIHRoaXMuaW5pdE1lbnUoKTtcblxuICAgIHRoaXMuYWRkR3JvdXAudmFsdWVDaGFuZ2VzLnBpcGUodW50aWxEZXN0cm95ZWQodGhpcykpLnN1YnNjcmliZSgoeyBjb2x1bW4gfSkgPT4ge1xuICAgICAgdGhpcy5hcGkuYWRkUm93R3JvdXBDb2x1bW4oY29sdW1uKTtcbiAgICAgIHRoaXMuYXBpLnNldENvbHVtblZpc2libGUoY29sdW1uLCBmYWxzZSk7XG4gICAgICB0aGlzLnBvcG92ZXIuZGF0YS5ncmlkU2VydmljZS5fbG9nRXZlbnQoQ29yZUV2ZW50VHlwZXMuR1JJRF9HUk9VUF9BRERFRCwge1xuICAgICAgICB0b3RhbE51bU9mR3JvdXBzOiB0aGlzLmFwaS5nZXRSb3dHcm91cENvbHVtbnMoKS5sZW5ndGgsXG4gICAgICAgIGNvbHVtbjogY29sdW1uLmdldENvbElkKCksXG4gICAgICAgIGdyb3VwZWRGcm9tOiAnVGFibGUgVG9vbGJhcidcbiAgICAgIH0pO1xuICAgICAgdGhpcy5pbml0TWVudSgpO1xuICAgIH0pO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7fVxuXG4gIHJlb3JkZXJHcm91cHMoeyBvbGRJbmRleCwgbmV3SW5kZXggfTogU29ydGFibGVKU0V2ZW50KSB7XG4gICAgLyogQ2hhbmdlIHRoZSBncm91cCBpbmRleCAqL1xuICAgIHRoaXMuYXBpLm1vdmVSb3dHcm91cENvbHVtbihvbGRJbmRleCwgbmV3SW5kZXgpO1xuICAgIC8qIE1vdmUgdGhlIGZpcnN0IGdyb3VwZWQgY29sdW1uIHRvIGJlIHRoZSBmaXJzdCBvbmUgaW4gdGhlIHRhYmxlICovXG4gICAgY29uc3QgYXV0b0NvbHVtbiA9IHRoaXMuYXBpXG4gICAgICAuZ2V0QWxsRGlzcGxheWVkQ29sdW1ucygpXG4gICAgICAuZmluZChhY3RpdmVDb2x1bW4gPT4gdGhpcy5hY3RpdmVHcm91cHNbbmV3SW5kZXhdLmdldENvbElkKCkgPT09IGFjdGl2ZUNvbHVtbi5nZXRDb2xEZWYoKS5zaG93Um93R3JvdXApO1xuICAgIHRoaXMuYXBpLm1vdmVDb2x1bW4oYXV0b0NvbHVtbiwgMCk7XG4gIH1cblxuICBjbGVhckdyb3VwaW5nKCkge1xuICAgIGlmICh0aGlzLmFjdGl2ZUdyb3Vwcy5sZW5ndGggPiAwKSB7XG4gICAgICB0aGlzLmFwaS5zZXRSb3dHcm91cENvbHVtbnMoW10pO1xuICAgICAgdGhpcy5pbml0TWVudSgpO1xuICAgIH1cbiAgfVxuXG4gIHJlbW92ZUNvbHVtbihjb2x1bW46IENvbHVtbikge1xuICAgIHRoaXMuYXBpLnJlbW92ZVJvd0dyb3VwQ29sdW1uKGNvbHVtbik7XG4gICAgdGhpcy5pbml0TWVudSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0TWVudSgpIHtcbiAgICB0aGlzLmFkZEdyb3VwLnJlc2V0KG51bGwsIHsgZW1pdEV2ZW50OiBmYWxzZSB9KTtcbiAgICB0aGlzLmFjdGl2ZUdyb3VwcyA9IFsuLi50aGlzLmFwaS5nZXRSb3dHcm91cENvbHVtbnMoKV07XG4gICAgdGhpcy5vcHRpb25hbENvbHVtbnMgPSB0aGlzLmFwaVxuICAgICAgLmdldEFsbERpc3BsYXllZENvbHVtbnMoKVxuICAgICAgLmZpbHRlcihcbiAgICAgICAgY29sdW1uID0+ICF0aGlzLmFjdGl2ZUdyb3Vwcy5maW5kKGFjdGl2ZUNvbHVtbiA9PiBhY3RpdmVDb2x1bW4uZ2V0Q29sSWQoKSA9PT0gY29sdW1uLmdldENvbERlZigpLnNob3dSb3dHcm91cClcbiAgICAgIClcbiAgICAgIC5tYXAoY29sdW1uID0+IHtcbiAgICAgICAgY29uc3QgbGFiZWwgPSBjb2x1bW4uZ2V0Q29sRGVmKCkuaGVhZGVyTmFtZTtcbiAgICAgICAgY29uc3QgaWQgPSBjb2x1bW4uZ2V0Q29sSWQoKTtcbiAgICAgICAgcmV0dXJuIHsgbGFiZWwsIGlkLCBjb2x1bW4gfTtcbiAgICAgIH0pO1xuICB9XG59XG4iXX0=
|
|
@@ -18,4 +18,4 @@ DatoGridV2LoaderComponent = __decorate([
|
|
|
18
18
|
})
|
|
19
19
|
], DatoGridV2LoaderComponent);
|
|
20
20
|
export { DatoGridV2LoaderComponent };
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12Mi1sb2FkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2NvcmUvIiwic291cmNlcyI6WyJsaWIvZ3JpZC12Mi9ncmlkLWxvYWRlci9ncmlkLXYyLWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFTbkUsSUFBYSx5QkFBeUIsR0FBdEMsTUFBYSx5QkFBeUI7SUFDcEMsTUFBTSxDQUFDLE1BQTZCLElBQVMsQ0FBQztDQUMvQyxDQUFBO0FBRlkseUJBQXlCO0lBTHJDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxxQkFBcUI7UUFDL0IsbURBQThDO1FBQzlDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO0tBQ2hELENBQUM7R0FDVyx5QkFBeUIsQ0FFckM7U0FGWSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgRGF0b3JhbWEuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gQXBhY2hlIExpY2Vuc2UgMi4wIGxpY2Vuc2UgdGhhdCBjYW4gYmVcbiAqIGZvdW5kIGluIHRoZSBMSUNFTlNFIGZpbGUgYXQgaHR0cHM6Ly9naXRodWIuY29tL2RhdG9yYW1hL2NsaWVudC1jb3JlL2Jsb2IvbWFzdGVyL0xJQ0VOU0VcbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJTG9hZGluZ092ZXJsYXlBbmd1bGFyQ29tcCB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9hbmd1bGFyJztcbmltcG9ydCB7IElMb2FkaW5nT3ZlcmxheVBhcmFtcyB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLXYyLWxvYWRlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXYyLWxvYWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkVjJMb2FkZXJDb21wb25lbnQgaW1wbGVtZW50cyBJTG9hZGluZ092ZXJsYXlBbmd1bGFyQ29tcCB7XG4gIGFnSW5pdChwYXJhbXM6IElMb2FkaW5nT3ZlcmxheVBhcmFtcyk6IHZvaWQge31cbn1cbiJdfQ==
|
|
@@ -119,4 +119,4 @@ DatoGridV2NoDataOverlayComponent = __decorate([
|
|
|
119
119
|
ChangeDetectorRef])
|
|
120
120
|
], DatoGridV2NoDataOverlayComponent);
|
|
121
121
|
export { DatoGridV2NoDataOverlayComponent };
|
|
122
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12Mi1uby1kYXRhLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2NvcmUvIiwic291cmNlcyI6WyJsaWIvZ3JpZC12Mi9ncmlkLW5vLWRhdGEtb3ZlcmxheS9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0JoRCxJQUFhLGdDQUFnQyxHQUE3QyxNQUFhLGdDQUFnQztJQXdCM0MsWUFDVSxTQUFvQixFQUNwQixXQUF3QixFQUN4QixPQUFtQixFQUNuQixHQUFzQjtRQUh0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQnZCLFdBQU0sR0FBeUIsRUFBRSxDQUFDO0lBNEJ4QyxDQUFDO0lBcEJKLDBEQUEwRDtJQUUxRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUs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QUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsSUFBSSxFQUFFLDBCQUEwQjthQUNqQztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO2FBQ3BGO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksRUFBRSwwQkFBMEI7YUFDakM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7O1lBOUVzQixTQUFTO1lBQ1AsV0FBVztZQUNmLFVBQVU7WUFDZCxpQkFBaUI7O0FBM0J2QjtJQUFSLEtBQUssRUFBRTs7Z0VBQW1DO0FBVTNDO0lBREMsV0FBVyxDQUFDLE9BQU8sQ0FBQzs7O3FFQVlwQjtBQXRCVSxnQ0FBZ0M7SUFONUMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDhCQUE4QjtRQUN4Qywyb0RBQXVEO1FBRXZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO3FDQTBCcUIsU0FBUztRQUNQLFdBQVc7UUFDZixVQUFVO1FBQ2QsaUJBQWlCO0dBNUJyQixnQ0FBZ0MsQ0F1RzVDO1NBdkdZLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElOb1Jvd3NPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdhZy1ncmlkLWFuZ3VsYXInO1xuaW1wb3J0IHsgSU5vUm93c092ZXJsYXlQYXJhbXMgfSBmcm9tICdhZy1ncmlkLWNvbW11bml0eSc7XG5pbXBvcnQgeyBHcmlkUXVlcnkgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQucXVlcnknO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlZXBtZXJnZSB9IGZyb20gJy4uLy4uL2ludGVybmFsL2RlZXAtbWVyZ2UnO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBEYXRvR3JpZE92ZXJsYXlJbnB1dCB9IGZyb20gJy4vZ3JpZC12Mi1uby1kYXRhLW92ZXJsYXkudHlwZXMnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgdG9OdW1iZXIgfSBmcm9tICcuLi8uLi91dGlscy9jb2VyY2lvbic7XG5cbnR5cGUgT3ZlcmxheVZpZXcgPSB7IGljb246IHN0cmluZzsgdGV4dDogc3RyaW5nIH07XG5cbnR5cGUgR3JpZE92ZXJsYXlDb25maWcgPSB7XG4gIG5vRGF0YTogT3ZlcmxheVZpZXc7XG4gIG5vUmVzdWx0OiBPdmVybGF5VmlldztcbiAgc2VydmVyU2lkZUVycm9yOiBPdmVybGF5Vmlldztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2RhdG8tZ3JpZC12Mi1uby1kYXRhLW92ZXJsYXknLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC12Mi1uby1kYXRhLW92ZXJsYXkuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBEYXRvR3JpZFYyTm9EYXRhT3ZlcmxheUNvbXBvbmVudCBpbXBsZW1lbnRzIElOb1Jvd3NPdmVybGF5QW5ndWxhckNvbXAge1xuICBASW5wdXQoKSBjb25maWc6IERhdG9HcmlkT3ZlcmxheUlucHV0ID0ge307XG4gIG1lcmdlZENvbmZpZzogR3JpZE92ZXJsYXlDb25maWc7XG4gIGZpbHRlckFjdGl2ZSQ6IE9ic2VydmFibGU8Ym9vbGVhbj47XG4gIGhhc0Vycm9yJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICBwcml2YXRlIGRlZmF1bHRDb25maWc6IERhdG9HcmlkT3ZlcmxheUlucHV0O1xuICBwcml2YXRlIGdyaWRCb2R5O1xuXG4gIC8qKiBBZGp1c3QgdGhlIG92ZXJsYXkgdG8gdGhlIGdyaWQgYm9keSB2aWV3cG9ydCBoZWlnaHQgKi9cbiAgQEhvc3RCaW5kaW5nKCdzdHlsZScpXG4gIGdldCBvdmVybGF5U3R5bGVzKCkge1xuICAgIGlmICh0aGlzLmdyaWRCb2R5KSB7XG4gICAgICBjb25zdCB7IG9mZnNldEhlaWdodCwgb2Zmc2V0VG9wIH0gPSB0aGlzLmdyaWRCb2R5O1xuXG4gICAgICByZXR1cm4ge1xuICAgICAgICBoZWlnaHQ6IGAke29mZnNldEhlaWdodH1weGAsXG4gICAgICAgIG1hcmdpblRvcDogYCR7b2Zmc2V0VG9wfXB4YFxuICAgICAgfTtcbiAgICB9XG5cbiAgICByZXR1cm4gbnVsbDtcbiAgfVxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZ3JpZFF1ZXJ5OiBHcmlkUXVlcnksXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgY29uc3QgZ3JpZCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNsb3Nlc3QoJ2RhdG8tZ3JpZC12MicpO1xuXG4gICAgdGhpcy5ncmlkQm9keSA9IGdyaWQgJiYgZ3JpZC5xdWVyeVNlbGVjdG9yKCcuYWctYm9keS12aWV3cG9ydCcpO1xuICAgIHRoaXMuZmlsdGVyQWN0aXZlJCA9IHRoaXMuZ3JpZFF1ZXJ5LmZpbHRlckFjdGl2ZSQ7XG4gICAgdGhpcy5oYXNFcnJvciQgPSB0aGlzLmdyaWRRdWVyeS5pc1NlcnZlclNpZGVcbiAgICAgID8gdGhpcy5ncmlkUXVlcnkuc2VydmVyU2lkZUVycm9yJC5waXBlKFxuICAgICAgICAgIHRhcCgoKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgKVxuICAgICAgOiBvZihmYWxzZSk7XG4gICAgdGhpcy5pbml0RGVmYXVsdENvbmZpZygpO1xuICAgIGNvbnN0IGdyaWRDb25maWcgPSB0aGlzLmdyaWRRdWVyeS5nZXRHcmlkT3B0aW9ucygpLm92ZXJsYXlzQ29uZmlnIHx8IHt9O1xuICAgIGNvbnN0IHVzZXJDb25maWcgPSBkZWVwbWVyZ2UoZ3JpZENvbmZpZywgdGhpcy5jb25maWcpO1xuICAgIHRoaXMubWVyZ2VkQ29uZmlnID0gZGVlcG1lcmdlKHRoaXMuZGVmYXVsdENvbmZpZywgdXNlckNvbmZpZykgYXMgR3JpZE92ZXJsYXlDb25maWc7XG4gIH1cblxuICBjbGVhckZpbHRlcnMoKSB7XG4gICAgdGhpcy5ncmlkU2VydmljZS5jbGVhckFsbEZpbHRlcnMoKTtcbiAgfVxuXG4gIGFnSW5pdChwYXJhbXM6IElOb1Jvd3NPdmVybGF5UGFyYW1zKTogdm9pZCB7fVxuXG4gIGlzSWNvbkhpZGRlbigpIHtcbiAgICBpZiAodGhpcy5ncmlkQm9keSkge1xuICAgICAgY29uc3QgZWwgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcblxuICAgICAgaWYgKGVsKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IGVsLnF1ZXJ5U2VsZWN0b3IoJy5jb250YWluZXInKTtcbiAgICAgICAgY29uc3QgaWNvbiA9IGNvbnRhaW5lci5xdWVyeVNlbGVjdG9yKCdpbWcnKTtcbiAgICAgICAgbGV0IGhlaWdodE9mRWxlbWVudHMgPSAwO1xuXG4gICAgICAgIC8qKiBoaWRlIHRoZSBpY29uIHVudGlsIG5leHQgY2hhbmdlIGRldGVjdGlvbiBjeWNsZSAqL1xuICAgICAgICBpZiAoaWNvbi5oZWlnaHQgPT09IDApIHtcbiAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3QgY2hpbGQgb2YgY29udGFpbmVyLmNoaWxkcmVuKSB7XG4gICAgICAgICAgY29uc3QgY2hpbGRIZWlnaHQgPSBjaGlsZC5vZmZzZXRIZWlnaHQgfHwgY2hpbGQuaGVpZ2h0IHx8IDA7XG4gICAgICAgICAgY29uc3QgY2hpbGRNYXJnaW5Cb3R0b20gPSB0b051bWJlcihjaGlsZC5zdHlsZS5tYXJnaW5Cb3R0b20ucmVwbGFjZSgncHgnLCAnJykpO1xuXG4gICAgICAgICAgaGVpZ2h0T2ZFbGVtZW50cyArPSBjaGlsZEhlaWdodCArIGNoaWxkTWFyZ2luQm90dG9tO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGhlaWdodE9mRWxlbWVudHMgPiB0aGlzLmdyaWRCb2R5Lm9mZnNldEhlaWdodDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdERlZmF1bHRDb25maWcoKSB7XG4gICAgY29uc3QgeyBlbmFibGVTZWFyY2ggfSA9IHRoaXMuZ3JpZFF1ZXJ5LmdldEdyaWRPcHRpb25zKCk7XG5cbiAgICB0aGlzLmRlZmF1bHRDb25maWcgPSB7XG4gICAgICBub0RhdGE6IHtcbiAgICAgICAgaWNvbjogJ2NvcmUvZ3JpZC9uby1kYXRhLnN2ZycsXG4gICAgICAgIHRleHQ6ICdjb3JlLm5vLWl0ZW1zLXRvLWRpc3BsYXknXG4gICAgICB9LFxuICAgICAgbm9SZXN1bHQ6IHtcbiAgICAgICAgaWNvbjogJ2NvcmUvZ3JpZC9uby1yZXN1bHRzLnN2ZycsXG4gICAgICAgIHRleHQ6IGVuYWJsZVNlYXJjaCA/ICdjb3JlLm5vLW1hdGNoaW5nLXNlYXJjaC1yZXN1bHRzJyA6ICdjb3JlLm5vLW1hdGNoaW5nLXJlc3VsdHMnXG4gICAgICB9LFxuICAgICAgc2VydmVyU2lkZUVycm9yOiB7XG4gICAgICAgIGljb246ICdjb3JlL2dyaWQvYWxlcnQuc3ZnJyxcbiAgICAgICAgdGV4dDogJ2NvcmUudW5hYmxlLXRvLWxvYWQtZGF0YSdcbiAgICAgIH1cbiAgICB9O1xuICB9XG59XG4iXX0=
|
|
122
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC12Mi1uby1kYXRhLW92ZXJsYXkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2NvcmUvIiwic291cmNlcyI6WyJsaWIvZ3JpZC12Mi9ncmlkLW5vLWRhdGEtb3ZlcmxheS9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdEgsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3JELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBZ0JoRCxJQUFhLGdDQUFnQyxHQUE3QyxNQUFhLGdDQUFnQztJQXdCM0MsWUFDVSxTQUFvQixFQUNwQixXQUF3QixFQUN4QixPQUFtQixFQUNuQixHQUFzQjtRQUh0QixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3BCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUEzQnZCLFdBQU0sR0FBeUIsRUFBRSxDQUFDO0lBNEJ4QyxDQUFDO0lBcEJKLDBEQUEwRDtJQUUxRCxJQUFJLGFBQWE7UUFDZixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsTUFBTSxFQUFFLFlBQVksRUFBRSxTQUFTLEVBQUUs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QUNuQixNQUFNLEVBQUU7Z0JBQ04sSUFBSSxFQUFFLHVCQUF1QjtnQkFDN0IsSUFBSSxFQUFFLDBCQUEwQjthQUNqQztZQUNELFFBQVEsRUFBRTtnQkFDUixJQUFJLEVBQUUsMEJBQTBCO2dCQUNoQyxJQUFJLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQyxDQUFDLENBQUMsMEJBQTBCO2FBQ3BGO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLElBQUksRUFBRSxxQkFBcUI7Z0JBQzNCLElBQUksRUFBRSwwQkFBMEI7YUFDakM7U0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGLENBQUE7O1lBOUVzQixTQUFTO1lBQ1AsV0FBVztZQUNmLFVBQVU7WUFDZCxpQkFBaUI7O0FBM0J2QjtJQUFSLEtBQUssRUFBRTs7Z0VBQW1DO0FBVTNDO0lBREMsV0FBVyxDQUFDLE9BQU8sQ0FBQzs7O3FFQVlwQjtBQXRCVSxnQ0FBZ0M7SUFONUMsU0FBUyxDQUFDO1FBQ1QsUUFBUSxFQUFFLDhCQUE4QjtRQUN4Qywyb0RBQXVEO1FBRXZELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOztLQUNoRCxDQUFDO3FDQTBCcUIsU0FBUztRQUNQLFdBQVc7UUFDZixVQUFVO1FBQ2QsaUJBQWlCO0dBNUJyQixnQ0FBZ0MsQ0F1RzVDO1NBdkdZLGdDQUFnQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCBEYXRvcmFtYS4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiBVc2Ugb2YgdGhpcyBzb3VyY2UgY29kZSBpcyBnb3Zlcm5lZCBieSBhbiBBcGFjaGUgTGljZW5zZSAyLjAgbGljZW5zZSB0aGF0IGNhbiBiZVxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2dpdGh1Yi5jb20vZGF0b3JhbWEvY2xpZW50LWNvcmUvYmxvYi9tYXN0ZXIvTElDRU5TRVxuICovXG5cbmltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0QmluZGluZywgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElOb1Jvd3NPdmVybGF5QW5ndWxhckNvbXAgfSBmcm9tICdAYWctZ3JpZC1jb21tdW5pdHkvYW5ndWxhcic7XG5pbXBvcnQgeyBJTm9Sb3dzT3ZlcmxheVBhcmFtcyB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IEdyaWRRdWVyeSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5xdWVyeSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVlcG1lcmdlIH0gZnJvbSAnLi4vLi4vaW50ZXJuYWwvZGVlcC1tZXJnZSc7XG5pbXBvcnQgeyBHcmlkU2VydmljZSB9IGZyb20gJy4uL2dyaWQtc3RvcmUvZ3JpZC5zZXJ2aWNlJztcbmltcG9ydCB7IERhdG9HcmlkT3ZlcmxheUlucHV0IH0gZnJvbSAnLi9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS50eXBlcyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyB0b051bWJlciB9IGZyb20gJy4uLy4uL3V0aWxzL2NvZXJjaW9uJztcblxudHlwZSBPdmVybGF5VmlldyA9IHsgaWNvbjogc3RyaW5nOyB0ZXh0OiBzdHJpbmcgfTtcblxudHlwZSBHcmlkT3ZlcmxheUNvbmZpZyA9IHtcbiAgbm9EYXRhOiBPdmVybGF5VmlldztcbiAgbm9SZXN1bHQ6IE92ZXJsYXlWaWV3O1xuICBzZXJ2ZXJTaWRlRXJyb3I6IE92ZXJsYXlWaWV3O1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZGF0by1ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheScsXG4gIHRlbXBsYXRlVXJsOiAnLi9ncmlkLXYyLW5vLWRhdGEtb3ZlcmxheS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtdjItbm8tZGF0YS1vdmVybGF5LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIERhdG9HcmlkVjJOb0RhdGFPdmVybGF5Q29tcG9uZW50IGltcGxlbWVudHMgSU5vUm93c092ZXJsYXlBbmd1bGFyQ29tcCB7XG4gIEBJbnB1dCgpIGNvbmZpZzogRGF0b0dyaWRPdmVybGF5SW5wdXQgPSB7fTtcbiAgbWVyZ2VkQ29uZmlnOiBHcmlkT3ZlcmxheUNvbmZpZztcbiAgZmlsdGVyQWN0aXZlJDogT2JzZXJ2YWJsZTxib29sZWFuPjtcbiAgaGFzRXJyb3IkOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xuXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogRGF0b0dyaWRPdmVybGF5SW5wdXQ7XG4gIHByaXZhdGUgZ3JpZEJvZHk7XG5cbiAgLyoqIEFkanVzdCB0aGUgb3ZlcmxheSB0byB0aGUgZ3JpZCBib2R5IHZpZXdwb3J0IGhlaWdodCAqL1xuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcbiAgZ2V0IG92ZXJsYXlTdHlsZXMoKSB7XG4gICAgaWYgKHRoaXMuZ3JpZEJvZHkpIHtcbiAgICAgIGNvbnN0IHsgb2Zmc2V0SGVpZ2h0LCBvZmZzZXRUb3AgfSA9IHRoaXMuZ3JpZEJvZHk7XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIGhlaWdodDogYCR7b2Zmc2V0SGVpZ2h0fXB4YCxcbiAgICAgICAgbWFyZ2luVG9wOiBgJHtvZmZzZXRUb3B9cHhgXG4gICAgICB9O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeSxcbiAgICBwcml2YXRlIGdyaWRTZXJ2aWNlOiBHcmlkU2VydmljZSxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmXG4gICkge31cblxuICBuZ09uSW5pdCgpIHtcbiAgICBjb25zdCBncmlkID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY2xvc2VzdCgnZGF0by1ncmlkLXYyJyk7XG5cbiAgICB0aGlzLmdyaWRCb2R5ID0gZ3JpZCAmJiBncmlkLnF1ZXJ5U2VsZWN0b3IoJy5hZy1ib2R5LXZpZXdwb3J0Jyk7XG4gICAgdGhpcy5maWx0ZXJBY3RpdmUkID0gdGhpcy5ncmlkUXVlcnkuZmlsdGVyQWN0aXZlJDtcbiAgICB0aGlzLmhhc0Vycm9yJCA9IHRoaXMuZ3JpZFF1ZXJ5LmlzU2VydmVyU2lkZVxuICAgICAgPyB0aGlzLmdyaWRRdWVyeS5zZXJ2ZXJTaWRlRXJyb3IkLnBpcGUoXG4gICAgICAgICAgdGFwKCgpID0+IHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KVxuICAgICAgICApXG4gICAgICA6IG9mKGZhbHNlKTtcbiAgICB0aGlzLmluaXREZWZhdWx0Q29uZmlnKCk7XG4gICAgY29uc3QgZ3JpZENvbmZpZyA9IHRoaXMuZ3JpZFF1ZXJ5LmdldEdyaWRPcHRpb25zKCkub3ZlcmxheXNDb25maWcgfHwge307XG4gICAgY29uc3QgdXNlckNvbmZpZyA9IGRlZXBtZXJnZShncmlkQ29uZmlnLCB0aGlzLmNvbmZpZyk7XG4gICAgdGhpcy5tZXJnZWRDb25maWcgPSBkZWVwbWVyZ2UodGhpcy5kZWZhdWx0Q29uZmlnLCB1c2VyQ29uZmlnKSBhcyBHcmlkT3ZlcmxheUNvbmZpZztcbiAgfVxuXG4gIGNsZWFyRmlsdGVycygpIHtcbiAgICB0aGlzLmdyaWRTZXJ2aWNlLmNsZWFyQWxsRmlsdGVycygpO1xuICB9XG5cbiAgYWdJbml0KHBhcmFtczogSU5vUm93c092ZXJsYXlQYXJhbXMpOiB2b2lkIHt9XG5cbiAgaXNJY29uSGlkZGVuKCkge1xuICAgIGlmICh0aGlzLmdyaWRCb2R5KSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAoZWwpIHtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gZWwucXVlcnlTZWxlY3RvcignLmNvbnRhaW5lcicpO1xuICAgICAgICBjb25zdCBpY29uID0gY29udGFpbmVyLnF1ZXJ5U2VsZWN0b3IoJ2ltZycpO1xuICAgICAgICBsZXQgaGVpZ2h0T2ZFbGVtZW50cyA9IDA7XG5cbiAgICAgICAgLyoqIGhpZGUgdGhlIGljb24gdW50aWwgbmV4dCBjaGFuZ2UgZGV0ZWN0aW9uIGN5Y2xlICovXG4gICAgICAgIGlmIChpY29uLmhlaWdodCA9PT0gMCkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG5cbiAgICAgICAgZm9yIChjb25zdCBjaGlsZCBvZiBjb250YWluZXIuY2hpbGRyZW4pIHtcbiAgICAgICAgICBjb25zdCBjaGlsZEhlaWdodCA9IGNoaWxkLm9mZnNldEhlaWdodCB8fCBjaGlsZC5oZWlnaHQgfHwgMDtcbiAgICAgICAgICBjb25zdCBjaGlsZE1hcmdpbkJvdHRvbSA9IHRvTnVtYmVyKGNoaWxkLnN0eWxlLm1hcmdpbkJvdHRvbS5yZXBsYWNlKCdweCcsICcnKSk7XG5cbiAgICAgICAgICBoZWlnaHRPZkVsZW1lbnRzICs9IGNoaWxkSGVpZ2h0ICsgY2hpbGRNYXJnaW5Cb3R0b207XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaGVpZ2h0T2ZFbGVtZW50cyA+IHRoaXMuZ3JpZEJvZHkub2Zmc2V0SGVpZ2h0O1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0cnVlO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0RGVmYXVsdENvbmZpZygpIHtcbiAgICBjb25zdCB7IGVuYWJsZVNlYXJjaCB9ID0gdGhpcy5ncmlkUXVlcnkuZ2V0R3JpZE9wdGlvbnMoKTtcblxuICAgIHRoaXMuZGVmYXVsdENvbmZpZyA9IHtcbiAgICAgIG5vRGF0YToge1xuICAgICAgICBpY29uOiAnY29yZS9ncmlkL25vLWRhdGEuc3ZnJyxcbiAgICAgICAgdGV4dDogJ2NvcmUubm8taXRlbXMtdG8tZGlzcGxheSdcbiAgICAgIH0sXG4gICAgICBub1Jlc3VsdDoge1xuICAgICAgICBpY29uOiAnY29yZS9ncmlkL25vLXJlc3VsdHMuc3ZnJyxcbiAgICAgICAgdGV4dDogZW5hYmxlU2VhcmNoID8gJ2NvcmUubm8tbWF0Y2hpbmctc2VhcmNoLXJlc3VsdHMnIDogJ2NvcmUubm8tbWF0Y2hpbmctcmVzdWx0cydcbiAgICAgIH0sXG4gICAgICBzZXJ2ZXJTaWRlRXJyb3I6IHtcbiAgICAgICAgaWNvbjogJ2NvcmUvZ3JpZC9hbGVydC5zdmcnLFxuICAgICAgICB0ZXh0OiAnY29yZS51bmFibGUtdG8tbG9hZC1kYXRhJ1xuICAgICAgfVxuICAgIH07XG4gIH1cbn1cbiJdfQ==
|
|
@@ -121,4 +121,4 @@ DatoGridOnHoverComponent = __decorate([
|
|
|
121
121
|
ChangeDetectorRef])
|
|
122
122
|
], DatoGridOnHoverComponent);
|
|
123
123
|
export { DatoGridOnHoverComponent };
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ncmlkLXYyL2dyaWQtb24taG92ZXIvZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFROUMsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFRbkMsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixTQUFvQixFQUNwQixHQUFzQjtRQUh0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYaEMscUJBQWdCLEdBQWdCLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEQsQ0FBQztJQUVKLElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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QUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQzdEO1FBQ0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxrQ0FBa0M7UUFDbEMsTUFBTSxlQUFlLEdBQUcsNkJBQTZCLEtBQUssVUFBVSxLQUFLLFNBQVMsS0FBSyxRQUFRLENBQUM7UUFDaEcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTs7WUFsR2lCLFVBQVU7WUFDSCxXQUFXO1lBQ2IsU0FBUztZQUNmLGlCQUFpQjs7QUFackIsd0JBQXdCO0lBTnBDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsaWlCQUE2QztRQUU3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDaEQsQ0FBQztxQ0FVZ0IsVUFBVTtRQUNILFdBQVc7UUFDYixTQUFTO1FBQ2YsaUJBQWlCO0dBWnJCLHdCQUF3QixDQTJHcEM7U0EzR1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxNb3VzZU92ZXJFdmVudCwgUm93Tm9kZSB9IGZyb20gJ2FnLWdyaWQtY29tbXVuaXR5JztcbmltcG9ydCB7IHNldFN0eWxlcyB9IGZyb20gJy4uLy4uL2ludGVybmFsL2hlbHBlcnMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwsIGlzTnVtYmVyLCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZE9uSG92ZXJDb25maWcgfSBmcm9tICcuLi9ncmlkL2dyaWQtdjIudHlwZXMnO1xuaW1wb3J0IHsgQ29yZUV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi9ldmVudC1sb2dnZXInO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkUXVlcnkgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQucXVlcnknO1xuaW1wb3J0IHsgZ2V0VmlzaWJsZUFjdGlvbnMgfSBmcm9tICcuLi9ncmlkLXYyLnV0aWwnO1xuaW1wb3J0IHsgcGFsbGV0ZSB9IGZyb20gJy4uLy4uL3RoZW1lcy90aGVtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRvLWdyaWQtb24taG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtb24taG92ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0b0dyaWRPbkhvdmVyQ29tcG9uZW50IHtcbiAgZGlzcGxheWVkQWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcbiAgc2V0QmdDb2xvckJvdW5kID0gdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3IuYmluZCh0aGlzKTtcbiAgY29uZmlnOiBEYXRvR3JpZE9uSG92ZXJDb25maWcgJiB7IGFjdGlvbnM6IFJvd0FjdGlvbltdIH07XG4gIHNob3dNb3JlOiBib29sZWFuO1xuICBwcml2YXRlIHJvdzogUm93Tm9kZTtcbiAgcHJpdmF0ZSBwYXJhbXM6IENlbGxNb3VzZU92ZXJFdmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGhvc3RFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzaG93KHBhcmFtczogQ2VsbE1vdXNlT3ZlckV2ZW50KSB7XG4gICAgdGhpcy5yZW1vdmVTZWxlY3RlZExpc3RlbmVyKCk7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5yb3cgPSBwYXJhbXMubm9kZTtcbiAgICB0aGlzLnJvdy5hZGRFdmVudExpc3RlbmVyKCdyb3dTZWxlY3RlZCcsIHRoaXMuc2V0QmdDb2xvckJvdW5kKTtcbiAgICB0aGlzLnNldFJvd0FjdGlvbnMoKTtcbiAgICB0aGlzLnNldEJhY2tncm91bmRDb2xvcih7IG5vZGU6IHRoaXMucm93IH0pO1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgdG9wOiBgJHt0aGlzLnJvdy5yb3dUb3B9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHt0aGlzLnJvdy5yb3dIZWlnaHR9cHhgLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICAgIHpJbmRleDogMSxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdhbGwnXG4gICAgfSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIHpJbmRleDogLTFcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5BY3Rpb25NZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLyogSGFjayB0byBvcGVuIHRoZSBhZyBncmlkIGNvbnRleHQgbWVudSAqL1xuICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9hZy1ncmlkL2FnLWdyaWQtZW50ZXJwcmlzZS9pc3N1ZXMvNzIgKi9cbiAgICBjb25zdCB7IHJvd0luZGV4LCBub2RlLCBjb2x1bW4sIHZhbHVlIH0gPSB0aGlzLnBhcmFtcztcbiAgICBjb25zdCBjZWxsID0gKHRoaXMuZ3JpZFF1ZXJ5LmFwaS5ncmlkIGFzIGFueSkucm93UmVuZGVyZXIucm93Q29tcHNCeUluZGV4W3Jvd0luZGV4XS5nZXRSZW5kZXJlZENlbGxGb3JDb2x1bW4oXG4gICAgICBjb2x1bW5cbiAgICApO1xuICAgIC8qIFRoZSBhY3Rpb25zIG1lbnUgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlZ3VsYXIgbWVudSwgd2UgdXNlIHRoZSBncmlkJ3MgY29udGV4dCB0byBzaWduYWwgdGhhdCB0aGlzIGlzIHRoZSBhY3Rpb25zIG1lbnUqL1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UudXBkYXRlR3JpZENvbnRleHQoeyBjb250ZXh0TWVudTogeyBmcm9tT25Ib3ZlcjogdHJ1ZSB9IH0pO1xuICAgIGNlbGwuYmVhbnMuY29udGV4dE1lbnVGYWN0b3J5LnNob3dNZW51KG5vZGUsIGNvbHVtbiwgdmFsdWUsIGV2ZW50KTtcbiAgfVxuXG4gIHVwZGF0ZVNjcm9sbFBvcyhsZWZ0OiBudW1iZXIpIHtcbiAgICBjb25zdCBjZWxsQm9yZGVyID0gMTtcbiAgICBzZXRTdHlsZXModGhpcy5ob3N0RWwsIHsgbGVmdDogYCR7bGVmdCAtIHRoaXMuaG9zdEVsLnNjcm9sbFdpZHRoIC0gY2VsbEJvcmRlcn1weGAgfSk7XG4gIH1cblxuICBjYWxsQWN0aW9uKGFjdGlvbjogUm93QWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IDEsXG4gICAgICAgIGZyb206ICdPbiBIb3ZlcidcbiAgICAgIH0pO1xuICAgICAgYWN0aW9uLm9uQ2xpY2soW3RoaXMucm93XSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVTZWxlY3RlZExpc3RlbmVyKCk7XG4gIH1cblxuICBzZXRSb3dBY3Rpb25zKCkge1xuICAgIGNvbnN0IHsgYWN0aW9ucywgbWF4RGlzcGxheWVkSXRlbXMgfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHZhbGlkQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKGFjdGlvbnMsIDEsIFt0aGlzLnJvd10sIGZhbHNlKS5maWx0ZXIoXG4gICAgICAoeyB0ZW1wbGF0ZSwgaWNvbiwgdmlzaWJsZSB9KSA9PiBpc05pbCh0ZW1wbGF0ZSkgJiYgaXNTdHJpbmcoaWNvbikgJiYgdmlzaWJsZVxuICAgICk7XG4gICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zID0gdmFsaWRBY3Rpb25zXG4gICAgICAuZmlsdGVyKGFjdGlvbiA9PiBpc051bWJlcihhY3Rpb24ub25Ib3ZlckluZGV4KSlcbiAgICAgIC5zbGljZSgwLCBtYXhEaXNwbGF5ZWRJdGVtcylcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9uSG92ZXJJbmRleCAtIGIub25Ib3ZlckluZGV4KTtcbiAgICBpZiAodGhpcy5kaXNwbGF5ZWRBY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zID0gdmFsaWRBY3Rpb25zLnNsaWNlKDAsIG1heERpc3BsYXllZEl0ZW1zKTtcbiAgICB9XG4gICAgdGhpcy5zaG93TW9yZSA9IHRoaXMuZGlzcGxheWVkQWN0aW9ucy5sZW5ndGggPCB2YWxpZEFjdGlvbnMubGVuZ3RoO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWRMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnJvdyAmJiB0aGlzLnJvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyb3dTZWxlY3RlZCcsIHRoaXMuc2V0QmdDb2xvckJvdW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QmFja2dyb3VuZENvbG9yKHsgbm9kZSB9OiB7IG5vZGU6IFJvd05vZGUgfSkge1xuICAgIGxldCBodWUgPSAnYWNjZW50LTEwMCc7XG4gICAgaWYgKG5vZGUuaXNTZWxlY3RlZCgpKSB7XG4gICAgICBodWUgPSBub2RlLnJvd0luZGV4ICUgMiA9PT0gMCA/ICdhY2NlbnQtMTgwJyA6ICdhY2NlbnQtMjAwJztcbiAgICB9XG4gICAgY29uc3QgY29sb3IgPSBwYWxsZXRlLmxpZ2h0W2h1ZV07XG4gICAgLy8gQjMgaXMgNzAlIG9wYWNpdHkgaW4gaGV4IGNvbG9yc1xuICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZSA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICR7Y29sb3J9QjMgMCUsICR7Y29sb3J9IDE3JSwgJHtjb2xvcn0gMTAwJSlgO1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgYmFja2dyb3VuZEltYWdlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
|
124
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZGF0b3JhbWEvY29yZS8iLCJzb3VyY2VzIjpbImxpYi9ncmlkLXYyL2dyaWQtb24taG92ZXIvZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7OztHQU1HOztBQUVILE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWxHLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFJL0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFROUMsSUFBYSx3QkFBd0IsR0FBckMsTUFBYSx3QkFBd0I7SUFRbkMsWUFDVSxJQUFnQixFQUNoQixXQUF3QixFQUN4QixTQUFvQixFQUNwQixHQUFzQjtRQUh0QixTQUFJLEdBQUosSUFBSSxDQUFZO1FBQ2hCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDcEIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFYaEMscUJBQWdCLEdBQWdCLEVBQUUsQ0FBQztRQUNuQyxvQkFBZSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFXbEQsQ0FBQztJQUVKLElBQVksTUFBTTtRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMs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QUFJLENBQUMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDO1NBQzdEO1FBQ0QsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNqQyxrQ0FBa0M7UUFDbEMsTUFBTSxlQUFlLEdBQUcsNkJBQTZCLEtBQUssVUFBVSxLQUFLLFNBQVMsS0FBSyxRQUFRLENBQUM7UUFDaEcsU0FBUyxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDckIsZUFBZTtTQUNoQixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0YsQ0FBQTs7WUFsR2lCLFVBQVU7WUFDSCxXQUFXO1lBQ2IsU0FBUztZQUNmLGlCQUFpQjs7QUFackIsd0JBQXdCO0lBTnBDLFNBQVMsQ0FBQztRQUNULFFBQVEsRUFBRSxvQkFBb0I7UUFDOUIsaWlCQUE2QztRQUU3QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7S0FDaEQsQ0FBQztxQ0FVZ0IsVUFBVTtRQUNILFdBQVc7UUFDYixTQUFTO1FBQ2YsaUJBQWlCO0dBWnJCLHdCQUF3QixDQTJHcEM7U0EzR1ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IERhdG9yYW1hLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIEFwYWNoZSBMaWNlbnNlIDIuMCBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vZ2l0aHViLmNvbS9kYXRvcmFtYS9jbGllbnQtY29yZS9ibG9iL21hc3Rlci9MSUNFTlNFXG4gKi9cblxuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENlbGxNb3VzZU92ZXJFdmVudCwgUm93Tm9kZSB9IGZyb20gJ0BhZy1ncmlkLWNvbW11bml0eS9jb3JlJztcbmltcG9ydCB7IHNldFN0eWxlcyB9IGZyb20gJy4uLy4uL2ludGVybmFsL2hlbHBlcnMnO1xuaW1wb3J0IHsgaXNGdW5jdGlvbiwgaXNOaWwsIGlzTnVtYmVyLCBpc1N0cmluZyB9IGZyb20gJy4uLy4uL3V0aWxzL3ZhbGlkYXRvcnMnO1xuaW1wb3J0IHsgUm93QWN0aW9uIH0gZnJvbSAnLi4vZ3JpZC10b29sYmFyL2dyaWQtdG9vbGJhci50eXBlcyc7XG5pbXBvcnQgeyBEYXRvR3JpZE9uSG92ZXJDb25maWcgfSBmcm9tICcuLi9ncmlkL2dyaWQtdjIudHlwZXMnO1xuaW1wb3J0IHsgQ29yZUV2ZW50VHlwZXMgfSBmcm9tICcuLi8uLi9ldmVudC1sb2dnZXInO1xuaW1wb3J0IHsgR3JpZFNlcnZpY2UgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQuc2VydmljZSc7XG5pbXBvcnQgeyBHcmlkUXVlcnkgfSBmcm9tICcuLi9ncmlkLXN0b3JlL2dyaWQucXVlcnknO1xuaW1wb3J0IHsgZ2V0VmlzaWJsZUFjdGlvbnMgfSBmcm9tICcuLi9ncmlkLXYyLnV0aWwnO1xuaW1wb3J0IHsgcGFsbGV0ZSB9IGZyb20gJy4uLy4uL3RoZW1lcy90aGVtZXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdkYXRvLWdyaWQtb24taG92ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC1vbi1ob3Zlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dyaWQtb24taG92ZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgRGF0b0dyaWRPbkhvdmVyQ29tcG9uZW50IHtcbiAgZGlzcGxheWVkQWN0aW9uczogUm93QWN0aW9uW10gPSBbXTtcbiAgc2V0QmdDb2xvckJvdW5kID0gdGhpcy5zZXRCYWNrZ3JvdW5kQ29sb3IuYmluZCh0aGlzKTtcbiAgY29uZmlnOiBEYXRvR3JpZE9uSG92ZXJDb25maWcgJiB7IGFjdGlvbnM6IFJvd0FjdGlvbltdIH07XG4gIHNob3dNb3JlOiBib29sZWFuO1xuICBwcml2YXRlIHJvdzogUm93Tm9kZTtcbiAgcHJpdmF0ZSBwYXJhbXM6IENlbGxNb3VzZU92ZXJFdmVudDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIGhvc3Q6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBncmlkU2VydmljZTogR3JpZFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBncmlkUXVlcnk6IEdyaWRRdWVyeSxcbiAgICBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHByaXZhdGUgZ2V0IGhvc3RFbCgpIHtcbiAgICByZXR1cm4gdGhpcy5ob3N0Lm5hdGl2ZUVsZW1lbnQ7XG4gIH1cblxuICBzaG93KHBhcmFtczogQ2VsbE1vdXNlT3ZlckV2ZW50KSB7XG4gICAgdGhpcy5yZW1vdmVTZWxlY3RlZExpc3RlbmVyKCk7XG4gICAgdGhpcy5wYXJhbXMgPSBwYXJhbXM7XG4gICAgdGhpcy5yb3cgPSBwYXJhbXMubm9kZTtcbiAgICB0aGlzLnJvdy5hZGRFdmVudExpc3RlbmVyKCdyb3dTZWxlY3RlZCcsIHRoaXMuc2V0QmdDb2xvckJvdW5kKTtcbiAgICB0aGlzLnNldFJvd0FjdGlvbnMoKTtcbiAgICB0aGlzLnNldEJhY2tncm91bmRDb2xvcih7IG5vZGU6IHRoaXMucm93IH0pO1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgdG9wOiBgJHt0aGlzLnJvdy5yb3dUb3B9cHhgLFxuICAgICAgaGVpZ2h0OiBgJHt0aGlzLnJvdy5yb3dIZWlnaHR9cHhgLFxuICAgICAgb3BhY2l0eTogMSxcbiAgICAgIHpJbmRleDogMSxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdhbGwnXG4gICAgfSk7XG4gIH1cblxuICBoaWRlKCkge1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgb3BhY2l0eTogMCxcbiAgICAgIHBvaW50ZXJFdmVudHM6ICdub25lJyxcbiAgICAgIHpJbmRleDogLTFcbiAgICB9KTtcbiAgfVxuXG4gIG9wZW5BY3Rpb25NZW51KGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgLyogSGFjayB0byBvcGVuIHRoZSBhZyBncmlkIGNvbnRleHQgbWVudSAqL1xuICAgIC8qIGh0dHBzOi8vZ2l0aHViLmNvbS9hZy1ncmlkL2FnLWdyaWQtZW50ZXJwcmlzZS9pc3N1ZXMvNzIgKi9cbiAgICBjb25zdCB7IHJvd0luZGV4LCBub2RlLCBjb2x1bW4sIHZhbHVlIH0gPSB0aGlzLnBhcmFtcztcbiAgICBjb25zdCBjZWxsID0gKHRoaXMuZ3JpZFF1ZXJ5LmFwaS5ncmlkIGFzIGFueSkucm93UmVuZGVyZXIucm93Q29tcHNCeUluZGV4W3Jvd0luZGV4XS5nZXRSZW5kZXJlZENlbGxGb3JDb2x1bW4oXG4gICAgICBjb2x1bW5cbiAgICApO1xuICAgIC8qIFRoZSBhY3Rpb25zIG1lbnUgaXMgZGlmZmVyZW50IGZyb20gdGhlIHJlZ3VsYXIgbWVudSwgd2UgdXNlIHRoZSBncmlkJ3MgY29udGV4dCB0byBzaWduYWwgdGhhdCB0aGlzIGlzIHRoZSBhY3Rpb25zIG1lbnUqL1xuICAgIHRoaXMuZ3JpZFNlcnZpY2UudXBkYXRlR3JpZENvbnRleHQoeyBjb250ZXh0TWVudTogeyBmcm9tT25Ib3ZlcjogdHJ1ZSB9IH0pO1xuICAgIGNlbGwuYmVhbnMuY29udGV4dE1lbnVGYWN0b3J5LnNob3dNZW51KG5vZGUsIGNvbHVtbiwgdmFsdWUsIGV2ZW50KTtcbiAgfVxuXG4gIHVwZGF0ZVNjcm9sbFBvcyhsZWZ0OiBudW1iZXIpIHtcbiAgICBjb25zdCBjZWxsQm9yZGVyID0gMTtcbiAgICBzZXRTdHlsZXModGhpcy5ob3N0RWwsIHsgbGVmdDogYCR7bGVmdCAtIHRoaXMuaG9zdEVsLnNjcm9sbFdpZHRoIC0gY2VsbEJvcmRlcn1weGAgfSk7XG4gIH1cblxuICBjYWxsQWN0aW9uKGFjdGlvbjogUm93QWN0aW9uKSB7XG4gICAgaWYgKGlzRnVuY3Rpb24oYWN0aW9uLm9uQ2xpY2spKSB7XG4gICAgICB0aGlzLmdyaWRTZXJ2aWNlLl9sb2dFdmVudChDb3JlRXZlbnRUeXBlcy5HUklEX1RBQkxFX0FDVElPTiwge1xuICAgICAgICBhY3Rpb246IGFjdGlvbi5rZXksXG4gICAgICAgIG51bU9mSXRlbXM6IDEsXG4gICAgICAgIGZyb206ICdPbiBIb3ZlcidcbiAgICAgIH0pO1xuICAgICAgYWN0aW9uLm9uQ2xpY2soW3RoaXMucm93XSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5yZW1vdmVTZWxlY3RlZExpc3RlbmVyKCk7XG4gIH1cblxuICBzZXRSb3dBY3Rpb25zKCkge1xuICAgIGNvbnN0IHsgYWN0aW9ucywgbWF4RGlzcGxheWVkSXRlbXMgfSA9IHRoaXMuY29uZmlnO1xuICAgIGNvbnN0IHZhbGlkQWN0aW9ucyA9IGdldFZpc2libGVBY3Rpb25zKGFjdGlvbnMsIDEsIFt0aGlzLnJvd10sIGZhbHNlKS5maWx0ZXIoXG4gICAgICAoeyB0ZW1wbGF0ZSwgaWNvbiwgdmlzaWJsZSB9KSA9PiBpc05pbCh0ZW1wbGF0ZSkgJiYgaXNTdHJpbmcoaWNvbikgJiYgdmlzaWJsZVxuICAgICk7XG4gICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zID0gdmFsaWRBY3Rpb25zXG4gICAgICAuZmlsdGVyKGFjdGlvbiA9PiBpc051bWJlcihhY3Rpb24ub25Ib3ZlckluZGV4KSlcbiAgICAgIC5zbGljZSgwLCBtYXhEaXNwbGF5ZWRJdGVtcylcbiAgICAgIC5zb3J0KChhLCBiKSA9PiBhLm9uSG92ZXJJbmRleCAtIGIub25Ib3ZlckluZGV4KTtcbiAgICBpZiAodGhpcy5kaXNwbGF5ZWRBY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5kaXNwbGF5ZWRBY3Rpb25zID0gdmFsaWRBY3Rpb25zLnNsaWNlKDAsIG1heERpc3BsYXllZEl0ZW1zKTtcbiAgICB9XG4gICAgdGhpcy5zaG93TW9yZSA9IHRoaXMuZGlzcGxheWVkQWN0aW9ucy5sZW5ndGggPCB2YWxpZEFjdGlvbnMubGVuZ3RoO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlU2VsZWN0ZWRMaXN0ZW5lcigpIHtcbiAgICB0aGlzLnJvdyAmJiB0aGlzLnJvdy5yZW1vdmVFdmVudExpc3RlbmVyKCdyb3dTZWxlY3RlZCcsIHRoaXMuc2V0QmdDb2xvckJvdW5kKTtcbiAgfVxuXG4gIHByaXZhdGUgc2V0QmFja2dyb3VuZENvbG9yKHsgbm9kZSB9OiB7IG5vZGU6IFJvd05vZGUgfSkge1xuICAgIGxldCBodWUgPSAnYWNjZW50LTEwMCc7XG4gICAgaWYgKG5vZGUuaXNTZWxlY3RlZCgpKSB7XG4gICAgICBodWUgPSBub2RlLnJvd0luZGV4ICUgMiA9PT0gMCA/ICdhY2NlbnQtMTgwJyA6ICdhY2NlbnQtMjAwJztcbiAgICB9XG4gICAgY29uc3QgY29sb3IgPSBwYWxsZXRlLmxpZ2h0W2h1ZV07XG4gICAgLy8gQjMgaXMgNzAlIG9wYWNpdHkgaW4gaGV4IGNvbG9yc1xuICAgIGNvbnN0IGJhY2tncm91bmRJbWFnZSA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsICR7Y29sb3J9QjMgMCUsICR7Y29sb3J9IDE3JSwgJHtjb2xvcn0gMTAwJSlgO1xuICAgIHNldFN0eWxlcyh0aGlzLmhvc3RFbCwge1xuICAgICAgYmFja2dyb3VuZEltYWdlXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|