@dsivd/prestations-ng 14.5.23-beta2 → 14.5.23-beta3

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.
@@ -109,9 +109,6 @@ export class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComp
109
109
  }
110
110
  });
111
111
  }
112
- getDeleteButtonAriaLabel(element) {
113
- return `${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.selected.delete.aria-label', { elementLabel: this.getLabel(element), componentLabel: this.label })}`;
114
- }
115
112
  getSelectedListAriaLabel() {
116
113
  return `${this.label}: ${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.list-of-selected-items')}`;
117
114
  }
@@ -199,8 +196,7 @@ export class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComp
199
196
  return filteredElements;
200
197
  }
201
198
  manageSuggestionListAndFocusAfterAddingAnItem() {
202
- // Highlight selected suggestion in input so screen reader knows there is still some text in input
203
- this.autocompleteComponent.inputElement.nativeElement.select();
199
+ this.autocompleteInputValue = null;
204
200
  // Remove selected item from autocomplete suggestion list
205
201
  this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
206
202
  // Check if we still have suggestions to display
@@ -249,7 +245,7 @@ FoehnMultiselectAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVer
249
245
  useExisting: forwardRef(() => FoehnMultiselectAutocompleteComponent),
250
246
  multi: true
251
247
  }
252
- ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "closeButtonsElemRef", predicate: ["closeButtonsElemRef"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <div\n [attr.role]=\"!disabled ? 'application' : null\"\n (focusin)=\"onSelectedItemsFocusin()\"\n (focusout)=\"onSelectedItemsFocusout()\"\n [tabindex]=\"(!!model && !!model.length) ? 0 : -1\"\n class=\"selected-list-container\"\n >\n <div class=\"sr-only\">\n {{'foehn-multiselect-autocomplete.list-of-selected-items.screen-reader.helper' | fromDictionary}}\n </div>\n <ul\n [id]=\"buildChildId() + 'SelectedItemsList'\"\n class=\"list-unstyled mb-1 d-flex align-content-stretch flex-wrap\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-orientation=\"horizontal\"\n [attr.aria-label]=\"getSelectedListAriaLabel()\"\n >\n <li\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"isSelectedItemFocusable(index) ? 0 : -1\"\n [attr.is-default]=\"!canBeDeleted(index)\"\n #selectedElemRef\n >\n <ng-container *ngIf=\"!disabled\">\n <span *ngIf=\"!canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.default-value' | fromDictionary }}</span>\n <span *ngIf=\"canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value' | fromDictionary }}</span>\n </ng-container>\n\n <span [innerHtml]=\"getLabel(element)\"></span>\n\n <button\n *ngIf=\"!disabled && canBeDeleted(index)\"\n type=\"button\"\n class=\"btn btn-link ml-2\"\n [tabindex]=\"getSelectedElementTabIndex(index)\"\n (click)=\"removeItem(element)\"\n [attr.aria-label]=\"getDeleteButtonAriaLabel(element)\"\n #closeButtonsElemRef\n >\n <foehn-icon-times\n title=\"{{ 'foehn-multiselect-autocomplete.selected.delete' | fromDictionary: {elementLabel: getLabel(element)} }}\"\n ></foehn-icon-times>\n </button>\n </li>\n </ul>\n </div>\n\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId() + 'AlertMessageContainer'\"\n role=\"status\"\n tabindex=\"-1\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n", styles: [".selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container li:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: i2.FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: i3.FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fromDictionary": i5.SdkDictionaryPipe } });
248
+ ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "closeButtonsElemRef", predicate: ["closeButtonsElemRef"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <div\n [attr.role]=\"!disabled ? 'application' : null\"\n (focusin)=\"onSelectedItemsFocusin()\"\n (focusout)=\"onSelectedItemsFocusout()\"\n [tabindex]=\"(!!model && !!model.length) ? 0 : -1\"\n class=\"selected-list-container\"\n >\n <ul\n [id]=\"buildChildId() + 'SelectedItemsList'\"\n class=\"list-unstyled mb-1 d-flex align-content-stretch flex-wrap\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-orientation=\"horizontal\"\n [attr.aria-label]=\"getSelectedListAriaLabel()\"\n >\n <li\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"isSelectedItemFocusable(index) ? 0 : -1\"\n [attr.is-default]=\"!canBeDeleted(index)\"\n #selectedElemRef\n >\n <ng-container *ngIf=\"!disabled\">\n <span *ngIf=\"!canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.default-value' | fromDictionary }}</span>\n <span *ngIf=\"canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value' | fromDictionary }}</span>\n </ng-container>\n\n <span [innerHtml]=\"getLabel(element)\"></span>\n\n <button\n *ngIf=\"!disabled && canBeDeleted(index)\"\n type=\"button\"\n class=\"btn btn-link ml-2\"\n [tabindex]=\"getSelectedElementTabIndex(index)\"\n (click)=\"removeItem(element)\"\n #closeButtonsElemRef\n >\n <foehn-icon-times\n title=\"{{ 'foehn-multiselect-autocomplete.selected.delete' | fromDictionary: {elementLabel: getLabel(element)} }}\"\n ></foehn-icon-times>\n </button>\n </li>\n </ul>\n </div>\n\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId() + 'AlertMessageContainer'\"\n role=\"status\"\n tabindex=\"-1\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n", styles: [".selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container li:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: i2.FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: i3.FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fromDictionary": i5.SdkDictionaryPipe } });
253
249
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnMultiselectAutocompleteComponent, decorators: [{
254
250
  type: Component,
255
251
  args: [{
@@ -284,4 +280,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImpor
284
280
  type: HostListener,
285
281
  args: ['keydown', ['$event']]
286
282
  }] } });
287
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUvZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUvZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBZXhELE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSwwQkFBMEI7SUFzQ2pGLFlBQVksTUFBYyxFQUFVLGlCQUF1QztRQUN2RSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFEa0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQU4zRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFHckIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBSzFDLENBQUM7SUExQkQsSUFDSSxvQkFBb0IsQ0FBQyxLQUFnQjtRQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFD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QzFCTCwreUhBMEZBOzJGRDlEYSxxQ0FBcUM7a0JBWmpELFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGdDQUFnQztvQkFDMUMsV0FBVyxFQUFFLGlEQUFpRDtvQkFDOUQsU0FBUyxFQUFFLENBQUMsZ0RBQWdELENBQUM7b0JBQzdELFNBQVMsRUFBRTt3QkFDUDs0QkFDSSxPQUFPLEVBQUUsbUJBQW1COzRCQUM1QixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQ0FBc0MsQ0FBQzs0QkFDcEUsS0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7Z0lBSVcscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLHVCQUF1QjtnQkFJMUIscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLHVCQUF1QjtnQkFJMUIsbUJBQW1CO3NCQUQxQixZQUFZO3VCQUFDLHFCQUFxQjtnQkFJM0IsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSTNCLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFhRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBaUJFLHVCQUF1QjtzQkFEOUIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LCBOZ1pvbmUsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4tYXV0b2NvbXBsZXRlL2ZvZWhuLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYmplY3RIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL29iamVjdC5oZWxwZXInO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2Vobk11bHRpc2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTXVsdGlzZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGVDb21wb25lbnQnKVxuICAgIHByaXZhdGUgYXV0b2NvbXBsZXRlQ29tcG9uZW50OiBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2FsZXJ0TWVzc2FnZUNvbnRhaW5lcicpXG4gICAgcHJpdmF0ZSBhbGVydE1lc3NhZ2VDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdjbG9zZUJ1dHRvbnNFbGVtUmVmJylcbiAgICBwcml2YXRlIGNsb3NlQnV0dG9uc0VsZW1SZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ3NlbGVjdGVkRWxlbVJlZicpXG4gICAgcHJpdmF0ZSBzZWxlY3RlZEVsZW1SZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlZmF1bHRFbGVtZW50VmFsdWVzKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlc18gPSBbLi4uaXRlbXNdO1xuICAgICAgICBpZiAoKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkgJiYgaXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChpdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdEVsZW1lbnRWYWx1ZXMoKTogdW5rbm93bltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXNfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlZmF1bHRFbGVtZW50VmFsdWUoaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMgPSBbaXRlbV07XG4gICAgfVxuXG4gICAgYXV0b2NvbXBsZXRlSW5wdXRWYWx1ZTogc3RyaW5nO1xuICAgIHNob3dFbXB0eUxpc3RNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlZmF1bHRFbGVtZW50VmFsdWVzXzogdW5rbm93bltdO1xuICAgIHByaXZhdGUga2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudEZvY3VzZWRFbGVtOiBFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3Iobmdab25lOiBOZ1pvbmUsIHByaXZhdGUgZGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKG5nWm9uZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlib2FyZERvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5rZXlib2FyZE5hdmlnYXRpb25BbGxvd2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93blNlbGVjdGVkSW5uZXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlTXVsdGlzZWxlY3RBdXRvY29tcGxldGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlVXNlcklucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRWYWxpZFZhbHVlKCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsaWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkSXRlbShpdGVtOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGlmICghIWl0ZW0pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTXVsdGlzZWxlY3RBdXRvY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVzZXJJbnB1dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlU3VnZ2VzdGlvbkxpc3RBbmRGb2N1c0FmdGVyQWRkaW5nQW5JdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVJdGVtKGl0ZW06IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZVN1Z2dlc3Rpb25MaXN0QW5kRm9jdXNBZnRlclJlbW92aW5nQW5JdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG4gICAgZ2V0TGFiZWwodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmZpbmRFbGVtZW50QnlNb2RlbEl0ZW0odmFsdWUpO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0TGFiZWwoZWxlbSk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50VGFiSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBmaXJzdEluZGV4Rm9jdXNhYmxlID0gMDtcbiAgICAgICAgaWYgKCEhdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlcykge1xuICAgICAgICAgICAgZmlyc3RJbmRleEZvY3VzYWJsZSA9IHRoaXMubW9kZWwuZmluZEluZGV4KChzZWxlY3RlZDogdW5rbm93bikgPT4gIXRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMuaW5jbHVkZXMoc2VsZWN0ZWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggIT09IGZpcnN0SW5kZXhGb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkSXRlbUZvY3VzYWJsZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAhIXRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMgJiYgdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlcy5pbmNsdWRlcyh0aGlzLm1vZGVsW2luZGV4XSk7XG4gICAgfVxuXG4gICAgY2FuQmVEZWxldGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlZmF1bHRFbGVtZW50VmFsdWVzIHx8ICF0aGlzLmRlZmF1bHRFbGVtZW50VmFsdWVzLmluY2x1ZGVzKHRoaXMubW9kZWxbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkSXRlbXNGb2N1c2luKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRGb2N1c2VkRWxlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25TZWxlY3RlZEl0ZW1zRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQXV0b2NvbXBsZXRlRWxlbWVudHNMb2FkZWQoZWxlbWVudHM6IFtdKTogdm9pZCB7XG4gICAgICAgIC8vIE5lZWQgdG8gd2FpdCBmb3IgY2hpbGRWaWV3IHRvIGJlIGxvYWRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghIXRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQuZWxlbWVudHMgPSB0aGlzLmZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2VBbmRIaWRlQXV0b2NvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXREZWxldGVCdXR0b25BcmlhTGFiZWwoZWxlbWVudDogdW5rbm93bik6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmRpY3Rpb25hcnlTZXJ2aWNlLmdldEtleVN5bmMoJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5kZWxldGUuYXJpYS1sYWJlbCcsXG4gICAgICAgICAgICB7IGVsZW1lbnRMYWJlbDogdGhpcy5nZXRMYWJlbChlbGVtZW50KSwgY29tcG9uZW50TGFiZWw6IHRoaXMubGFiZWwgfSl9YDtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZExpc3RBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMubGFiZWx9OiAke3RoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYygnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmxpc3Qtb2Ytc2VsZWN0ZWQtaXRlbXMnKX1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEVsZW1lbnRCeU1vZGVsSXRlbShpdGVtOiB1bmtub3duKTogdW5rbm93biB7XG4gICAgICAgIGlmICghIXRoaXMuZWxlbWVudHMgJiYgISF0aGlzLmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbVZhbHVlOiBzdHJpbmcgPSB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyBpdGVtIDogdGhpcy5nZXRWYWx1ZShpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnRzLmZpbmQoKGVsZW1lbnQ6IHVua25vd24pID0+IHRoaXMuZ2V0VmFsdWUoZWxlbWVudCkgPT09IGl0ZW1WYWx1ZSk7XG4gICAgICAgICAgICBpZiAoISFlbGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IG51bWJlcltdIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdERlbGV0ZUJ1dHRvblRvRm9jdXMoKTogSFRNTEJ1dHRvbkVsZW1lbnQge1xuICAgICAgICBjb25zdCBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkgPSBbLi4udGhpcy5jbG9zZUJ1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV07XG4gICAgICAgIGlmICghIWNsb3NlQnV0dG9uc0VsZW1SZWZBcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXlbMF0ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5hdmlnYXRlU2VsZWN0ZWRMaXN0KG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5ID0gdGhpcy5nZXREZWZhdWx0U2VsZWN0ZWRFbGVtZW50cygpLmNvbmNhdChbLi4udGhpcy5jbG9zZUJ1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0pO1xuICAgICAgICAgICAgaWYgKCEhY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzSW5kZXggPSBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkuZmluZEluZGV4KHZhbHVlID0+IHRoaXMuY3VycmVudEZvY3VzZWRFbGVtID09PSB2YWx1ZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3SW5kZXggPSBmb2N1c0luZGV4ICsgb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChuZXdJbmRleCA+PSBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCA9IGNsb3NlQnV0dG9uc0VsZW1SZWZBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtUmVmID0gY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5W25ld0luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoISFlbGVtUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1SZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdFNlbGVjdGVkRWxlbWVudHMoKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnNlbGVjdGVkRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpcy1kZWZhdWx0JykgPT09ICd0cnVlJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duU2VsZWN0ZWRJbm5lcihrZXlFdmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQga2V5RXZlbnQuY29kZSwgYW5kIGhhcyBkaWZmZXJlbnQgdmFsdWVzXG4gICAgICAgIC8vIGluIGtleUV2ZW50LmtleSAoRG93biBpbnN0ZWFkIG9mIEFycm93RG93biBmb3IgaW5zdGFuY2UpLCBoZW5jZSB0aGUgbXVsdGktc3VwcG9ydC5cbiAgICAgICAgY29uc3QgaWUxMUNvbXBhdGlibGVDb2RlID0ga2V5RXZlbnQuY29kZSB8fCBrZXlFdmVudC5rZXk7XG4gICAgICAgIHN3aXRjaCAoaWUxMUNvbXBhdGlibGVDb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRlU2VsZWN0ZWRMaXN0KDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVTZWxlY3RlZExpc3QoLTEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGtleUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKGVsZW1lbnRzOiBbXSk6IHVua25vd24ge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZEVsZW1lbnRzID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KGVsZW1lbnRzKTtcblxuICAgICAgICBpZiAoISF0aGlzLm1vZGVsICYmICEhdGhpcy5tb2RlbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZm9yRWFjaCgoc2VsZWN0ZWQ6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwgdmFsdWVdIG9mIGZpbHRlcmVkRWxlbWVudHMuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmZpbmRFbGVtZW50QnlNb2RlbEl0ZW0oc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0SGVscGVyLmlzRXF1YWwoZWxlbSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEVsZW1lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRWxlbWVudHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VTdWdnZXN0aW9uTGlzdEFuZEZvY3VzQWZ0ZXJBZGRpbmdBbkl0ZW0oKTogdm9pZCB7XG4gICAgICAgIC8vIEhpZ2hsaWdodCBzZWxlY3RlZCBzdWdnZXN0aW9uIGluIGlucHV0IHNvIHNjcmVlbiByZWFkZXIga25vd3MgdGhlcmUgaXMgc3RpbGwgc29tZSB0ZXh0IGluIGlucHV0XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LnNlbGVjdCgpO1xuICAgICAgICAvLyBSZW1vdmUgc2VsZWN0ZWQgaXRlbSBmcm9tIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uIGxpc3RcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQuZWxlbWVudHMgPSB0aGlzLmZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICAgICAgICAvLyBDaGVjayBpZiB3ZSBzdGlsbCBoYXZlIHN1Z2dlc3Rpb25zIHRvIGRpc3BsYXlcbiAgICAgICAgaWYgKCF0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5lbGVtZW50cy5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMuc2hvd0FsZXJ0TWVzc2FnZUFuZEhpZGVBdXRvY29tcGxldGUoKTtcbiAgICAgICAgICAgIC8vIE5lZWQgc2V0VGltZW91dCB0byBlbnN1cmUgYWxlcnQgbWVzc2FnZSBpcyBvbiB0aGUgRE9NIGFuZCBjYW4gYmUgZm9jdXNhYmxlXG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBhbGVydE1lc3NhZ2U6IEhUTUxFbGVtZW50ID0gdGhpcy5hbGVydE1lc3NhZ2VDb250YWluZXIubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdwJyk7XG4gICAgICAgICAgICAgICAgaWYgKGFsZXJ0TWVzc2FnZSkge1xuICAgICAgICAgICAgICAgICAgICBhbGVydE1lc3NhZ2UuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgbWFuYWdlU3VnZ2VzdGlvbkxpc3RBbmRGb2N1c0FmdGVyUmVtb3ZpbmdBbkl0ZW0oKTogdm9pZCB7XG4gICAgICAgIC8vIEhpZGUgbWVzc2FnZSBzYXlpbmcgbm8gbW9yZSBzdWdnZXN0aW9ucyB0byBkaXNwbGF5XG4gICAgICAgIHRoaXMuc2hvd0VtcHR5TGlzdE1lc3NhZ2UgPSBmYWxzZTtcbiAgICAgICAgLy8gTWFudWFsbHkgc2hvdyBhdXRvY29tcGxldGUgYmVjYXVzZSB0aGVyZSBpcyBhdCBsZWFzdCBvbmUgc3VnZ2VzdGlvbnMgdG8gZGlzcGxheVxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5pbnB1dEVsZW1lbnQubmF0aXZlRWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcbiAgICAgICAgLy8gQWRkIGJhY2sgc2VsZWN0ZWQgaXRlbSB0byBhdXRvY29tcGxldGUgc3VnZ2VzdGlvbiBsaXN0XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmVsZW1lbnRzID0gdGhpcy5maWx0ZXJBdXRvY29tcGxldGVFbGVtZW50cyh0aGlzLmVsZW1lbnRzKTtcbiAgICAgICAgLy8gV2hlbiBkZWxldGluZyBhIHNlbGVjdGVkIGl0ZW0sIGNoZWNrIHdlcmUgdG8gc2V0IGZvY3VzIGJhY2tcbiAgICAgICAgdGhpcy5jbG9zZUJ1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYnV0dG9uVG9Gb2N1cyA9IHRoaXMuZ2V0Rmlyc3REZWxldGVCdXR0b25Ub0ZvY3VzKCk7XG4gICAgICAgICAgICBpZiAoISFidXR0b25Ub0ZvY3VzKSB7XG4gICAgICAgICAgICAgICAgYnV0dG9uVG9Gb2N1cy5mb2N1cygpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5zZXRGb2N1c09uSW5wdXQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5vbklucHV0Rm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzaG93QWxlcnRNZXNzYWdlQW5kSGlkZUF1dG9jb21wbGV0ZSgpOiB2b2lkIHtcbiAgICAgICAgLy8gU2hvdyBhIG1lc3NhZ2UgdG8gdXNlciBpbmRpY2F0aW5nIHRoZXJlIGlzIG5vIG1vcmUgc3VnZ2VzdGlvbnMgdG8gZGlzcGxheVxuICAgICAgICB0aGlzLnNob3dFbXB0eUxpc3RNZXNzYWdlID0gdHJ1ZTtcbiAgICAgICAgLy8gTWFudWFsbHkgcmVzZXQgYW5kIGhpZGUgYXV0b2NvbXBsZXRlIGJlY2F1c2UgdGhlcmUgaXMgbm8gbW9yZSBzdWdnZXN0aW9ucyB0byBkaXNwbGF5XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IHRydWU7XG4gICAgfVxufVxuIiwiPGZvZWhuLWF1dG9jb21wbGV0ZVxuICAgICNhdXRvY29tcGxldGVDb21wb25lbnRcbiAgICBbbmFtZV09XCJuYW1lXCJcbiAgICBbbGFiZWxdPVwibGFiZWxcIlxuICAgIFtlbGVtZW50c109XCJlbGVtZW50c1wiXG4gICAgW2VsZW1lbnRzVXJsXT1cImVsZW1lbnRzVXJsXCJcbiAgICBbZWxlbWVudFZhbHVlXT1cImVsZW1lbnRWYWx1ZVwiXG4gICAgW2VsZW1lbnRMYWJlbF09XCJlbGVtZW50TGFiZWxcIlxuICAgIFtlbGVtZW50VmFsdWVJZGVudGl0eV09XCJlbGVtZW50VmFsdWVJZGVudGl0eVwiXG4gICAgW2VsZW1lbnREaXNhYmxlZF09XCJlbGVtZW50RGlzYWJsZWRcIlxuICAgIFthbGxFbGVtZW50RGlzYWJsZWRdPVwiYWxsRWxlbWVudERpc2FibGVkXCJcbiAgICBbZWxlbWVudEdyb3VwXT1cImVsZW1lbnRHcm91cFwiXG4gICAgW2FsbG93Q3VzdG9tVmFsdWVdPVwiZmFsc2VcIlxuICAgIFtzZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnRdPVwic2VhcmNoVmFsdWVNaW5DaGFyc0NvdW50XCJcbiAgICBbY3VzdG9tVmFsdWVNb2RlbEdlbmVyYXRvcl09XCJjdXN0b21WYWx1ZU1vZGVsR2VuZXJhdG9yXCJcbiAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgKHVzZXJJbnB1dCk9XCJhZGRJdGVtKCRldmVudClcIlxuICAgIFsobW9kZWwpXT1cImF1dG9jb21wbGV0ZUlucHV0VmFsdWVcIlxuICAgIChlbGVtZW50c0xvYWRlZCk9XCJvbkF1dG9jb21wbGV0ZUVsZW1lbnRzTG9hZGVkKCRldmVudClcIlxuPlxuICAgIDxkaXZcbiAgICAgICAgW2F0dHIucm9sZV09XCIhZGlzYWJsZWQgPyAnYXBwbGljYXRpb24nIDogbnVsbFwiXG4gICAgICAgIChmb2N1c2luKT1cIm9uU2VsZWN0ZWRJdGVtc0ZvY3VzaW4oKVwiXG4gICAgICAgIChmb2N1c291dCk9XCJvblNlbGVjdGVkSXRlbXNGb2N1c291dCgpXCJcbiAgICAgICAgW3RhYmluZGV4XT1cIighIW1vZGVsICYmICEhbW9kZWwubGVuZ3RoKSA/IDAgOiAtMVwiXG4gICAgICAgIGNsYXNzPVwic2VsZWN0ZWQtbGlzdC1jb250YWluZXJcIlxuICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cInNyLW9ubHlcIj5cbiAgICAgICAgICAgIHt7J2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5saXN0LW9mLXNlbGVjdGVkLWl0ZW1zLnNjcmVlbi1yZWFkZXIuaGVscGVyJyB8IGZyb21EaWN0aW9uYXJ5fX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1bFxuICAgICAgICAgICAgW2lkXT1cImJ1aWxkQ2hpbGRJZCgpICsgJ1NlbGVjdGVkSXRlbXNMaXN0J1wiXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMSBkLWZsZXggYWxpZ24tY29udGVudC1zdHJldGNoIGZsZXgtd3JhcFwiXG4gICAgICAgICAgICBhcmlhLWxpdmU9XCJwb2xpdGVcIlxuICAgICAgICAgICAgYXJpYS1hdG9taWM9XCJ0cnVlXCJcbiAgICAgICAgICAgIGFyaWEtb3JpZW50YXRpb249XCJob3Jpem9udGFsXCJcbiAgICAgICAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwiZ2V0U2VsZWN0ZWRMaXN0QXJpYUxhYmVsKClcIlxuICAgICAgICA+XG4gICAgICAgICAgICA8bGlcbiAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgZWxlbWVudCBvZiBtb2RlbDsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJiYWRnZSBiYWRnZS1waWxsIGJhZGdlLXNlY29uZGFyeSBtci0xIG1iLTEgcHktMiBweC0zIGQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIlxuICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJpc1NlbGVjdGVkSXRlbUZvY3VzYWJsZShpbmRleCkgPyAwIDogLTFcIlxuICAgICAgICAgICAgICAgIFthdHRyLmlzLWRlZmF1bHRdPVwiIWNhbkJlRGVsZXRlZChpbmRleClcIlxuICAgICAgICAgICAgICAgICNzZWxlY3RlZEVsZW1SZWZcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWRpc2FibGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWNhbkJlRGVsZXRlZChpbmRleClcIiBjbGFzcz1cInNyLW9ubHlcIj57eyAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLnNjcmVlbi1yZWFkZXIuZGVmYXVsdC12YWx1ZScgfCBmcm9tRGljdGlvbmFyeSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJjYW5CZURlbGV0ZWQoaW5kZXgpXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5zY3JlZW4tcmVhZGVyLnNlbGVjdGVkLXZhbHVlJyB8IGZyb21EaWN0aW9uYXJ5IH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICAgICAgICAgICAgPHNwYW4gW2lubmVySHRtbF09XCJnZXRMYWJlbChlbGVtZW50KVwiPjwvc3Bhbj5cblxuICAgICAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgICAgICAgKm5nSWY9XCIhZGlzYWJsZWQgJiYgY2FuQmVEZWxldGVkKGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tbGluayBtbC0yXCJcbiAgICAgICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cImdldFNlbGVjdGVkRWxlbWVudFRhYkluZGV4KGluZGV4KVwiXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJyZW1vdmVJdGVtKGVsZW1lbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJnZXREZWxldGVCdXR0b25BcmlhTGFiZWwoZWxlbWVudClcIlxuICAgICAgICAgICAgICAgICAgICAjY2xvc2VCdXR0b25zRWxlbVJlZlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPGZvZWhuLWljb24tdGltZXNcbiAgICAgICAgICAgICAgICAgICAgICAgIHRpdGxlPVwie3sgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5kZWxldGUnIHwgZnJvbURpY3Rpb25hcnk6IHtlbGVtZW50TGFiZWw6IGdldExhYmVsKGVsZW1lbnQpfSB9fVwiXG4gICAgICAgICAgICAgICAgICAgID48L2ZvZWhuLWljb24tdGltZXM+XG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgIDwvZGl2PlxuXG4gICAgPHNtYWxsXG4gICAgICAgICpuZ0lmPVwiIXNob3dFbXB0eUxpc3RNZXNzYWdlXCJcbiAgICAgICAgW2F0dHIuaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnSGVscCdcIlxuICAgICAgICBjbGFzcz1cImZvcm0tdGV4dCB0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgIFtpbm5lckhUTUxdPVwiaGVscFRleHQgPyBoZWxwVGV4dCA6ICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlLnNjcmVlbi1yZWFkZXIubGFiZWwnIHwgZnJvbURpY3Rpb25hcnlcIlxuICAgID48L3NtYWxsPlxuXG4gICAgPGRpdlxuICAgICAgICBbaWRdPVwiYnVpbGRDaGlsZElkKCkgKyAnQWxlcnRNZXNzYWdlQ29udGFpbmVyJ1wiXG4gICAgICAgIHJvbGU9XCJzdGF0dXNcIlxuICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgI2FsZXJ0TWVzc2FnZUNvbnRhaW5lclxuICAgID5cbiAgICAgICAgPHBcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0VtcHR5TGlzdE1lc3NhZ2VcIlxuICAgICAgICAgICAgY2xhc3M9XCJhbGVydCBhbGVydC1pbmZvXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgID57eydmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlLmVtcHR5LW1lc3NhZ2UnIHwgZnJvbURpY3Rpb25hcnl9fTwvcD5cbiAgICA8L2Rpdj5cbjwvZm9laG4tYXV0b2NvbXBsZXRlPlxuIl19
283
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUvZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZXN0YXRpb25zLW5nL3NyYy9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUvZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBRVQsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQ0FBc0MsQ0FBQztBQUMzRSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUNoRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBZXhELE1BQU0sT0FBTyxxQ0FBc0MsU0FBUSwwQkFBMEI7SUFzQ2pGLFlBQVksTUFBYyxFQUFVLGlCQUF1QztRQUN2RSxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUM7UUFEa0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFzQjtRQU4zRSx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFHckIsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO0lBSzFDLENBQUM7SUExQkQsSUFDSSxvQkFBb0IsQ0FBQyxLQUFnQjtRQUNyQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFD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S0FBSyxFQUFFLElBQUk7eUJBQ2Q7cUJBQ0o7aUJBQ0o7Z0lBSVcscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLHVCQUF1QjtnQkFJMUIscUJBQXFCO3NCQUQ1QixTQUFTO3VCQUFDLHVCQUF1QjtnQkFJMUIsbUJBQW1CO3NCQUQxQixZQUFZO3VCQUFDLHFCQUFxQjtnQkFJM0IsZUFBZTtzQkFEdEIsWUFBWTt1QkFBQyxpQkFBaUI7Z0JBSTNCLG9CQUFvQjtzQkFEdkIsS0FBSztnQkFhRixtQkFBbUI7c0JBRHRCLEtBQUs7Z0JBaUJFLHVCQUF1QjtzQkFEOUIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBFbGVtZW50UmVmLFxuICAgIGZvcndhcmRSZWYsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LCBOZ1pvbmUsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2VobklucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4taW5wdXQvZm9laG4taW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IEZvZWhuQXV0b2NvbXBsZXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vZm9laG4tYXV0b2NvbXBsZXRlL2ZvZWhuLWF1dG9jb21wbGV0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYmplY3RIZWxwZXIgfSBmcm9tICcuLi9oZWxwZXJzL29iamVjdC5oZWxwZXInO1xuaW1wb3J0IHsgU2RrRGljdGlvbmFyeVNlcnZpY2UgfSBmcm9tICcuLi9zZGstZGljdGlvbmFyeS9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9mb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5jb21wb25lbnQuY3NzJ10sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICAgIHByb3ZpZGU6IEZvZWhuSW5wdXRDb21wb25lbnQsXG4gICAgICAgICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBGb2Vobk11bHRpc2VsZWN0QXV0b2NvbXBsZXRlQ29tcG9uZW50KSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH1cbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIEZvZWhuTXVsdGlzZWxlY3RBdXRvY29tcGxldGVDb21wb25lbnQgZXh0ZW5kcyBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudCB7XG5cbiAgICBAVmlld0NoaWxkKCdhdXRvY29tcGxldGVDb21wb25lbnQnKVxuICAgIHByaXZhdGUgYXV0b2NvbXBsZXRlQ29tcG9uZW50OiBGb2VobkF1dG9jb21wbGV0ZUNvbXBvbmVudDtcblxuICAgIEBWaWV3Q2hpbGQoJ2FsZXJ0TWVzc2FnZUNvbnRhaW5lcicpXG4gICAgcHJpdmF0ZSBhbGVydE1lc3NhZ2VDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICBAVmlld0NoaWxkcmVuKCdjbG9zZUJ1dHRvbnNFbGVtUmVmJylcbiAgICBwcml2YXRlIGNsb3NlQnV0dG9uc0VsZW1SZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBWaWV3Q2hpbGRyZW4oJ3NlbGVjdGVkRWxlbVJlZicpXG4gICAgcHJpdmF0ZSBzZWxlY3RlZEVsZW1SZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlZmF1bHRFbGVtZW50VmFsdWVzKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICAgICAgdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlc18gPSBbLi4uaXRlbXNdO1xuICAgICAgICBpZiAoKCF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aCkgJiYgaXRlbXMpIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlTmdNb2RlbChpdGVtcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBnZXQgZGVmYXVsdEVsZW1lbnRWYWx1ZXMoKTogdW5rbm93bltdIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXNfO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgc2V0IGRlZmF1bHRFbGVtZW50VmFsdWUoaXRlbTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMgPSBbaXRlbV07XG4gICAgfVxuXG4gICAgYXV0b2NvbXBsZXRlSW5wdXRWYWx1ZTogc3RyaW5nO1xuICAgIHNob3dFbXB0eUxpc3RNZXNzYWdlID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIGRlZmF1bHRFbGVtZW50VmFsdWVzXzogdW5rbm93bltdO1xuICAgIHByaXZhdGUga2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIHByaXZhdGUgY3VycmVudEZvY3VzZWRFbGVtOiBFbGVtZW50O1xuXG4gICAgY29uc3RydWN0b3Iobmdab25lOiBOZ1pvbmUsIHByaXZhdGUgZGljdGlvbmFyeVNlcnZpY2U6IFNka0RpY3Rpb25hcnlTZXJ2aWNlKSB7XG4gICAgICAgIHN1cGVyKG5nWm9uZSk7XG4gICAgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG4gICAgcHJpdmF0ZSBoYW5kbGVLZXlib2FyZERvd25FdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5rZXlib2FyZE5hdmlnYXRpb25BbGxvd2VkKSB7XG4gICAgICAgICAgICB0aGlzLm9uS2V5RG93blNlbGVjdGVkSW5uZXIoZXZlbnQpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlTXVsdGlzZWxlY3RBdXRvY29tcGxldGUoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbGlkVmFsdWUgPSB0aGlzLmdldFZhbGlkVmFsdWUoKTtcbiAgICAgICAgaWYgKHR5cGVvZiB2YWxpZFZhbHVlICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgICAgdGhpcy51cGRhdGVOZ01vZGVsKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgaGFuZGxlVXNlcklucHV0KCk6IHZvaWQge1xuICAgICAgICBjb25zdCB2YWxpZFZhbHVlID0gdGhpcy5nZXRWYWxpZFZhbHVlKCk7XG4gICAgICAgIGlmICh0eXBlb2YgdmFsaWRWYWx1ZSAhPT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgICAgICAgIHRoaXMuaGFuZGxlQ2hhbmdlKHZhbGlkVmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYWRkSXRlbShpdGVtOiB1bmtub3duKTogdm9pZCB7XG4gICAgICAgIGlmICghIWl0ZW0pIHtcbiAgICAgICAgICAgIGlmICghdGhpcy5tb2RlbCkge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZWwgPSBbXTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoaXRlbSk7XG4gICAgICAgICAgICBpZiAoaW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5tb2RlbC5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlTXVsdGlzZWxlY3RBdXRvY29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZVVzZXJJbnB1dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMubWFuYWdlU3VnZ2VzdGlvbkxpc3RBbmRGb2N1c0FmdGVyQWRkaW5nQW5JdGVtKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZW1vdmVJdGVtKGl0ZW06IHVua25vd24pOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXggPSB0aGlzLm1vZGVsLmluZGV4T2YoaXRlbSk7XG4gICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICB0aGlzLm1vZGVsLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXJVc2VySW5wdXQodGhpcy5tb2RlbCk7XG4gICAgICAgICAgICB0aGlzLm1hbmFnZVN1Z2dlc3Rpb25MaXN0QW5kRm9jdXNBZnRlclJlbW92aW5nQW5JdGVtKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB0cmFja0J5Rm4oaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICB9XG5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSxAdHlwZXNjcmlwdC1lc2xpbnQvZXhwbGljaXQtbW9kdWxlLWJvdW5kYXJ5LXR5cGVzXG4gICAgZ2V0TGFiZWwodmFsdWU6IGFueSk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmZpbmRFbGVtZW50QnlNb2RlbEl0ZW0odmFsdWUpO1xuICAgICAgICByZXR1cm4gc3VwZXIuZ2V0TGFiZWwoZWxlbSk7XG4gICAgfVxuXG4gICAgZ2V0U2VsZWN0ZWRFbGVtZW50VGFiSW5kZXgoaW5kZXg6IG51bWJlcik6IG51bWJlciB7XG4gICAgICAgIGxldCBmaXJzdEluZGV4Rm9jdXNhYmxlID0gMDtcbiAgICAgICAgaWYgKCEhdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlcykge1xuICAgICAgICAgICAgZmlyc3RJbmRleEZvY3VzYWJsZSA9IHRoaXMubW9kZWwuZmluZEluZGV4KChzZWxlY3RlZDogdW5rbm93bikgPT4gIXRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMuaW5jbHVkZXMoc2VsZWN0ZWQpKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoaW5kZXggIT09IGZpcnN0SW5kZXhGb2N1c2FibGUpIHtcbiAgICAgICAgICAgIHJldHVybiAtMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gMDtcbiAgICB9XG5cbiAgICBpc1NlbGVjdGVkSXRlbUZvY3VzYWJsZShpbmRleDogbnVtYmVyKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhdGhpcy5kaXNhYmxlZCAmJiAhIXRoaXMuZGVmYXVsdEVsZW1lbnRWYWx1ZXMgJiYgdGhpcy5kZWZhdWx0RWxlbWVudFZhbHVlcy5pbmNsdWRlcyh0aGlzLm1vZGVsW2luZGV4XSk7XG4gICAgfVxuXG4gICAgY2FuQmVEZWxldGVkKGluZGV4OiBudW1iZXIpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmRlZmF1bHRFbGVtZW50VmFsdWVzIHx8ICF0aGlzLmRlZmF1bHRFbGVtZW50VmFsdWVzLmluY2x1ZGVzKHRoaXMubW9kZWxbaW5kZXhdKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdGVkSXRlbXNGb2N1c2luKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleWJvYXJkTmF2aWdhdGlvbkFsbG93ZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmN1cnJlbnRGb2N1c2VkRWxlbSA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgb25TZWxlY3RlZEl0ZW1zRm9jdXNvdXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5Ym9hcmROYXZpZ2F0aW9uQWxsb3dlZCA9IGZhbHNlO1xuICAgIH1cblxuICAgIG9uQXV0b2NvbXBsZXRlRWxlbWVudHNMb2FkZWQoZWxlbWVudHM6IFtdKTogdm9pZCB7XG4gICAgICAgIC8vIE5lZWQgdG8gd2FpdCBmb3IgY2hpbGRWaWV3IHRvIGJlIGxvYWRlZFxuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghIXRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQuZWxlbWVudHMgPSB0aGlzLmZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKGVsZW1lbnRzKTtcbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuZGlzYWJsZWQgJiYgIXRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNob3dBbGVydE1lc3NhZ2VBbmRIaWRlQXV0b2NvbXBsZXRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTZWxlY3RlZExpc3RBcmlhTGFiZWwoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMubGFiZWx9OiAke3RoaXMuZGljdGlvbmFyeVNlcnZpY2UuZ2V0S2V5U3luYygnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmxpc3Qtb2Ytc2VsZWN0ZWQtaXRlbXMnKX1gO1xuICAgIH1cblxuICAgIHByaXZhdGUgZmluZEVsZW1lbnRCeU1vZGVsSXRlbShpdGVtOiB1bmtub3duKTogdW5rbm93biB7XG4gICAgICAgIGlmICghIXRoaXMuZWxlbWVudHMgJiYgISF0aGlzLmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgY29uc3QgaXRlbVZhbHVlOiBzdHJpbmcgPSB0eXBlb2YgaXRlbSA9PT0gJ3N0cmluZycgPyBpdGVtIDogdGhpcy5nZXRWYWx1ZShpdGVtKTtcbiAgICAgICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmVsZW1lbnRzLmZpbmQoKGVsZW1lbnQ6IHVua25vd24pID0+IHRoaXMuZ2V0VmFsdWUoZWxlbWVudCkgPT09IGl0ZW1WYWx1ZSk7XG4gICAgICAgICAgICBpZiAoISFlbGVtKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGVsZW07XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRWYWxpZFZhbHVlKCk6IG51bWJlcltdIHwgbnVsbCB8IHVuZGVmaW5lZCB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgICF0aGlzLm1vZGVsIHx8ICF0aGlzLm1vZGVsLmxlbmd0aFxuICAgICAgICApIHtcbiAgICAgICAgICAgIGlmICh0aGlzLm1vZGVsXyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZWw7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRGaXJzdERlbGV0ZUJ1dHRvblRvRm9jdXMoKTogSFRNTEJ1dHRvbkVsZW1lbnQge1xuICAgICAgICBjb25zdCBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkgPSBbLi4udGhpcy5jbG9zZUJ1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV07XG4gICAgICAgIGlmICghIWNsb3NlQnV0dG9uc0VsZW1SZWZBcnJheS5sZW5ndGgpIHtcbiAgICAgICAgICAgIHJldHVybiBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXlbMF0ubmF0aXZlRWxlbWVudDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICBwcml2YXRlIG5hdmlnYXRlU2VsZWN0ZWRMaXN0KG9mZnNldDogbnVtYmVyKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgY29uc3QgY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5ID0gdGhpcy5nZXREZWZhdWx0U2VsZWN0ZWRFbGVtZW50cygpLmNvbmNhdChbLi4udGhpcy5jbG9zZUJ1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0pO1xuICAgICAgICAgICAgaWYgKCEhY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGZvY3VzSW5kZXggPSBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkuZmluZEluZGV4KHZhbHVlID0+IHRoaXMuY3VycmVudEZvY3VzZWRFbGVtID09PSB2YWx1ZS5uYXRpdmVFbGVtZW50KTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3SW5kZXggPSBmb2N1c0luZGV4ICsgb2Zmc2V0O1xuICAgICAgICAgICAgICAgIGlmIChuZXdJbmRleCA+PSBjbG9zZUJ1dHRvbnNFbGVtUmVmQXJyYXkubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld0luZGV4ID0gMDtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgaWYgKG5ld0luZGV4IDwgMCkge1xuICAgICAgICAgICAgICAgICAgICBuZXdJbmRleCA9IGNsb3NlQnV0dG9uc0VsZW1SZWZBcnJheS5sZW5ndGggLSAxO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBlbGVtUmVmID0gY2xvc2VCdXR0b25zRWxlbVJlZkFycmF5W25ld0luZGV4XTtcbiAgICAgICAgICAgICAgICBpZiAoISFlbGVtUmVmKSB7XG4gICAgICAgICAgICAgICAgICAgIGVsZW1SZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RGVmYXVsdFNlbGVjdGVkRWxlbWVudHMoKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLnNlbGVjdGVkRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpcy1kZWZhdWx0JykgPT09ICd0cnVlJ1xuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgb25LZXlEb3duU2VsZWN0ZWRJbm5lcihrZXlFdmVudDogS2V5Ym9hcmRFdmVudCk6IGJvb2xlYW4ge1xuICAgICAgICAvLyBJRSBkb2Vzbid0IHN1cHBvcnQga2V5RXZlbnQuY29kZSwgYW5kIGhhcyBkaWZmZXJlbnQgdmFsdWVzXG4gICAgICAgIC8vIGluIGtleUV2ZW50LmtleSAoRG93biBpbnN0ZWFkIG9mIEFycm93RG93biBmb3IgaW5zdGFuY2UpLCBoZW5jZSB0aGUgbXVsdGktc3VwcG9ydC5cbiAgICAgICAgY29uc3QgaWUxMUNvbXBhdGlibGVDb2RlID0ga2V5RXZlbnQuY29kZSB8fCBrZXlFdmVudC5rZXk7XG4gICAgICAgIHN3aXRjaCAoaWUxMUNvbXBhdGlibGVDb2RlKSB7XG4gICAgICAgICAgICBjYXNlICdSaWdodCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd1JpZ2h0JzpcbiAgICAgICAgICAgICAgICB0aGlzLm5hdmlnYXRlU2VsZWN0ZWRMaXN0KDEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnTGVmdCc6XG4gICAgICAgICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICAgICAgICAgIHRoaXMubmF2aWdhdGVTZWxlY3RlZExpc3QoLTEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGtleUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGtleUV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKGVsZW1lbnRzOiBbXSk6IHVua25vd24ge1xuICAgICAgICBjb25zdCBmaWx0ZXJlZEVsZW1lbnRzID0gT2JqZWN0SGVscGVyLmRlZXBDb3B5KGVsZW1lbnRzKTtcblxuICAgICAgICBpZiAoISF0aGlzLm1vZGVsICYmICEhdGhpcy5tb2RlbC5sZW5ndGgpIHtcbiAgICAgICAgICAgIHRoaXMubW9kZWwuZm9yRWFjaCgoc2VsZWN0ZWQ6IHVua25vd24pID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IFtpbmRleCwgdmFsdWVdIG9mIGZpbHRlcmVkRWxlbWVudHMuZW50cmllcygpKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGVsZW0gPSB0aGlzLmZpbmRFbGVtZW50QnlNb2RlbEl0ZW0oc2VsZWN0ZWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoT2JqZWN0SGVscGVyLmlzRXF1YWwoZWxlbSwgdmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWx0ZXJlZEVsZW1lbnRzLnNwbGljZShpbmRleCwgMSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGZpbHRlcmVkRWxlbWVudHM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VTdWdnZXN0aW9uTGlzdEFuZEZvY3VzQWZ0ZXJBZGRpbmdBbkl0ZW0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlSW5wdXRWYWx1ZSA9IG51bGw7XG4gICAgICAgIC8vIFJlbW92ZSBzZWxlY3RlZCBpdGVtIGZyb20gYXV0b2NvbXBsZXRlIHN1Z2dlc3Rpb24gbGlzdFxuICAgICAgICB0aGlzLmF1dG9jb21wbGV0ZUNvbXBvbmVudC5lbGVtZW50cyA9IHRoaXMuZmlsdGVyQXV0b2NvbXBsZXRlRWxlbWVudHModGhpcy5lbGVtZW50cyk7XG4gICAgICAgIC8vIENoZWNrIGlmIHdlIHN0aWxsIGhhdmUgc3VnZ2VzdGlvbnMgdG8gZGlzcGxheVxuICAgICAgICBpZiAoIXRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5zaG93QWxlcnRNZXNzYWdlQW5kSGlkZUF1dG9jb21wbGV0ZSgpO1xuICAgICAgICAgICAgLy8gTmVlZCBzZXRUaW1lb3V0IHRvIGVuc3VyZSBhbGVydCBtZXNzYWdlIGlzIG9uIHRoZSBET00gYW5kIGNhbiBiZSBmb2N1c2FibGVcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGFsZXJ0TWVzc2FnZTogSFRNTEVsZW1lbnQgPSB0aGlzLmFsZXJ0TWVzc2FnZUNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ3AnKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxlcnRNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgICAgIGFsZXJ0TWVzc2FnZS5mb2N1cygpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBtYW5hZ2VTdWdnZXN0aW9uTGlzdEFuZEZvY3VzQWZ0ZXJSZW1vdmluZ0FuSXRlbSgpOiB2b2lkIHtcbiAgICAgICAgLy8gSGlkZSBtZXNzYWdlIHNheWluZyBubyBtb3JlIHN1Z2dlc3Rpb25zIHRvIGRpc3BsYXlcbiAgICAgICAgdGhpcy5zaG93RW1wdHlMaXN0TWVzc2FnZSA9IGZhbHNlO1xuICAgICAgICAvLyBNYW51YWxseSBzaG93IGF1dG9jb21wbGV0ZSBiZWNhdXNlIHRoZXJlIGlzIGF0IGxlYXN0IG9uZSBzdWdnZXN0aW9ucyB0byBkaXNwbGF5XG4gICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LmlucHV0RWxlbWVudC5uYXRpdmVFbGVtZW50LmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICAvLyBBZGQgYmFjayBzZWxlY3RlZCBpdGVtIHRvIGF1dG9jb21wbGV0ZSBzdWdnZXN0aW9uIGxpc3RcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQuZWxlbWVudHMgPSB0aGlzLmZpbHRlckF1dG9jb21wbGV0ZUVsZW1lbnRzKHRoaXMuZWxlbWVudHMpO1xuICAgICAgICAvLyBXaGVuIGRlbGV0aW5nIGEgc2VsZWN0ZWQgaXRlbSwgY2hlY2sgd2VyZSB0byBzZXQgZm9jdXMgYmFja1xuICAgICAgICB0aGlzLmNsb3NlQnV0dG9uc0VsZW1SZWYuY2hhbmdlcy5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBidXR0b25Ub0ZvY3VzID0gdGhpcy5nZXRGaXJzdERlbGV0ZUJ1dHRvblRvRm9jdXMoKTtcbiAgICAgICAgICAgIGlmICghIWJ1dHRvblRvRm9jdXMpIHtcbiAgICAgICAgICAgICAgICBidXR0b25Ub0ZvY3VzLmZvY3VzKCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50LnNldEZvY3VzT25JbnB1dCgpO1xuICAgICAgICAgICAgICAgIHRoaXMuYXV0b2NvbXBsZXRlQ29tcG9uZW50Lm9uSW5wdXRGb2N1cygpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNob3dBbGVydE1lc3NhZ2VBbmRIaWRlQXV0b2NvbXBsZXRlKCk6IHZvaWQge1xuICAgICAgICAvLyBTaG93IGEgbWVzc2FnZSB0byB1c2VyIGluZGljYXRpbmcgdGhlcmUgaXMgbm8gbW9yZSBzdWdnZXN0aW9ucyB0byBkaXNwbGF5XG4gICAgICAgIHRoaXMuc2hvd0VtcHR5TGlzdE1lc3NhZ2UgPSB0cnVlO1xuICAgICAgICAvLyBNYW51YWxseSByZXNldCBhbmQgaGlkZSBhdXRvY29tcGxldGUgYmVjYXVzZSB0aGVyZSBpcyBubyBtb3JlIHN1Z2dlc3Rpb25zIHRvIGRpc3BsYXlcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVJbnB1dFZhbHVlID0gbnVsbDtcbiAgICAgICAgdGhpcy5hdXRvY29tcGxldGVDb21wb25lbnQuaW5wdXRFbGVtZW50Lm5hdGl2ZUVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcbiAgICB9XG59XG4iLCI8Zm9laG4tYXV0b2NvbXBsZXRlXG4gICAgI2F1dG9jb21wbGV0ZUNvbXBvbmVudFxuICAgIFtuYW1lXT1cIm5hbWVcIlxuICAgIFtsYWJlbF09XCJsYWJlbFwiXG4gICAgW2VsZW1lbnRzXT1cImVsZW1lbnRzXCJcbiAgICBbZWxlbWVudHNVcmxdPVwiZWxlbWVudHNVcmxcIlxuICAgIFtlbGVtZW50VmFsdWVdPVwiZWxlbWVudFZhbHVlXCJcbiAgICBbZWxlbWVudExhYmVsXT1cImVsZW1lbnRMYWJlbFwiXG4gICAgW2VsZW1lbnRWYWx1ZUlkZW50aXR5XT1cImVsZW1lbnRWYWx1ZUlkZW50aXR5XCJcbiAgICBbZWxlbWVudERpc2FibGVkXT1cImVsZW1lbnREaXNhYmxlZFwiXG4gICAgW2FsbEVsZW1lbnREaXNhYmxlZF09XCJhbGxFbGVtZW50RGlzYWJsZWRcIlxuICAgIFtlbGVtZW50R3JvdXBdPVwiZWxlbWVudEdyb3VwXCJcbiAgICBbYWxsb3dDdXN0b21WYWx1ZV09XCJmYWxzZVwiXG4gICAgW3NlYXJjaFZhbHVlTWluQ2hhcnNDb3VudF09XCJzZWFyY2hWYWx1ZU1pbkNoYXJzQ291bnRcIlxuICAgIFtjdXN0b21WYWx1ZU1vZGVsR2VuZXJhdG9yXT1cImN1c3RvbVZhbHVlTW9kZWxHZW5lcmF0b3JcIlxuICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAodXNlcklucHV0KT1cImFkZEl0ZW0oJGV2ZW50KVwiXG4gICAgWyhtb2RlbCldPVwiYXV0b2NvbXBsZXRlSW5wdXRWYWx1ZVwiXG4gICAgKGVsZW1lbnRzTG9hZGVkKT1cIm9uQXV0b2NvbXBsZXRlRWxlbWVudHNMb2FkZWQoJGV2ZW50KVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBbYXR0ci5yb2xlXT1cIiFkaXNhYmxlZCA/ICdhcHBsaWNhdGlvbicgOiBudWxsXCJcbiAgICAgICAgKGZvY3VzaW4pPVwib25TZWxlY3RlZEl0ZW1zRm9jdXNpbigpXCJcbiAgICAgICAgKGZvY3Vzb3V0KT1cIm9uU2VsZWN0ZWRJdGVtc0ZvY3Vzb3V0KClcIlxuICAgICAgICBbdGFiaW5kZXhdPVwiKCEhbW9kZWwgJiYgISFtb2RlbC5sZW5ndGgpID8gMCA6IC0xXCJcbiAgICAgICAgY2xhc3M9XCJzZWxlY3RlZC1saXN0LWNvbnRhaW5lclwiXG4gICAgPlxuICAgICAgICA8dWxcbiAgICAgICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdTZWxlY3RlZEl0ZW1zTGlzdCdcIlxuICAgICAgICAgICAgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTEgZC1mbGV4IGFsaWduLWNvbnRlbnQtc3RyZXRjaCBmbGV4LXdyYXBcIlxuICAgICAgICAgICAgYXJpYS1saXZlPVwicG9saXRlXCJcbiAgICAgICAgICAgIGFyaWEtYXRvbWljPVwidHJ1ZVwiXG4gICAgICAgICAgICBhcmlhLW9yaWVudGF0aW9uPVwiaG9yaXpvbnRhbFwiXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cImdldFNlbGVjdGVkTGlzdEFyaWFMYWJlbCgpXCJcbiAgICAgICAgPlxuICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGVsZW1lbnQgb2YgbW9kZWw7IGxldCBpbmRleCA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwiYmFkZ2UgYmFkZ2UtcGlsbCBiYWRnZS1zZWNvbmRhcnkgbXItMSBtYi0xIHB5LTIgcHgtMyBkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiaXNTZWxlY3RlZEl0ZW1Gb2N1c2FibGUoaW5kZXgpID8gMCA6IC0xXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5pcy1kZWZhdWx0XT1cIiFjYW5CZURlbGV0ZWQoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICAjc2VsZWN0ZWRFbGVtUmVmXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFkaXNhYmxlZFwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFjYW5CZURlbGV0ZWQoaW5kZXgpXCIgY2xhc3M9XCJzci1vbmx5XCI+e3sgJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5zZWxlY3RlZC5zY3JlZW4tcmVhZGVyLmRlZmF1bHQtdmFsdWUnIHwgZnJvbURpY3Rpb25hcnkgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY2FuQmVEZWxldGVkKGluZGV4KVwiIGNsYXNzPVwic3Itb25seVwiPnt7ICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc2VsZWN0ZWQuc2NyZWVuLXJlYWRlci5zZWxlY3RlZC12YWx1ZScgfCBmcm9tRGljdGlvbmFyeSB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgICAgICAgICAgICAgIDxzcGFuIFtpbm5lckh0bWxdPVwiZ2V0TGFiZWwoZWxlbWVudClcIj48L3NwYW4+XG5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWRpc2FibGVkICYmIGNhbkJlRGVsZXRlZChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWxpbmsgbWwtMlwiXG4gICAgICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCJnZXRTZWxlY3RlZEVsZW1lbnRUYWJJbmRleChpbmRleClcIlxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwicmVtb3ZlSXRlbShlbGVtZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICNjbG9zZUJ1dHRvbnNFbGVtUmVmXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8Zm9laG4taWNvbi10aW1lc1xuICAgICAgICAgICAgICAgICAgICAgICAgdGl0bGU9XCJ7eyAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLmRlbGV0ZScgfCBmcm9tRGljdGlvbmFyeToge2VsZW1lbnRMYWJlbDogZ2V0TGFiZWwoZWxlbWVudCl9IH19XCJcbiAgICAgICAgICAgICAgICAgICAgPjwvZm9laG4taWNvbi10aW1lcz5cbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbGk+XG4gICAgICAgIDwvdWw+XG4gICAgPC9kaXY+XG5cbiAgICA8c21hbGxcbiAgICAgICAgKm5nSWY9XCIhc2hvd0VtcHR5TGlzdE1lc3NhZ2VcIlxuICAgICAgICBbYXR0ci5pZF09XCJidWlsZENoaWxkSWQoKSArICdIZWxwJ1wiXG4gICAgICAgIGNsYXNzPVwiZm9ybS10ZXh0IHRleHQtc2Vjb25kYXJ5XCJcbiAgICAgICAgW2lubmVySFRNTF09XCJoZWxwVGV4dCA/IGhlbHBUZXh0IDogJ2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuc2NyZWVuLXJlYWRlci5sYWJlbCcgfCBmcm9tRGljdGlvbmFyeVwiXG4gICAgPjwvc21hbGw+XG5cbiAgICA8ZGl2XG4gICAgICAgIFtpZF09XCJidWlsZENoaWxkSWQoKSArICdBbGVydE1lc3NhZ2VDb250YWluZXInXCJcbiAgICAgICAgcm9sZT1cInN0YXR1c1wiXG4gICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAjYWxlcnRNZXNzYWdlQ29udGFpbmVyXG4gICAgPlxuICAgICAgICA8cFxuICAgICAgICAgICAgKm5nSWY9XCJzaG93RW1wdHlMaXN0TWVzc2FnZVwiXG4gICAgICAgICAgICBjbGFzcz1cImFsZXJ0IGFsZXJ0LWluZm9cIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgPnt7J2ZvZWhuLW11bHRpc2VsZWN0LWF1dG9jb21wbGV0ZS5hdXRvY29tcGxldGUuZW1wdHktbWVzc2FnZScgfCBmcm9tRGljdGlvbmFyeX19PC9wPlxuICAgIDwvZGl2PlxuPC9mb2Vobi1hdXRvY29tcGxldGU+XG4iXX0=
@@ -87,14 +87,11 @@ export const DEFAULT_DICTIONARY = {
87
87
  'foehn-status-progress-bar.step3': 'Confirmation',
88
88
  'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3, Confirmation, demande transmise',
89
89
  'foehn-multiselect-autocomplete.selected.delete': 'Supprimer {elementLabel}',
90
- 'foehn-multiselect-autocomplete.selected.delete.aria-label': 'Supprimer {elementLabel} de la liste intitulée: {componentLabel}',
91
90
  'foehn-multiselect-autocomplete.selected.screen-reader.default-value': 'Élément sélectionné par défaut non supprimable :',
92
91
  'foehn-multiselect-autocomplete.selected.screen-reader.selected-value': 'Élément sélectionné:',
93
92
  'foehn-multiselect-autocomplete.list-of-selected-items': 'Liste des éléments sélectionnés:',
94
- 'foehn-multiselect-autocomplete.list-of-selected-items.screen-reader.helper': 'En mode application, Utilisez les flèches ' +
95
- 'gauche et droite pour naviguer dans la liste.',
96
93
  'foehn-multiselect-autocomplete.autocomplete.empty-message': 'Tous les éléments de la liste de proposition ont déjà été ajoutés.',
97
94
  'foehn-multiselect-autocomplete.autocomplete.screen-reader.label': 'Sélectionner un élément dans la liste de recherche' +
98
95
  ' ci-dessous pour l\'ajouter à votre sélection.'
99
96
  };
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsc0JBQXNCLEVBQUUsY0FBYztJQUN0Qyw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0Qyw4QkFBOEIsRUFBRSxPQUFPO0lBQ3ZDLGdDQUFnQyxFQUFFLFNBQVM7SUFDM0MsbUNBQW1DLEVBQUUsTUFBTTtJQUMzQyxvQ0FBb0MsRUFBRSxlQUFlO0lBQ3JELHNDQUFzQyxFQUFFLCtCQUErQjtJQUN2RSxrQ0FBa0MsRUFBRSxLQUFLO0lBQ3pDLHVDQUF1QyxFQUFFLGVBQWU7SUFDeEQsMkNBQTJDLEVBQ3ZDLDBEQUEwRDtJQUM5RCw2Q0FBNkMsRUFBRSxjQUFjO0lBQzdELGlEQUFpRCxFQUM3QywrQ0FBK0M7SUFDbkQsd0NBQXdDLEVBQUUsS0FBSztJQUMvQyx3Q0FBd0MsRUFBRSxzQkFBc0I7SUFDaEUsNENBQTRDLEVBQUUsYUFBYTtJQUMzRCw2Q0FBNkMsRUFBRSxVQUFVO0lBQ3pELDZCQUE2QixFQUFFLFNBQVM7SUFDeEMsaUNBQWlDLEVBQUUsV0FBVztJQUM5QyxpQ0FBaUMsRUFBRSxhQUFhO0lBQ2hELHVDQUF1QyxFQUFFLDRCQUE0QjtJQUNyRSx3Q0FBd0MsRUFBRSxLQUFLO0lBQy9DLDBCQUEwQixFQUFFLG1DQUFtQztJQUMvRCwyQkFBMkIsRUFBRSxjQUFjO0lBQzNDLG1DQUFtQyxFQUFFLG1CQUFtQjtJQUN4RCw2Q0FBNkMsRUFBRSxtQkFBbUI7SUFDbEUsaUNBQWlDLEVBQUUsb0JBQW9CO0lBQ3ZELDJDQUEyQyxFQUFFLDJCQUEyQjtJQUN4RSxxQ0FBcUMsRUFDakMsZ0VBQWdFO0lBQ3BFLCtDQUErQyxFQUMzQyw4QkFBOEI7SUFDbEMsaUNBQWlDLEVBQUUsVUFBVTtJQUM3QyxtQ0FBbUMsRUFBRSxnQkFBZ0I7SUFDckQsbUNBQW1DLEVBQUUsR0FBRztJQUN4QyxxQ0FBcUMsRUFBRSx3QkFBd0I7SUFDL0Qsc0RBQXNELEVBQ2xELHFCQUFxQjtJQUN6Qix3Q0FBd0MsRUFBRSxZQUFZO0lBQ3RELDJDQUEyQyxFQUFFLHNCQUFzQjtJQUNuRSwrQ0FBK0MsRUFBRSxnQkFBZ0I7SUFDakUsMkNBQTJDLEVBQUUsY0FBYztJQUMzRCx3REFBd0QsRUFDcEQsNkJBQTZCO0lBQ2pDLG1EQUFtRCxFQUFFLHNCQUFzQjtJQUMzRSxrREFBa0QsRUFDOUMsd0JBQXdCO0lBQzVCLDBCQUEwQixFQUN0Qiw4RkFBOEY7SUFDbEcsdUJBQXVCLEVBQ25CLCtFQUErRTtJQUNuRiw0QkFBNEIsRUFDeEIsNkRBQTZEO0lBQ2pFLDRCQUE0QixFQUFFLDRDQUE0QztJQUMxRSw0QkFBNEIsRUFDeEIscURBQXFEO0lBQ3pELGtCQUFrQixFQUFFLGtDQUFrQztJQUN0RCw0QkFBNEIsRUFBRSx1Q0FBdUM7SUFDckUsNkJBQTZCLEVBQ3pCLDRHQUE0RztJQUNoSCxvQ0FBb0MsRUFDaEMsc0VBQXNFO0lBQzFFLFlBQVksRUFDUix1RUFBdUU7SUFDM0UsWUFBWSxFQUNSLDBGQUEwRjtJQUM5RixZQUFZLEVBQ1IseUZBQXlGO0lBQzdGLFlBQVksRUFBRSxnREFBZ0Q7SUFDOUQsWUFBWSxFQUNSLDJGQUEyRjtJQUMvRixzQkFBc0IsRUFBRSxvQkFBb0I7SUFDNUMsb0NBQW9DLEVBQUUsd0JBQXdCO0lBQzlELDZDQUE2QyxFQUN6QyxzQ0FBc0M7SUFDMUMsZ0NBQWdDLEVBQUUsb0NBQW9DO0lBQ3RFLHlDQUF5QyxFQUNyQyxrREFBa0Q7SUFDdEQsNENBQTRDLEVBQ3hDLGlEQUFpRDtJQUNyRCwrQkFBK0IsRUFBRSxJQUFJO0lBQ3JDLHFDQUFxQyxFQUFFLFdBQVc7SUFDbEQsa0NBQWtDLEVBQUUscUJBQXFCO0lBQ3pELGdEQUFnRCxFQUM1QyxzRUFBc0U7UUFDdEUsbUdBQW1HO0lBQ3ZHLGdCQUFnQixFQUNaLGlGQUFpRjtRQUNqRiw0RkFBNEY7SUFDaEcsdUJBQXVCLEVBQUUsZ0JBQWdCO0lBQ3pDLDBDQUEwQyxFQUFFLHNCQUFzQjtJQUNsRSxvQ0FBb0MsRUFBRSxlQUFlO0lBQ3JELDRDQUE0QyxFQUN4Qyw2Q0FBNkM7SUFDakQsK0NBQStDLEVBQUUsc0JBQXNCO0lBQ3ZFLDZDQUE2QyxFQUFFLFNBQVM7SUFDeEQsb0RBQW9ELEVBQ2hELGtDQUFrQztJQUN0QywyQ0FBMkMsRUFBRSxXQUFXO0lBQ3hELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCw2QkFBNkIsRUFBRSxrQkFBa0I7SUFDakQsNkJBQTZCLEVBQUUsZ0JBQWdCO0lBQy9DLGlDQUFpQyxFQUFFLFFBQVE7SUFDM0Msd0NBQXdDLEVBQUUsdUJBQXVCO0lBQ2pFLGlDQUFpQyxFQUFFLGNBQWM7SUFDakQsd0NBQXdDLEVBQUUsNkJBQTZCO0lBQ3ZFLGlDQUFpQyxFQUFFLGNBQWM7SUFDakQsd0NBQXdDLEVBQ3BDLGdEQUFnRDtJQUNwRCxnREFBZ0QsRUFBRSwwQkFBMEI7SUFDNUUsMkRBQTJELEVBQUUsa0VBQWtFO0lBQy9ILHFFQUFxRSxFQUFFLGtEQUFrRDtJQUN6SCxzRUFBc0UsRUFBRSxzQkFBc0I7SUFDOUYsdURBQXVELEVBQUUsa0NBQWtDO0lBQzNGLDRFQUE0RSxFQUFFLDRDQUE0QztRQUN0SCwrQ0FBK0M7SUFDbkQsMkRBQTJELEVBQUUsb0VBQW9FO0lBQ2pJLGlFQUFpRSxFQUFFLG9EQUFvRDtRQUNuSCxnREFBZ0Q7Q0FDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IERpY3Rpb25hcnlUeXBlIH0gZnJvbSAnLi9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRElDVElPTkFSWTogRGljdGlvbmFyeVR5cGUgPSB7XG4gICAgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJzogJyhmYWN1bHRhdGlmKScsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUuZGF5LmxhYmVsJzogJ0pvdXInLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLm1vbnRoLmxhYmVsJzogJ01vaXMnLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLnllYXIubGFiZWwnOiAnQW5uw6llJyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5ob3Vycy5sYWJlbCc6ICdIZXVyZScsXG4gICAgJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCc6ICdNaW51dGVzJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5jb3VudHJ5LmxhYmVsJzogJ1BheXMnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmxvY2FsaXR5LmxhYmVsJzogJ05QQSwgTG9jYWxpdMOpJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQuaGVscC10ZXh0JzogJ0V4ZW1wbGUgOiBBdmVudWUgZGUgbGEgU2FsbGF6JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQubGFiZWwnOiAnUnVlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5ob3VzZU51bWJlci5sYWJlbCc6ICdOdW3DqXJvIGRlIHJ1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIuaGVscC10ZXh0JzpcbiAgICAgICAgXCJFeGVtcGxlIDogNDAgcG91ciB1bmUgYWRyZXNzZSDDoCBsJ0F2ZW51ZSBkZSBsYSBTYWxsYXogNDBcIixcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5sYWJlbCc6ICdDYXNlIHBvc3RhbGUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnBvc3RPZmZpY2VCb3hUZXh0LmhlbHAtdGV4dCc6XG4gICAgICAgICdFeGVtcGxlIDogQ2FzZSBwb3N0YWxlIDEyMiBvdSBDUDEyMiBvdSBDUCAxMjInLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMS5sYWJlbCc6ICdjL28nLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMi5sYWJlbCc6IFwiQ29tcGzDqW1lbnQgZCdhZHJlc3NlXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkuemlwQ29kZS5sYWJlbCc6ICdDb2RlIHBvc3RhbCcsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkubG9jYWxpdHkubGFiZWwnOiAnTG9jYWxpdMOpJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5uZXh0LmxhYmVsJzogJ1N1aXZhbnQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnByZXZpb3VzLmxhYmVsJzogJ1Byw6ljw6lkZW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi50cmFuc21pdC5sYWJlbCc6ICdUcmFuc21ldHRyZScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24uY29udGludWUtbGF0ZXIubGFiZWwnOiAnRmluaXIgbGEgZGVtYW5kZSBwbHVzIHRhcmQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnJvdXRlLmluZGV4LnNlcGFyYXRvcic6ICdzdXInLFxuICAgICdmb2Vobi1wYWdlLWNvdW50ZXIubGFiZWwnOiAnUGFnZSB7Y3VycmVudFBhZ2V9IGRlIHtwYWdlQ291bnR9JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZSc6ICdDb25maXJtYXRpb24nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnN1Y2Nlc3MtbGFiZWwnOiAnRGVtYW5kZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm5leHQtc3RlcC5zdWNjZXNzLWxhYmVsJzogJ1LDqXBvbnNlIHRyYW5zbWlzZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnOiAnRGVtYW5kZSBhYmFuZG9ubsOpZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVmZXJlbmNlLXRpdGxlLmxhYmVsJzogJ1ZvdHJlIG51bcOpcm8gZGUgcsOpZsOpcmVuY2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm1haWwtc2VudC5sYWJlbCc6XG4gICAgICAgICdWb3VzIHJlY2V2cmV6IHVuIGVtYWlsIGRlIGNvbmZpcm1hdGlvbiBkYW5zIHF1ZWxxdWVzIGluc3RhbnRzLicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic6XG4gICAgICAgICdUw6lsw6ljaGFyZ2VyIGxhIGRlbWFuZGUgKHBkZiknLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJzogJ1Rlcm1pbmVyJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5sb2dvdXQtYnV0dG9uJzogJ1NlIGTDqWNvbm5lY3RlcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCc6ICcgJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXItYnV0dG9uLmljb24tdGl0bGUnOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5zY3JlZW4tcmVhZGVyLnNlbGVjdGVkLWRhdGUnOlxuICAgICAgICAnRGF0ZSBzw6lsZWN0aW9ubsOpZSA6JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnOiAnQ2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJzogJ0Zlcm1lciBsZSBjYWxlbmRyaWVyJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJzogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHN1aXZhbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnOlxuICAgICAgICAnTW9pcyBhY3R1ZWxsZW1lbnQgYWZmaWNow6kgOicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biBtb2lzJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW5lIGFubsOpZScsXG4gICAgJ2Vycm9ycy5GSUxFTkFNRV9UT09fTE9ORyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgYSB1biBub20gZHUgZmljaGllciBxdWkgZXhjw6hkZSBsZSBtYXhpbXVtIGF1dG9yaXPDqSA6ICUyJHMgY2FyYWN0w6hyZXMnLFxuICAgICdlcnJvcnMuRklMRV9UT09fU01BTEwnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBpbmbDqXJpZXVyZSBhdSBtaW5pbXVtIGV4aWfDqSA6ICUyJHMgYnl0ZXMnLFxuICAgICdlcnJvcnMuUERGX1BBU1NXT1JEX0xPQ0tFRCc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZlcnJvdWlsbMOpZSBwYXIgdW4gbW90IGRlIHBhc3NlJyxcbiAgICAnZXJyb3JzLlBERl9DT05UQUlOU19TQ1JJUFQnOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IHVuIHNjcmlwdCcsXG4gICAgJ2Vycm9ycy5QREZfSEFTX0FUVEFDSE1FTlRTJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCB1biBmaWNoaWVyIGF0dGFjaMOpJyxcbiAgICAnZXJyb3JzLkVNUFRZX1BERic6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZpZGUnLFxuICAgICdlcnJvcnMuUERGX0dFTkVSQUxfUFJPQkxFTSc6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IGlsbGlzaWJsZScsXG4gICAgJ2Vycm9ycy5QREZfSEFTX1JFU1RSSUNUSU9OUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHByb3TDqWfDqWUuIFZldWlsbGV6IGVubGV2ZXIgdG91dGVzIGxlcyBwcm90ZWN0aW9ucyBhdmFudCBkZSBqb2luZHJlIGNlIGZpY2hpZXIuJyxcbiAgICAnZXJyb3JzLkZJTEVOQU1FX1NIT1VMRF9OT1RfQ09OVEFJTic6XG4gICAgICAgICdMZSBub20gZGUgdm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IGRlcyBjYXJhY3TDqHJlcyBpbnRlcmRpdHMuJyxcbiAgICAnZXJyb3JzLjQwNic6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbmUgY29ycmVzcG9uZCBwYXMgYXUgdHlwZSBkZSBjb250ZW51IGF1dG9yaXPDqScsXG4gICAgJ2Vycm9ycy40MTMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBzdXDDqXJpZXVyZSBvdSDDqWdhbGUgw6AgbGEgbGltaXRlIGF1dG9yaXPDqWUgOiAlMiRzIE1vJyxcbiAgICAnZXJyb3JzLjQxNSc6XG4gICAgICAgICdMZSB0eXBlIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuZSBmaWd1cmUgcGFzIHBhcm1pIGNldXggcXVpIHNvbnQgYXV0b3Jpc8OpcyA6IFwiJTIkc1wiJyxcbiAgICAnZXJyb3JzLjQyMic6ICdFY2hlYyBkZSBsYSBzYXV2ZWdhcmRlIGRlIGxhIHBpw6hjZSBqb2ludGUgJTEkcycsXG4gICAgJ2Vycm9ycy41MDAnOlxuICAgICAgICAnRWNoZWMgZGUgbGEgc2F1dmVnYXJkZSBkZSBsYSBwacOoY2Ugam9pbnRlICUxJHMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgYXZlYyB1biBhdXRyZSBmaWNoaWVyLicsXG4gICAgJ2Vycm9ycy5zdW1tYXJ5LnRpdGxlJzogJ0lsIHkgYSB1biBwcm9ibMOobWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsJzogJ0Nob2lzaXNzZXogdW4gZG9jdW1lbnQnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsLW11bHRpcGxlJzpcbiAgICAgICAgJ0Nob2lzaXNzZXogdW4gb3UgcGx1c2lldXJzIGRvY3VtZW50cycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbCc6ICdEw6lwb3NleiB1biBkb2N1bWVudCBvdSBjbGlxdWV6IGljaScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbC1tdWx0aXBsZSc6XG4gICAgICAgICdEw6lwb3NleiB1biBvdSBwbHVzaWV1cnMgZG9jdW1lbnRzIG91IGNsaXF1ZXogaWNpJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWNvbmZpcm1hdGlvbi1tZXNzYWdlJzpcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZSBmaWNoaWVyID8nLFxuICAgICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCc6ICdNbycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJzogJ01lZ2FvY3RldCcsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJzogJ1N1cHByaW1lciB7ZG9jTmFtZX0nLFxuICAgICd1c2UtbG9naW4udGV4dC5kZWNpc2lvbi1lbGVjdHJvbmlxdWUtYXZhaWxhYmxlJzpcbiAgICAgICAgJ1BvdXIgb2J0ZW5pciBsYSBub3RpZmljYXRpb24gZGUgbGEgZMOpY2lzaW9uIHNvdXMgZm9ybWUgw6lsZWN0cm9uaXF1ZSAnICtcbiAgICAgICAgJyhmaWNoaWVyIGF1IGZvcm1hdCBwZGYpLCB2b3VzIGRldmV6IGRlbWFuZGVyIGxhIHByZXN0YXRpb24gZW4gw6l0YW50IGNvbm5lY3TDqSBhdSBwb3J0YWlsIHPDqWN1cmlzw6kuJyxcbiAgICAndXNlLWxvZ2luLnRleHQnOlxuICAgICAgICBcIkNldHRlIHByZXN0YXRpb24gZXN0IGF1c3NpIHV0aWxpc2FibGUgYXUgdHJhdmVycyBkZSBsJ2VzcGFjZSBzw6ljdXJpc8OpIHF1aSB2b3VzIFwiICtcbiAgICAgICAgXCJwZXJtZXQgZGUgcHLDqS1yZW1wbGlyIGxlIGZvcm11bGFpcmUgZXQgZGUgc3VpdnJlIGwnYXZhbmNlbWVudCBkZSB0cmFpdGVtZW50IGRlIGxhIGRlbWFuZGUuXCIsXG4gICAgJ3VzZS1sb2dpbi5idXR0b24udGV4dCc6ICdDb25uZWN0ZXotdm91cycsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNob29zZS1idXR0b24tbGFiZWwnOiAnQ2hvaXNpc3NleiB1bmUgcGhvdG8nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWxhYmVsJzogJ0NoYXJnZW1lbnQuLi4nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWZhaWx1cmUtbGFiZWwnOlxuICAgICAgICAnSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxhIHBob3RvIHPDqWxlY3Rpb25uw6llJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQudmFsaWRhdGUtc2VsZWN0aW9uLWxhYmVsJzogJ1ZhbGlkZXIgbGEgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNhbmNlbC1zZWxlY3Rpb24tbGFiZWwnOiAnQW5udWxlcicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLnNlbGVjdGlvbi1ub3QtdmFsaWRhdGVkLWxhYmVsJzpcbiAgICAgICAgJ01lcmNpIGRlIHZhbGlkZXIgdm90cmUgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmRlbGV0ZS1waWN0dXJlLWxhYmVsJzogJ1N1cHByaW1lcicsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMnOiAne3RvdGFsfSDDqWzDqW1lbnRzIHRyb3V2w6lzJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cy4xJzogJzEgw6lsw6ltZW50IHRyb3V2w6knLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjAnOiAnQXVjdW4gcsOpc3VsdGF0JyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMSc6ICdTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxLnNyT25seSc6ICdFdGFwZSAxIHN1ciAzLCBTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyJzogJ1bDqXJpZmljYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyLnNyT25seSc6ICdFdGFwZSAyIHN1ciAzLCBWw6lyaWZpY2F0aW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMyc6ICdDb25maXJtYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAzLnNyT25seSc6XG4gICAgICAgICdFdGFwZSAzIHN1ciAzLCBDb25maXJtYXRpb24sIGRlbWFuZGUgdHJhbnNtaXNlJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLmRlbGV0ZSc6ICdTdXBwcmltZXIge2VsZW1lbnRMYWJlbH0nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc2VsZWN0ZWQuZGVsZXRlLmFyaWEtbGFiZWwnOiAnU3VwcHJpbWVyIHtlbGVtZW50TGFiZWx9IGRlIGxhIGxpc3RlIGludGl0dWzDqWU6IHtjb21wb25lbnRMYWJlbH0nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc2VsZWN0ZWQuc2NyZWVuLXJlYWRlci5kZWZhdWx0LXZhbHVlJzogJ8OJbMOpbWVudCBzw6lsZWN0aW9ubsOpIHBhciBkw6lmYXV0IG5vbiBzdXBwcmltYWJsZSA6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLnNjcmVlbi1yZWFkZXIuc2VsZWN0ZWQtdmFsdWUnOiAnw4lsw6ltZW50IHPDqWxlY3Rpb25uw6k6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmxpc3Qtb2Ytc2VsZWN0ZWQtaXRlbXMnOiAnTGlzdGUgZGVzIMOpbMOpbWVudHMgc8OpbGVjdGlvbm7DqXM6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmxpc3Qtb2Ytc2VsZWN0ZWQtaXRlbXMuc2NyZWVuLXJlYWRlci5oZWxwZXInOiAnRW4gbW9kZSBhcHBsaWNhdGlvbiwgVXRpbGlzZXogbGVzIGZsw6hjaGVzICcgK1xuICAgICAgICAnZ2F1Y2hlIGV0IGRyb2l0ZSBwb3VyIG5hdmlndWVyIGRhbnMgbGEgbGlzdGUuJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZS5lbXB0eS1tZXNzYWdlJzogJ1RvdXMgbGVzIMOpbMOpbWVudHMgZGUgbGEgbGlzdGUgZGUgcHJvcG9zaXRpb24gb250IGTDqWrDoCDDqXTDqSBham91dMOpcy4nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlLnNjcmVlbi1yZWFkZXIubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biDDqWzDqW1lbnQgZGFucyBsYSBsaXN0ZSBkZSByZWNoZXJjaGUnICtcbiAgICAgICAgJyBjaS1kZXNzb3VzIHBvdXIgbFxcJ2Fqb3V0ZXIgw6Agdm90cmUgc8OpbGVjdGlvbi4nXG59O1xuIl19
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVmYXVsdC1kaWN0aW9uYXJ5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL3Nkay1kaWN0aW9uYXJ5L2RlZmF1bHQtZGljdGlvbmFyeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQUMsTUFBTSxrQkFBa0IsR0FBbUI7SUFDOUMsc0JBQXNCLEVBQUUsY0FBYztJQUN0Qyw0QkFBNEIsRUFBRSxNQUFNO0lBQ3BDLDhCQUE4QixFQUFFLE1BQU07SUFDdEMsNkJBQTZCLEVBQUUsT0FBTztJQUN0Qyw4QkFBOEIsRUFBRSxPQUFPO0lBQ3ZDLGdDQUFnQyxFQUFFLFNBQVM7SUFDM0MsbUNBQW1DLEVBQUUsTUFBTTtJQUMzQyxvQ0FBb0MsRUFBRSxlQUFlO0lBQ3JELHNDQUFzQyxFQUFFLCtCQUErQjtJQUN2RSxrQ0FBa0MsRUFBRSxLQUFLO0lBQ3pDLHVDQUF1QyxFQUFFLGVBQWU7SUFDeEQsMkNBQTJDLEVBQ3ZDLDBEQUEwRDtJQUM5RCw2Q0FBNkMsRUFBRSxjQUFjO0lBQzdELGlEQUFpRCxFQUM3QywrQ0FBK0M7SUFDbkQsd0NBQXdDLEVBQUUsS0FBSztJQUMvQyx3Q0FBd0MsRUFBRSxzQkFBc0I7SUFDaEUsNENBQTRDLEVBQUUsYUFBYTtJQUMzRCw2Q0FBNkMsRUFBRSxVQUFVO0lBQ3pELDZCQUE2QixFQUFFLFNBQVM7SUFDeEMsaUNBQWlDLEVBQUUsV0FBVztJQUM5QyxpQ0FBaUMsRUFBRSxhQUFhO0lBQ2hELHVDQUF1QyxFQUFFLDRCQUE0QjtJQUNyRSx3Q0FBd0MsRUFBRSxLQUFLO0lBQy9DLDBCQUEwQixFQUFFLG1DQUFtQztJQUMvRCwyQkFBMkIsRUFBRSxjQUFjO0lBQzNDLG1DQUFtQyxFQUFFLG1CQUFtQjtJQUN4RCw2Q0FBNkMsRUFBRSxtQkFBbUI7SUFDbEUsaUNBQWlDLEVBQUUsb0JBQW9CO0lBQ3ZELDJDQUEyQyxFQUFFLDJCQUEyQjtJQUN4RSxxQ0FBcUMsRUFDakMsZ0VBQWdFO0lBQ3BFLCtDQUErQyxFQUMzQyw4QkFBOEI7SUFDbEMsaUNBQWlDLEVBQUUsVUFBVTtJQUM3QyxtQ0FBbUMsRUFBRSxnQkFBZ0I7SUFDckQsbUNBQW1DLEVBQUUsR0FBRztJQUN4QyxxQ0FBcUMsRUFBRSx3QkFBd0I7SUFDL0Qsc0RBQXNELEVBQ2xELHFCQUFxQjtJQUN6Qix3Q0FBd0MsRUFBRSxZQUFZO0lBQ3RELDJDQUEyQyxFQUFFLHNCQUFzQjtJQUNuRSwrQ0FBK0MsRUFBRSxnQkFBZ0I7SUFDakUsMkNBQTJDLEVBQUUsY0FBYztJQUMzRCx3REFBd0QsRUFDcEQsNkJBQTZCO0lBQ2pDLG1EQUFtRCxFQUFFLHNCQUFzQjtJQUMzRSxrREFBa0QsRUFDOUMsd0JBQXdCO0lBQzVCLDBCQUEwQixFQUN0Qiw4RkFBOEY7SUFDbEcsdUJBQXVCLEVBQ25CLCtFQUErRTtJQUNuRiw0QkFBNEIsRUFDeEIsNkRBQTZEO0lBQ2pFLDRCQUE0QixFQUFFLDRDQUE0QztJQUMxRSw0QkFBNEIsRUFDeEIscURBQXFEO0lBQ3pELGtCQUFrQixFQUFFLGtDQUFrQztJQUN0RCw0QkFBNEIsRUFBRSx1Q0FBdUM7SUFDckUsNkJBQTZCLEVBQ3pCLDRHQUE0RztJQUNoSCxvQ0FBb0MsRUFDaEMsc0VBQXNFO0lBQzFFLFlBQVksRUFDUix1RUFBdUU7SUFDM0UsWUFBWSxFQUNSLDBGQUEwRjtJQUM5RixZQUFZLEVBQ1IseUZBQXlGO0lBQzdGLFlBQVksRUFBRSxnREFBZ0Q7SUFDOUQsWUFBWSxFQUNSLDJGQUEyRjtJQUMvRixzQkFBc0IsRUFBRSxvQkFBb0I7SUFDNUMsb0NBQW9DLEVBQUUsd0JBQXdCO0lBQzlELDZDQUE2QyxFQUN6QyxzQ0FBc0M7SUFDMUMsZ0NBQWdDLEVBQUUsb0NBQW9DO0lBQ3RFLHlDQUF5QyxFQUNyQyxrREFBa0Q7SUFDdEQsNENBQTRDLEVBQ3hDLGlEQUFpRDtJQUNyRCwrQkFBK0IsRUFBRSxJQUFJO0lBQ3JDLHFDQUFxQyxFQUFFLFdBQVc7SUFDbEQsa0NBQWtDLEVBQUUscUJBQXFCO0lBQ3pELGdEQUFnRCxFQUM1QyxzRUFBc0U7UUFDdEUsbUdBQW1HO0lBQ3ZHLGdCQUFnQixFQUNaLGlGQUFpRjtRQUNqRiw0RkFBNEY7SUFDaEcsdUJBQXVCLEVBQUUsZ0JBQWdCO0lBQ3pDLDBDQUEwQyxFQUFFLHNCQUFzQjtJQUNsRSxvQ0FBb0MsRUFBRSxlQUFlO0lBQ3JELDRDQUE0QyxFQUN4Qyw2Q0FBNkM7SUFDakQsK0NBQStDLEVBQUUsc0JBQXNCO0lBQ3ZFLDZDQUE2QyxFQUFFLFNBQVM7SUFDeEQsb0RBQW9ELEVBQ2hELGtDQUFrQztJQUN0QywyQ0FBMkMsRUFBRSxXQUFXO0lBQ3hELDJCQUEyQixFQUFFLDBCQUEwQjtJQUN2RCw2QkFBNkIsRUFBRSxrQkFBa0I7SUFDakQsNkJBQTZCLEVBQUUsZ0JBQWdCO0lBQy9DLGlDQUFpQyxFQUFFLFFBQVE7SUFDM0Msd0NBQXdDLEVBQUUsdUJBQXVCO0lBQ2pFLGlDQUFpQyxFQUFFLGNBQWM7SUFDakQsd0NBQXdDLEVBQUUsNkJBQTZCO0lBQ3ZFLGlDQUFpQyxFQUFFLGNBQWM7SUFDakQsd0NBQXdDLEVBQ3BDLGdEQUFnRDtJQUNwRCxnREFBZ0QsRUFBRSwwQkFBMEI7SUFDNUUscUVBQXFFLEVBQUUsa0RBQWtEO0lBQ3pILHNFQUFzRSxFQUFFLHNCQUFzQjtJQUM5Rix1REFBdUQsRUFBRSxrQ0FBa0M7SUFDM0YsMkRBQTJELEVBQUUsb0VBQW9FO0lBQ2pJLGlFQUFpRSxFQUFFLG9EQUFvRDtRQUNuSCxnREFBZ0Q7Q0FDdkQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IERpY3Rpb25hcnlUeXBlIH0gZnJvbSAnLi9zZGstZGljdGlvbmFyeS5zZXJ2aWNlJztcblxuZXhwb3J0IGNvbnN0IERFRkFVTFRfRElDVElPTkFSWTogRGljdGlvbmFyeVR5cGUgPSB7XG4gICAgJ2ZvZWhuLWlucHV0Lm9wdGlvbmFsJzogJyhmYWN1bHRhdGlmKScsXG4gICAgJ2ZvZWhuLWlucHV0LWRhdGUuZGF5LmxhYmVsJzogJ0pvdXInLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLm1vbnRoLmxhYmVsJzogJ01vaXMnLFxuICAgICdmb2Vobi1pbnB1dC1kYXRlLnllYXIubGFiZWwnOiAnQW5uw6llJyxcbiAgICAnZm9laG4taW5wdXQtdGltZS5ob3Vycy5sYWJlbCc6ICdIZXVyZScsXG4gICAgJ2ZvZWhuLWlucHV0LXRpbWUubWludXRlcy5sYWJlbCc6ICdNaW51dGVzJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5jb3VudHJ5LmxhYmVsJzogJ1BheXMnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmxvY2FsaXR5LmxhYmVsJzogJ05QQSwgTG9jYWxpdMOpJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQuaGVscC10ZXh0JzogJ0V4ZW1wbGUgOiBBdmVudWUgZGUgbGEgU2FsbGF6JyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5zdHJlZXQubGFiZWwnOiAnUnVlJyxcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5ob3VzZU51bWJlci5sYWJlbCc6ICdOdW3DqXJvIGRlIHJ1ZScsXG4gICAgJ2ZvZWhuLWlucHV0LWFkZHJlc3MuaG91c2VOdW1iZXIuaGVscC10ZXh0JzpcbiAgICAgICAgXCJFeGVtcGxlIDogNDAgcG91ciB1bmUgYWRyZXNzZSDDoCBsJ0F2ZW51ZSBkZSBsYSBTYWxsYXogNDBcIixcbiAgICAnZm9laG4taW5wdXQtYWRkcmVzcy5wb3N0T2ZmaWNlQm94VGV4dC5sYWJlbCc6ICdDYXNlIHBvc3RhbGUnLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLnBvc3RPZmZpY2VCb3hUZXh0LmhlbHAtdGV4dCc6XG4gICAgICAgICdFeGVtcGxlIDogQ2FzZSBwb3N0YWxlIDEyMiBvdSBDUDEyMiBvdSBDUCAxMjInLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMS5sYWJlbCc6ICdjL28nLFxuICAgICdmb2Vobi1pbnB1dC1hZGRyZXNzLmFkZHJlc3NMaW5lMi5sYWJlbCc6IFwiQ29tcGzDqW1lbnQgZCdhZHJlc3NlXCIsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkuemlwQ29kZS5sYWJlbCc6ICdDb2RlIHBvc3RhbCcsXG4gICAgJ2ZvZWhuLWlucHV0LWZvcmVpZ24tbG9jYWxpdHkubG9jYWxpdHkubGFiZWwnOiAnTG9jYWxpdMOpJyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi5uZXh0LmxhYmVsJzogJ1N1aXZhbnQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnByZXZpb3VzLmxhYmVsJzogJ1Byw6ljw6lkZW50JyxcbiAgICAnZm9laG4tbmF2aWdhdGlvbi50cmFuc21pdC5sYWJlbCc6ICdUcmFuc21ldHRyZScsXG4gICAgJ2ZvZWhuLW5hdmlnYXRpb24uY29udGludWUtbGF0ZXIubGFiZWwnOiAnRmluaXIgbGEgZGVtYW5kZSBwbHVzIHRhcmQnLFxuICAgICdmb2Vobi1uYXZpZ2F0aW9uLnJvdXRlLmluZGV4LnNlcGFyYXRvcic6ICdzdXInLFxuICAgICdmb2Vobi1wYWdlLWNvdW50ZXIubGFiZWwnOiAnUGFnZSB7Y3VycmVudFBhZ2V9IGRlIHtwYWdlQ291bnR9JyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi50aXRsZSc6ICdDb25maXJtYXRpb24nLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLnN1Y2Nlc3MtbGFiZWwnOiAnRGVtYW5kZSB0cmFuc21pc2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm5leHQtc3RlcC5zdWNjZXNzLWxhYmVsJzogJ1LDqXBvbnNlIHRyYW5zbWlzZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uYWJvcnQtbGFiZWwnOiAnRGVtYW5kZSBhYmFuZG9ubsOpZScsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24ucmVmZXJlbmNlLXRpdGxlLmxhYmVsJzogJ1ZvdHJlIG51bcOpcm8gZGUgcsOpZsOpcmVuY2UnLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLm1haWwtc2VudC5sYWJlbCc6XG4gICAgICAgICdWb3VzIHJlY2V2cmV6IHVuIGVtYWlsIGRlIGNvbmZpcm1hdGlvbiBkYW5zIHF1ZWxxdWVzIGluc3RhbnRzLicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZG93bmxvYWQtcGRmLXJlY2FwLWJ1dHRvbic6XG4gICAgICAgICdUw6lsw6ljaGFyZ2VyIGxhIGRlbWFuZGUgKHBkZiknLFxuICAgICdnZXNkZW0tY29uZmlybWF0aW9uLmV4aXQtYnV0dG9uJzogJ1Rlcm1pbmVyJyxcbiAgICAnZ2VzZGVtLWNvbmZpcm1hdGlvbi5sb2dvdXQtYnV0dG9uJzogJ1NlIGTDqWNvbm5lY3RlcicsXG4gICAgJ2dlc2RlbS1jb25maXJtYXRpb24uZXh0cmEtY29udGVudCc6ICcgJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXItYnV0dG9uLmljb24tdGl0bGUnOiAnQWZmaWNoZXIgbGUgY2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLWJ1dHRvbi5zY3JlZW4tcmVhZGVyLnNlbGVjdGVkLWRhdGUnOlxuICAgICAgICAnRGF0ZSBzw6lsZWN0aW9ubsOpZSA6JyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuY29udGFpbmVyLmFyaWEtbGFiZWwnOiAnQ2FsZW5kcmllcicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLmNsb3NlLWJ1dHRvbi5hcmlhLWxhYmVsJzogJ0Zlcm1lciBsZSBjYWxlbmRyaWVyJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIucHJldmlvdXMtbW9udGgtYnV0dG9uLnRpdGxlJzogJ01vaXMgcHLDqWPDqWRlbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5uZXh0LW1vbnRoLWJ1dHRvbi50aXRsZSc6ICdNb2lzIHN1aXZhbnQnLFxuICAgICdmb2Vobi1kYXRlLXBpY2tlci5zY3JlZW4tcmVhZGVyLmFjdHVhbC1tb250aC1kaXNwbGF5ZWQnOlxuICAgICAgICAnTW9pcyBhY3R1ZWxsZW1lbnQgYWZmaWNow6kgOicsXG4gICAgJ2ZvZWhuLWRhdGUtcGlja2VyLnNjcmVlbi1yZWFkZXIubW9udGgtaW5wdXQubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biBtb2lzJyxcbiAgICAnZm9laG4tZGF0ZS1waWNrZXIuc2NyZWVuLXJlYWRlci55ZWFyLWlucHV0LmxhYmVsJzpcbiAgICAgICAgJ1PDqWxlY3Rpb25uZXIgdW5lIGFubsOpZScsXG4gICAgJ2Vycm9ycy5GSUxFTkFNRV9UT09fTE9ORyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgYSB1biBub20gZHUgZmljaGllciBxdWkgZXhjw6hkZSBsZSBtYXhpbXVtIGF1dG9yaXPDqSA6ICUyJHMgY2FyYWN0w6hyZXMnLFxuICAgICdlcnJvcnMuRklMRV9UT09fU01BTEwnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBpbmbDqXJpZXVyZSBhdSBtaW5pbXVtIGV4aWfDqSA6ICUyJHMgYnl0ZXMnLFxuICAgICdlcnJvcnMuUERGX1BBU1NXT1JEX0xPQ0tFRCc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZlcnJvdWlsbMOpZSBwYXIgdW4gbW90IGRlIHBhc3NlJyxcbiAgICAnZXJyb3JzLlBERl9DT05UQUlOU19TQ1JJUFQnOiAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IHVuIHNjcmlwdCcsXG4gICAgJ2Vycm9ycy5QREZfSEFTX0FUVEFDSE1FTlRTJzpcbiAgICAgICAgJ1ZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBjb250aWVudCB1biBmaWNoaWVyIGF0dGFjaMOpJyxcbiAgICAnZXJyb3JzLkVNUFRZX1BERic6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHZpZGUnLFxuICAgICdlcnJvcnMuUERGX0dFTkVSQUxfUFJPQkxFTSc6ICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IGlsbGlzaWJsZScsXG4gICAgJ2Vycm9ycy5QREZfSEFTX1JFU1RSSUNUSU9OUyc6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgZXN0IHByb3TDqWfDqWUuIFZldWlsbGV6IGVubGV2ZXIgdG91dGVzIGxlcyBwcm90ZWN0aW9ucyBhdmFudCBkZSBqb2luZHJlIGNlIGZpY2hpZXIuJyxcbiAgICAnZXJyb3JzLkZJTEVOQU1FX1NIT1VMRF9OT1RfQ09OVEFJTic6XG4gICAgICAgICdMZSBub20gZGUgdm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGNvbnRpZW50IGRlcyBjYXJhY3TDqHJlcyBpbnRlcmRpdHMuJyxcbiAgICAnZXJyb3JzLjQwNic6XG4gICAgICAgICdWb3RyZSBwacOoY2Ugam9pbnRlICUxJHMgbmUgY29ycmVzcG9uZCBwYXMgYXUgdHlwZSBkZSBjb250ZW51IGF1dG9yaXPDqScsXG4gICAgJ2Vycm9ycy40MTMnOlxuICAgICAgICAnVm90cmUgcGnDqGNlIGpvaW50ZSAlMSRzIGEgdW5lIHRhaWxsZSBzdXDDqXJpZXVyZSBvdSDDqWdhbGUgw6AgbGEgbGltaXRlIGF1dG9yaXPDqWUgOiAlMiRzIE1vJyxcbiAgICAnZXJyb3JzLjQxNSc6XG4gICAgICAgICdMZSB0eXBlIGRlIHZvdHJlIHBpw6hjZSBqb2ludGUgJTEkcyBuZSBmaWd1cmUgcGFzIHBhcm1pIGNldXggcXVpIHNvbnQgYXV0b3Jpc8OpcyA6IFwiJTIkc1wiJyxcbiAgICAnZXJyb3JzLjQyMic6ICdFY2hlYyBkZSBsYSBzYXV2ZWdhcmRlIGRlIGxhIHBpw6hjZSBqb2ludGUgJTEkcycsXG4gICAgJ2Vycm9ycy41MDAnOlxuICAgICAgICAnRWNoZWMgZGUgbGEgc2F1dmVnYXJkZSBkZSBsYSBwacOoY2Ugam9pbnRlICUxJHMuIFZldWlsbGV6IHLDqWVzc2F5ZXIgYXZlYyB1biBhdXRyZSBmaWNoaWVyLicsXG4gICAgJ2Vycm9ycy5zdW1tYXJ5LnRpdGxlJzogJ0lsIHkgYSB1biBwcm9ibMOobWUnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsJzogJ0Nob2lzaXNzZXogdW4gZG9jdW1lbnQnLFxuICAgICdmb2Vobi11cGxvYWRlci5jaG9vc2UtYnV0dG9uLWxhYmVsLW11bHRpcGxlJzpcbiAgICAgICAgJ0Nob2lzaXNzZXogdW4gb3UgcGx1c2lldXJzIGRvY3VtZW50cycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbCc6ICdEw6lwb3NleiB1biBkb2N1bWVudCBvdSBjbGlxdWV6IGljaScsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRyb3Atem9uZS1sYWJlbC1tdWx0aXBsZSc6XG4gICAgICAgICdEw6lwb3NleiB1biBvdSBwbHVzaWV1cnMgZG9jdW1lbnRzIG91IGNsaXF1ZXogaWNpJyxcbiAgICAnZm9laG4tdXBsb2FkZXIuZGVsZXRlLWNvbmZpcm1hdGlvbi1tZXNzYWdlJzpcbiAgICAgICAgJ8OKdGVzLXZvdXMgc8O7ciBkZSB2b3Vsb2lyIHN1cHByaW1lciBjZSBmaWNoaWVyID8nLFxuICAgICdmb2Vobi11cGxvYWRlci5hYmJyLW1lZ2FvY3RldCc6ICdNbycsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmFiYnItbWVnYW9jdGV0LXRpdGxlJzogJ01lZ2FvY3RldCcsXG4gICAgJ2ZvZWhuLXVwbG9hZGVyLmRlbGV0ZS1pY29uLXRpdGxlJzogJ1N1cHByaW1lciB7ZG9jTmFtZX0nLFxuICAgICd1c2UtbG9naW4udGV4dC5kZWNpc2lvbi1lbGVjdHJvbmlxdWUtYXZhaWxhYmxlJzpcbiAgICAgICAgJ1BvdXIgb2J0ZW5pciBsYSBub3RpZmljYXRpb24gZGUgbGEgZMOpY2lzaW9uIHNvdXMgZm9ybWUgw6lsZWN0cm9uaXF1ZSAnICtcbiAgICAgICAgJyhmaWNoaWVyIGF1IGZvcm1hdCBwZGYpLCB2b3VzIGRldmV6IGRlbWFuZGVyIGxhIHByZXN0YXRpb24gZW4gw6l0YW50IGNvbm5lY3TDqSBhdSBwb3J0YWlsIHPDqWN1cmlzw6kuJyxcbiAgICAndXNlLWxvZ2luLnRleHQnOlxuICAgICAgICBcIkNldHRlIHByZXN0YXRpb24gZXN0IGF1c3NpIHV0aWxpc2FibGUgYXUgdHJhdmVycyBkZSBsJ2VzcGFjZSBzw6ljdXJpc8OpIHF1aSB2b3VzIFwiICtcbiAgICAgICAgXCJwZXJtZXQgZGUgcHLDqS1yZW1wbGlyIGxlIGZvcm11bGFpcmUgZXQgZGUgc3VpdnJlIGwnYXZhbmNlbWVudCBkZSB0cmFpdGVtZW50IGRlIGxhIGRlbWFuZGUuXCIsXG4gICAgJ3VzZS1sb2dpbi5idXR0b24udGV4dCc6ICdDb25uZWN0ZXotdm91cycsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNob29zZS1idXR0b24tbGFiZWwnOiAnQ2hvaXNpc3NleiB1bmUgcGhvdG8nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWxhYmVsJzogJ0NoYXJnZW1lbnQuLi4nLFxuICAgICdmb2Vobi1waWN0dXJlLXVwbG9hZC5sb2FkaW5nLWZhaWx1cmUtbGFiZWwnOlxuICAgICAgICAnSW1wb3NzaWJsZSBkZSBjaGFyZ2VyIGxhIHBob3RvIHPDqWxlY3Rpb25uw6llJyxcbiAgICAnZm9laG4tcGljdHVyZS11cGxvYWQudmFsaWRhdGUtc2VsZWN0aW9uLWxhYmVsJzogJ1ZhbGlkZXIgbGEgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmNhbmNlbC1zZWxlY3Rpb24tbGFiZWwnOiAnQW5udWxlcicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLnNlbGVjdGlvbi1ub3QtdmFsaWRhdGVkLWxhYmVsJzpcbiAgICAgICAgJ01lcmNpIGRlIHZhbGlkZXIgdm90cmUgc8OpbGVjdGlvbicsXG4gICAgJ2ZvZWhuLXBpY3R1cmUtdXBsb2FkLmRlbGV0ZS1waWN0dXJlLWxhYmVsJzogJ1N1cHByaW1lcicsXG4gICAgJ2ZvZWhuLXRhYmxlLnRvdGFsRWxlbWVudHMnOiAne3RvdGFsfSDDqWzDqW1lbnRzIHRyb3V2w6lzJyxcbiAgICAnZm9laG4tdGFibGUudG90YWxFbGVtZW50cy4xJzogJzEgw6lsw6ltZW50IHRyb3V2w6knLFxuICAgICdmb2Vobi10YWJsZS50b3RhbEVsZW1lbnRzLjAnOiAnQXVjdW4gcsOpc3VsdGF0JyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMSc6ICdTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAxLnNyT25seSc6ICdFdGFwZSAxIHN1ciAzLCBTYWlzaWUnLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyJzogJ1bDqXJpZmljYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAyLnNyT25seSc6ICdFdGFwZSAyIHN1ciAzLCBWw6lyaWZpY2F0aW9uJyxcbiAgICAnZm9laG4tc3RhdHVzLXByb2dyZXNzLWJhci5zdGVwMyc6ICdDb25maXJtYXRpb24nLFxuICAgICdmb2Vobi1zdGF0dXMtcHJvZ3Jlc3MtYmFyLnN0ZXAzLnNyT25seSc6XG4gICAgICAgICdFdGFwZSAzIHN1ciAzLCBDb25maXJtYXRpb24sIGRlbWFuZGUgdHJhbnNtaXNlJyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLmRlbGV0ZSc6ICdTdXBwcmltZXIge2VsZW1lbnRMYWJlbH0nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuc2VsZWN0ZWQuc2NyZWVuLXJlYWRlci5kZWZhdWx0LXZhbHVlJzogJ8OJbMOpbWVudCBzw6lsZWN0aW9ubsOpIHBhciBkw6lmYXV0IG5vbiBzdXBwcmltYWJsZSA6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLnNlbGVjdGVkLnNjcmVlbi1yZWFkZXIuc2VsZWN0ZWQtdmFsdWUnOiAnw4lsw6ltZW50IHPDqWxlY3Rpb25uw6k6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmxpc3Qtb2Ytc2VsZWN0ZWQtaXRlbXMnOiAnTGlzdGUgZGVzIMOpbMOpbWVudHMgc8OpbGVjdGlvbm7DqXM6JyxcbiAgICAnZm9laG4tbXVsdGlzZWxlY3QtYXV0b2NvbXBsZXRlLmF1dG9jb21wbGV0ZS5lbXB0eS1tZXNzYWdlJzogJ1RvdXMgbGVzIMOpbMOpbWVudHMgZGUgbGEgbGlzdGUgZGUgcHJvcG9zaXRpb24gb250IGTDqWrDoCDDqXTDqSBham91dMOpcy4nLFxuICAgICdmb2Vobi1tdWx0aXNlbGVjdC1hdXRvY29tcGxldGUuYXV0b2NvbXBsZXRlLnNjcmVlbi1yZWFkZXIubGFiZWwnOiAnU8OpbGVjdGlvbm5lciB1biDDqWzDqW1lbnQgZGFucyBsYSBsaXN0ZSBkZSByZWNoZXJjaGUnICtcbiAgICAgICAgJyBjaS1kZXNzb3VzIHBvdXIgbFxcJ2Fqb3V0ZXIgw6Agdm90cmUgc8OpbGVjdGlvbi4nXG59O1xuIl19
@@ -1448,12 +1448,9 @@ const DEFAULT_DICTIONARY = {
1448
1448
  'foehn-status-progress-bar.step3': 'Confirmation',
1449
1449
  'foehn-status-progress-bar.step3.srOnly': 'Etape 3 sur 3, Confirmation, demande transmise',
1450
1450
  'foehn-multiselect-autocomplete.selected.delete': 'Supprimer {elementLabel}',
1451
- 'foehn-multiselect-autocomplete.selected.delete.aria-label': 'Supprimer {elementLabel} de la liste intitulée: {componentLabel}',
1452
1451
  'foehn-multiselect-autocomplete.selected.screen-reader.default-value': 'Élément sélectionné par défaut non supprimable :',
1453
1452
  'foehn-multiselect-autocomplete.selected.screen-reader.selected-value': 'Élément sélectionné:',
1454
1453
  'foehn-multiselect-autocomplete.list-of-selected-items': 'Liste des éléments sélectionnés:',
1455
- 'foehn-multiselect-autocomplete.list-of-selected-items.screen-reader.helper': 'En mode application, Utilisez les flèches ' +
1456
- 'gauche et droite pour naviguer dans la liste.',
1457
1454
  'foehn-multiselect-autocomplete.autocomplete.empty-message': 'Tous les éléments de la liste de proposition ont déjà été ajoutés.',
1458
1455
  'foehn-multiselect-autocomplete.autocomplete.screen-reader.label': 'Sélectionner un élément dans la liste de recherche' +
1459
1456
  ' ci-dessous pour l\'ajouter à votre sélection.'
@@ -7917,9 +7914,6 @@ class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComponent {
7917
7914
  }
7918
7915
  });
7919
7916
  }
7920
- getDeleteButtonAriaLabel(element) {
7921
- return `${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.selected.delete.aria-label', { elementLabel: this.getLabel(element), componentLabel: this.label })}`;
7922
- }
7923
7917
  getSelectedListAriaLabel() {
7924
7918
  return `${this.label}: ${this.dictionaryService.getKeySync('foehn-multiselect-autocomplete.list-of-selected-items')}`;
7925
7919
  }
@@ -8007,8 +8001,7 @@ class FoehnMultiselectAutocompleteComponent extends FoehnAutocompleteComponent {
8007
8001
  return filteredElements;
8008
8002
  }
8009
8003
  manageSuggestionListAndFocusAfterAddingAnItem() {
8010
- // Highlight selected suggestion in input so screen reader knows there is still some text in input
8011
- this.autocompleteComponent.inputElement.nativeElement.select();
8004
+ this.autocompleteInputValue = null;
8012
8005
  // Remove selected item from autocomplete suggestion list
8013
8006
  this.autocompleteComponent.elements = this.filterAutocompleteElements(this.elements);
8014
8007
  // Check if we still have suggestions to display
@@ -8057,7 +8050,7 @@ FoehnMultiselectAutocompleteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVer
8057
8050
  useExisting: forwardRef(() => FoehnMultiselectAutocompleteComponent),
8058
8051
  multi: true
8059
8052
  }
8060
- ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "closeButtonsElemRef", predicate: ["closeButtonsElemRef"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <div\n [attr.role]=\"!disabled ? 'application' : null\"\n (focusin)=\"onSelectedItemsFocusin()\"\n (focusout)=\"onSelectedItemsFocusout()\"\n [tabindex]=\"(!!model && !!model.length) ? 0 : -1\"\n class=\"selected-list-container\"\n >\n <div class=\"sr-only\">\n {{'foehn-multiselect-autocomplete.list-of-selected-items.screen-reader.helper' | fromDictionary}}\n </div>\n <ul\n [id]=\"buildChildId() + 'SelectedItemsList'\"\n class=\"list-unstyled mb-1 d-flex align-content-stretch flex-wrap\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-orientation=\"horizontal\"\n [attr.aria-label]=\"getSelectedListAriaLabel()\"\n >\n <li\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"isSelectedItemFocusable(index) ? 0 : -1\"\n [attr.is-default]=\"!canBeDeleted(index)\"\n #selectedElemRef\n >\n <ng-container *ngIf=\"!disabled\">\n <span *ngIf=\"!canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.default-value' | fromDictionary }}</span>\n <span *ngIf=\"canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value' | fromDictionary }}</span>\n </ng-container>\n\n <span [innerHtml]=\"getLabel(element)\"></span>\n\n <button\n *ngIf=\"!disabled && canBeDeleted(index)\"\n type=\"button\"\n class=\"btn btn-link ml-2\"\n [tabindex]=\"getSelectedElementTabIndex(index)\"\n (click)=\"removeItem(element)\"\n [attr.aria-label]=\"getDeleteButtonAriaLabel(element)\"\n #closeButtonsElemRef\n >\n <foehn-icon-times\n title=\"{{ 'foehn-multiselect-autocomplete.selected.delete' | fromDictionary: {elementLabel: getLabel(element)} }}\"\n ></foehn-icon-times>\n </button>\n </li>\n </ul>\n </div>\n\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId() + 'AlertMessageContainer'\"\n role=\"status\"\n tabindex=\"-1\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n", styles: [".selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container li:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
8053
+ ], viewQueries: [{ propertyName: "autocompleteComponent", first: true, predicate: ["autocompleteComponent"], descendants: true }, { propertyName: "alertMessageContainer", first: true, predicate: ["alertMessageContainer"], descendants: true }, { propertyName: "closeButtonsElemRef", predicate: ["closeButtonsElemRef"], descendants: true }, { propertyName: "selectedElemRef", predicate: ["selectedElemRef"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<foehn-autocomplete\n #autocompleteComponent\n [name]=\"name\"\n [label]=\"label\"\n [elements]=\"elements\"\n [elementsUrl]=\"elementsUrl\"\n [elementValue]=\"elementValue\"\n [elementLabel]=\"elementLabel\"\n [elementValueIdentity]=\"elementValueIdentity\"\n [elementDisabled]=\"elementDisabled\"\n [allElementDisabled]=\"allElementDisabled\"\n [elementGroup]=\"elementGroup\"\n [allowCustomValue]=\"false\"\n [searchValueMinCharsCount]=\"searchValueMinCharsCount\"\n [customValueModelGenerator]=\"customValueModelGenerator\"\n [required]=\"required\"\n [disabled]=\"disabled\"\n (userInput)=\"addItem($event)\"\n [(model)]=\"autocompleteInputValue\"\n (elementsLoaded)=\"onAutocompleteElementsLoaded($event)\"\n>\n <div\n [attr.role]=\"!disabled ? 'application' : null\"\n (focusin)=\"onSelectedItemsFocusin()\"\n (focusout)=\"onSelectedItemsFocusout()\"\n [tabindex]=\"(!!model && !!model.length) ? 0 : -1\"\n class=\"selected-list-container\"\n >\n <ul\n [id]=\"buildChildId() + 'SelectedItemsList'\"\n class=\"list-unstyled mb-1 d-flex align-content-stretch flex-wrap\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-orientation=\"horizontal\"\n [attr.aria-label]=\"getSelectedListAriaLabel()\"\n >\n <li\n *ngFor=\"let element of model; let index = index; trackBy: trackByFn\"\n class=\"badge badge-pill badge-secondary mr-1 mb-1 py-2 px-3 d-flex align-items-center\"\n [tabindex]=\"isSelectedItemFocusable(index) ? 0 : -1\"\n [attr.is-default]=\"!canBeDeleted(index)\"\n #selectedElemRef\n >\n <ng-container *ngIf=\"!disabled\">\n <span *ngIf=\"!canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.default-value' | fromDictionary }}</span>\n <span *ngIf=\"canBeDeleted(index)\" class=\"sr-only\">{{ 'foehn-multiselect-autocomplete.selected.screen-reader.selected-value' | fromDictionary }}</span>\n </ng-container>\n\n <span [innerHtml]=\"getLabel(element)\"></span>\n\n <button\n *ngIf=\"!disabled && canBeDeleted(index)\"\n type=\"button\"\n class=\"btn btn-link ml-2\"\n [tabindex]=\"getSelectedElementTabIndex(index)\"\n (click)=\"removeItem(element)\"\n #closeButtonsElemRef\n >\n <foehn-icon-times\n title=\"{{ 'foehn-multiselect-autocomplete.selected.delete' | fromDictionary: {elementLabel: getLabel(element)} }}\"\n ></foehn-icon-times>\n </button>\n </li>\n </ul>\n </div>\n\n <small\n *ngIf=\"!showEmptyListMessage\"\n [attr.id]=\"buildChildId() + 'Help'\"\n class=\"form-text text-secondary\"\n [innerHTML]=\"helpText ? helpText : 'foehn-multiselect-autocomplete.autocomplete.screen-reader.label' | fromDictionary\"\n ></small>\n\n <div\n [id]=\"buildChildId() + 'AlertMessageContainer'\"\n role=\"status\"\n tabindex=\"-1\"\n #alertMessageContainer\n >\n <p\n *ngIf=\"showEmptyListMessage\"\n class=\"alert alert-info\"\n tabindex=\"0\"\n >{{'foehn-multiselect-autocomplete.autocomplete.empty-message' | fromDictionary}}</p>\n </div>\n</foehn-autocomplete>\n", styles: [".selected-list-container button>.btn,.btn-link{line-height:inherit;padding:0}.selected-list-container li:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}.selected-list-container:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}foehn-autocomplete p.alert:focus{outline:0;box-shadow:inset 0 1px 1px #00000013,0 0 0 .2rem #ffbf47}\n"], components: [{ type: FoehnAutocompleteComponent, selector: "foehn-autocomplete", inputs: ["searchValueMinCharsCount", "allowCustomValue", "customValueModelGenerator"] }, { type: FoehnIconTimesComponent, selector: "foehn-icon-times" }], directives: [{ type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "fromDictionary": SdkDictionaryPipe } });
8061
8054
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.4", ngImport: i0, type: FoehnMultiselectAutocompleteComponent, decorators: [{
8062
8055
  type: Component,
8063
8056
  args: [{