@alfresco/adf-content-services 8.1.0-15041088150 → 8.1.0-15043883503
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/esm2022/lib/agent/services/agent.service.mjs +4 -4
- package/esm2022/lib/alfresco-icon/alfresco-icon.component.mjs +4 -4
- package/esm2022/lib/api-factories/alfresco-api-no-auth.service.mjs +4 -4
- package/esm2022/lib/api-factories/alfresco-api-v2-loader.service.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list-dialog.component.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list.component.mjs +4 -4
- package/esm2022/lib/aspect-list/aspect-list.module.mjs +5 -5
- package/esm2022/lib/aspect-list/services/aspect-list.service.mjs +4 -4
- package/esm2022/lib/aspect-list/services/dialog-aspect-list.service.mjs +4 -4
- package/esm2022/lib/aspect-list/services/node-aspect.service.mjs +4 -4
- package/esm2022/lib/auth-loader/content-auth-loader.service.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.component.mjs +4 -4
- package/esm2022/lib/breadcrumb/breadcrumb.module.mjs +5 -5
- package/esm2022/lib/breadcrumb/dropdown-breadcrumb.component.mjs +4 -4
- package/esm2022/lib/category/categories-management/categories-management.component.mjs +4 -4
- package/esm2022/lib/category/category.module.mjs +5 -5
- package/esm2022/lib/category/services/category-tree-datasource.service.mjs +4 -4
- package/esm2022/lib/category/services/category.service.mjs +4 -4
- package/esm2022/lib/common/services/card-view-content-update.service.mjs +4 -4
- package/esm2022/lib/common/services/content.service.mjs +4 -4
- package/esm2022/lib/common/services/discovery-api.service.mjs +4 -4
- package/esm2022/lib/common/services/favorites-api.service.mjs +4 -4
- package/esm2022/lib/common/services/nodes-api.service.mjs +4 -4
- package/esm2022/lib/common/services/people-content.service.mjs +4 -4
- package/esm2022/lib/common/services/rendition.service.mjs +4 -4
- package/esm2022/lib/common/services/saved-searches.service.mjs +4 -4
- package/esm2022/lib/common/services/sites.service.mjs +4 -4
- package/esm2022/lib/common/services/upload.service.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata-header.component.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata/content-metadata.component.mjs +4 -4
- package/esm2022/lib/content-metadata/components/content-metadata-card/content-metadata-card.component.mjs +4 -4
- package/esm2022/lib/content-metadata/content-metadata.module.mjs +5 -5
- package/esm2022/lib/content-metadata/services/basic-properties.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/config/content-metadata-config.factory.mjs +4 -4
- package/esm2022/lib/content-metadata/services/content-metadata.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/content-type-property.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/property-descriptors.service.mjs +4 -4
- package/esm2022/lib/content-metadata/services/property-groups-translator.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-dialog.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector-panel/content-node-selector-panel.service.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/content-node-selector.module.mjs +5 -5
- package/esm2022/lib/content-node-selector/name-location-cell/name-location-cell.component.mjs +4 -4
- package/esm2022/lib/content-node-selector/site-dropdown/sites-dropdown.component.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.dialog.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.directive.mjs +4 -4
- package/esm2022/lib/content-node-share/content-node-share.module.mjs +5 -5
- package/esm2022/lib/content-node-share/services/shared-links-api.service.mjs +4 -4
- package/esm2022/lib/content-type/content-type-dialog.component.mjs +4 -4
- package/esm2022/lib/content-type/content-type.service.mjs +4 -4
- package/esm2022/lib/content.module.mjs +5 -5
- package/esm2022/lib/dialogs/category-selector/category-selector.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/dialog.module.mjs +5 -5
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/download-zip/download-zip.dialog.module.mjs +5 -5
- package/esm2022/lib/dialogs/download-zip/services/download-zip.service.mjs +4 -4
- package/esm2022/lib/dialogs/folder/folder.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/library/library.dialog.mjs +4 -4
- package/esm2022/lib/dialogs/node-lock/node-lock.dialog.mjs +4 -4
- package/esm2022/lib/directives/auto-focus.directive.mjs +4 -4
- package/esm2022/lib/directives/check-allowable-operation.directive.mjs +4 -4
- package/esm2022/lib/directives/content-directive.module.mjs +5 -5
- package/esm2022/lib/directives/library-favorite.directive.mjs +4 -4
- package/esm2022/lib/directives/library-membership.directive.mjs +4 -4
- package/esm2022/lib/directives/node-counter.directive.mjs +7 -7
- package/esm2022/lib/directives/node-delete.directive.mjs +4 -4
- package/esm2022/lib/directives/node-download.directive.mjs +4 -4
- package/esm2022/lib/directives/node-favorite.directive.mjs +4 -4
- package/esm2022/lib/directives/node-lock.directive.mjs +4 -4
- package/esm2022/lib/directives/node-restore.directive.mjs +4 -4
- package/esm2022/lib/document-list/components/content-action/content-action-list.component.mjs +4 -4
- package/esm2022/lib/document-list/components/content-action/content-action.component.mjs +4 -4
- package/esm2022/lib/document-list/components/document-list.component.mjs +4 -4
- package/esm2022/lib/document-list/components/file-auto-download/file-auto-download.component.mjs +4 -4
- package/esm2022/lib/document-list/components/filter-header/filter-header.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-name-column/library-name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-role-column/library-role-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/library-status-column/library-status-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/name-column/name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/components/trashcan-name-column/trashcan-name-column.component.mjs +4 -4
- package/esm2022/lib/document-list/document-list.module.mjs +5 -5
- package/esm2022/lib/document-list/services/custom-resources.service.mjs +4 -4
- package/esm2022/lib/document-list/services/document-actions.service.mjs +4 -4
- package/esm2022/lib/document-list/services/document-list.service.mjs +4 -4
- package/esm2022/lib/document-list/services/folder-actions.service.mjs +4 -4
- package/esm2022/lib/document-list/services/lock.service.mjs +4 -4
- package/esm2022/lib/document-list/services/node-actions.service.mjs +4 -4
- package/esm2022/lib/group/services/group.service.mjs +4 -4
- package/esm2022/lib/legal-hold/services/legal-hold.service.mjs +4 -4
- package/esm2022/lib/material.module.mjs +5 -5
- package/esm2022/lib/mock/alfresco-api.service.mock.mjs +4 -4
- package/esm2022/lib/mock/search.component.mock.mjs +4 -4
- package/esm2022/lib/new-version-uploader/new-version-uploader.dialog.mjs +4 -4
- package/esm2022/lib/new-version-uploader/new-version-uploader.module.mjs +5 -5
- package/esm2022/lib/new-version-uploader/new-version-uploader.service.mjs +4 -4
- package/esm2022/lib/node-comments/node-comments.component.mjs +4 -4
- package/esm2022/lib/node-comments/node-comments.module.mjs +5 -5
- package/esm2022/lib/node-comments/services/node-comments.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-dialog.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission-panel.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/add-permission.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/add-permission/search-config-permission.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/inherited-button.directive.mjs +4 -4
- package/esm2022/lib/permission-manager/components/node-path-column/node-path-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-container/permission-container.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/permission-list/permission-list.service.mjs +4 -4
- package/esm2022/lib/permission-manager/components/pop-over.directive.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-icon-column/user-icon-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-name-column/user-name-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/components/user-role-column/user-role-column.component.mjs +4 -4
- package/esm2022/lib/permission-manager/permission-manager.module.mjs +5 -5
- package/esm2022/lib/permission-manager/services/node-permission-dialog.service.mjs +4 -4
- package/esm2022/lib/permission-manager/services/node-permission.service.mjs +4 -4
- package/esm2022/lib/pipes/content-pipe.module.mjs +5 -5
- package/esm2022/lib/pipes/node-name-tooltip.pipe.mjs +4 -4
- package/esm2022/lib/prediction/services/prediction.service.mjs +4 -4
- package/esm2022/lib/search/components/empty-search-result.component.mjs +4 -4
- package/esm2022/lib/search/components/reset-search.directive.mjs +4 -4
- package/esm2022/lib/search/components/search-check-list/search-check-list.component.mjs +4 -4
- package/esm2022/lib/search/components/search-chip-autocomplete-input/search-chip-autocomplete-input.component.mjs +4 -4
- package/esm2022/lib/search/components/search-chip-list/search-chip-list.component.mjs +4 -4
- package/esm2022/lib/search/components/search-control.component.mjs +4 -4
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.mjs +5 -5
- package/esm2022/lib/search/components/search-date-range-tabbed/search-date-range-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs +4 -4
- package/esm2022/lib/search/components/search-facet-field/search-facet-field.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter/search-filter-card/search-filter-card.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter/search-filter.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-autocomplete-chips/search-filter-autocomplete-chips.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip/search-facet-chip.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-chip-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-facet-chip-tabbed/search-facet-tabbed-content.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-filter-chips.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-filter-menu-card/search-filter-menu-card.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-chips/search-widget-chip/search-widget-chip.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-container/search-filter-container.component.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tab.directive.mjs +4 -4
- package/esm2022/lib/search/components/search-filter-tabbed/search-filter-tabbed.component.mjs +4 -4
- package/esm2022/lib/search/components/search-form/search-form.component.mjs +4 -4
- package/esm2022/lib/search/components/search-input/search-input.component.mjs +4 -4
- package/esm2022/lib/search/components/search-logical-filter/search-logical-filter.component.mjs +4 -4
- package/esm2022/lib/search/components/search-number-range/search-number-range.component.mjs +4 -4
- package/esm2022/lib/search/components/search-panel/search-panel.component.mjs +4 -4
- package/esm2022/lib/search/components/search-properties/search-properties.component.mjs +4 -4
- package/esm2022/lib/search/components/search-radio/search-radio.component.mjs +4 -4
- package/esm2022/lib/search/components/search-slider/search-slider.component.mjs +4 -4
- package/esm2022/lib/search/components/search-sorting-picker/search-sorting-picker.component.mjs +4 -4
- package/esm2022/lib/search/components/search-text/search-text.component.mjs +4 -4
- package/esm2022/lib/search/components/search-widget-container/search-widget-container.component.mjs +4 -4
- package/esm2022/lib/search/components/search.component.mjs +4 -4
- package/esm2022/lib/search/search.module.mjs +5 -5
- package/esm2022/lib/search/services/search-configuration.service.mjs +4 -4
- package/esm2022/lib/search/services/search-facet-filters.service.mjs +4 -4
- package/esm2022/lib/search/services/search-filter.service.mjs +4 -4
- package/esm2022/lib/search/services/search-header-query-builder.service.mjs +4 -4
- package/esm2022/lib/search/services/search-query-builder.service.mjs +4 -4
- package/esm2022/lib/search/services/search.service.mjs +4 -4
- package/esm2022/lib/search-ai/services/search-ai.service.mjs +4 -4
- package/esm2022/lib/security/services/security-controls-groups-marks-security.service.mjs +4 -4
- package/esm2022/lib/services/alfresco-api.service.mjs +4 -4
- package/esm2022/lib/tag/services/tag.service.mjs +4 -4
- package/esm2022/lib/tag/tag-actions/tag-actions.component.mjs +4 -4
- package/esm2022/lib/tag/tag-list/tag-list.component.mjs +4 -4
- package/esm2022/lib/tag/tag-node-list/tag-node-list.component.mjs +4 -4
- package/esm2022/lib/tag/tag.module.mjs +5 -5
- package/esm2022/lib/tag/tags-creator/tags-creator.component.mjs +4 -4
- package/esm2022/lib/testing/content.testing.module.mjs +5 -5
- package/esm2022/lib/tree/components/tree.component.mjs +4 -4
- package/esm2022/lib/tree/services/tree.service.mjs +4 -4
- package/esm2022/lib/tree/tree.module.mjs +5 -5
- package/esm2022/lib/tree-view/components/tree-view.component.mjs +4 -4
- package/esm2022/lib/tree-view/data/tree-view-datasource.mjs +4 -4
- package/esm2022/lib/tree-view/services/tree-view.service.mjs +4 -4
- package/esm2022/lib/tree-view/tree-view.module.mjs +5 -5
- package/esm2022/lib/upload/components/base-upload/upload-base.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-dialog.component.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-list-row.component.mjs +4 -4
- package/esm2022/lib/upload/components/file-uploading-list.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-button.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-drag-area.component.mjs +4 -4
- package/esm2022/lib/upload/components/upload-version-button.component.mjs +4 -4
- package/esm2022/lib/upload/directives/file-draggable.directive.mjs +4 -4
- package/esm2022/lib/upload/directives/toggle-icon.directive.mjs +4 -4
- package/esm2022/lib/upload/pipes/file-upload-error.pipe.mjs +4 -4
- package/esm2022/lib/upload/upload.module.mjs +5 -5
- package/esm2022/lib/version-compatibility/version-compatibility.directive.mjs +4 -4
- package/esm2022/lib/version-compatibility/version-compatibility.module.mjs +5 -5
- package/esm2022/lib/version-compatibility/version-compatibility.service.mjs +4 -4
- package/esm2022/lib/version-manager/content-version.service.mjs +4 -4
- package/esm2022/lib/version-manager/version-comparison.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-list.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-manager.component.mjs +4 -4
- package/esm2022/lib/version-manager/version-manager.module.mjs +5 -5
- package/esm2022/lib/version-manager/version-upload.component.mjs +4 -4
- package/esm2022/lib/viewer/alfresco-viewer.module.mjs +5 -5
- package/esm2022/lib/viewer/components/alfresco-viewer.component.mjs +4 -4
- package/fesm2022/adf-content-services.mjs +629 -629
- package/fesm2022/adf-content-services.mjs.map +1 -1
- package/lib/search/components/search-date-range-tabbed/search-date-range/search-date-range.component.d.ts +1 -1
- package/package.json +3 -3
|
@@ -157,13 +157,13 @@ export class SearchDateRangeComponent {
|
|
|
157
157
|
return true;
|
|
158
158
|
}
|
|
159
159
|
}
|
|
160
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
161
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
160
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeComponent, deps: [{ token: i1.FormBuilder }, { token: i2.UserPreferencesService }, { token: i3.DateAdapter }, { token: MAT_DATE_FORMATS }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchDateRangeComponent, isStandalone: true, selector: "adf-search-date-range", inputs: { dateFormat: "dateFormat", maxDate: "maxDate", field: "field", initialValue: "initialValue" }, outputs: { changed: "changed", valid: "valid" }, host: { classAttribute: "adf-search-date-range" }, providers: [
|
|
162
162
|
{ provide: DateAdapter, useClass: DateFnsAdapter, deps: [MAT_DATE_LOCALE] },
|
|
163
163
|
{ provide: MAT_DATE_FORMATS, useValue: MAT_DATE_FNS_FORMATS }
|
|
164
|
-
], ngImport: i0, template: "<div class=\"adf-search-date-range-container\" [formGroup]=\"form\">\n <mat-radio-group formControlName=\"dateRangeType\">\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.ANY\" data-automation-id=\"date-range-anytime\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.ANYTIME' | translate }}\n </mat-radio-button>\n </span>\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.IN_LAST\" data-automation-id=\"date-range-in-last\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.IN_LAST' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-input-field\" subscriptSizing=\"dynamic\">\n <input matInput [attr.aria-label]=\"'SEARCH.DATE_RANGE_ADVANCED.ARIA_LABEL.NUMBER_INPUT' | translate\"\n type=\"number\" min=\"1\" formControlName=\"inLastValue\"\n data-automation-id=\"date-range-in-last-input\" (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\">\n <mat-error *ngIf=\"form.controls.inLastValue.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.IN_LAST' | translate }}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-form-field-select\" subscriptSizing=\"dynamic\">\n <mat-select formControlName=\"inLastValueType\" data-automation-id=\"date-range-in-last-dropdown\">\n <mat-option data-automation-id=\"date-range-in-last-option-days\" [value]=\"InLastDateType.DAYS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.DAYS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-weeks\" [value]=\"InLastDateType.WEEKS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.WEEKS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-months\" [value]=\"InLastDateType.MONTHS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.MONTHS' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n </span>\n <span class=\"adf-search-date-range-container-row adf-search-date-range-container-row-date\">\n <mat-radio-button [value]=\"DateRangeType.BETWEEN\" data-automation-id=\"date-range-between\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.BETWEEN' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field\" subscriptSizing=\"dynamic\">\n <mat-date-range-input [rangePicker]=\"$any(picker)\" [max]=\"convertedMaxDate\">\n <input matStartDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.START_DATE' | translate }}\"\n data-automation-id=\"date-range-between-start-input\" [formControl]=\"betweenStartDateFormControl\" (change)=\"dateChanged($event, betweenStartDateFormControl)\">\n <input matEndDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.END_DATE' | translate }}\"\n data-automation-id=\"date-range-between-end-input\" [formControl]=\"betweenEndDateFormControl\" (change)=\"dateChanged($event, betweenEndDateFormControl)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" data-automation-id=\"date-range-between-datepicker-toggle\" />\n <mat-date-range-picker #picker />\n\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.REQUIRED' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </span>\n </mat-radio-group>\n</div>\n", styles: ["adf-search-date-range .adf-search-date-range-container{margin-top:20px;padding:10px}adf-search-date-range .adf-search-date-range-container .adf-search-date-range-form-field-select{width:180px;min-width:180px}adf-search-date-range .adf-search-date-range-container-row{display:flex;flex-direction:row;padding-bottom:21px;align-items:center}adf-search-date-range .adf-search-date-range-container-row-date{margin-top:8px}adf-search-date-range .adf-search-date-range-container-row .mat-mdc-select-arrow-wrapper{height:unset}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-input-field{width:75px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field{padding-left:10px;flex:1;margin-bottom:12px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex{align-items:center}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:.375em 0 4px}adf-search-date-range .adf-search-widget-extra-width{max-width:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i10.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i10.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i10.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i10.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i10.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
164
|
+
], ngImport: i0, template: "<div class=\"adf-search-date-range-container\" [formGroup]=\"form\">\n <mat-radio-group formControlName=\"dateRangeType\">\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.ANY\" data-automation-id=\"date-range-anytime\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.ANYTIME' | translate }}\n </mat-radio-button>\n </span>\n <span class=\"adf-search-date-range-container-row\">\n <mat-radio-button [value]=\"DateRangeType.IN_LAST\" data-automation-id=\"date-range-in-last\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.IN_LAST' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-input-field\" subscriptSizing=\"dynamic\">\n <input matInput [attr.aria-label]=\"'SEARCH.DATE_RANGE_ADVANCED.ARIA_LABEL.NUMBER_INPUT' | translate\"\n type=\"number\" min=\"1\" formControlName=\"inLastValue\"\n data-automation-id=\"date-range-in-last-input\" (input)=\"narrowDownAllowedCharacters($event)\"\n (keydown)=\"preventIncorrectNumberCharacters($event)\">\n <mat-error *ngIf=\"form.controls.inLastValue.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.IN_LAST' | translate }}</mat-error>\n </mat-form-field>\n <mat-form-field class=\"adf-search-date-range-form-field adf-search-date-range-form-field-select\" subscriptSizing=\"dynamic\">\n <mat-select formControlName=\"inLastValueType\" data-automation-id=\"date-range-in-last-dropdown\">\n <mat-option data-automation-id=\"date-range-in-last-option-days\" [value]=\"InLastDateType.DAYS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.DAYS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-weeks\" [value]=\"InLastDateType.WEEKS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.WEEKS' | translate }}</mat-option>\n <mat-option data-automation-id=\"date-range-in-last-option-months\" [value]=\"InLastDateType.MONTHS\">{{ 'SEARCH.DATE_RANGE_ADVANCED.IN_LAST_LABELS.MONTHS' | translate }}</mat-option>\n </mat-select>\n </mat-form-field>\n </span>\n <span class=\"adf-search-date-range-container-row adf-search-date-range-container-row-date\">\n <mat-radio-button [value]=\"DateRangeType.BETWEEN\" data-automation-id=\"date-range-between\">\n {{ 'SEARCH.DATE_RANGE_ADVANCED.OPTIONS.BETWEEN' | translate }}\n </mat-radio-button>\n <mat-form-field class=\"adf-search-date-range-form-field\" subscriptSizing=\"dynamic\">\n <mat-date-range-input [rangePicker]=\"$any(picker)\" [max]=\"convertedMaxDate\">\n <input matStartDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.START_DATE' | translate }}\"\n data-automation-id=\"date-range-between-start-input\" [formControl]=\"betweenStartDateFormControl\" (change)=\"dateChanged($event, betweenStartDateFormControl)\">\n <input matEndDate placeholder=\"{{ 'SEARCH.DATE_RANGE_ADVANCED.BETWEEN_PLACEHOLDERS.END_DATE' | translate }}\"\n data-automation-id=\"date-range-between-end-input\" [formControl]=\"betweenEndDateFormControl\" (change)=\"dateChanged($event, betweenEndDateFormControl)\">\n </mat-date-range-input>\n <mat-datepicker-toggle matSuffix [for]=\"picker\" data-automation-id=\"date-range-between-datepicker-toggle\" />\n <mat-date-range-picker #picker />\n\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenStartDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.START_DATE.REQUIRED' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.invalidDate\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.INVALID_FORMAT' | translate }}</mat-error>\n <mat-error *ngIf=\"betweenEndDateFormControl.errors?.required\">{{ 'SEARCH.DATE_RANGE_ADVANCED.ERROR.END_DATE.REQUIRED' | translate }}</mat-error>\n </mat-form-field>\n </span>\n </mat-radio-group>\n</div>\n", styles: ["adf-search-date-range .adf-search-date-range-container{margin-top:20px;padding:10px}adf-search-date-range .adf-search-date-range-container .adf-search-date-range-form-field-select{width:180px;min-width:180px}adf-search-date-range .adf-search-date-range-container-row{display:flex;flex-direction:row;padding-bottom:21px;align-items:center}adf-search-date-range .adf-search-date-range-container-row-date{margin-top:8px}adf-search-date-range .adf-search-date-range-container-row .mat-mdc-select-arrow-wrapper{height:unset}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-input-field{width:75px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field{padding-left:10px;flex:1;margin-bottom:12px}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex{align-items:center}adf-search-date-range .adf-search-date-range-container-row .adf-search-date-range-form-field .mat-mdc-form-field-flex .mat-mdc-form-field-infix{padding:.375em 0 4px}adf-search-date-range .adf-search-widget-extra-width{max-width:500px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i5.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i5.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.MinValidator, selector: "input[type=number][min][formControlName],input[type=number][min][formControl],input[type=number][min][ngModel]", inputs: ["min"] }, { kind: "directive", type: i1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i6.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i7.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i7.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i7.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i8.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: MatSelectModule }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i3.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "ngmodule", type: MatDatepickerModule }, { kind: "component", type: i10.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i10.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i10.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i10.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i10.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
165
165
|
}
|
|
166
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
166
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeComponent, decorators: [{
|
|
167
167
|
type: Component,
|
|
168
168
|
args: [{ selector: 'adf-search-date-range', standalone: true, imports: [
|
|
169
169
|
CommonModule,
|
|
@@ -194,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
194
194
|
}], valid: [{
|
|
195
195
|
type: Output
|
|
196
196
|
}] } });
|
|
197
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNs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Z0JBUU4sT0FBTztzQkFETixNQUFNO2dCQUdQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbmRPZkRheSwgaXNBZnRlciwgaXNCZWZvcmUsIGlzVmFsaWQsIHBhcnNlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSwgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERhdGVGbnNBZGFwdGVyLCBNQVRfREFURV9GTlNfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLWRhdGUtZm5zLWFkYXB0ZXInO1xuaW1wb3J0IHsgSW5MYXN0RGF0ZVR5cGUgfSBmcm9tICcuL2luLWxhc3QtZGF0ZS10eXBlJztcbmltcG9ydCB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuL2RhdGUtcmFuZ2UtdHlwZSc7XG5pbXBvcnQgeyBTZWFyY2hEYXRlUmFuZ2UgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfREFURV9ESVNQTEFZX0ZPUk1BVCA9ICdkZC1NTU0teXknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlRm5zQWRhcHRlciwgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTUFUX0RBVEVfRk5TX0ZPUk1BVFMgfVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXNlYXJjaC1kYXRlLXJhbmdlJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaERhdGVSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBkYXRlRm9ybWF0ID0gREVGQVVMVF9EQVRFX0RJU1BMQVlfRk9STUFUO1xuICAgIEBJbnB1dCgpXG4gICAgbWF4RGF0ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHNldCBpbml0aWFsVmFsdWUodmFsdWU6IFNlYXJjaERhdGVSYW5nZSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICB2YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwPFNlYXJjaERhdGVSYW5nZT4oe1xuICAgICAgICBkYXRlUmFuZ2VUeXBlOiBEYXRlUmFuZ2VUeXBlLkFOWSxcbiAgICAgICAgaW5MYXN0VmFsdWVUeXBlOiBJbkxhc3REYXRlVHlwZS5EQVlTLFxuICAgICAgICBpbkxhc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuU3RhcnREYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGJldHdlZW5FbmREYXRlOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgICBiZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHMuYmV0d2VlblN0YXJ0RGF0ZTtcbiAgICBiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzLmJldHdlZW5FbmREYXRlO1xuICAgIGNvbnZlcnRlZE1heERhdGU6IERhdGU7XG5cbiAgICByZWFkb25seSBEYXRlUmFuZ2VUeXBlID0gRGF0ZVJhbmdlVHlwZTtcbiAgICByZWFkb25seSBJbkxhc3REYXRlVHlwZSA9IEluTGFzdERhdGVUeXBlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGVGbnNBZGFwdGVyPixcbiAgICAgICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcml2YXRlIGRhdGVGb3JtYXRDb25maWc6IE1hdERhdGVGb3JtYXRzXG4gICAgKSB7fVxuXG4gICAgcmVhZG9ubHkgZW5kRGF0ZVZhbGlkYXRvciA9IChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGlzQmVmb3JlKGZvcm1Db250cm9sLnZhbHVlLCB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC52YWx1ZSkgfHwgaXNBZnRlcihmb3JtQ29udHJvbC52YWx1ZSwgdGhpcy5jb252ZXJ0ZWRNYXhEYXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkRGF0ZTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge307XG4gICAgfTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXRDb25maWcuZGlzcGxheS5kYXRlSW5wdXQgPSB0aGlzLmRhdGVGb3JtYXQ7XG4gICAgICAgIHRoaXMuY29udmVydGVkTWF4RGF0ZSA9IGVuZE9mRGF5KHRoaXMubWF4RGF0ZSAmJiB0aGlzLm1heERhdGUgIT09ICd0b2RheScgPyBwYXJzZSh0aGlzLm1heERhdGUsIHRoaXMuZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSkgOiBuZXcgRGF0ZSgpKTtcbiAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICAgICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobG9jYWxlKSA9PiB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZShEYXRlRm5zVXRpbHMuZ2V0TG9jYWxlRnJvbVN0cmluZyhsb2NhbGUpKSk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5kYXRlUmFuZ2VUeXBlLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRlUmFuZ2VUeXBlKSA9PiB0aGlzLnVwZGF0ZVZhbGlkYXRvcnMoZGF0ZVJhbmdlVHlwZSkpO1xuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKCkpO1xuICAgIH1cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRvcnMoZGF0ZVJhbmdlVHlwZTogRGF0ZVJhbmdlVHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGRhdGVSYW5nZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5CRVRXRUVOOlxuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5iZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZW5kRGF0ZVZhbGlkYXRvcl0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5JTl9MQVNUOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmluTGFzdFZhbHVlLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkLmVtaXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICB9XG5cbiAgICBkYXRlQ2hhbmdlZChldmVudDogRXZlbnQsIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgaWYgKGV2ZW50Py50YXJnZXRbJ3ZhbHVlJ10/LnRyaW0oKSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlKGV2ZW50LnRhcmdldFsndmFsdWUnXSwgdGhpcy5kYXRlRm9ybWF0LCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZvcm1Db250cm9sLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkRGF0ZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtQ29udHJvbC5lcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWREYXRlOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmFycm93RG93bkFsbG93ZWRDaGFyYWN0ZXJzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAocGFyc2VJbnQoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgMTApID09PSAwKSB7XG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJldmVudEluY29ycmVjdE51bWJlckNoYXJhY3RlcnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICBjYXNlICdlJzpcbiAgICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgICAgICAgIHJldHVybiAhIShldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJkYXRlUmFuZ2VUeXBlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtY29udGFpbmVyLXJvd1wiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cIkRhdGVSYW5nZVR5cGUuQU5ZXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1hbnl0aW1lXCI+XG4gICAgICAgIHt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5PUFRJT05TLkFOWVRJTUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWRmLXNlYXJjaC1kYXRlLXJhbmdlLWNvbnRhaW5lci1yb3dcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJEYXRlUmFuZ2VUeXBlLklOX0xBU1RcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3RcIj5cbiAgICAgICAge3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELk9QVElPTlMuSU5fTEFTVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1mb3JtLWZpZWxkIGFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1pbnB1dC1maWVsZFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkFSSUFfTEFCRUwuTlVNQkVSX0lOUFVUJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cImluTGFzdFZhbHVlXCJcbiAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1pbnB1dFwiIChpbnB1dCk9XCJuYXJyb3dEb3duQWxsb3dlZENoYXJhY3RlcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bik9XCJwcmV2ZW50SW5jb3JyZWN0TnVtYmVyQ2hhcmFjdGVycygkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLmluTGFzdFZhbHVlLmVycm9ycz8ucmVxdWlyZWRcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuSU5fTEFTVCcgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZCBhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZC1zZWxlY3RcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluTGFzdFZhbHVlVHlwZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1kcm9wZG93blwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24tZGF5c1wiIFt2YWx1ZV09XCJJbkxhc3REYXRlVHlwZS5EQVlTXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELklOX0xBU1RfTEFCRUxTLkRBWVMnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24td2Vla3NcIiBbdmFsdWVdPVwiSW5MYXN0RGF0ZVR5cGUuV0VFS1NcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9MQUJFTFMuV0VFS1MnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24tbW9udGhzXCIgW3ZhbHVlXT1cIkluTGFzdERhdGVUeXBlLk1PTlRIU1wiPnt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5JTl9MQVNUX0xBQkVMUy5NT05USFMnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXItcm93IGFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXItcm93LWRhdGVcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJEYXRlUmFuZ2VUeXBlLkJFVFdFRU5cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW5cIj5cbiAgICAgICAge3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELk9QVElPTlMuQkVUV0VFTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1mb3JtLWZpZWxkXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgW3JhbmdlUGlja2VyXT1cIiRhbnkocGlja2VyKVwiIFttYXhdPVwiY29udmVydGVkTWF4RGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuQkVUV0VFTl9QTEFDRUhPTERFUlMuU1RBUlRfREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tc3RhcnQtaW5wdXRcIiBbZm9ybUNvbnRyb2xdPVwiYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sXCIgKGNoYW5nZSk9XCJkYXRlQ2hhbmdlZCgkZXZlbnQsIGJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbClcIj5cbiAgICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cInt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5CRVRXRUVOX1BMQUNFSE9MREVSUy5FTkRfREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tZW5kLWlucHV0XCIgW2Zvcm1Db250cm9sXT1cImJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2xcIiAoY2hhbmdlKT1cImRhdGVDaGFuZ2VkKCRldmVudCwgYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbClcIj5cbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tZGF0ZXBpY2tlci10b2dnbGVcIiAvPlxuICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgLz5cblxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmVycm9ycz8uaW52YWxpZERhdGVcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuU1RBUlRfREFURS5JTlZBTElEX0ZPUk1BVCcgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5lcnJvcnM/LnJlcXVpcmVkXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLlNUQVJUX0RBVEUuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLmVycm9ycz8uaW52YWxpZERhdGVcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuRU5EX0RBVEUuSU5WQUxJRF9GT1JNQVQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLmVycm9ycz8ucmVxdWlyZWRcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuRU5EX0RBVEUuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvc3Bhbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cbiJdfQ==
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGliL2NvbnRlbnQtc2VydmljZXMvc3JjL2xpYi9zZWFyY2gvY29tcG9uZW50cy9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQvc2VhcmNoLWRhdGUtcmFuZ2Uvc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM5SCxPQUFPLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBa0IsTUFBTSx3QkFBd0IsQ0FBQztBQUN4RyxPQUFPLEVBQUUsY0FBYyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDMUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUVsRCxPQUFPLEVBQUUsV0FBVyxFQUFFLG1CQUFtQixFQUFzQixVQUFVLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRyxPQUFPLEVBQUUsWUFBWSxFQUFFLHNCQUFzQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDaEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7Ozs7Ozs7Ozs7O0FBRWhFLE1BQU0sMkJBQTJCLEdBQUcsV0FBVyxDQUFDO0FBd0JoRCxNQUFNLE9BQU8sd0JBQXdCO0lBT2pDLElBQ0ksWUFBWSxDQUFDLEtBQXNCO1FBQ25DLElBQUksS0FBSyxFQUFFLENBQUM7WUFDUixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0wsQ0FBQztJQXVCRCxZQUNZLFdBQXdCLEVBQ3hCLHNCQUE4QyxFQUM5QyxXQUF3QyxFQUNkLGdCQUFnQztRQUgxRCxnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QiwyQkFBc0IsR0FBdEIsc0JBQXNCLENBQXdCO1FBQzlDLGdCQUFXLEdBQVgsV0FBVyxDQUE2QjtRQUNkLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBZ0I7UUFyQ3RFLGVBQVUsR0FBRywyQkFBMkIsQ0FBQztRQWF6QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7UUFFdkQsVUFBSyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFFcEMsU0FBSSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFrQjtZQUMzQyxhQUFhLEVBQUUsYUFBYSxDQUFDLEdBQUc7WUFDaEMsZUFBZSxFQUFFLGNBQWMsQ0FBQyxJQUFJO1lBQ3BDLFdBQVcsRUFBRSxTQUFTO1lBQ3RCLGdCQUFnQixFQUFFLFNBQVM7WUFDM0IsY0FBYyxFQUFFLFNBQVM7U0FDNUIsQ0FBQyxDQUFDO1FBQ0gsZ0NBQTJCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUM7UUFDbEUsOEJBQXlCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDO1FBR3JELGtCQUFhLEdBQUcsYUFBYSxDQUFDO1FBQzlCLG1CQUFjLEdBQUcsY0FBYyxDQUFDO1FBRXhCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFTeEMscUJBQWdCLEdBQUcsQ0FBQyxXQUErQixFQUFxQyxFQUFFO1lBQy9GLElBQUksUUFBUSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEtBQUssQ0FBQyxJQUFJLE9BQU8sQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxFQUFFLENBQUM7Z0JBQzNILE9BQU87b0JBQ0gsV0FBVyxFQUFFLElBQUk7aUJBQ3BCLENBQUM7WUFDTixDQUFDO1lBQ0QsT0FBTyxFQUFFLENBQUM7UUFDZCxDQUFDLENBQUM7SUFUQyxDQUFDO0lBV0osUUFBUTtRQUNKLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7UUFDMUQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssT0FBTyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxzQkFBc0I7YUFDdEIsTUFBTSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQzthQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNqRyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWTthQUN4QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDeEUsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBQ08sZ0JBQWdCLENBQUMsYUFBNEI7UUFDakQsUUFBUSxhQUFhLEVBQUUsQ0FBQztZQUNwQixLQUFLLGFBQWEsQ0FBQyxPQUFPO2dCQUN0QixJQUFJLENBQUMsMkJBQTJCLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDcEUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGFBQWEsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQztnQkFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1YsS0FBSyxhQUFhLENBQUMsT0FBTztnQkFDdEIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7Z0JBQ2xFLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxDQUFDLHlCQUF5QixDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNqRCxNQUFNO1lBQ1Y7Z0JBQ0ksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUNqRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ25ELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDakQsTUFBTTtRQUNkLENBQUM7UUFDRCxJQUFJLENBQUMsMkJBQTJCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUMxRCxJQUFJLENBQUMseUJBQXlCLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUN4RCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUM1RCxDQUFDO0lBRU8sUUFBUTtRQUNaLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBWSxFQUFFLFdBQStCO1FBQ3JELElBQUksS0FBSyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDO1lBQ2pDLE1BQU0sSUFBSSxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDakIsV0FBVyxDQUFDLFNBQVMsQ0FBQztvQkFDbEIsR0FBRyxXQUFXLENBQUMsTUFBTTtvQkFDckIsUUFBUSxFQUFFLEtBQUs7b0JBQ2YsV0FBVyxFQUFFLElBQUk7aUJBQ3BCLENBQUMsQ0FBQztZQUNQLENBQUM7aUJBQU0sQ0FBQztnQkFDSixXQUFXLENBQUMsU0FBUyxDQUFDO29CQUNsQixHQUFHLFdBQVcsQ0FBQyxNQUFNO29CQUNyQixXQUFXLEVBQUUsS0FBSztpQkFDckIsQ0FBQyxDQUFDO2dCQUNILFdBQVcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDL0IsQ0FBQztRQUNMLENBQUM7SUFDTCxDQUFDO0lBRUQsMkJBQTJCLENBQUMsS0FBWTtRQUNwQyxJQUFJLFFBQVEsQ0FBRSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDOUQsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUNsRCxDQUFDO2FBQU0sQ0FBQztZQUNILEtBQUssQ0FBQyxNQUEyQixDQUFDLEtBQUssR0FBSSxLQUFLLENBQUMsTUFBMkIsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUMzRyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdDQUFnQyxDQUFDLEtBQW9CO1FBQ2pELFFBQVEsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssR0FBRyxDQUFDO1lBQ1QsS0FBSyxHQUFHLENBQUM7WUFDVCxLQUFLLEdBQUcsQ0FBQztZQUNULEtBQUssR0FBRztnQkFDSixPQUFPLEtBQUssQ0FBQztZQUNqQixLQUFLLEdBQUc7Z0JBQ0osT0FBTyxDQUFDLENBQUUsS0FBSyxDQUFDLE1BQTJCLENBQUMsS0FBSyxDQUFDO1lBQ3REO2dCQUNJLE9BQU8sSUFBSSxDQUFDO1FBQ3BCLENBQUM7SUFDTCxDQUFDOytHQXBJUSx3QkFBd0IsOEdBdUNyQixnQkFBZ0I7bUdBdkNuQix3QkFBd0IsZ1JBUHRCO1lBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsZUFBZSxDQUFDLEVBQUU7WUFDM0UsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO1NBQ2hFLDBCQ3ZETCxvbklBZ0RBLHVxQ0RQUSxZQUFZLGtJQUNaLGNBQWMsb2xCQUNkLG1CQUFtQixtM0NBQ25CLGVBQWUsMkZBQ2Ysa0JBQWtCLHVjQUNsQixjQUFjLDBXQUNkLGVBQWUsbXJCQUNmLG1CQUFtQjs7NEZBV2Qsd0JBQXdCO2tCQXRCcEMsU0FBUzsrQkFDSSx1QkFBdUIsY0FDckIsSUFBSSxXQUNQO3dCQUNMLFlBQVk7d0JBQ1osY0FBYzt3QkFDZCxtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsbUJBQW1CO3FCQUN0QixhQUdVO3dCQUNQLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxDQUFDLGVBQWUsQ0FBQyxFQUFFO3dCQUMzRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7cUJBQ2hFLGlCQUNjLGlCQUFpQixDQUFDLElBQUksUUFDL0IsRUFBRSxLQUFLLEVBQUUsdUJBQXVCLEVBQUU7OzBCQXlDbkMsTUFBTTsyQkFBQyxnQkFBZ0I7eUNBckM1QixVQUFVO3NCQURULEtBQUs7Z0JBR04sT0FBTztzQkFETixLQUFLO2dCQUdOLEtBQUs7c0JBREosS0FBSztnQkFHRixZQUFZO3NCQURmLEtBQUs7Z0JBUU4sT0FBTztzQkFETixNQUFNO2dCQUdQLEtBQUs7c0JBREosTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qIVxuICogQGxpY2Vuc2VcbiAqIENvcHlyaWdodCDCqSAyMDA1LTIwMjUgSHlsYW5kIFNvZnR3YXJlLCBJbmMuIGFuZCBpdHMgYWZmaWxpYXRlcy4gQWxsIHJpZ2h0cyByZXNlcnZlZC5cbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0IHsgQ29tcG9uZW50LCBEZXN0cm95UmVmLCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBlbmRPZkRheSwgaXNBZnRlciwgaXNCZWZvcmUsIGlzVmFsaWQsIHBhcnNlIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMsIE1BVF9EQVRFX0xPQ0FMRSwgTWF0RGF0ZUZvcm1hdHMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IERhdGVGbnNBZGFwdGVyLCBNQVRfREFURV9GTlNfRk9STUFUUyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsLWRhdGUtZm5zLWFkYXB0ZXInO1xuaW1wb3J0IHsgSW5MYXN0RGF0ZVR5cGUgfSBmcm9tICcuL2luLWxhc3QtZGF0ZS10eXBlJztcbmltcG9ydCB7IERhdGVSYW5nZVR5cGUgfSBmcm9tICcuL2RhdGUtcmFuZ2UtdHlwZSc7XG5pbXBvcnQgeyBTZWFyY2hEYXRlUmFuZ2UgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBVbnR5cGVkRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlRm5zVXRpbHMsIFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsIFVzZXJQcmVmZXJlbmNlVmFsdWVzIH0gZnJvbSAnQGFsZnJlc2NvL2FkZi1jb3JlJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XG5pbXBvcnQgeyBNYXREYXRlcGlja2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGF0ZXBpY2tlcic7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmNvbnN0IERFRkFVTFRfREFURV9ESVNQTEFZX0ZPUk1BVCA9ICdkZC1NTU0teXknO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIENvbW1vbk1vZHVsZSxcbiAgICAgICAgTWF0UmFkaW9Nb2R1bGUsXG4gICAgICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICAgICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgICAgICBNYXRJbnB1dE1vZHVsZSxcbiAgICAgICAgTWF0U2VsZWN0TW9kdWxlLFxuICAgICAgICBNYXREYXRlcGlja2VyTW9kdWxlXG4gICAgXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWRhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUNsYXNzOiBEYXRlRm5zQWRhcHRlciwgZGVwczogW01BVF9EQVRFX0xPQ0FMRV0gfSxcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogTUFUX0RBVEVfRk5TX0ZPUk1BVFMgfVxuICAgIF0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBob3N0OiB7IGNsYXNzOiAnYWRmLXNlYXJjaC1kYXRlLXJhbmdlJyB9XG59KVxuZXhwb3J0IGNsYXNzIFNlYXJjaERhdGVSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBkYXRlRm9ybWF0ID0gREVGQVVMVF9EQVRFX0RJU1BMQVlfRk9STUFUO1xuICAgIEBJbnB1dCgpXG4gICAgbWF4RGF0ZTogc3RyaW5nO1xuICAgIEBJbnB1dCgpXG4gICAgZmllbGQ6IHN0cmluZztcbiAgICBASW5wdXQoKVxuICAgIHNldCBpbml0aWFsVmFsdWUodmFsdWU6IFNlYXJjaERhdGVSYW5nZSkge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZm9ybS5wYXRjaFZhbHVlKHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBPdXRwdXQoKVxuICAgIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPj4oKTtcbiAgICBAT3V0cHV0KClcbiAgICB2YWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwPFNlYXJjaERhdGVSYW5nZT4oe1xuICAgICAgICBkYXRlUmFuZ2VUeXBlOiBEYXRlUmFuZ2VUeXBlLkFOWSxcbiAgICAgICAgaW5MYXN0VmFsdWVUeXBlOiBJbkxhc3REYXRlVHlwZS5EQVlTLFxuICAgICAgICBpbkxhc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuU3RhcnREYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGJldHdlZW5FbmREYXRlOiB1bmRlZmluZWRcbiAgICB9KTtcbiAgICBiZXR3ZWVuU3RhcnREYXRlRm9ybUNvbnRyb2wgPSB0aGlzLmZvcm0uY29udHJvbHMuYmV0d2VlblN0YXJ0RGF0ZTtcbiAgICBiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sID0gdGhpcy5mb3JtLmNvbnRyb2xzLmJldHdlZW5FbmREYXRlO1xuICAgIGNvbnZlcnRlZE1heERhdGU6IERhdGU7XG5cbiAgICByZWFkb25seSBEYXRlUmFuZ2VUeXBlID0gRGF0ZVJhbmdlVHlwZTtcbiAgICByZWFkb25seSBJbkxhc3REYXRlVHlwZSA9IEluTGFzdERhdGVUeXBlO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgICAgICBwcml2YXRlIHVzZXJQcmVmZXJlbmNlc1NlcnZpY2U6IFVzZXJQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGVGbnNBZGFwdGVyPixcbiAgICAgICAgQEluamVjdChNQVRfREFURV9GT1JNQVRTKSBwcml2YXRlIGRhdGVGb3JtYXRDb25maWc6IE1hdERhdGVGb3JtYXRzXG4gICAgKSB7fVxuXG4gICAgcmVhZG9ubHkgZW5kRGF0ZVZhbGlkYXRvciA9IChmb3JtQ29udHJvbDogVW50eXBlZEZvcm1Db250cm9sKTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gfCBudWxsID0+IHtcbiAgICAgICAgaWYgKGlzQmVmb3JlKGZvcm1Db250cm9sLnZhbHVlLCB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC52YWx1ZSkgfHwgaXNBZnRlcihmb3JtQ29udHJvbC52YWx1ZSwgdGhpcy5jb252ZXJ0ZWRNYXhEYXRlKSkge1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBpbnZhbGlkRGF0ZTogdHJ1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge307XG4gICAgfTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRhdGVGb3JtYXRDb25maWcuZGlzcGxheS5kYXRlSW5wdXQgPSB0aGlzLmRhdGVGb3JtYXQ7XG4gICAgICAgIHRoaXMuY29udmVydGVkTWF4RGF0ZSA9IGVuZE9mRGF5KHRoaXMubWF4RGF0ZSAmJiB0aGlzLm1heERhdGUgIT09ICd0b2RheScgPyBwYXJzZSh0aGlzLm1heERhdGUsIHRoaXMuZGF0ZUZvcm1hdCwgbmV3IERhdGUoKSkgOiBuZXcgRGF0ZSgpKTtcbiAgICAgICAgdGhpcy51c2VyUHJlZmVyZW5jZXNTZXJ2aWNlXG4gICAgICAgICAgICAuc2VsZWN0KFVzZXJQcmVmZXJlbmNlVmFsdWVzLkxvY2FsZSlcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgobG9jYWxlKSA9PiB0aGlzLmRhdGVBZGFwdGVyLnNldExvY2FsZShEYXRlRm5zVXRpbHMuZ2V0TG9jYWxlRnJvbVN0cmluZyhsb2NhbGUpKSk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5kYXRlUmFuZ2VUeXBlLnZhbHVlQ2hhbmdlc1xuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkYXRlUmFuZ2VUeXBlKSA9PiB0aGlzLnVwZGF0ZVZhbGlkYXRvcnMoZGF0ZVJhbmdlVHlwZSkpO1xuICAgICAgICB0aGlzLmZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpLnN1YnNjcmliZSgoKSA9PiB0aGlzLm9uQ2hhbmdlKCkpO1xuICAgIH1cbiAgICBwcml2YXRlIHVwZGF0ZVZhbGlkYXRvcnMoZGF0ZVJhbmdlVHlwZTogRGF0ZVJhbmdlVHlwZSkge1xuICAgICAgICBzd2l0Y2ggKGRhdGVSYW5nZVR5cGUpIHtcbiAgICAgICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5CRVRXRUVOOlxuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoVmFsaWRhdG9ycy5yZXF1aXJlZCk7XG4gICAgICAgICAgICAgICAgdGhpcy5iZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLnNldFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIHRoaXMuZW5kRGF0ZVZhbGlkYXRvcl0pO1xuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgRGF0ZVJhbmdlVHlwZS5JTl9MQVNUOlxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS5zZXRWYWxpZGF0b3JzKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgdGhpcy5mb3JtLmNvbnRyb2xzLmluTGFzdFZhbHVlLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICAgICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC5jbGVhclZhbGlkYXRvcnMoKTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbC51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgICAgIHRoaXMuZm9ybS5jb250cm9scy5pbkxhc3RWYWx1ZS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBvbkNoYW5nZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZm9ybS52YWxpZCkge1xuICAgICAgICAgICAgdGhpcy5jaGFuZ2VkLmVtaXQodGhpcy5mb3JtLnZhbHVlKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnZhbGlkLmVtaXQodGhpcy5mb3JtLnZhbGlkKTtcbiAgICB9XG5cbiAgICBkYXRlQ2hhbmdlZChldmVudDogRXZlbnQsIGZvcm1Db250cm9sOiBVbnR5cGVkRm9ybUNvbnRyb2wpIHtcbiAgICAgICAgaWYgKGV2ZW50Py50YXJnZXRbJ3ZhbHVlJ10/LnRyaW0oKSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlKGV2ZW50LnRhcmdldFsndmFsdWUnXSwgdGhpcy5kYXRlRm9ybWF0LCBuZXcgRGF0ZSgpKTtcbiAgICAgICAgICAgIGlmICghaXNWYWxpZChkYXRlKSkge1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgICAgIC4uLmZvcm1Db250cm9sLmVycm9ycyxcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkRGF0ZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBmb3JtQ29udHJvbC5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgICAgICAgICAuLi5mb3JtQ29udHJvbC5lcnJvcnMsXG4gICAgICAgICAgICAgICAgICAgIGludmFsaWREYXRlOiBmYWxzZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGRhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmFycm93RG93bkFsbG93ZWRDaGFyYWN0ZXJzKGV2ZW50OiBFdmVudCkge1xuICAgICAgICBpZiAocGFyc2VJbnQoKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZSwgMTApID09PSAwKSB7XG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gJyc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAoZXZlbnQudGFyZ2V0IGFzIEhUTUxJbnB1dEVsZW1lbnQpLnZhbHVlID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50KS52YWx1ZS5yZXBsYWNlKC9cXEQvZywgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJldmVudEluY29ycmVjdE51bWJlckNoYXJhY3RlcnMoZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiBib29sZWFuIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJy4nOlxuICAgICAgICAgICAgY2FzZSAnLSc6XG4gICAgICAgICAgICBjYXNlICdlJzpcbiAgICAgICAgICAgIGNhc2UgJysnOlxuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIGNhc2UgJzAnOlxuICAgICAgICAgICAgICAgIHJldHVybiAhIShldmVudC50YXJnZXQgYXMgSFRNTElucHV0RWxlbWVudCkudmFsdWU7XG4gICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXJcIiBbZm9ybUdyb3VwXT1cImZvcm1cIj5cbiAgPG1hdC1yYWRpby1ncm91cCBmb3JtQ29udHJvbE5hbWU9XCJkYXRlUmFuZ2VUeXBlXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtY29udGFpbmVyLXJvd1wiPlxuICAgICAgPG1hdC1yYWRpby1idXR0b24gW3ZhbHVlXT1cIkRhdGVSYW5nZVR5cGUuQU5ZXCIgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZS1yYW5nZS1hbnl0aW1lXCI+XG4gICAgICAgIHt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5PUFRJT05TLkFOWVRJTUUnIHwgdHJhbnNsYXRlIH19XG4gICAgICA8L21hdC1yYWRpby1idXR0b24+XG4gICAgPC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiYWRmLXNlYXJjaC1kYXRlLXJhbmdlLWNvbnRhaW5lci1yb3dcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJEYXRlUmFuZ2VUeXBlLklOX0xBU1RcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWluLWxhc3RcIj5cbiAgICAgICAge3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELk9QVElPTlMuSU5fTEFTVCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1mb3JtLWZpZWxkIGFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1pbnB1dC1maWVsZFwiIHN1YnNjcmlwdFNpemluZz1cImR5bmFtaWNcIj5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IFthdHRyLmFyaWEtbGFiZWxdPVwiJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkFSSUFfTEFCRUwuTlVNQkVSX0lOUFVUJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAgICB0eXBlPVwibnVtYmVyXCIgbWluPVwiMVwiIGZvcm1Db250cm9sTmFtZT1cImluTGFzdFZhbHVlXCJcbiAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1pbnB1dFwiIChpbnB1dCk9XCJuYXJyb3dEb3duQWxsb3dlZENoYXJhY3RlcnMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAoa2V5ZG93bik9XCJwcmV2ZW50SW5jb3JyZWN0TnVtYmVyQ2hhcmFjdGVycygkZXZlbnQpXCI+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJmb3JtLmNvbnRyb2xzLmluTGFzdFZhbHVlLmVycm9ycz8ucmVxdWlyZWRcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuSU5fTEFTVCcgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZCBhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtZm9ybS1maWVsZC1zZWxlY3RcIiBzdWJzY3JpcHRTaXppbmc9XCJkeW5hbWljXCI+XG4gICAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluTGFzdFZhbHVlVHlwZVwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1kcm9wZG93blwiPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24tZGF5c1wiIFt2YWx1ZV09XCJJbkxhc3REYXRlVHlwZS5EQVlTXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELklOX0xBU1RfTEFCRUxTLkRBWVMnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24td2Vla3NcIiBbdmFsdWVdPVwiSW5MYXN0RGF0ZVR5cGUuV0VFS1NcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9MQUJFTFMuV0VFS1MnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICAgIDxtYXQtb3B0aW9uIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGUtcmFuZ2UtaW4tbGFzdC1vcHRpb24tbW9udGhzXCIgW3ZhbHVlXT1cIkluTGFzdERhdGVUeXBlLk1PTlRIU1wiPnt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5JTl9MQVNUX0xBQkVMUy5NT05USFMnIHwgdHJhbnNsYXRlIH19PC9tYXQtb3B0aW9uPlxuICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXItcm93IGFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1jb250YWluZXItcm93LWRhdGVcIj5cbiAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJEYXRlUmFuZ2VUeXBlLkJFVFdFRU5cIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW5cIj5cbiAgICAgICAge3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELk9QVElPTlMuQkVUV0VFTicgfCB0cmFuc2xhdGUgfX1cbiAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cImFkZi1zZWFyY2gtZGF0ZS1yYW5nZS1mb3JtLWZpZWxkXCIgc3Vic2NyaXB0U2l6aW5nPVwiZHluYW1pY1wiPlxuICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtaW5wdXQgW3JhbmdlUGlja2VyXT1cIiRhbnkocGlja2VyKVwiIFttYXhdPVwiY29udmVydGVkTWF4RGF0ZVwiPlxuICAgICAgICAgIDxpbnB1dCBtYXRTdGFydERhdGUgcGxhY2Vob2xkZXI9XCJ7eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuQkVUV0VFTl9QTEFDRUhPTERFUlMuU1RBUlRfREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tc3RhcnQtaW5wdXRcIiBbZm9ybUNvbnRyb2xdPVwiYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sXCIgKGNoYW5nZSk9XCJkYXRlQ2hhbmdlZCgkZXZlbnQsIGJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbClcIj5cbiAgICAgICAgICA8aW5wdXQgbWF0RW5kRGF0ZSBwbGFjZWhvbGRlcj1cInt7ICdTRUFSQ0guREFURV9SQU5HRV9BRFZBTkNFRC5CRVRXRUVOX1BMQUNFSE9MREVSUy5FTkRfREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgICBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tZW5kLWlucHV0XCIgW2Zvcm1Db250cm9sXT1cImJldHdlZW5FbmREYXRlRm9ybUNvbnRyb2xcIiAoY2hhbmdlKT1cImRhdGVDaGFuZ2VkKCRldmVudCwgYmV0d2VlbkVuZERhdGVGb3JtQ29udHJvbClcIj5cbiAgICAgICAgPC9tYXQtZGF0ZS1yYW5nZS1pbnB1dD5cbiAgICAgICAgPG1hdC1kYXRlcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRlLXJhbmdlLWJldHdlZW4tZGF0ZXBpY2tlci10b2dnbGVcIiAvPlxuICAgICAgICA8bWF0LWRhdGUtcmFuZ2UtcGlja2VyICNwaWNrZXIgLz5cblxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwiYmV0d2VlblN0YXJ0RGF0ZUZvcm1Db250cm9sLmVycm9ycz8uaW52YWxpZERhdGVcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuU1RBUlRfREFURS5JTlZBTElEX0ZPUk1BVCcgfCB0cmFuc2xhdGUgfX08L21hdC1lcnJvcj5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImJldHdlZW5TdGFydERhdGVGb3JtQ29udHJvbC5lcnJvcnM/LnJlcXVpcmVkXCI+e3sgJ1NFQVJDSC5EQVRFX1JBTkdFX0FEVkFOQ0VELkVSUk9SLlNUQVJUX0RBVEUuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLmVycm9ycz8uaW52YWxpZERhdGVcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuRU5EX0RBVEUuSU5WQUxJRF9GT1JNQVQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICAgIDxtYXQtZXJyb3IgKm5nSWY9XCJiZXR3ZWVuRW5kRGF0ZUZvcm1Db250cm9sLmVycm9ycz8ucmVxdWlyZWRcIj57eyAnU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuRVJST1IuRU5EX0RBVEUuUkVRVUlSRUQnIHwgdHJhbnNsYXRlIH19PC9tYXQtZXJyb3I+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgIDwvc3Bhbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -191,11 +191,11 @@ export class SearchDateRangeTabbedComponent {
|
|
|
191
191
|
? this.settings.displayedLabelsByField[fieldForDisplayLabel]
|
|
192
192
|
: fieldForDisplayLabel;
|
|
193
193
|
}
|
|
194
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
195
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
194
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeTabbedComponent, deps: [{ token: i1.TranslationService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchDateRangeTabbedComponent, isStandalone: true, selector: "adf-search-date-range-tabbed", ngImport: i0, template: "<adf-search-filter-tabbed>\n <ng-container *ngFor=\"let field of fields\">\n <adf-search-date-range\n *adf-search-filter-tab=\"getTabLabel(field)\"\n [dateFormat]=\"settings.dateFormat\"\n [maxDate]=\"settings.maxDate\"\n [field]=\"field\"\n [initialValue]=\"preselectedValues[field]\"\n (changed)=\"onDateRangedValueChanged($event, field)\"\n (valid)=\"tabsValidity[field]=$event\" />\n </ng-container>\n</adf-search-filter-tabbed>\n", styles: ["adf-search-date-range-tabbed .mat-mdc-tab-header{margin-top:-5px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SearchFilterTabbedComponent, selector: "adf-search-filter-tabbed" }, { kind: "component", type: SearchDateRangeComponent, selector: "adf-search-date-range", inputs: ["dateFormat", "maxDate", "field", "initialValue"], outputs: ["changed", "valid"] }, { kind: "directive", type: SearchFilterTabDirective, selector: "[adf-search-filter-tab]", inputs: ["adf-search-filter-tab"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
196
196
|
}
|
|
197
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
197
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDateRangeTabbedComponent, decorators: [{
|
|
198
198
|
type: Component,
|
|
199
199
|
args: [{ selector: 'adf-search-date-range-tabbed', standalone: true, imports: [CommonModule, SearchFilterTabbedComponent, SearchDateRangeComponent, SearchFilterTabDirective], encapsulation: ViewEncapsulation.None, template: "<adf-search-filter-tabbed>\n <ng-container *ngFor=\"let field of fields\">\n <adf-search-date-range\n *adf-search-filter-tab=\"getTabLabel(field)\"\n [dateFormat]=\"settings.dateFormat\"\n [maxDate]=\"settings.maxDate\"\n [field]=\"field\"\n [initialValue]=\"preselectedValues[field]\"\n (changed)=\"onDateRangedValueChanged($event, field)\"\n (valid)=\"tabsValidity[field]=$event\" />\n </ng-container>\n</adf-search-filter-tabbed>\n", styles: ["adf-search-date-range-tabbed .mat-mdc-tab-header{margin-top:-5px}\n"] }]
|
|
200
200
|
}], ctorParameters: () => [{ type: i1.TranslationService }] });
|
|
201
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFB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O1lBQ3BDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxvQkFBNEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQy9CLENBQUM7OEdBdExRLDhCQUE4QjtrR0FBOUIsOEJBQThCLHdGQzVDM0MsOGdCQVlBLDRIRDJCYyxZQUFZLDRKQUFFLDJCQUEyQixxRUFBRSx3QkFBd0IsNkpBQUUsd0JBQXdCOzsyRkFLOUYsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsaUJBR3pGLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLXR5cGUnO1xuaW1wb3J0IHsgU2VhcmNoRGF0ZVJhbmdlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9zZWFyY2gtZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5MYXN0RGF0ZVR5cGUgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL2luLWxhc3QtZGF0ZS10eXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBlbmRPZkRheSwgZW5kT2ZUb2RheSwgZm9ybWF0LCBmb3JtYXRJU08sIHBhcnNlSVNPLCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBzdWJEYXlzLCBzdWJNb250aHMsIHN1YldlZWtzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItdGFiYmVkL3NlYXJjaC1maWx0ZXItdGFiYmVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hEYXRlUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmUgfSBmcm9tICcuLi9zZWFyY2gtZmlsdGVyLXRhYmJlZC9zZWFyY2gtZmlsdGVyLXRhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX0RBVEVfRElTUExBWV9GT1JNQVQgPSAnZGQtTU1NLXl5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCwgU2VhcmNoRGF0ZVJhbmdlQ29tcG9uZW50LCBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRGF0ZVJhbmdlVGFiYmVkQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc3RhcnRWYWx1ZTogU2VhcmNoRGF0ZVJhbmdlID0ge1xuICAgICAgICBkYXRlUmFuZ2VUeXBlOiBEYXRlUmFuZ2VUeXBlLkFOWSxcbiAgICAgICAgaW5MYXN0VmFsdWVUeXBlOiBJbkxhc3REYXRlVHlwZS5EQVlTLFxuICAgICAgICBpbkxhc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuU3RhcnREYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGJldHdlZW5FbmREYXRlOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHByZXNlbGVjdGVkVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IFNlYXJjaERhdGVSYW5nZSB9ID0ge307XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBmaWVsZHM6IHN0cmluZ1tdO1xuICAgIHRhYnNWYWxpZGl0eTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb21iaW5lZFF1ZXJ5OiBzdHJpbmc7XG4gICAgY29tYmluZWREaXNwbGF5VmFsdWU6IHN0cmluZztcblxuICAgIHByaXZhdGUgdmFsdWU6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0gPSB7fTtcbiAgICBwcml2YXRlIHF1ZXJ5TWFwQnlGaWVsZDogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBkaXNwbGF5VmFsdWVNYXBCeUZpZWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5zZXR0aW5ncz8uZmllbGQuc3BsaXQoJywnKS5tYXAoKGZpZWxkKSA9PiBmaWVsZC50cmltKCkpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHREYXRlRm9ybWF0U2V0dGluZ3MoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlcnNRdWVyaWVzKSA9PiBmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlclF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGZpbHRlclF1ZXJ5KS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlblN0YXJ0RGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJU08oZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSVNPKGZpbHRlclF1ZXJ5W2ZpZWxkXS5iZXR3ZWVuRW5kRGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdID0gZmlsdGVyUXVlcnlbZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQoZmlsdGVyUXVlcnlbZmllbGRdLCBmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgc2V0RGVmYXVsdERhdGVGb3JtYXRTZXR0aW5ncygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgIXRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXRlRm9ybWF0ID0gREVGQVVMVF9EQVRFX0RJU1BMQVlfRk9STUFUO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCk6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnRhYnNWYWxpZGl0eSkuZXZlcnkoKHZhbGlkKSA9PiB2YWxpZCk7XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gJyc7XG4gICAgICAgIHRoaXMuY29tYmluZWREaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0ge1xuICAgICAgICAgICAgLi4udGhpcy5zdGFydFZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW2ZpZWxkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IHsgW2tleTogc3RyaW5nXTogU2VhcmNoRGF0ZVJhbmdlIH0pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncz8uZGlzcGxheWVkTGFiZWxzQnlGaWVsZD8uW2ZpZWxkXSA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZF0gOiBmaWVsZDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gdGhpcy5jb21iaW5lZFF1ZXJ5O1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCh0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0ICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdIHx8PSB7fTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeSh2YWx1ZSwgZmllbGQpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSh2YWx1ZSwgZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJyc7XG4gICAgICAgIGxldCBzdGFydERhdGU6IERhdGU7XG4gICAgICAgIGxldCBlbmREYXRlOiBEYXRlO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5MYXN0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLmluTGFzdFZhbHVlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEluTGFzdERhdGVUeXBlLkRBWVM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mRGF5KHN1YkRheXMobmV3IERhdGUoKSwgcGFyc2VJbnQodmFsdWUuaW5MYXN0VmFsdWUsIDEwKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSW5MYXN0RGF0ZVR5cGUuV0VFS1M6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mV2VlayhzdWJXZWVrcyhuZXcgRGF0ZSgpLCBwYXJzZUludCh2YWx1ZS5pbkxhc3RWYWx1ZSwgMTApKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBJbkxhc3REYXRlVHlwZS5NT05USFM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mTW9udGgoc3ViTW9udGhzKG5ldyBEYXRlKCksIHBhcnNlSW50KHZhbHVlLmluTGFzdFZhbHVlLCAxMCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kRGF0ZSA9IGVuZE9mVG9kYXkoKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlICYmIHZhbHVlLmJldHdlZW5FbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlID0gc3RhcnRPZkRheSh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgICBlbmREYXRlID0gZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgcXVlcnkgPSBgJHtmaWVsZH06Wycke2Zvcm1hdElTTyhzdGFydERhdGUpfScgVE8gJyR7Zm9ybWF0SVNPKGVuZERhdGUpfSddYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZURpc3BsYXlWYWx1ZSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUICYmIHZhbHVlLmluTGFzdFZhbHVlKSB7XG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9ESVNQTEFZX0xBQkVMUy4ke3ZhbHVlLmluTGFzdFZhbHVlVHlwZX1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLmluTGFzdFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4gJiYgdmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSAmJiB2YWx1ZS5iZXR3ZWVuRW5kRGF0ZSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gYCR7Zm9ybWF0KHN0YXJ0T2ZEYXkodmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSksIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCl9IC0gJHtmb3JtYXQoXG4gICAgICAgICAgICAgICAgZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdFxuICAgICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29tYmluZWRRdWVyeSA9ICcnO1xuICAgICAgICB0aGlzLnF1ZXJ5TWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVRdWVyeSh2YWx1ZSwgZmllbGQpKTtcbiAgICAgICAgdGhpcy5xdWVyeU1hcEJ5RmllbGQuZm9yRWFjaCgocXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gdGhpcy5jb21iaW5lZFF1ZXJ5ID8gYCR7dGhpcy5jb21iaW5lZFF1ZXJ5fSBBTkQgJHtxdWVyeX1gIDogYCR7cXVlcnl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlTWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVEaXNwbGF5VmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWVNYXBCeUZpZWxkLmZvckVhY2goKGRpc3BsYXlWYWx1ZTogc3RyaW5nLCBmaWVsZEZvckRpc3BsYXlMYWJlbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheUxhYmVsRm9yRmllbGQgPSBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmluc3RhbnQodGhpcy5nZXREaXNwbGF5TGFiZWxGb3JGaWVsZChmaWVsZEZvckRpc3BsYXlMYWJlbCkpXG4gICAgICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpfTogJHtkaXNwbGF5VmFsdWV9YDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gdGhpcy5jb21iaW5lZERpc3BsYXlWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IGAke3RoaXMuY29tYmluZWREaXNwbGF5VmFsdWV9ICR7ZGlzcGxheUxhYmVsRm9yRmllbGR9YFxuICAgICAgICAgICAgICAgICAgICA6IGAke2Rpc3BsYXlMYWJlbEZvckZpZWxkfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGlzcGxheUxhYmVsRm9yRmllbGQoZmllbGRGb3JEaXNwbGF5TGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5kaXNwbGF5ZWRMYWJlbHNCeUZpZWxkPy5bZmllbGRGb3JEaXNwbGF5TGFiZWxdXG4gICAgICAgICAgICA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZEZvckRpc3BsYXlMYWJlbF1cbiAgICAgICAgICAgIDogZmllbGRGb3JEaXNwbGF5TGFiZWw7XG4gICAgfVxufVxuIiwiPGFkZi1zZWFyY2gtZmlsdGVyLXRhYmJlZD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIj5cbiAgICAgICAgPGFkZi1zZWFyY2gtZGF0ZS1yYW5nZVxuICAgICAgICAgICAgKmFkZi1zZWFyY2gtZmlsdGVyLXRhYj1cImdldFRhYkxhYmVsKGZpZWxkKVwiXG4gICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJzZXR0aW5ncy5kYXRlRm9ybWF0XCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cInNldHRpbmdzLm1heERhdGVcIlxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtpbml0aWFsVmFsdWVdPVwicHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdXCJcbiAgICAgICAgICAgIChjaGFuZ2VkKT1cIm9uRGF0ZVJhbmdlZFZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAodmFsaWQpPVwidGFic1ZhbGlkaXR5W2ZpZWxkXT0kZXZlbnRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hZGYtc2VhcmNoLWZpbHRlci10YWJiZWQ+XG4iXX0=
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDckMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUtwRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDeEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEosT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSwyQkFB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O1lBQ3BDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxvQkFBNEI7UUFDeEQsT0FBTyxJQUFJLENBQUMsUUFBUSxFQUFFLHNCQUFzQixFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDaEUsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsb0JBQW9CLENBQUM7WUFDNUQsQ0FBQyxDQUFDLG9CQUFvQixDQUFDO0lBQy9CLENBQUM7K0dBdExRLDhCQUE4QjttR0FBOUIsOEJBQThCLHdGQzVDM0MsOGdCQVlBLDRIRDJCYyxZQUFZLDRKQUFFLDJCQUEyQixxRUFBRSx3QkFBd0IsNkpBQUUsd0JBQXdCOzs0RkFLOUYsOEJBQThCO2tCQVIxQyxTQUFTOytCQUNJLDhCQUE4QixjQUM1QixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUsMkJBQTJCLEVBQUUsd0JBQXdCLEVBQUUsd0JBQXdCLENBQUMsaUJBR3pGLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyIvKiFcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgwqkgMjAwNS0yMDI1IEh5bGFuZCBTb2Z0d2FyZSwgSW5jLiBhbmQgaXRzIGFmZmlsaWF0ZXMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCB7IENvbXBvbmVudCwgRGVzdHJveVJlZiwgaW5qZWN0LCBPbkluaXQsIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBEYXRlUmFuZ2VUeXBlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9kYXRlLXJhbmdlLXR5cGUnO1xuaW1wb3J0IHsgU2VhcmNoRGF0ZVJhbmdlIH0gZnJvbSAnLi9zZWFyY2gtZGF0ZS1yYW5nZS9zZWFyY2gtZGF0ZS1yYW5nZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgSW5MYXN0RGF0ZVR5cGUgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL2luLWxhc3QtZGF0ZS10eXBlJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU2VydmljZSB9IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBlbmRPZkRheSwgZW5kT2ZUb2RheSwgZm9ybWF0LCBmb3JtYXRJU08sIHBhcnNlSVNPLCBzdGFydE9mRGF5LCBzdGFydE9mTW9udGgsIHN0YXJ0T2ZXZWVrLCBzdWJEYXlzLCBzdWJNb250aHMsIHN1YldlZWtzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCB9IGZyb20gJy4uL3NlYXJjaC1maWx0ZXItdGFiYmVkL3NlYXJjaC1maWx0ZXItdGFiYmVkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hEYXRlUmFuZ2VDb21wb25lbnQgfSBmcm9tICcuL3NlYXJjaC1kYXRlLXJhbmdlL3NlYXJjaC1kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmUgfSBmcm9tICcuLi9zZWFyY2gtZmlsdGVyLXRhYmJlZC9zZWFyY2gtZmlsdGVyLXRhYi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5jb25zdCBERUZBVUxUX0RBVEVfRElTUExBWV9GT1JNQVQgPSAnZGQtTU1NLXl5JztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdhZGYtc2VhcmNoLWRhdGUtcmFuZ2UtdGFiYmVkJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNlYXJjaEZpbHRlclRhYmJlZENvbXBvbmVudCwgU2VhcmNoRGF0ZVJhbmdlQ29tcG9uZW50LCBTZWFyY2hGaWx0ZXJUYWJEaXJlY3RpdmVdLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zZWFyY2gtZGF0ZS1yYW5nZS10YWJiZWQuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NlYXJjaC1kYXRlLXJhbmdlLXRhYmJlZC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgU2VhcmNoRGF0ZVJhbmdlVGFiYmVkQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGRpc3BsYXlWYWx1ZSQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgc3RhcnRWYWx1ZTogU2VhcmNoRGF0ZVJhbmdlID0ge1xuICAgICAgICBkYXRlUmFuZ2VUeXBlOiBEYXRlUmFuZ2VUeXBlLkFOWSxcbiAgICAgICAgaW5MYXN0VmFsdWVUeXBlOiBJbkxhc3REYXRlVHlwZS5EQVlTLFxuICAgICAgICBpbkxhc3RWYWx1ZTogdW5kZWZpbmVkLFxuICAgICAgICBiZXR3ZWVuU3RhcnREYXRlOiB1bmRlZmluZWQsXG4gICAgICAgIGJldHdlZW5FbmREYXRlOiB1bmRlZmluZWRcbiAgICB9O1xuICAgIHByZXNlbGVjdGVkVmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IFNlYXJjaERhdGVSYW5nZSB9ID0ge307XG4gICAgc2V0dGluZ3M/OiBTZWFyY2hXaWRnZXRTZXR0aW5ncztcbiAgICBjb250ZXh0PzogU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZTtcbiAgICBmaWVsZHM6IHN0cmluZ1tdO1xuICAgIHRhYnNWYWxpZGl0eTogeyBba2V5OiBzdHJpbmddOiBib29sZWFuIH0gPSB7fTtcbiAgICBjb21iaW5lZFF1ZXJ5OiBzdHJpbmc7XG4gICAgY29tYmluZWREaXNwbGF5VmFsdWU6IHN0cmluZztcblxuICAgIHByaXZhdGUgdmFsdWU6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0gPSB7fTtcbiAgICBwcml2YXRlIHF1ZXJ5TWFwQnlGaWVsZDogTWFwPHN0cmluZywgc3RyaW5nPiA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSBkaXNwbGF5VmFsdWVNYXBCeUZpZWxkOiBNYXA8c3RyaW5nLCBzdHJpbmc+ID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZz4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRpb25TZXJ2aWNlKSB7fVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmllbGRzID0gdGhpcy5zZXR0aW5ncz8uZmllbGQuc3BsaXQoJywnKS5tYXAoKGZpZWxkKSA9PiBmaWVsZC50cmltKCkpO1xuICAgICAgICB0aGlzLnNldERlZmF1bHREYXRlRm9ybWF0U2V0dGluZ3MoKTtcbiAgICAgICAgdGhpcy5jb250ZXh0LnBvcHVsYXRlRmlsdGVyc1xuICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKGZpbHRlcnNRdWVyaWVzKSA9PiBmaWx0ZXJzUXVlcmllc1t0aGlzLmlkXSksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlclF1ZXJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGZpbHRlclF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGZpbHRlclF1ZXJ5KS5mb3JFYWNoKChmaWVsZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlblN0YXJ0RGF0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID8gcGFyc2VJU08oZmlsdGVyUXVlcnlbZmllbGRdLmJldHdlZW5TdGFydERhdGUpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGUgPSBmaWx0ZXJRdWVyeVtmaWVsZF0uYmV0d2VlbkVuZERhdGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBhcnNlSVNPKGZpbHRlclF1ZXJ5W2ZpZWxkXS5iZXR3ZWVuRW5kRGF0ZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMucHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdID0gZmlsdGVyUXVlcnlbZmllbGRdO1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQoZmlsdGVyUXVlcnlbZmllbGRdLCBmaWVsZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN1Ym1pdFZhbHVlcyhmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJMb2FkZWQubmV4dCgpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuICAgIHByaXZhdGUgc2V0RGVmYXVsdERhdGVGb3JtYXRTZXR0aW5ncygpIHtcbiAgICAgICAgaWYgKHRoaXMuc2V0dGluZ3MgJiYgIXRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCkge1xuICAgICAgICAgICAgdGhpcy5zZXR0aW5ncy5kYXRlRm9ybWF0ID0gREVGQVVMVF9EQVRFX0RJU1BMQVlfRk9STUFUO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0Q3VycmVudFZhbHVlKCk6IHsgW2tleTogc3RyaW5nXTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+IH0ge1xuICAgICAgICByZXR1cm4gdGhpcy52YWx1ZTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLnRhYnNWYWxpZGl0eSkuZXZlcnkoKHZhbGlkKSA9PiB2YWxpZCk7XG4gICAgfVxuXG4gICAgcmVzZXQodXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gJyc7XG4gICAgICAgIHRoaXMuY29tYmluZWREaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgICAgdGhpcy5zdGFydFZhbHVlID0ge1xuICAgICAgICAgICAgLi4udGhpcy5zdGFydFZhbHVlXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMuZmllbGRzLmZvckVhY2goKGZpZWxkKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW2ZpZWxkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXSA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5zdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCk7XG4gICAgfVxuXG4gICAgc2V0VmFsdWUodmFsdWU6IHsgW2tleTogc3RyaW5nXTogU2VhcmNoRGF0ZVJhbmdlIH0pIHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGdldFRhYkxhYmVsKGZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5zZXR0aW5ncz8uZGlzcGxheWVkTGFiZWxzQnlGaWVsZD8uW2ZpZWxkXSA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZF0gOiBmaWVsZDtcbiAgICB9XG5cbiAgICBzdWJtaXRWYWx1ZXModXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LnF1ZXJ5RnJhZ21lbnRzW3RoaXMuaWRdID0gdGhpcy5jb21iaW5lZFF1ZXJ5O1xuICAgICAgICB0aGlzLmRpc3BsYXlWYWx1ZSQubmV4dCh0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlKTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0ICYmIHVwZGF0ZUNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC51cGRhdGUoKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBvbkRhdGVSYW5nZWRWYWx1ZUNoYW5nZWQodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdIHx8PSB7fTtcbiAgICAgICAgdGhpcy5jb250ZXh0LmZpbHRlclJhd1BhcmFtc1t0aGlzLmlkXVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy52YWx1ZVtmaWVsZF0gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVRdWVyeSh2YWx1ZSwgZmllbGQpO1xuICAgICAgICB0aGlzLnVwZGF0ZURpc3BsYXlWYWx1ZSh2YWx1ZSwgZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2VuZXJhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgbGV0IHF1ZXJ5ID0gJyc7XG4gICAgICAgIGxldCBzdGFydERhdGU6IERhdGU7XG4gICAgICAgIGxldCBlbmREYXRlOiBEYXRlO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUuaW5MYXN0VmFsdWUpIHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKHZhbHVlLmluTGFzdFZhbHVlVHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIEluTGFzdERhdGVUeXBlLkRBWVM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mRGF5KHN1YkRheXMobmV3IERhdGUoKSwgcGFyc2VJbnQodmFsdWUuaW5MYXN0VmFsdWUsIDEwKSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgSW5MYXN0RGF0ZVR5cGUuV0VFS1M6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mV2VlayhzdWJXZWVrcyhuZXcgRGF0ZSgpLCBwYXJzZUludCh2YWx1ZS5pbkxhc3RWYWx1ZSwgMTApKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBJbkxhc3REYXRlVHlwZS5NT05USFM6XG4gICAgICAgICAgICAgICAgICAgICAgICBzdGFydERhdGUgPSBzdGFydE9mTW9udGgoc3ViTW9udGhzKG5ldyBEYXRlKCksIHBhcnNlSW50KHZhbHVlLmluTGFzdFZhbHVlLCAxMCkpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZW5kRGF0ZSA9IGVuZE9mVG9kYXkoKTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4pIHtcbiAgICAgICAgICAgIGlmICh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlICYmIHZhbHVlLmJldHdlZW5FbmREYXRlKSB7XG4gICAgICAgICAgICAgICAgc3RhcnREYXRlID0gc3RhcnRPZkRheSh2YWx1ZS5iZXR3ZWVuU3RhcnREYXRlKTtcbiAgICAgICAgICAgICAgICBlbmREYXRlID0gZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIGlmIChzdGFydERhdGUgJiYgZW5kRGF0ZSkge1xuICAgICAgICAgICAgcXVlcnkgPSBgJHtmaWVsZH06Wycke2Zvcm1hdElTTyhzdGFydERhdGUpfScgVE8gJyR7Zm9ybWF0SVNPKGVuZERhdGUpfSddYDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcXVlcnk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZW5lcmF0ZURpc3BsYXlWYWx1ZSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+KTogc3RyaW5nIHtcbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICBpZiAodmFsdWUuZGF0ZVJhbmdlVHlwZSA9PT0gRGF0ZVJhbmdlVHlwZS5JTl9MQVNUICYmIHZhbHVlLmluTGFzdFZhbHVlKSB7XG4gICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgU0VBUkNILkRBVEVfUkFOR0VfQURWQU5DRUQuSU5fTEFTVF9ESVNQTEFZX0xBQkVMUy4ke3ZhbHVlLmluTGFzdFZhbHVlVHlwZX1gLCB7XG4gICAgICAgICAgICAgICAgdmFsdWU6IHZhbHVlLmluTGFzdFZhbHVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIGlmICh2YWx1ZS5kYXRlUmFuZ2VUeXBlID09PSBEYXRlUmFuZ2VUeXBlLkJFVFdFRU4gJiYgdmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSAmJiB2YWx1ZS5iZXR3ZWVuRW5kRGF0ZSkge1xuICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gYCR7Zm9ybWF0KHN0YXJ0T2ZEYXkodmFsdWUuYmV0d2VlblN0YXJ0RGF0ZSksIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdCl9IC0gJHtmb3JtYXQoXG4gICAgICAgICAgICAgICAgZW5kT2ZEYXkodmFsdWUuYmV0d2VlbkVuZERhdGUpLFxuICAgICAgICAgICAgICAgIHRoaXMuc2V0dGluZ3MuZGF0ZUZvcm1hdFxuICAgICAgICAgICAgKX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVRdWVyeSh2YWx1ZTogUGFydGlhbDxTZWFyY2hEYXRlUmFuZ2U+LCBmaWVsZDogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuY29tYmluZWRRdWVyeSA9ICcnO1xuICAgICAgICB0aGlzLnF1ZXJ5TWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVRdWVyeSh2YWx1ZSwgZmllbGQpKTtcbiAgICAgICAgdGhpcy5xdWVyeU1hcEJ5RmllbGQuZm9yRWFjaCgocXVlcnk6IHN0cmluZykgPT4ge1xuICAgICAgICAgICAgaWYgKHF1ZXJ5KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21iaW5lZFF1ZXJ5ID0gdGhpcy5jb21iaW5lZFF1ZXJ5ID8gYCR7dGhpcy5jb21iaW5lZFF1ZXJ5fSBBTkQgJHtxdWVyeX1gIDogYCR7cXVlcnl9YDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVEaXNwbGF5VmFsdWUodmFsdWU6IFBhcnRpYWw8U2VhcmNoRGF0ZVJhbmdlPiwgZmllbGQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gJyc7XG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlTWFwQnlGaWVsZC5zZXQoZmllbGQsIHRoaXMuZ2VuZXJhdGVEaXNwbGF5VmFsdWUodmFsdWUpKTtcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWVNYXBCeUZpZWxkLmZvckVhY2goKGRpc3BsYXlWYWx1ZTogc3RyaW5nLCBmaWVsZEZvckRpc3BsYXlMYWJlbDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICBpZiAoZGlzcGxheVZhbHVlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGlzcGxheUxhYmVsRm9yRmllbGQgPSBgJHt0aGlzLnRyYW5zbGF0ZVNlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLmluc3RhbnQodGhpcy5nZXREaXNwbGF5TGFiZWxGb3JGaWVsZChmaWVsZEZvckRpc3BsYXlMYWJlbCkpXG4gICAgICAgICAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpfTogJHtkaXNwbGF5VmFsdWV9YDtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbWJpbmVkRGlzcGxheVZhbHVlID0gdGhpcy5jb21iaW5lZERpc3BsYXlWYWx1ZVxuICAgICAgICAgICAgICAgICAgICA/IGAke3RoaXMuY29tYmluZWREaXNwbGF5VmFsdWV9ICR7ZGlzcGxheUxhYmVsRm9yRmllbGR9YFxuICAgICAgICAgICAgICAgICAgICA6IGAke2Rpc3BsYXlMYWJlbEZvckZpZWxkfWA7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGlzcGxheUxhYmVsRm9yRmllbGQoZmllbGRGb3JEaXNwbGF5TGFiZWw6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLnNldHRpbmdzPy5kaXNwbGF5ZWRMYWJlbHNCeUZpZWxkPy5bZmllbGRGb3JEaXNwbGF5TGFiZWxdXG4gICAgICAgICAgICA/IHRoaXMuc2V0dGluZ3MuZGlzcGxheWVkTGFiZWxzQnlGaWVsZFtmaWVsZEZvckRpc3BsYXlMYWJlbF1cbiAgICAgICAgICAgIDogZmllbGRGb3JEaXNwbGF5TGFiZWw7XG4gICAgfVxufVxuIiwiPGFkZi1zZWFyY2gtZmlsdGVyLXRhYmJlZD5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBmaWVsZCBvZiBmaWVsZHNcIj5cbiAgICAgICAgPGFkZi1zZWFyY2gtZGF0ZS1yYW5nZVxuICAgICAgICAgICAgKmFkZi1zZWFyY2gtZmlsdGVyLXRhYj1cImdldFRhYkxhYmVsKGZpZWxkKVwiXG4gICAgICAgICAgICBbZGF0ZUZvcm1hdF09XCJzZXR0aW5ncy5kYXRlRm9ybWF0XCJcbiAgICAgICAgICAgIFttYXhEYXRlXT1cInNldHRpbmdzLm1heERhdGVcIlxuICAgICAgICAgICAgW2ZpZWxkXT1cImZpZWxkXCJcbiAgICAgICAgICAgIFtpbml0aWFsVmFsdWVdPVwicHJlc2VsZWN0ZWRWYWx1ZXNbZmllbGRdXCJcbiAgICAgICAgICAgIChjaGFuZ2VkKT1cIm9uRGF0ZVJhbmdlZFZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiXG4gICAgICAgICAgICAodmFsaWQpPVwidGFic1ZhbGlkaXR5W2ZpZWxkXT0kZXZlbnRcIiAvPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9hZGYtc2VhcmNoLWZpbHRlci10YWJiZWQ+XG4iXX0=
|
package/esm2022/lib/search/components/search-datetime-range/search-datetime-range.component.mjs
CHANGED
|
@@ -204,15 +204,15 @@ export class SearchDatetimeRangeComponent {
|
|
|
204
204
|
setFromMaxDatetime() {
|
|
205
205
|
this.fromMaxDatetime = !this.to.value || (this.maxDatetime && isBefore(this.maxDatetime, this.to.value)) ? this.maxDatetime : this.to.value;
|
|
206
206
|
}
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
208
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
207
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDatetimeRangeComponent, deps: [{ token: i1.DateAdapter }, { token: i2.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
208
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: SearchDatetimeRangeComponent, isStandalone: true, selector: "adf-search-datetime-range", host: { classAttribute: "adf-search-date-range" }, providers: [
|
|
209
209
|
{ provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS },
|
|
210
210
|
{ provide: MAT_DATETIME_FORMATS, useValue: ADF_DATETIME_FORMATS },
|
|
211
211
|
{ provide: DateAdapter, useClass: AdfDateFnsAdapter },
|
|
212
212
|
{ provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
|
|
213
213
|
], ngImport: i0, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n <mat-form-field>\n <input matInput\n (input)=\"forcePlaceholder($event)\"\n [formControl]=\"from\"\n [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM-DATE' | translate }}\"\n [matDatetimepicker]=\"fromDatetimePicker\"\n [max]=\"fromMaxDatetime\"\n (dateChange)=\"onChangedHandler($event, from)\"\n data-automation-id=\"datetime-range-from-input\">\n <mat-datetimepicker-toggle matSuffix [for]=\"fromDatetimePicker\" data-automation-id=\"datetime-range-from-date-toggle\" />\n <mat-datetimepicker #fromDatetimePicker color=\"accent\" type=\"datetime\" />\n <mat-error *ngIf=\"from.invalid\" data-automation-id=\"datetime-range-from-error\">\n {{ getFromValidationMessage() | translate: { requiredFormat: datetimePickerFormat } }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput\n (input)=\"forcePlaceholder($event)\"\n [formControl]=\"to\"\n [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO-DATE' | translate }}\"\n [matDatetimepicker]=\"toDatetimePicker\"\n [min]=\"from.value\"\n [max]=\"maxDatetime\"\n (dateChange)=\"onChangedHandler($event, to)\"\n data-automation-id=\"datetime-range-to-input\">\n <mat-datetimepicker-toggle matSuffix [for]=\"toDatetimePicker\" data-automation-id=\"datetime-range-to-date-toggle\" />\n <mat-datetimepicker #toDatetimePicker color=\"accent\" type=\"datetime\" />\n <mat-error *ngIf=\"to.invalid\" data-automation-id=\"datetime-range-to-error\">\n {{ getToValidationMessage() | translate: { requiredFormat: datetimePickerFormat } }}\n </mat-error>\n </mat-form-field>\n</form>\n", styles: [".adf-search-date-range>form{display:inline-flex;flex-direction:column;width:100%}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i4.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i5.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i7.TranslatePipe, name: "translate" }, { kind: "ngmodule", type: MatDatetimepickerModule }, { kind: "component", type: i2.MatDatetimepickerComponent, selector: "mat-datetimepicker", inputs: ["multiYearSelector", "twelvehour", "startView", "mode", "timeInterval", "ariaNextMonthLabel", "ariaPrevMonthLabel", "ariaNextYearLabel", "ariaPrevYearLabel", "preventSameDateTimeSelection", "panelClass", "startAt", "openOnFocus", "type", "touchUi", "disabled"], outputs: ["selectedChanged", "opened", "closed", "viewChanged"], exportAs: ["matDatetimepicker"] }, { kind: "component", type: i2.MatDatetimepickerToggleComponent, selector: "mat-datetimepicker-toggle", inputs: ["for", "disabled"], exportAs: ["matDatetimepickerToggle"] }, { kind: "directive", type: i2.MatDatetimepickerInputDirective, selector: "input[matDatetimepicker]", inputs: ["matDatetimepicker", "matDatepickerFilter", "value", "min", "max", "disabled"], outputs: ["dateChange", "dateInput"], exportAs: ["matDatepickerInput"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
214
214
|
}
|
|
215
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
215
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchDatetimeRangeComponent, decorators: [{
|
|
216
216
|
type: Component,
|
|
217
217
|
args: [{ selector: 'adf-search-datetime-range', standalone: true, imports: [CommonModule, ReactiveFormsModule, MatFormFieldModule, MatInputModule, TranslateModule, MatDatetimepickerModule], providers: [
|
|
218
218
|
{ provide: MAT_DATE_FORMATS, useValue: ADF_DATE_FORMATS },
|
|
@@ -221,4 +221,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.3", ngImpor
|
|
|
221
221
|
{ provide: DatetimeAdapter, useClass: AdfDateTimeFnsAdapter }
|
|
222
222
|
], encapsulation: ViewEncapsulation.None, host: { class: 'adf-search-date-range' }, template: "<form [formGroup]=\"form\" novalidate (ngSubmit)=\"apply(form.value, form.valid)\">\n <mat-form-field>\n <input matInput\n (input)=\"forcePlaceholder($event)\"\n [formControl]=\"from\"\n [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.FROM-DATE' | translate }}\"\n [matDatetimepicker]=\"fromDatetimePicker\"\n [max]=\"fromMaxDatetime\"\n (dateChange)=\"onChangedHandler($event, from)\"\n data-automation-id=\"datetime-range-from-input\">\n <mat-datetimepicker-toggle matSuffix [for]=\"fromDatetimePicker\" data-automation-id=\"datetime-range-from-date-toggle\" />\n <mat-datetimepicker #fromDatetimePicker color=\"accent\" type=\"datetime\" />\n <mat-error *ngIf=\"from.invalid\" data-automation-id=\"datetime-range-from-error\">\n {{ getFromValidationMessage() | translate: { requiredFormat: datetimePickerFormat } }}\n </mat-error>\n </mat-form-field>\n\n <mat-form-field>\n <input matInput\n (input)=\"forcePlaceholder($event)\"\n [formControl]=\"to\"\n [errorStateMatcher]=\"matcher\"\n placeholder=\"{{ 'SEARCH.FILTER.RANGE.TO-DATE' | translate }}\"\n [matDatetimepicker]=\"toDatetimePicker\"\n [min]=\"from.value\"\n [max]=\"maxDatetime\"\n (dateChange)=\"onChangedHandler($event, to)\"\n data-automation-id=\"datetime-range-to-input\">\n <mat-datetimepicker-toggle matSuffix [for]=\"toDatetimePicker\" data-automation-id=\"datetime-range-to-date-toggle\" />\n <mat-datetimepicker #toDatetimePicker color=\"accent\" type=\"datetime\" />\n <mat-error *ngIf=\"to.invalid\" data-automation-id=\"datetime-range-to-error\">\n {{ getToValidationMessage() | translate: { requiredFormat: datetimePickerFormat } }}\n </mat-error>\n </mat-form-field>\n</form>\n", styles: [".adf-search-date-range>form{display:inline-flex;flex-direction:column;width:100%}\n"] }]
|
|
223
223
|
}], ctorParameters: () => [{ type: i1.DateAdapter }, { type: i2.DatetimeAdapter }] });
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWRhdGV0aW1lLXJhbmdlL3NlYXJjaC1kYXRldGltZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRldGltZS1yYW5nZS9zZWFyY2gtZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsWUFBWSxFQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFJNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNILGVBQWUsRUFDZixvQkFBb0IsRUFFcEIsdUJBQXVCLEVBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8s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QyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2hKLENBQUM7OEdBbE5RLDRCQUE0QjtrR0FBNUIsNEJBQTRCLDJIQVQxQjtZQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtZQUN6RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7WUFDakUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtZQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO1NBQ2hFLDBCQ3JFTCwwL0RBb0NBLDRJRHlCYyxZQUFZLGtJQUFFLG1CQUFtQiwrOUJBQUUsa0JBQWtCLHVjQUFFLGNBQWMsMFdBQUUsZUFBZSwyRkFBRSx1QkFBdUI7OzJGQVloSCw0QkFBNEI7a0JBZnhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLGFBRy9HO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTt3QkFDekQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO3dCQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUNoRSxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQURGX0RBVEVfRk9STUFUUyxcbiAgICBBREZfREFURVRJTUVfRk9STUFUUyxcbiAgICBBZGZEYXRlRm5zQWRhcHRlcixcbiAgICBBZGZEYXRlVGltZUZuc0FkYXB0ZXIsXG4gICAgRGF0ZUZuc1V0aWxzXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGl2ZUVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnLi4vLi4vZm9ybXMvbGl2ZS1lcnJvci1zdGF0ZS1tYXRjaGVyJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgRGF0ZXRpbWVBZGFwdGVyLFxuICAgIE1BVF9EQVRFVElNRV9GT1JNQVRTLFxuICAgIE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCxcbiAgICBNYXREYXRldGltZXBpY2tlck1vZHVsZVxufSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IGVuZE9mTWludXRlLCBpc0JlZm9yZSwgaXNWYWxpZCwgcGFyc2VJU08sIHN0YXJ0T2ZNaW51dGUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGV0aW1lUmFuZ2VWYWx1ZSB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIHRvOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGb3JtUHJvcHMge1xuICAgIGZyb206IEZvcm1Db250cm9sPERhdGU+O1xuICAgIHRvOiBGb3JtQ29udHJvbDxEYXRlPjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFURVRJTUVfRk9STUFUOiBzdHJpbmcgPSAnZGQvTU0veXl5eSBISDptbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1kYXRldGltZS1yYW5nZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdERhdGV0aW1lcGlja2VyTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWRhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFVElNRV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVUSU1FX0ZPUk1BVFMgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IEFkZkRhdGVGbnNBZGFwdGVyIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZVRpbWVGbnNBZGFwdGVyIH1cbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hEYXRldGltZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGZyb206IEZvcm1Db250cm9sPERhdGU+O1xuICAgIHRvOiBGb3JtQ29udHJvbDxEYXRlPjtcblxuICAgIGZvcm06IEZvcm1Hcm91cDxGb3JtUHJvcHM+O1xuICAgIG1hdGNoZXIgPSBuZXcgTGl2ZUVycm9yU3RhdGVNYXRjaGVyKCk7XG5cbiAgICBpZDogc3RyaW5nO1xuICAgIHNldHRpbmdzPzogU2VhcmNoV2lkZ2V0U2V0dGluZ3M7XG4gICAgY29udGV4dD86IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2U7XG4gICAgZGF0ZXRpbWVQaWNrZXJGb3JtYXQ6IHN0cmluZztcbiAgICBtYXhEYXRldGltZTogYW55O1xuICAgIGZyb21NYXhEYXRldGltZTogYW55O1xuICAgIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgc3RhcnRWYWx1ZTogYW55O1xuICAgIGVuYWJsZUNoYW5nZVVwZGF0ZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LCBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPERhdGU+KSB7fVxuXG4gICAgZ2V0RnJvbVZhbGlkYXRpb25NZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb20uaGFzRXJyb3IoJ2ludmFsaWRPbkNoYW5nZScpIHx8IHRoaXMuaGFzUGFyc2VFcnJvcih0aGlzLmZyb20pXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy5mcm9tLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyTWF4JylcbiAgICAgICAgICAgID8gJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5CRVlPTkQtTUFYLURBVEVUSU1FJ1xuICAgICAgICAgICAgOiB0aGlzLmZyb20uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgID8gJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5SRVFVSVJFRC1WQUxVRSdcbiAgICAgICAgICAgIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0VG9WYWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50by5oYXNFcnJvcignaW52YWxpZE9uQ2hhbmdlJykgfHwgdGhpcy5oYXNQYXJzZUVycm9yKHRoaXMudG8pXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcignbWF0RGF0ZXBpY2tlck1pbicpXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uTk8tREFZUydcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcignbWF0RGF0ZXBpY2tlck1heCcpXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uQkVZT05ELU1BWC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgICAgICAgPyAnU0VBUkNILkZJTFRFUi5WQUxJREFUSU9OLlJFUVVJUkVELVZBTFVFJ1xuICAgICAgICAgICAgOiAnJztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCA9IHRoaXMuc2V0dGluZ3M/LmRhdGV0aW1lRm9ybWF0ID8gdGhpcy5zZXR0aW5ncy5kYXRldGltZUZvcm1hdCA6IERFRkFVTFRfREFURVRJTUVfRk9STUFUO1xuXG4gICAgICAgIGNvbnN0IGRhdGVBZGFwdGVyID0gdGhpcy5kYXRlQWRhcHRlciBhcyBBZGZEYXRlRm5zQWRhcHRlcjtcbiAgICAgICAgZGF0ZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQ7XG5cbiAgICAgICAgY29uc3QgZGF0ZVRpbWVBZGFwdGVyID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIgYXMgQWRmRGF0ZVRpbWVGbnNBZGFwdGVyO1xuICAgICAgICBkYXRlVGltZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQ7XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzPy5tYXhEYXRldGltZSkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRldGltZSA9IG5ldyBEYXRlKHRoaXMuc2V0dGluZ3MubWF4RGF0ZXRpbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHRoaXMuc3RhcnRWYWx1ZS5zcGxpdCgnfHwnKTtcbiAgICAgICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIucGFyc2Uoc3BsaXRWYWx1ZVswXSwgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCk7XG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZShzcGxpdFZhbHVlWzFdLCB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPihmcm9tVmFsdWUsIHZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgdGhpcy50byA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPih0b1ZhbHVlLCB2YWxpZGF0b3JzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPihudWxsLCB2YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIHRoaXMudG8gPSBuZXcgRm9ybUNvbnRyb2w8RGF0ZT4obnVsbCwgdmFsaWRhdG9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwPEZvcm1Qcm9wcz4oe1xuICAgICAgICAgICAgZnJvbTogdGhpcy5mcm9tLFxuICAgICAgICAgICAgdG86IHRoaXMudG9cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXRGcm9tTWF4RGF0ZXRpbWUoKTtcbiAgICAgICAgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgPSB0aGlzLnNldHRpbmdzPy5hbGxvd1VwZGF0ZU9uQ2hhbmdlID8/IHRydWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5wb3B1bGF0ZUZpbHRlcnNcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChmaWx0ZXJzUXVlcmllcykgPT4gZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHBhcnNlSVNPKGZpbHRlclF1ZXJ5LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gcGFyc2VJU08oZmlsdGVyUXVlcnkuZW5kKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmcm9tOiBzdGFydCwgdG86IGVuZCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHkoeyBmcm9tOiBzdGFydCwgdG86IGVuZCB9LCB0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyTG9hZGVkLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFwcGx5KG1vZGVsOiBQYXJ0aWFsPHsgZnJvbTogRGF0ZTsgdG86IERhdGUgfT4sIGlzVmFsaWRWYWx1ZTogYm9vbGVhbiwgdXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKGlzVmFsaWRWYWx1ZSAmJiB0aGlzLmlkICYmIHRoaXMuY29udGV4dCAmJiB0aGlzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3MuZmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGVGbnNVdGlscy51dGNUb0xvY2FsKHN0YXJ0T2ZNaW51dGUobW9kZWwuZnJvbSkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICBjb25zdCBlbmQgPSBEYXRlRm5zVXRpbHMudXRjVG9Mb2NhbChlbmRPZk1pbnV0ZShtb2RlbC50bykpLnRvSVNPU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IGAke3RoaXMuc2V0dGluZ3MuZmllbGR9OlsnJHtzdGFydH0nIFRPICcke2VuZH0nXWA7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbSA9IHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPz8ge307XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gZmlsdGVyUGFyYW07XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS5zdGFydCA9IHN0YXJ0O1xuICAgICAgICAgICAgZmlsdGVyUGFyYW0uZW5kID0gZW5kO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0VmFsdWVzKCkge1xuICAgICAgICB0aGlzLmFwcGx5KHRoaXMuZm9ybS52YWx1ZSwgdGhpcy5mb3JtLnZhbGlkKTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpOiBEYXRldGltZVJhbmdlVmFsdWUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZnJvbTogdGhpcy5kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5mb3JtLnZhbHVlLmZyb20sIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQpLFxuICAgICAgICAgICAgdG86IHRoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuZm9ybS52YWx1ZS50bywgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB1cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCB8fCB0aGlzLmZvcm0ucHJpc3RpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuZm9ybS52YWx1ZS5mcm9tLCB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybWF0KX0gLSAke3RoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWUudG8sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXRcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWx1ZShwYXJzZWREYXRlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHBhcnNlZERhdGUuc3BsaXQoJ3x8Jyk7XG4gICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIucGFyc2Uoc3BsaXRWYWx1ZVswXSwgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHNwbGl0VmFsdWVbMV0sIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQpO1xuICAgICAgICB0aGlzLmZyb20uc2V0VmFsdWUoZnJvbVZhbHVlKTtcbiAgICAgICAgdGhpcy5mcm9tLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIHRoaXMuZnJvbS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMudG8uc2V0VmFsdWUodG9WYWx1ZSk7XG4gICAgICAgIHRoaXMudG8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy50by5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3VibWl0VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KHtcbiAgICAgICAgICAgIGZyb206IG51bGwsXG4gICAgICAgICAgICB0bzogbnVsbFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSAnJztcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQgJiYgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEZyb21NYXhEYXRldGltZSgpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVF1ZXJ5KCkge1xuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZWRIYW5kbGVyKGV2ZW50OiBNYXREYXRldGltZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4sIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDxEYXRlPikge1xuICAgICAgICBjb25zdCBmb3JtYXREYXRlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgICAgaWYgKGlzVmFsaWQoZm9ybWF0RGF0ZSkpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGZvcm1hdERhdGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdERhdGUpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgaW52YWxpZE9uQ2hhbmdlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0RnJvbU1heERhdGV0aW1lKCk7XG4gICAgfVxuXG4gICAgaGFzUGFyc2VFcnJvcihmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w8RGF0ZT4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyUGFyc2UnKSAmJiBmb3JtQ29udHJvbC5nZXRFcnJvcignbWF0RGF0ZXBpY2tlclBhcnNlJykudGV4dDtcbiAgICB9XG5cbiAgICBmb3JjZVBsYWNlaG9sZGVyKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgc2V0RnJvbU1heERhdGV0aW1lKCkge1xuICAgICAgICB0aGlzLmZyb21NYXhEYXRldGltZSA9ICF0aGlzLnRvLnZhbHVlIHx8ICh0aGlzLm1heERhdGV0aW1lICYmIGlzQmVmb3JlKHRoaXMubWF4RGF0ZXRpbWUsIHRoaXMudG8udmFsdWUpKSA/IHRoaXMubWF4RGF0ZXRpbWUgOiB0aGlzLnRvLnZhbHVlO1xuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cImFwcGx5KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZm9yY2VQbGFjZWhvbGRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZnJvbVwiXG4gICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5GSUxURVIuUkFOR0UuRlJPTS1EQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImZyb21EYXRldGltZVBpY2tlclwiXG4gICAgICAgICAgICAgICAgW21heF09XCJmcm9tTWF4RGF0ZXRpbWVcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlZEhhbmRsZXIoJGV2ZW50LCBmcm9tKVwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZXRpbWUtcmFuZ2UtZnJvbS1pbnB1dFwiPlxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJmcm9tRGF0ZXRpbWVQaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRldGltZS1yYW5nZS1mcm9tLWRhdGUtdG9nZ2xlXCIgLz5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlciAjZnJvbURhdGV0aW1lUGlja2VyIGNvbG9yPVwiYWNjZW50XCIgdHlwZT1cImRhdGV0aW1lXCIgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZyb20uaW52YWxpZFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLWZyb20tZXJyb3JcIj5cbiAgICAgICAgICAgIHt7IGdldEZyb21WYWxpZGF0aW9uTWVzc2FnZSgpIHwgdHJhbnNsYXRlOiB7IHJlcXVpcmVkRm9ybWF0OiBkYXRldGltZVBpY2tlckZvcm1hdCB9IH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmb3JjZVBsYWNlaG9sZGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b1wiXG4gICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5GSUxURVIuUkFOR0UuVE8tREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJ0b0RhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICAgICAgICBbbWluXT1cImZyb20udmFsdWVcIlxuICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZXRpbWVcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlZEhhbmRsZXIoJGV2ZW50LCB0bylcIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLXRvLWlucHV0XCI+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInRvRGF0ZXRpbWVQaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRldGltZS1yYW5nZS10by1kYXRlLXRvZ2dsZVwiIC8+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXIgI3RvRGF0ZXRpbWVQaWNrZXIgY29sb3I9XCJhY2NlbnRcIiB0eXBlPVwiZGF0ZXRpbWVcIiAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidG8uaW52YWxpZFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLXRvLWVycm9yXCI+XG4gICAgICAgICAgICB7eyBnZXRUb1ZhbGlkYXRpb25NZXNzYWdlKCkgfCB0cmFuc2xhdGU6IHsgcmVxdWlyZWRGb3JtYXQ6IGRhdGV0aW1lUGlja2VyRm9ybWF0IH0gfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT5cbiJdfQ==
|
|
224
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLWRhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYi9jb250ZW50LXNlcnZpY2VzL3NyYy9saWIvc2VhcmNoL2NvbXBvbmVudHMvc2VhcmNoLWRhdGV0aW1lLXJhbmdlL3NlYXJjaC1kYXRldGltZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWIvY29udGVudC1zZXJ2aWNlcy9zcmMvbGliL3NlYXJjaC9jb21wb25lbnRzL3NlYXJjaC1kYXRldGltZS1yYW5nZS9zZWFyY2gtZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7OztHQWVHO0FBRUgsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFVLGlCQUFpQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pGLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsb0JBQW9CLEVBQ3BCLGlCQUFpQixFQUNqQixxQkFBcUIsRUFDckIsWUFBWSxFQUNmLE1BQU0sb0JBQW9CLENBQUM7QUFJNUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDN0UsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUNILGVBQWUsRUFDZixvQkFBb0IsRUFFcEIsdUJBQXVCLEVBQzFCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ3ZFLE9BQU8s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QyxXQUFXLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO0lBQ2hKLENBQUM7K0dBbE5RLDRCQUE0QjttR0FBNUIsNEJBQTRCLDJIQVQxQjtZQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTtZQUN6RCxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUU7WUFDakUsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRTtZQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO1NBQ2hFLDBCQ3JFTCwwL0RBb0NBLDRJRHlCYyxZQUFZLGtJQUFFLG1CQUFtQiwrOUJBQUUsa0JBQWtCLHVjQUFFLGNBQWMsMFdBQUUsZUFBZSwyRkFBRSx1QkFBdUI7OzRGQVloSCw0QkFBNEI7a0JBZnhDLFNBQVM7K0JBQ0ksMkJBQTJCLGNBQ3pCLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLGFBRy9HO3dCQUNQLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsRUFBRTt3QkFDekQsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFO3dCQUNqRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLGlCQUFpQixFQUFFO3dCQUNyRCxFQUFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFO3FCQUNoRSxpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLyohXG4gKiBAbGljZW5zZVxuICogQ29weXJpZ2h0IMKpIDIwMDUtMjAyNSBIeWxhbmQgU29mdHdhcmUsIEluYy4gYW5kIGl0cyBhZmZpbGlhdGVzLiBBbGwgcmlnaHRzIHJlc2VydmVkLlxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG5pbXBvcnQgeyBDb21wb25lbnQsIERlc3Ryb3lSZWYsIGluamVjdCwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7XG4gICAgQURGX0RBVEVfRk9STUFUUyxcbiAgICBBREZfREFURVRJTUVfRk9STUFUUyxcbiAgICBBZGZEYXRlRm5zQWRhcHRlcixcbiAgICBBZGZEYXRlVGltZUZuc0FkYXB0ZXIsXG4gICAgRGF0ZUZuc1V0aWxzXG59IGZyb20gJ0BhbGZyZXNjby9hZGYtY29yZSc7XG5pbXBvcnQgeyBTZWFyY2hXaWRnZXQgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoV2lkZ2V0U2V0dGluZ3MgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2VhcmNoLXdpZGdldC1zZXR0aW5ncy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2VhcmNoUXVlcnlCdWlsZGVyU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3NlYXJjaC1xdWVyeS1idWlsZGVyLnNlcnZpY2UnO1xuaW1wb3J0IHsgTGl2ZUVycm9yU3RhdGVNYXRjaGVyIH0gZnJvbSAnLi4vLi4vZm9ybXMvbGl2ZS1lcnJvci1zdGF0ZS1tYXRjaGVyJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgRGF0ZXRpbWVBZGFwdGVyLFxuICAgIE1BVF9EQVRFVElNRV9GT1JNQVRTLFxuICAgIE1hdERhdGV0aW1lcGlja2VySW5wdXRFdmVudCxcbiAgICBNYXREYXRldGltZXBpY2tlck1vZHVsZVxufSBmcm9tICdAbWF0LWRhdGV0aW1lcGlja2VyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZUFkYXB0ZXIsIE1BVF9EQVRFX0ZPUk1BVFMgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9jb3JlJztcbmltcG9ydCB7IGVuZE9mTWludXRlLCBpc0JlZm9yZSwgaXNWYWxpZCwgcGFyc2VJU08sIHN0YXJ0T2ZNaW51dGUgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERhdGV0aW1lUmFuZ2VWYWx1ZSB7XG4gICAgZnJvbTogc3RyaW5nO1xuICAgIHRvOiBzdHJpbmc7XG59XG5cbmludGVyZmFjZSBGb3JtUHJvcHMge1xuICAgIGZyb206IEZvcm1Db250cm9sPERhdGU+O1xuICAgIHRvOiBGb3JtQ29udHJvbDxEYXRlPjtcbn1cblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfREFURVRJTUVfRk9STUFUOiBzdHJpbmcgPSAnZGQvTU0veXl5eSBISDptbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYWRmLXNlYXJjaC1kYXRldGltZS1yYW5nZScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlLCBNYXRGb3JtRmllbGRNb2R1bGUsIE1hdElucHV0TW9kdWxlLCBUcmFuc2xhdGVNb2R1bGUsIE1hdERhdGV0aW1lcGlja2VyTW9kdWxlXSxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VhcmNoLWRhdGV0aW1lLXJhbmdlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWFyY2gtZGF0ZXRpbWUtcmFuZ2UuY29tcG9uZW50LnNjc3MnXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgeyBwcm92aWRlOiBNQVRfREFURV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVfRk9STUFUUyB9LFxuICAgICAgICB7IHByb3ZpZGU6IE1BVF9EQVRFVElNRV9GT1JNQVRTLCB1c2VWYWx1ZTogQURGX0RBVEVUSU1FX0ZPUk1BVFMgfSxcbiAgICAgICAgeyBwcm92aWRlOiBEYXRlQWRhcHRlciwgdXNlQ2xhc3M6IEFkZkRhdGVGbnNBZGFwdGVyIH0sXG4gICAgICAgIHsgcHJvdmlkZTogRGF0ZXRpbWVBZGFwdGVyLCB1c2VDbGFzczogQWRmRGF0ZVRpbWVGbnNBZGFwdGVyIH1cbiAgICBdLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgaG9zdDogeyBjbGFzczogJ2FkZi1zZWFyY2gtZGF0ZS1yYW5nZScgfVxufSlcbmV4cG9ydCBjbGFzcyBTZWFyY2hEYXRldGltZVJhbmdlQ29tcG9uZW50IGltcGxlbWVudHMgU2VhcmNoV2lkZ2V0LCBPbkluaXQge1xuICAgIGZyb206IEZvcm1Db250cm9sPERhdGU+O1xuICAgIHRvOiBGb3JtQ29udHJvbDxEYXRlPjtcblxuICAgIGZvcm06IEZvcm1Hcm91cDxGb3JtUHJvcHM+O1xuICAgIG1hdGNoZXIgPSBuZXcgTGl2ZUVycm9yU3RhdGVNYXRjaGVyKCk7XG5cbiAgICBpZDogc3RyaW5nO1xuICAgIHNldHRpbmdzPzogU2VhcmNoV2lkZ2V0U2V0dGluZ3M7XG4gICAgY29udGV4dD86IFNlYXJjaFF1ZXJ5QnVpbGRlclNlcnZpY2U7XG4gICAgZGF0ZXRpbWVQaWNrZXJGb3JtYXQ6IHN0cmluZztcbiAgICBtYXhEYXRldGltZTogYW55O1xuICAgIGZyb21NYXhEYXRldGltZTogYW55O1xuICAgIGlzQWN0aXZlID0gZmFsc2U7XG4gICAgc3RhcnRWYWx1ZTogYW55O1xuICAgIGVuYWJsZUNoYW5nZVVwZGF0ZTogYm9vbGVhbjtcbiAgICBkaXNwbGF5VmFsdWUkID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0ZUFkYXB0ZXI6IERhdGVBZGFwdGVyPERhdGU+LCBwcml2YXRlIGRhdGVUaW1lQWRhcHRlcjogRGF0ZXRpbWVBZGFwdGVyPERhdGU+KSB7fVxuXG4gICAgZ2V0RnJvbVZhbGlkYXRpb25NZXNzYWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmZyb20uaGFzRXJyb3IoJ2ludmFsaWRPbkNoYW5nZScpIHx8IHRoaXMuaGFzUGFyc2VFcnJvcih0aGlzLmZyb20pXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy5mcm9tLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyTWF4JylcbiAgICAgICAgICAgID8gJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5CRVlPTkQtTUFYLURBVEVUSU1FJ1xuICAgICAgICAgICAgOiB0aGlzLmZyb20uaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICAgICAgICAgID8gJ1NFQVJDSC5GSUxURVIuVkFMSURBVElPTi5SRVFVSVJFRC1WQUxVRSdcbiAgICAgICAgICAgIDogJyc7XG4gICAgfVxuXG4gICAgZ2V0VG9WYWxpZGF0aW9uTWVzc2FnZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy50by5oYXNFcnJvcignaW52YWxpZE9uQ2hhbmdlJykgfHwgdGhpcy5oYXNQYXJzZUVycm9yKHRoaXMudG8pXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uSU5WQUxJRC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcignbWF0RGF0ZXBpY2tlck1pbicpXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uTk8tREFZUydcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcignbWF0RGF0ZXBpY2tlck1heCcpXG4gICAgICAgICAgICA/ICdTRUFSQ0guRklMVEVSLlZBTElEQVRJT04uQkVZT05ELU1BWC1EQVRFVElNRSdcbiAgICAgICAgICAgIDogdGhpcy50by5oYXNFcnJvcigncmVxdWlyZWQnKVxuICAgICAgICAgICAgPyAnU0VBUkNILkZJTFRFUi5WQUxJREFUSU9OLlJFUVVJUkVELVZBTFVFJ1xuICAgICAgICAgICAgOiAnJztcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpIHtcbiAgICAgICAgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCA9IHRoaXMuc2V0dGluZ3M/LmRhdGV0aW1lRm9ybWF0ID8gdGhpcy5zZXR0aW5ncy5kYXRldGltZUZvcm1hdCA6IERFRkFVTFRfREFURVRJTUVfRk9STUFUO1xuXG4gICAgICAgIGNvbnN0IGRhdGVBZGFwdGVyID0gdGhpcy5kYXRlQWRhcHRlciBhcyBBZGZEYXRlRm5zQWRhcHRlcjtcbiAgICAgICAgZGF0ZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQ7XG5cbiAgICAgICAgY29uc3QgZGF0ZVRpbWVBZGFwdGVyID0gdGhpcy5kYXRlVGltZUFkYXB0ZXIgYXMgQWRmRGF0ZVRpbWVGbnNBZGFwdGVyO1xuICAgICAgICBkYXRlVGltZUFkYXB0ZXIuZGlzcGxheUZvcm1hdCA9IHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQ7XG5cbiAgICAgICAgY29uc3QgdmFsaWRhdG9ycyA9IFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICAgIGlmICh0aGlzLnNldHRpbmdzPy5tYXhEYXRldGltZSkge1xuICAgICAgICAgICAgdGhpcy5tYXhEYXRldGltZSA9IG5ldyBEYXRlKHRoaXMuc2V0dGluZ3MubWF4RGF0ZXRpbWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuc3RhcnRWYWx1ZSkge1xuICAgICAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHRoaXMuc3RhcnRWYWx1ZS5zcGxpdCgnfHwnKTtcbiAgICAgICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIucGFyc2Uoc3BsaXRWYWx1ZVswXSwgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCk7XG4gICAgICAgICAgICBjb25zdCB0b1ZhbHVlID0gdGhpcy5kYXRlQWRhcHRlci5wYXJzZShzcGxpdFZhbHVlWzFdLCB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybWF0KTtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPihmcm9tVmFsdWUsIHZhbGlkYXRvcnMpO1xuICAgICAgICAgICAgdGhpcy50byA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPih0b1ZhbHVlLCB2YWxpZGF0b3JzKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZnJvbSA9IG5ldyBGb3JtQ29udHJvbDxEYXRlPihudWxsLCB2YWxpZGF0b3JzKTtcbiAgICAgICAgICAgIHRoaXMudG8gPSBuZXcgRm9ybUNvbnRyb2w8RGF0ZT4obnVsbCwgdmFsaWRhdG9ycyk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZvcm0gPSBuZXcgRm9ybUdyb3VwPEZvcm1Qcm9wcz4oe1xuICAgICAgICAgICAgZnJvbTogdGhpcy5mcm9tLFxuICAgICAgICAgICAgdG86IHRoaXMudG9cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5zZXRGcm9tTWF4RGF0ZXRpbWUoKTtcbiAgICAgICAgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUgPSB0aGlzLnNldHRpbmdzPy5hbGxvd1VwZGF0ZU9uQ2hhbmdlID8/IHRydWU7XG4gICAgICAgIHRoaXMuY29udGV4dC5wb3B1bGF0ZUZpbHRlcnNcbiAgICAgICAgICAgIC5hc09ic2VydmFibGUoKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChmaWx0ZXJzUXVlcmllcykgPT4gZmlsdGVyc1F1ZXJpZXNbdGhpcy5pZF0pLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXJRdWVyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChmaWx0ZXJRdWVyeSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdGFydCA9IHBhcnNlSVNPKGZpbHRlclF1ZXJ5LnN0YXJ0KTtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgZW5kID0gcGFyc2VJU08oZmlsdGVyUXVlcnkuZW5kKTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLnBhdGNoVmFsdWUoeyBmcm9tOiBzdGFydCwgdG86IGVuZCB9KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHkoeyBmcm9tOiBzdGFydCwgdG86IGVuZCB9LCB0cnVlLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZXNldCgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyTG9hZGVkLm5leHQoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIGFwcGx5KG1vZGVsOiBQYXJ0aWFsPHsgZnJvbTogRGF0ZTsgdG86IERhdGUgfT4sIGlzVmFsaWRWYWx1ZTogYm9vbGVhbiwgdXBkYXRlQ29udGV4dCA9IHRydWUpIHtcbiAgICAgICAgaWYgKGlzVmFsaWRWYWx1ZSAmJiB0aGlzLmlkICYmIHRoaXMuY29udGV4dCAmJiB0aGlzLnNldHRpbmdzICYmIHRoaXMuc2V0dGluZ3MuZmllbGQpIHtcbiAgICAgICAgICAgIHRoaXMuaXNBY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCBzdGFydCA9IERhdGVGbnNVdGlscy51dGNUb0xvY2FsKHN0YXJ0T2ZNaW51dGUobW9kZWwuZnJvbSkpLnRvSVNPU3RyaW5nKCk7XG4gICAgICAgICAgICBjb25zdCBlbmQgPSBEYXRlRm5zVXRpbHMudXRjVG9Mb2NhbChlbmRPZk1pbnV0ZShtb2RlbC50bykpLnRvSVNPU3RyaW5nKCk7XG5cbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5xdWVyeUZyYWdtZW50c1t0aGlzLmlkXSA9IGAke3RoaXMuc2V0dGluZ3MuZmllbGR9OlsnJHtzdGFydH0nIFRPICcke2VuZH0nXWA7XG4gICAgICAgICAgICBjb25zdCBmaWx0ZXJQYXJhbSA9IHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPz8ge307XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQuZmlsdGVyUmF3UGFyYW1zW3RoaXMuaWRdID0gZmlsdGVyUGFyYW07XG4gICAgICAgICAgICBmaWx0ZXJQYXJhbS5zdGFydCA9IHN0YXJ0O1xuICAgICAgICAgICAgZmlsdGVyUGFyYW0uZW5kID0gZW5kO1xuICAgICAgICAgICAgdGhpcy51cGRhdGVEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgICAgIGlmICh1cGRhdGVDb250ZXh0KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LnVwZGF0ZSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgc3VibWl0VmFsdWVzKCkge1xuICAgICAgICB0aGlzLmFwcGx5KHRoaXMuZm9ybS52YWx1ZSwgdGhpcy5mb3JtLnZhbGlkKTtcbiAgICB9XG5cbiAgICBoYXNWYWxpZFZhbHVlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mb3JtLnZhbGlkO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRWYWx1ZSgpOiBEYXRldGltZVJhbmdlVmFsdWUge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZnJvbTogdGhpcy5kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5mb3JtLnZhbHVlLmZyb20sIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQpLFxuICAgICAgICAgICAgdG86IHRoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuZm9ybS52YWx1ZS50bywgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdClcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICB1cGRhdGVEaXNwbGF5VmFsdWUoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmZvcm0uaW52YWxpZCB8fCB0aGlzLmZvcm0ucHJpc3RpbmUpIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KCcnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZGlzcGxheVZhbHVlJC5uZXh0KFxuICAgICAgICAgICAgICAgIGAke3RoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMuZm9ybS52YWx1ZS5mcm9tLCB0aGlzLmRhdGV0aW1lUGlja2VyRm9ybWF0KX0gLSAke3RoaXMuZGF0ZUFkYXB0ZXIuZm9ybWF0KFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm0udmFsdWUudG8sXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXRcbiAgICAgICAgICAgICAgICApfWBcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRWYWx1ZShwYXJzZWREYXRlOiBzdHJpbmcpIHtcbiAgICAgICAgY29uc3Qgc3BsaXRWYWx1ZSA9IHBhcnNlZERhdGUuc3BsaXQoJ3x8Jyk7XG4gICAgICAgIGNvbnN0IGZyb21WYWx1ZSA9IHRoaXMuZGF0ZUFkYXB0ZXIucGFyc2Uoc3BsaXRWYWx1ZVswXSwgdGhpcy5kYXRldGltZVBpY2tlckZvcm1hdCk7XG4gICAgICAgIGNvbnN0IHRvVmFsdWUgPSB0aGlzLmRhdGVBZGFwdGVyLnBhcnNlKHNwbGl0VmFsdWVbMV0sIHRoaXMuZGF0ZXRpbWVQaWNrZXJGb3JtYXQpO1xuICAgICAgICB0aGlzLmZyb20uc2V0VmFsdWUoZnJvbVZhbHVlKTtcbiAgICAgICAgdGhpcy5mcm9tLm1hcmtBc0RpcnR5KCk7XG4gICAgICAgIHRoaXMuZnJvbS5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMudG8uc2V0VmFsdWUodG9WYWx1ZSk7XG4gICAgICAgIHRoaXMudG8ubWFya0FzRGlydHkoKTtcbiAgICAgICAgdGhpcy50by5tYXJrQXNUb3VjaGVkKCk7XG4gICAgICAgIHRoaXMuc3VibWl0VmFsdWVzKCk7XG4gICAgfVxuXG4gICAgY2xlYXIoKSB7XG4gICAgICAgIHRoaXMuaXNBY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5mb3JtLnJlc2V0KHtcbiAgICAgICAgICAgIGZyb206IG51bGwsXG4gICAgICAgICAgICB0bzogbnVsbFxuICAgICAgICB9KTtcbiAgICAgICAgaWYgKHRoaXMuaWQgJiYgdGhpcy5jb250ZXh0KSB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQucXVlcnlGcmFnbWVudHNbdGhpcy5pZF0gPSAnJztcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5maWx0ZXJSYXdQYXJhbXNbdGhpcy5pZF0gPSB1bmRlZmluZWQ7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQgJiYgdGhpcy5lbmFibGVDaGFuZ2VVcGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUXVlcnkoKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNldEZyb21NYXhEYXRldGltZSgpO1xuICAgIH1cblxuICAgIHJlc2V0KCkge1xuICAgICAgICB0aGlzLmNsZWFyKCk7XG4gICAgICAgIHRoaXMudXBkYXRlUXVlcnkoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVF1ZXJ5KCkge1xuICAgICAgICBpZiAodGhpcy5pZCAmJiB0aGlzLmNvbnRleHQpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQudXBkYXRlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoYW5nZWRIYW5kbGVyKGV2ZW50OiBNYXREYXRldGltZXBpY2tlcklucHV0RXZlbnQ8RGF0ZT4sIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDxEYXRlPikge1xuICAgICAgICBjb25zdCBmb3JtYXREYXRlID0gZXZlbnQudmFsdWU7XG5cbiAgICAgICAgaWYgKGlzVmFsaWQoZm9ybWF0RGF0ZSkpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldFZhbHVlKGZvcm1hdERhdGUpO1xuICAgICAgICB9IGVsc2UgaWYgKGZvcm1hdERhdGUpIHtcbiAgICAgICAgICAgIGZvcm1Db250cm9sLnNldEVycm9ycyh7XG4gICAgICAgICAgICAgICAgaW52YWxpZE9uQ2hhbmdlOiB0cnVlXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2V0RnJvbU1heERhdGV0aW1lKCk7XG4gICAgfVxuXG4gICAgaGFzUGFyc2VFcnJvcihmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w8RGF0ZT4pOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGZvcm1Db250cm9sLmhhc0Vycm9yKCdtYXREYXRlcGlja2VyUGFyc2UnKSAmJiBmb3JtQ29udHJvbC5nZXRFcnJvcignbWF0RGF0ZXBpY2tlclBhcnNlJykudGV4dDtcbiAgICB9XG5cbiAgICBmb3JjZVBsYWNlaG9sZGVyKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgZXZlbnQudGFyZ2V0LmNsaWNrKCk7XG4gICAgfVxuXG4gICAgc2V0RnJvbU1heERhdGV0aW1lKCkge1xuICAgICAgICB0aGlzLmZyb21NYXhEYXRldGltZSA9ICF0aGlzLnRvLnZhbHVlIHx8ICh0aGlzLm1heERhdGV0aW1lICYmIGlzQmVmb3JlKHRoaXMubWF4RGF0ZXRpbWUsIHRoaXMudG8udmFsdWUpKSA/IHRoaXMubWF4RGF0ZXRpbWUgOiB0aGlzLnRvLnZhbHVlO1xuICAgIH1cbn1cbiIsIjxmb3JtIFtmb3JtR3JvdXBdPVwiZm9ybVwiIG5vdmFsaWRhdGUgKG5nU3VibWl0KT1cImFwcGx5KGZvcm0udmFsdWUsIGZvcm0udmFsaWQpXCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXRcbiAgICAgICAgICAgICAgICAoaW5wdXQpPVwiZm9yY2VQbGFjZWhvbGRlcigkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZnJvbVwiXG4gICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5GSUxURVIuUkFOR0UuRlJPTS1EQVRFJyB8IHRyYW5zbGF0ZSB9fVwiXG4gICAgICAgICAgICAgICAgW21hdERhdGV0aW1lcGlja2VyXT1cImZyb21EYXRldGltZVBpY2tlclwiXG4gICAgICAgICAgICAgICAgW21heF09XCJmcm9tTWF4RGF0ZXRpbWVcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlZEhhbmRsZXIoJGV2ZW50LCBmcm9tKVwiXG4gICAgICAgICAgICAgICAgZGF0YS1hdXRvbWF0aW9uLWlkPVwiZGF0ZXRpbWUtcmFuZ2UtZnJvbS1pbnB1dFwiPlxuICAgICAgICA8bWF0LWRhdGV0aW1lcGlja2VyLXRvZ2dsZSBtYXRTdWZmaXggW2Zvcl09XCJmcm9tRGF0ZXRpbWVQaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRldGltZS1yYW5nZS1mcm9tLWRhdGUtdG9nZ2xlXCIgLz5cbiAgICAgICAgPG1hdC1kYXRldGltZXBpY2tlciAjZnJvbURhdGV0aW1lUGlja2VyIGNvbG9yPVwiYWNjZW50XCIgdHlwZT1cImRhdGV0aW1lXCIgLz5cbiAgICAgICAgPG1hdC1lcnJvciAqbmdJZj1cImZyb20uaW52YWxpZFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLWZyb20tZXJyb3JcIj5cbiAgICAgICAgICAgIHt7IGdldEZyb21WYWxpZGF0aW9uTWVzc2FnZSgpIHwgdHJhbnNsYXRlOiB7IHJlcXVpcmVkRm9ybWF0OiBkYXRldGltZVBpY2tlckZvcm1hdCB9IH19XG4gICAgICAgIDwvbWF0LWVycm9yPlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dFxuICAgICAgICAgICAgICAgIChpbnB1dCk9XCJmb3JjZVBsYWNlaG9sZGVyKCRldmVudClcIlxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJ0b1wiXG4gICAgICAgICAgICAgICAgW2Vycm9yU3RhdGVNYXRjaGVyXT1cIm1hdGNoZXJcIlxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwie3sgJ1NFQVJDSC5GSUxURVIuUkFOR0UuVE8tREFURScgfCB0cmFuc2xhdGUgfX1cIlxuICAgICAgICAgICAgICAgIFttYXREYXRldGltZXBpY2tlcl09XCJ0b0RhdGV0aW1lUGlja2VyXCJcbiAgICAgICAgICAgICAgICBbbWluXT1cImZyb20udmFsdWVcIlxuICAgICAgICAgICAgICAgIFttYXhdPVwibWF4RGF0ZXRpbWVcIlxuICAgICAgICAgICAgICAgIChkYXRlQ2hhbmdlKT1cIm9uQ2hhbmdlZEhhbmRsZXIoJGV2ZW50LCB0bylcIlxuICAgICAgICAgICAgICAgIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLXRvLWlucHV0XCI+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXItdG9nZ2xlIG1hdFN1ZmZpeCBbZm9yXT1cInRvRGF0ZXRpbWVQaWNrZXJcIiBkYXRhLWF1dG9tYXRpb24taWQ9XCJkYXRldGltZS1yYW5nZS10by1kYXRlLXRvZ2dsZVwiIC8+XG4gICAgICAgIDxtYXQtZGF0ZXRpbWVwaWNrZXIgI3RvRGF0ZXRpbWVQaWNrZXIgY29sb3I9XCJhY2NlbnRcIiB0eXBlPVwiZGF0ZXRpbWVcIiAvPlxuICAgICAgICA8bWF0LWVycm9yICpuZ0lmPVwidG8uaW52YWxpZFwiIGRhdGEtYXV0b21hdGlvbi1pZD1cImRhdGV0aW1lLXJhbmdlLXRvLWVycm9yXCI+XG4gICAgICAgICAgICB7eyBnZXRUb1ZhbGlkYXRpb25NZXNzYWdlKCkgfCB0cmFuc2xhdGU6IHsgcmVxdWlyZWRGb3JtYXQ6IGRhdGV0aW1lUGlja2VyRm9ybWF0IH0gfX1cbiAgICAgICAgPC9tYXQtZXJyb3I+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbjwvZm9ybT5cbiJdfQ==
|