@hmcts/ccd-case-ui-toolkit 7.0.65-ungrey-back-button → 7.0.65-ungrey-back-button-2

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.
@@ -197,9 +197,16 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
197
197
  else if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE ||
198
198
  flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1 ||
199
199
  flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL) &&
200
- flagLauncherComponent.selectedFlag) {
201
- this.flagForSummaryDisplay =
202
- this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
200
+ (flagLauncherComponent.selectedFlag ||
201
+ (this.caseFlagStateService.formGroup.get('selectedManageCaseLocation').value.flagDetailDisplay && this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1))) {
202
+ if (this.formGroup.get(flagLauncherControlName)['component']?.selectedFlag?.flagDetailDisplay !== undefined) {
203
+ this.flagForSummaryDisplay =
204
+ this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
205
+ }
206
+ else {
207
+ this.flagForSummaryDisplay =
208
+ this.caseFlagStateService.formGroup.get('selectedManageCaseLocation').value.flagDetailDisplay;
209
+ }
203
210
  // TODO: not the best solution, the caseFlagStateService should have all the fields, then we can delete a lot of the transformations here
204
211
  // in Create Case Flag it already has all fields
205
212
  const caseFlagFormGroupValue = this.caseFlagStateService.formGroup?.value;
@@ -250,4 +257,4 @@ export class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
250
257
  args: [{ selector: 'ccd-read-case-flag-field', template: "<ng-container *ngIf=\"context === paletteContext.CHECK_YOUR_ANSWER\">\n <ccd-case-flag-summary-list\n [flagForSummaryDisplay]=\"flagForSummaryDisplay\"\n [displayContextParameter]=\"displayContextParameter\"\n (changeButtonEmitter)=\"navigateBackToForm($event)\">\n </ccd-case-flag-summary-list>\n</ng-container>\n\n<ng-container *ngIf=\"context !== paletteContext.CHECK_YOUR_ANSWER\">\n <ng-container [ngSwitch]=\"displayContextParameter\">\n <ng-container *ngSwitchCase=\"caseFlagDisplayContextParameter.READ_EXTERNAL\">\n <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n {{ 'Support requested' | rpxTranslate }}\n </h2>\n\n <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n [tableCaption]=\"''\"\n [flagData]=\"flagData\"\n [firstColumnHeader]=\"flagData.flags.partyName\"\n [caseFlagsExternalUser]=\"caseFlagsExternalUser\"\n ></ccd-case-flag-table>\n </div>\n </ng-container>\n\n <ng-container *ngSwitchDefault>\n <h2 id=\"read-case-flag-title\" class=\"govuk-heading-l\">\n {{ 'Case flags' | rpxTranslate }}\n </h2>\n\n <div *ngFor=\"let flagData of partyLevelCaseFlagData\">\n <ccd-case-flag-table *ngIf=\"flagData.flags.partyName\"\n [tableCaption]=\"flagData.flags.partyName\"\n [flagData]=\"flagData\"\n [firstColumnHeader]=\"'Party level flags' | rpxTranslate\"\n ></ccd-case-flag-table>\n </div>\n <div *ngIf=\"caseLevelCaseFlagData\">\n <ccd-case-flag-table\n [tableCaption]=\"'Case level flags' | rpxTranslate\"\n [flagData]=\"caseLevelCaseFlagData\"\n [firstColumnHeader]=\"'Case flags' | rpxTranslate\"\n ></ccd-case-flag-table>\n </div>\n </ng-container>\n </ng-container>\n</ng-container>\n", styles: [".govuk-heading-l{margin-top:30px}\n"] }]
251
258
  }], () => [{ type: i1.ActivatedRoute }, { type: i1.Router }, { type: i2.CaseFlagStateService }], null); })();
252
259
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(ReadCaseFlagFieldComponent, { className: "ReadCaseFlagFieldComponent", filePath: "lib/shared/components/palette/case-flag/read-case-flag-field.component.ts", lineNumber: 16 }); })();
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7SUNSMUUsNkJBQW1FO0lBQ2pFLHFEQUdxRDtJQUFuRCxxUEFBdUIsaUNBQTBCLEtBQUM7SUFDcEQsaUJBQTZCOzs7O0lBSDNCLGNBQStDO0lBQy9DLEFBREEsb0VBQStDLDJEQUNJOzs7SUFhL0MseUNBS3VCOzs7O0lBREQsQUFEQSxBQURBLEFBREEsaUNBQW1CLHlCQUNFLGtEQUN5Qix1REFDQzs7O0lBTHZFLDJCQUFxRDtJQUNuRCwrSUFLQztJQUNILGlCQUFNOzs7SUFOa0IsY0FBOEI7SUFBOUIsa0RBQThCOzs7SUFOeEQsNkJBQTRFO0lBQzFFLDZCQUFzRDtJQUNwRCxZQUNGOztJQUFBLGlCQUFLO0lBRUwseUdBQXFEOzs7O0lBSG5ELGVBQ0Y7SUFERSwwRUFDRjtJQUUwQixlQUF5QjtJQUF6Qix1REFBeUI7OztJQWdCakQsMENBSXVCOzs7O0lBREQsQUFEQSxBQURBLDBEQUF5Qyx5QkFDcEIsZ0VBQ21DOzs7SUFKaEYsMkJBQXFEO0lBQ25ELCtJQUlDO0lBQ0gsaUJBQU07OztJQUxrQixjQUE4QjtJQUE5QixrREFBOEI7OztJQU10RCwyQkFBbUM7SUFDakMsMENBSXVCOzs7SUFDekIsaUJBQU07OztJQUpGLGNBQWtEO0lBRWxELEFBREEsQUFEQSx1RUFBa0QsMENBQ2hCLHlEQUNlOzs7SUFoQnZELDZCQUErQjtJQUM3Qiw2QkFBc0Q7SUFDcEQsWUFDRjs7SUFBQSxpQkFBSztJQVNMLEFBUEEseUdBQXFELDRGQU9sQjs7OztJQVZqQyxlQUNGO0lBREUsbUVBQ0Y7SUFFMEIsZUFBeUI7SUFBekIsdURBQXlCO0lBTzdDLGNBQTJCO0lBQTNCLG1EQUEyQjs7O0lBNUJyQyxBQURGLDZCQUFtRSxNQUNkO0lBZ0JqRCxBQWZBLDRHQUE0RSwrRkFlN0M7Ozs7SUFoQm5CLGNBQW9DO0lBQXBDLHlEQUFvQztJQUNqQyxjQUEyRDtJQUEzRCxtRkFBMkQ7O0FESzlFLE1BQU0sT0FBTywwQkFBMkIsU0FBUSwwQkFBMEI7SUFnQnJEO0lBQ0E7SUFDQTtJQWpCWixTQUFTLENBQTJCO0lBQ3BDLHNCQUFzQixDQUEyQjtJQUNqRCxxQkFBcUIsQ0FBeUI7SUFDOUMsY0FBYyxHQUFHLGNBQWMsQ0FBQztJQUNoQyxxQkFBcUIsQ0FBb0I7SUFDekMsdUJBQXVCLENBQWtDO0lBQ3pELHFCQUFxQixHQUFHLEtBQUssQ0FBQztJQUM5QixvQkFBb0IsQ0FBUztJQUNuQix5QkFBeUIsR0FBRyxXQUFXLENBQUM7SUFFekQsSUFBVywrQkFBK0I7UUFDeEMsT0FBTywrQkFBK0IsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFDbUIsS0FBcUIsRUFDckIsTUFBYyxFQUNkLG9CQUEwQztRQUUzRCxLQUFLLEVBQUUsQ0FBQztRQUpTLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCx5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO0lBRzdELENBQUM7SUFFTSxRQUFRO1FBQ2IsTUFBTSx1QkFBdUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUMsSUFBSSxDQUN2RSxXQUFXLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoSCxNQUFNLHFCQUFxQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsdUJBQXVCLEdBQUcscUJBQXFCLEVBQUUsU0FBUyxFQUFFLHlCQUF5QixDQUFDO1FBQzNGLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUMsdUJBQXVCLEtBQUssK0JBQStCLENBQUMsYUFBYSxDQUFDO1FBRTVHLGtIQUFrSDtRQUNsSCw2REFBNkQ7UUFDN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxLQUFLLGNBQWMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUM1Qyw2R0FBNkc7WUFDN0csaUVBQWlFO1lBQ2pFLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQztnQkFDeEMsSUFBSSxDQUFDLFNBQVMsR0FBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQWtCO3FCQUMvRCxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSTtnQkFDL0IscUdBQXFHO2dCQUNyRyxzREFBc0Q7Z0JBQ3RELENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxjQUFjLElBQUksU0FBUyxDQUFDLEVBQUUsS0FBSyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQ3BHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsNkJBQTZCLENBQ2hGLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxDQUFDLEVBQUUsRUFBRSxTQUFTLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUN0RCxDQUFDO1lBRUQsZ0RBQWdEO1lBQ2hELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FDakQsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsS0FBSyxJQUFJLENBQUMseUJBQXlCLENBQUMsQ0FBQztZQUNsRiw4R0FBOEc7WUFDOUcsa0RBQWtEO1lBQ2xELElBQUksQ0FBQyxJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztnQkFDaEMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCO3FCQUNuRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDO3FCQUM5QixNQUFNLENBQUMsQ0FBQyxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRTtvQkFDL0IsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsR0FBRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztvQkFDOUUsb0dBQW9HO29CQUNwRyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDcEUsT0FBTyxpQkFBaUIsQ0FBQztnQkFDM0IsQ0FBQyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztnQkFDeEIseUdBQXlHO2dCQUN6RyxZQUFZO2dCQUNaLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxzQkFBc0I7cUJBQ2xELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUM7cUJBQzlCLE1BQU0sQ0FBQyxDQUFDLG9CQUFvQixFQUFFLENBQUMsRUFBRSxFQUFFO29CQUNsQyxJQUFJLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQzt3QkFDMUYsMkNBQTJDO3dCQUMzQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO3dCQUNwRCxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQy9CLENBQUM7b0JBQ0QsT0FBTyxvQkFBb0IsQ0FBQztnQkFDOUIsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUNQLHVDQUF1QztnQkFDdkMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNwRyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsZUFBZSxDQUFDO1lBQ2hELENBQUM7WUFFRCwwRkFBMEY7WUFDMUYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUM5QyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLG9CQUFvQixLQUFLLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDO1FBQ3BGLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLEtBQUssY0FBYyxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDN0QsOEdBQThHO1lBQzlHLGlGQUFpRjtZQUNqRiwrRUFBK0U7WUFDL0UsK0RBQStEO1lBQy9ELElBQUkscUJBQXFCLEVBQUUsQ0FBQztnQkFDMUIsNEdBQTRHO2dCQUM1RyxvQ0FBb0M7Z0JBQ3BDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxTQUFTLENBQUMseUJBQXlCLEtBQUssK0JBQStCLENBQUMsTUFBTTtvQkFDdkcscUJBQXFCLENBQUMsU0FBUyxDQUFDLHlCQUF5QixLQUFLLCtCQUErQixDQUFDLGdCQUFnQjtvQkFDOUcscUJBQXFCLENBQUMsU0FBUyxDQUFDLHlCQUF5QixLQUFLLCtCQUErQixDQUFDLGVBQWUsQ0FBQztvQkFDOUcscUJBQXFCLENBQUMscUJBQXFCLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLHFCQUFxQixDQUFDLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO29CQUM3RixJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDLHVDQUF1QyxDQUN2RSxxQkFBcUIsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO29CQUNuRCw4R0FBOEc7b0JBQzlHLDRCQUE0QjtnQkFDNUIsQ0FBQztxQkFBTSxJQUFJLENBQUMscUJBQXFCLENBQUMsU0FBUyxDQUFDLHlCQUF5QixLQUFLLCtCQUErQixDQUFDLE1BQU07b0JBQzlHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsS0FBSywrQkFBK0IsQ0FBQyxnQkFBZ0I7b0JBQzlHLHFCQUFxQixDQUFDLFNBQVMsQ0FBQyx5QkFBeUIsS0FBSywrQkFBK0IsQ0FBQyxlQUFlLENBQUM7b0JBQzlHLHFCQUFxQixDQUFDLFlBQVksRUFBRSxDQUFDO29CQUNuQyxJQUFJLENBQUMscUJBQXFCO3dCQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQztvQkFDNUYseUlBQXlJO29CQUN6SSxnREFBZ0Q7b0JBQ2hELE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUM7b0JBQzFFLElBQUksc0JBQXNCLEVBQUUsQ0FBQzt3QkFDM0Isc0JBQXNCLENBQUMsTUFBTSxHQUFHLGNBQWMsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQzt3QkFDOUUsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFVBQVUsR0FBRzs0QkFDdEMsR0FBRyxJQUFJLENBQUMscUJBQXFCLENBQUMsVUFBVTs0QkFDeEMsR0FBRyxzQkFBc0I7eUJBQzFCLENBQUM7b0JBQ0osQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU8sdUNBQXVDLENBQUMscUJBQTZDO1FBQzNGLGlIQUFpSDtRQUNqSCwwQ0FBMEM7UUFDMUMsSUFBSSxtQkFBbUIsR0FBRyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsS0FBSyxDQUFDO1FBQ2pFLE1BQU0sSUFBSSxHQUFHLHFCQUFxQixDQUFDLG9CQUFvQixDQUFDO1FBQ3hELG1IQUFtSDtRQUNuSCxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLG1CQUFtQixHQUFHLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDaEgsQ0FBQztRQUNELElBQUksbUJBQW1CLEVBQUUsQ0FBQztZQUN4QixPQUFPO2dCQUNMLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTO2dCQUN4QywwR0FBMEc7Z0JBQzFHLFVBQVUsRUFBRSxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsS0FBSzthQUMxRSxDQUFDO1FBQ3pCLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFTSxrQkFBa0IsQ0FBQyxVQUFrQjtRQUMxQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsb0JBQW9CLEdBQUcsVUFBVSxDQUFDO1FBQzVELElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxJQUFJLENBQUMsb0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRyxDQUFDO29GQTVJVSwwQkFBMEI7NkRBQTFCLDBCQUEwQjtZQ1B2QyxBQVJBLDZGQUFtRSxnRkFRQTs7WUFScEQsMkVBQWtEO1lBUWxELGNBQWtEO1lBQWxELDJFQUFrRDs7O2lGRE9wRCwwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSwwQkFBMEI7O2tGQUl6QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS1mbGFnLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnU3RhdHVzIH0gZnJvbSAnLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVhZENhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIGNhc2VMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQ7XG4gIHB1YmxpYyBmbGFnRm9yU3VtbWFyeURpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5O1xuICBwdWJsaWMgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIHB1YmxpYyBjYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBmYWxzZTtcbiAgcHVibGljIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBnZXQgY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlcigpOiB0eXBlb2YgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciB7XG4gICAgcmV0dXJuIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZmluZChcbiAgICAgIGNvbnRyb2xOYW1lID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSlbJ2Nhc2VGaWVsZCddLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29tcG9uZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKT8uWydjb21wb25lbnQnXTtcbiAgICB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID0gZmxhZ0xhdW5jaGVyQ29tcG9uZW50Py5jYXNlRmllbGQ/LmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI7XG4gICAgdGhpcy5jYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlJFQURfRVhURVJOQUw7XG5cbiAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5ERUZBVUxULCB0aGUgRmxhZ3MgZmllbGRzIG5lZWQgdG8gYmUgbG9jYXRlZCBieSBDYXNlVGFiICh0aGV5IHdvbid0IGJlIHByZXNlbnRcbiAgICAvLyBpbiB0aGUgRm9ybUdyb3VwIC0gb25seSB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIGlzIHByZXNlbnQpXG4gICAgaWYgKHRoaXMuY29udGV4dCA9PT0gUGFsZXR0ZUNvbnRleHQuREVGQVVMVCkge1xuICAgICAgLy8gRGV0ZXJtaW5lIHRoZSB0YWIgdGhpcyBDYXNlRmllbGQgYmVsb25ncyB0byAoc2hvdWxkIGJlIG9ubHkgb25lKSwgZnJvbSB0aGUgQ2FzZVZpZXcgb2JqZWN0IGluIHRoZSBzbmFwc2hvdFxuICAgICAgLy8gZGF0YSwgYW5kIGV4dHJhY3QgYWxsIGZsYWdzLXJlbGF0ZWQgZGF0YSBmcm9tIGl0cyBGbGFncyBmaWVsZHNcbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZT8udGFicykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAvLyBUaGVyZSBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIEZsYWdMYXVuY2hlciBmaWVsZCBpbnN0YW5jZSBzbyBhbiBhZGRpdGlvbmFsIGNoZWNrIG9mIGNhc2VGaWVsZCBJRCBpc1xuICAgICAgICAgICAgLy8gcmVxdWlyZWQgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IGluc3RhbmNlIGlzIG9idGFpbmVkXG4gICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnRmxhZ0xhdW5jaGVyJyAmJiBjYXNlRmllbGQuaWQgPT09IHRoaXMuY2FzZUZpZWxkLmlkKSlcbiAgICAgICAgICBbMF0uZmllbGRzPy5yZWR1Y2UoKGZsYWdzLCBjYXNlRmllbGQpID0+IEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKFxuICAgICAgICAgICAgZmxhZ3MsIGNhc2VGaWVsZCwgY2FzZUZpZWxkLmlkLCBjYXNlRmllbGQpLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcGFyYXRlIHRoZSBwYXJ0eS1sZXZlbCBhbmQgY2FzZS1sZXZlbCBmbGFnc1xuICAgICAgdGhpcy5wYXJ0eUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmlsdGVyKFxuICAgICAgICAoaW5zdGFuY2UpID0+IGluc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwICE9PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpO1xuICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgaW50ZXJuYWwsIGdyb3VwIGFsbCBmbGFncyBkYXRhIGJ5IGdyb3VwSWQgd2hlcmUgcHJlc2VudCBzbyB0aGV5IHNlZSBhIGNvbWJpbmVkIGNvbGxlY3Rpb24gb2ZcbiAgICAgIC8vIGludGVybmFsIGFuZCBleHRlcm5hbCBmbGFncyBkYXRhIGZvciBlYWNoIHBhcnR5XG4gICAgICBpZiAoIXRoaXMuY2FzZUZsYWdzRXh0ZXJuYWxVc2VyKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRGbGFnc0RhdGEgPSB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcbiAgICAgICAgLmZpbHRlcigoZikgPT4gZi5mbGFncy5ncm91cElkKVxuICAgICAgICAucmVkdWNlKChtZXJnZWRGbGFnRGV0YWlscywgZikgPT4ge1xuICAgICAgICAgIG1lcmdlZEZsYWdEZXRhaWxzW2YuZmxhZ3MuZ3JvdXBJZF0gPSBtZXJnZWRGbGFnRGV0YWlsc1tmLmZsYWdzLmdyb3VwSWRdIHx8IFtdO1xuICAgICAgICAgIC8vIFRoZSBmbGFncy5kZXRhaWxzIHByb3BlcnR5ICh3aGljaCBzaG91bGQgYmUgYW4gYXJyYXkpIGNvdWxkIGJlIGZhbHN5OyBzcHJlYWQgYW4gZW1wdHkgYXJyYXkgaWYgc29cbiAgICAgICAgICBtZXJnZWRGbGFnRGV0YWlsc1tmLmZsYWdzLmdyb3VwSWRdLnB1c2goLi4uKGYuZmxhZ3MuZGV0YWlscyB8fCBbXSkpO1xuICAgICAgICAgIHJldHVybiBtZXJnZWRGbGFnRGV0YWlscztcbiAgICAgICAgfSwgT2JqZWN0LmNyZWF0ZShudWxsKSk7XG4gICAgICAgIC8vIFJlbW92ZSBkdXBsaWNhdGUgZmxhZ3Mgb2JqZWN0cyB3aXRoIHRoZSBzYW1lIGdyb3VwSWQgKHdoaWNoIGFyZSBnb2luZyB0byBiZSB0cmVhdGVkIGFzIG9uZSBmb3IgZGlzcGxheVxuICAgICAgICAvLyBwdXJwb3NlcylcbiAgICAgICAgY29uc3QgdW5pcXVlUGFydHlEYXRhID0gdGhpcy5wYXJ0eUxldmVsQ2FzZUZsYWdEYXRhXG4gICAgICAgIC5maWx0ZXIoKGYpID0+IGYuZmxhZ3MuZ3JvdXBJZClcbiAgICAgICAgLnJlZHVjZSgoZmxhZ3NVbmlxdWVCeUdyb3VwSWQsIGYpID0+IHtcbiAgICAgICAgICBpZiAoZmxhZ3NVbmlxdWVCeUdyb3VwSWQuZmluZEluZGV4KGZsYWcgPT4gZmxhZy5mbGFncy5ncm91cElkID09PSBmLmZsYWdzLmdyb3VwSWQpID09PSAtMSkge1xuICAgICAgICAgICAgLy8gU2V0IHRoZSBjb3JyZXNwb25kaW5nIGdyb3VwZWQgZmxhZ3MgZGF0YVxuICAgICAgICAgICAgZi5mbGFncy5kZXRhaWxzID0gZ3JvdXBlZEZsYWdzRGF0YVtmLmZsYWdzLmdyb3VwSWRdO1xuICAgICAgICAgICAgZmxhZ3NVbmlxdWVCeUdyb3VwSWQucHVzaChmKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgcmV0dXJuIGZsYWdzVW5pcXVlQnlHcm91cElkO1xuICAgICAgICB9LCBbXSk7XG4gICAgICAgIC8vIEFwcGVuZCBmbGFncyBvYmplY3RzIHdpdGggbm8gZ3JvdXBJZFxuICAgICAgICB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGEuZmlsdGVyKChmKSA9PiAhZi5mbGFncy5ncm91cElkKS5mb3JFYWNoKChmKSA9PiB1bmlxdWVQYXJ0eURhdGEucHVzaChmKSk7XG4gICAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHVuaXF1ZVBhcnR5RGF0YTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBjYXNlLWxldmVsIGZsYWdzIGluc3RhbmNlIGNvbnRhaW5pbmcgYWxsIGNhc2UtbGV2ZWwgZmxhZyBkZXRhaWxzXG4gICAgICB0aGlzLmNhc2VMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbmQoXG4gICAgICAgIChpbnN0YW5jZSkgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGlmIChmbGFnTGF1bmNoZXJDb21wb25lbnQpIHtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZ3NMb2NhdGlvbikgY29udGFpbmluZyB0aGUgQ2FzZUZpZWxkIGluc3RhbmNlIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBuZXcgZmxhZyBoYXMgYmVlbiBhZGRlZFxuICAgICAgICBpZiAoKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEUgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMSB8fFxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUwpICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5wYXRoVG9GbGFnc0Zvcm1Hcm91cCA9IGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgICAgICAgICB0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheSA9IHRoaXMuZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KFxuICAgICAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKTtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZyksIHdoaWNoIGdldHMgc2V0IGFmdGVyIHRoZSBzZWxlY3Rpb24gc3RlcCBvZiB0aGVcbiAgICAgICAgLy8gTWFuYWdlIENhc2UgRmxhZ3Mgam91cm5leVxuICAgICAgICB9IGVsc2UgaWYgKChmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFIHx8XG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzEgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMKSAmJlxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5zZWxlY3RlZEZsYWcpIHtcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID1cbiAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKVsnY29tcG9uZW50J10uc2VsZWN0ZWRGbGFnLmZsYWdEZXRhaWxEaXNwbGF5O1xuICAgICAgICAgIC8vIFRPRE86IG5vdCB0aGUgYmVzdCBzb2x1dGlvbiwgdGhlIGNhc2VGbGFnU3RhdGVTZXJ2aWNlIHNob3VsZCBoYXZlIGFsbCB0aGUgZmllbGRzLCB0aGVuIHdlIGNhbiBkZWxldGUgYSBsb3Qgb2YgdGhlIHRyYW5zZm9ybWF0aW9ucyBoZXJlXG4gICAgICAgICAgLy8gaW4gQ3JlYXRlIENhc2UgRmxhZyBpdCBhbHJlYWR5IGhhcyBhbGwgZmllbGRzXG4gICAgICAgICAgY29uc3QgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSA9IHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZm9ybUdyb3VwPy52YWx1ZTtcbiAgICAgICAgICBpZiAoY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZSkge1xuICAgICAgICAgICAgY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZS5zdGF0dXMgPSBDYXNlRmxhZ1N0YXR1c1tjYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlLnN0YXR1c107XG4gICAgICAgICAgICB0aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsID0ge1xuICAgICAgICAgICAgICAuLi50aGlzLmZsYWdGb3JTdW1tYXJ5RGlzcGxheS5mbGFnRGV0YWlsLFxuICAgICAgICAgICAgICAuLi5jYXNlRmxhZ0Zvcm1Hcm91cFZhbHVlXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZXh0cmFjdE5ld0ZsYWdUb0ZsYWdEZXRhaWxEaXNwbGF5T2JqZWN0KHNlbGVjdGVkRmxhZ3NMb2NhdGlvbjogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCk6IEZsYWdEZXRhaWxEaXNwbGF5IHtcbiAgICAvLyBVc2UgdGhlIHBhdGhUb0ZsYWdzRm9ybUdyb3VwIHByb3BlcnR5IGZyb20gdGhlIHNlbGVjdGVkIGZsYWcgbG9jYXRpb24gdG8gZHJpbGwgZG93biB0byB0aGUgY29ycmVjdCBwYXJ0IG9mIHRoZVxuICAgIC8vIENhc2VGaWVsZCB2YWx1ZSBjb250YWluaW5nIHRoZSBuZXcgZmxhZ1xuICAgIGxldCBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLmNhc2VGaWVsZD8udmFsdWU7XG4gICAgY29uc3QgcGF0aCA9IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbi5wYXRoVG9GbGFnc0Zvcm1Hcm91cDtcbiAgICAvLyBSb290LWxldmVsIEZsYWdzIENhc2VGaWVsZHMgZG9uJ3QgaGF2ZSBhIGRvdC1kZWxpbWl0ZWQgcGF0aCAtIGp1c3QgdGhlIENhc2VGaWVsZCBJRCBpdHNlbGYgLSBzbyBkb24ndCBkcmlsbCBkb3duXG4gICAgaWYgKHBhdGguaW5kZXhPZignLicpID4gLTEpIHtcbiAgICAgIHBhdGguc2xpY2UocGF0aC5pbmRleE9mKCcuJykgKyAxKS5zcGxpdCgnLicpLmZvckVhY2gocGFydCA9PiBmbGFnc0Nhc2VGaWVsZFZhbHVlID0gZmxhZ3NDYXNlRmllbGRWYWx1ZVtwYXJ0XSk7XG4gICAgfVxuICAgIGlmIChmbGFnc0Nhc2VGaWVsZFZhbHVlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBwYXJ0eU5hbWU6IGZsYWdzQ2FzZUZpZWxkVmFsdWUucGFydHlOYW1lLFxuICAgICAgICAvLyBMb29rIGluIHRoZSBkZXRhaWxzIGFycmF5IGZvciB0aGUgb2JqZWN0IHRoYXQgZG9lcyAqbm90KiBoYXZlIGFuIGlkIC0gdGhpcyBpbmRpY2F0ZXMgaXQgaXMgdGhlIG5ldyBmbGFnXG4gICAgICAgIGZsYWdEZXRhaWw6IGZsYWdzQ2FzZUZpZWxkVmFsdWUuZGV0YWlscz8uZmluZChlbGVtZW50ID0+ICFlbGVtZW50Lmhhc093blByb3BlcnR5KCdpZCcpKT8udmFsdWVcbiAgICAgIH0gYXMgRmxhZ0RldGFpbERpc3BsYXk7XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBwdWJsaWMgbmF2aWdhdGVCYWNrVG9Gb3JtKGZpZWxkU3RhdGU6IG51bWJlcik6IHZvaWQge1xuICAgIHRoaXMuY2FzZUZsYWdTdGF0ZVNlcnZpY2UuZmllbGRTdGF0ZVRvTmF2aWdhdGUgPSBmaWVsZFN0YXRlO1xuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtgLi4vJHt0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLnBhZ2VMb2NhdGlvbn1gXSwgeyByZWxhdGl2ZVRvOiB0aGlzLnJvdXRlIH0pO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dCA9PT0gcGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgPGNjZC1jYXNlLWZsYWctc3VtbWFyeS1saXN0XG4gICAgW2ZsYWdGb3JTdW1tYXJ5RGlzcGxheV09XCJmbGFnRm9yU3VtbWFyeURpc3BsYXlcIlxuICAgIFtkaXNwbGF5Q29udGV4dFBhcmFtZXRlcl09XCJkaXNwbGF5Q29udGV4dFBhcmFtZXRlclwiXG4gICAgKGNoYW5nZUJ1dHRvbkVtaXR0ZXIpPVwibmF2aWdhdGVCYWNrVG9Gb3JtKCRldmVudClcIj5cbiAgPC9jY2QtY2FzZS1mbGFnLXN1bW1hcnktbGlzdD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctY29udGFpbmVyICpuZ0lmPVwiY29udGV4dCAhPT0gcGFsZXR0ZUNvbnRleHQuQ0hFQ0tfWU9VUl9BTlNXRVJcIj5cbiAgPG5nLWNvbnRhaW5lciBbbmdTd2l0Y2hdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCJjYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlJFQURfRVhURVJOQUxcIj5cbiAgICAgIDxoMiBpZD1cInJlYWQtY2FzZS1mbGFnLXRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj5cbiAgICAgICAge3sgJ1N1cHBvcnQgcmVxdWVzdGVkJyB8IHJweFRyYW5zbGF0ZSB9fVxuICAgICAgPC9oMj5cblxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZmxhZ0RhdGEgb2YgcGFydHlMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZSAqbmdJZj1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdGFibGVDYXB0aW9uXT1cIicnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmbGFnRGF0YV09XCJmbGFnRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiZmxhZ0RhdGEuZmxhZ3MucGFydHlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtjYXNlRmxhZ3NFeHRlcm5hbFVzZXJdPVwiY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxuICAgICAgPGgyIGlkPVwicmVhZC1jYXNlLWZsYWctdGl0bGVcIiBjbGFzcz1cImdvdnVrLWhlYWRpbmctbFwiPlxuICAgICAgICB7eyAnQ2FzZSBmbGFncycgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZsYWdEYXRhIG9mIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcIj5cbiAgICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZsYWdEYXRhXT1cImZsYWdEYXRhXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmaXJzdENvbHVtbkhlYWRlcl09XCInUGFydHkgbGV2ZWwgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiAqbmdJZj1cImNhc2VMZXZlbENhc2VGbGFnRGF0YVwiPlxuICAgICAgICA8Y2NkLWNhc2UtZmxhZy10YWJsZVxuICAgICAgICAgIFt0YWJsZUNhcHRpb25dPVwiJ0Nhc2UgbGV2ZWwgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgICBbZmxhZ0RhdGFdPVwiY2FzZUxldmVsQ2FzZUZsYWdEYXRhXCJcbiAgICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiJ0Nhc2UgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlXCJcbiAgICAgICAgPjwvY2NkLWNhc2UtZmxhZy10YWJsZT5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvbmctY29udGFpbmVyPlxuIl19
260
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhZC1jYXNlLWZsYWctZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvY2FzZS1mbGFnL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvY29tcG9uZW50cy9wYWxldHRlL2Nhc2UtZmxhZy9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG9EQUFvRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUVwRSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsY0FBYyxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7Ozs7SUNSMUUsNkJBQW1FO0lBQ2pFLHFEQUdxRDtJQUFuRCxxUEFBdUIsaUNBQTBCLEtBQUM7SUFDcEQsaUJBQTZCOzs7O0lBSDNCLGNBQStDO0lBQy9DLEFBREEsb0VBQStDLDJEQUNJOzs7SUFhL0MseUNBS3VCOzs7O0lBREQsQUFEQSxBQURBLEFBREEsaUNBQW1CLHlCQUNFLGtEQUN5Qix1REFDQzs7O0lBTHZFLDJCQUFxRDtJQUNuRCwrSUFLQztJQUNI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b0JBQW9CLENBQUMsWUFBWSxFQUFFLENBQUMsRUFBRSxFQUFFLFVBQVUsRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNyRyxDQUFDO29GQWxKVSwwQkFBMEI7NkRBQTFCLDBCQUEwQjtZQ1B2QyxBQVJBLDZGQUFtRSxnRkFRQTs7WUFScEQsMkVBQWtEO1lBUWxELGNBQWtEO1lBQWxELDJFQUFrRDs7O2lGRE9wRCwwQkFBMEI7Y0FMdEMsU0FBUzsyQkFDRSwwQkFBMEI7O2tGQUl6QiwwQkFBMEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBDYXNlVGFiIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmllbGRzJztcbmltcG9ydCB7IENhc2VGbGFnU3RhdGVTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY2FzZS1lZGl0b3Ivc2VydmljZXMvY2FzZS1mbGFnLXN0YXRlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFJlYWRDb21wb25lbnQgfSBmcm9tICcuLi9iYXNlLWZpZWxkL2Fic3RyYWN0LWZpZWxkLXJlYWQuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbGV0dGVDb250ZXh0IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9wYWxldHRlLWNvbnRleHQuZW51bSc7XG5pbXBvcnQgeyBGbGFnRGV0YWlsRGlzcGxheSwgRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aCB9IGZyb20gJy4vZG9tYWluJztcbmltcG9ydCB7IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIsIENhc2VGbGFnU3RhdHVzIH0gZnJvbSAnLi9lbnVtcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC1yZWFkLWNhc2UtZmxhZy1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZWFkLWNhc2UtZmxhZy1maWVsZC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JlYWQtY2FzZS1mbGFnLWZpZWxkLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUmVhZENhc2VGbGFnRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkUmVhZENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHB1YmxpYyBmbGFnc0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGE6IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGhbXTtcbiAgcHVibGljIGNhc2VMZXZlbENhc2VGbGFnRGF0YTogRmxhZ3NXaXRoRm9ybUdyb3VwUGF0aDtcbiAgcHVibGljIHBhbGV0dGVDb250ZXh0ID0gUGFsZXR0ZUNvbnRleHQ7XG4gIHB1YmxpYyBmbGFnRm9yU3VtbWFyeURpc3BsYXk6IEZsYWdEZXRhaWxEaXNwbGF5O1xuICBwdWJsaWMgZGlzcGxheUNvbnRleHRQYXJhbWV0ZXI6IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIHB1YmxpYyBjYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSBmYWxzZTtcbiAgcHVibGljIHBhdGhUb0ZsYWdzRm9ybUdyb3VwOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCA9ICdjYXNlRmxhZ3MnO1xuXG4gIHB1YmxpYyBnZXQgY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlcigpOiB0eXBlb2YgQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlciB7XG4gICAgcmV0dXJuIENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXI7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJvdXRlcjogUm91dGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FzZUZsYWdTdGF0ZVNlcnZpY2U6IENhc2VGbGFnU3RhdGVTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUgPSBPYmplY3Qua2V5cyh0aGlzLmZvcm1Hcm91cC5jb250cm9scykuZmluZChcbiAgICAgIGNvbnRyb2xOYW1lID0+IEZpZWxkc1V0aWxzLmlzQ2FzZUZpZWxkT2ZUeXBlKHRoaXMuZm9ybUdyb3VwLmdldChjb250cm9sTmFtZSlbJ2Nhc2VGaWVsZCddLCBbJ0ZsYWdMYXVuY2hlciddKSk7XG4gICAgY29uc3QgZmxhZ0xhdW5jaGVyQ29tcG9uZW50ID0gdGhpcy5mb3JtR3JvdXAuZ2V0KGZsYWdMYXVuY2hlckNvbnRyb2xOYW1lKT8uWydjb21wb25lbnQnXTtcbiAgICB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID0gZmxhZ0xhdW5jaGVyQ29tcG9uZW50Py5jYXNlRmllbGQ/LmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXI7XG4gICAgdGhpcy5jYXNlRmxhZ3NFeHRlcm5hbFVzZXIgPSB0aGlzLmRpc3BsYXlDb250ZXh0UGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlJFQURfRVhURVJOQUw7XG5cbiAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5ERUZBVUxULCB0aGUgRmxhZ3MgZmllbGRzIG5lZWQgdG8gYmUgbG9jYXRlZCBieSBDYXNlVGFiICh0aGV5IHdvbid0IGJlIHByZXNlbnRcbiAgICAvLyBpbiB0aGUgRm9ybUdyb3VwIC0gb25seSB0aGUgRmxhZ0xhdW5jaGVyIGZpZWxkIGlzIHByZXNlbnQpXG4gICAgaWYgKHRoaXMuY29udGV4dCA9PT0gUGFsZXR0ZUNvbnRleHQuREVGQVVMVCkge1xuICAgICAgLy8gRGV0ZXJtaW5lIHRoZSB0YWIgdGhpcyBDYXNlRmllbGQgYmVsb25ncyB0byAoc2hvdWxkIGJlIG9ubHkgb25lKSwgZnJvbSB0aGUgQ2FzZVZpZXcgb2JqZWN0IGluIHRoZSBzbmFwc2hvdFxuICAgICAgLy8gZGF0YSwgYW5kIGV4dHJhY3QgYWxsIGZsYWdzLXJlbGF0ZWQgZGF0YSBmcm9tIGl0cyBGbGFncyBmaWVsZHNcbiAgICAgIGlmICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZT8udGFicykge1xuICAgICAgICB0aGlzLmZsYWdzRGF0YSA9ICh0aGlzLnJvdXRlLnNuYXBzaG90LmRhdGEuY2FzZS50YWJzIGFzIENhc2VUYWJbXSlcbiAgICAgICAgICAuZmlsdGVyKCh0YWIpID0+IHRhYi5maWVsZHM/LnNvbWUoXG4gICAgICAgICAgICAvLyBUaGVyZSBjb3VsZCBiZSBtb3JlIHRoYW4gb25lIEZsYWdMYXVuY2hlciBmaWVsZCBpbnN0YW5jZSBzbyBhbiBhZGRpdGlvbmFsIGNoZWNrIG9mIGNhc2VGaWVsZCBJRCBpc1xuICAgICAgICAgICAgLy8gcmVxdWlyZWQgdG8gZW5zdXJlIHRoZSBjb3JyZWN0IGluc3RhbmNlIGlzIG9idGFpbmVkXG4gICAgICAgICAgICAoY2FzZUZpZWxkKSA9PiBjYXNlRmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnRmxhZ0xhdW5jaGVyJyAmJiBjYXNlRmllbGQuaWQgPT09IHRoaXMuY2FzZUZpZWxkLmlkKSlcbiAgICAgICAgICBbMF0uZmllbGRzPy5yZWR1Y2UoKGZsYWdzLCBjYXNlRmllbGQpID0+IEZpZWxkc1V0aWxzLmV4dHJhY3RGbGFnc0RhdGFGcm9tQ2FzZUZpZWxkKFxuICAgICAgICAgICAgZmxhZ3MsIGNhc2VGaWVsZCwgY2FzZUZpZWxkLmlkLCBjYXNlRmllbGQpLCBbXSk7XG4gICAgICB9XG5cbiAgICAgIC8vIFNlcGFyYXRlIHRoZSBwYXJ0eS1sZXZlbCBhbmQgY2FzZS1sZXZlbCBmbGFnc1xuICAgICAgdGhpcy5wYXJ0eUxldmVsQ2FzZUZsYWdEYXRhID0gdGhpcy5mbGFnc0RhdGEuZmlsdGVyKFxuICAgICAgICAoaW5zdGFuY2UpID0+IGluc3RhbmNlLnBhdGhUb0ZsYWdzRm9ybUdyb3VwICE9PSB0aGlzLmNhc2VMZXZlbENhc2VGbGFnc0ZpZWxkSWQpO1xuICAgICAgLy8gSWYgdGhlIHVzZXIgaXMgaW50ZXJuYWwsIGdyb3VwIGFsbCBmbGFncyBkYXRhIGJ5IGdyb3VwSWQgd2hlcmUgcHJlc2VudCBzbyB0aGV5IHNlZSBhIGNvbWJpbmVkIGNvbGxlY3Rpb24gb2ZcbiAgICAgIC8vIGludGVybmFsIGFuZCBleHRlcm5hbCBmbGFncyBkYXRhIGZvciBlYWNoIHBhcnR5XG4gICAgICBpZiAoIXRoaXMuY2FzZUZsYWdzRXh0ZXJuYWxVc2VyKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRGbGFnc0RhdGEgPSB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcbiAgICAgICAgICAuZmlsdGVyKChmKSA9PiBmLmZsYWdzLmdyb3VwSWQpXG4gICAgICAgICAgLnJlZHVjZSgobWVyZ2VkRmxhZ0RldGFpbHMsIGYpID0+IHtcbiAgICAgICAgICAgIG1lcmdlZEZsYWdEZXRhaWxzW2YuZmxhZ3MuZ3JvdXBJZF0gPSBtZXJnZWRGbGFnRGV0YWlsc1tmLmZsYWdzLmdyb3VwSWRdIHx8IFtdO1xuICAgICAgICAgICAgLy8gVGhlIGZsYWdzLmRldGFpbHMgcHJvcGVydHkgKHdoaWNoIHNob3VsZCBiZSBhbiBhcnJheSkgY291bGQgYmUgZmFsc3k7IHNwcmVhZCBhbiBlbXB0eSBhcnJheSBpZiBzb1xuICAgICAgICAgICAgbWVyZ2VkRmxhZ0RldGFpbHNbZi5mbGFncy5ncm91cElkXS5wdXNoKC4uLihmLmZsYWdzLmRldGFpbHMgfHwgW10pKTtcbiAgICAgICAgICAgIHJldHVybiBtZXJnZWRGbGFnRGV0YWlscztcbiAgICAgICAgICB9LCBPYmplY3QuY3JlYXRlKG51bGwpKTtcbiAgICAgICAgLy8gUmVtb3ZlIGR1cGxpY2F0ZSBmbGFncyBvYmplY3RzIHdpdGggdGhlIHNhbWUgZ3JvdXBJZCAod2hpY2ggYXJlIGdvaW5nIHRvIGJlIHRyZWF0ZWQgYXMgb25lIGZvciBkaXNwbGF5XG4gICAgICAgIC8vIHB1cnBvc2VzKVxuICAgICAgICBjb25zdCB1bmlxdWVQYXJ0eURhdGEgPSB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcbiAgICAgICAgICAuZmlsdGVyKChmKSA9PiBmLmZsYWdzLmdyb3VwSWQpXG4gICAgICAgICAgLnJlZHVjZSgoZmxhZ3NVbmlxdWVCeUdyb3VwSWQsIGYpID0+IHtcbiAgICAgICAgICAgIGlmIChmbGFnc1VuaXF1ZUJ5R3JvdXBJZC5maW5kSW5kZXgoZmxhZyA9PiBmbGFnLmZsYWdzLmdyb3VwSWQgPT09IGYuZmxhZ3MuZ3JvdXBJZCkgPT09IC0xKSB7XG4gICAgICAgICAgICAvLyBTZXQgdGhlIGNvcnJlc3BvbmRpbmcgZ3JvdXBlZCBmbGFncyBkYXRhXG4gICAgICAgICAgICAgIGYuZmxhZ3MuZGV0YWlscyA9IGdyb3VwZWRGbGFnc0RhdGFbZi5mbGFncy5ncm91cElkXTtcbiAgICAgICAgICAgICAgZmxhZ3NVbmlxdWVCeUdyb3VwSWQucHVzaChmKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBmbGFnc1VuaXF1ZUJ5R3JvdXBJZDtcbiAgICAgICAgICB9LCBbXSk7XG4gICAgICAgIC8vIEFwcGVuZCBmbGFncyBvYmplY3RzIHdpdGggbm8gZ3JvdXBJZFxuICAgICAgICB0aGlzLnBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGEuZmlsdGVyKChmKSA9PiAhZi5mbGFncy5ncm91cElkKS5mb3JFYWNoKChmKSA9PiB1bmlxdWVQYXJ0eURhdGEucHVzaChmKSk7XG4gICAgICAgIHRoaXMucGFydHlMZXZlbENhc2VGbGFnRGF0YSA9IHVuaXF1ZVBhcnR5RGF0YTtcbiAgICAgIH1cblxuICAgICAgLy8gVGhlcmUgd2lsbCBiZSBvbmx5IG9uZSBjYXNlLWxldmVsIGZsYWdzIGluc3RhbmNlIGNvbnRhaW5pbmcgYWxsIGNhc2UtbGV2ZWwgZmxhZyBkZXRhaWxzXG4gICAgICB0aGlzLmNhc2VMZXZlbENhc2VGbGFnRGF0YSA9IHRoaXMuZmxhZ3NEYXRhLmZpbmQoXG4gICAgICAgIChpbnN0YW5jZSkgPT4gaW5zdGFuY2UucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPT09IHRoaXMuY2FzZUxldmVsQ2FzZUZsYWdzRmllbGRJZCk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmNvbnRleHQgPT09IFBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSKSB7XG4gICAgICAvLyBJZiB0aGUgY29udGV4dCBpcyBQYWxldHRlQ29udGV4dC5DSEVDS19ZT1VSX0FOU1dFUiwgdGhlIEZsYWdzIGRhdGEgaXMgYWxyZWFkeSBwcmVzZW50IHdpdGhpbiB0aGUgRm9ybUdyb3VwLlxuICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQsIFdyaXRlQ2FzZUZsYWdGaWVsZENvbXBvbmVudCwgaG9sZHMgYSByZWZlcmVuY2UgdG86XG4gICAgICAvLyBpKSB0aGUgcGFyZW50IEZvcm1Hcm91cCBmb3IgdGhlIEZsYWdzIGluc3RhbmNlIHdoZXJlIGNoYW5nZXMgaGF2ZSBiZWVuIG1hZGU7XG4gICAgICAvLyBpaSkgdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBmbGFnIChzZWxlY3RlZEZsYWcpIGlmIG9uZSBleGlzdHNcbiAgICAgIGlmIChmbGFnTGF1bmNoZXJDb21wb25lbnQpIHtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZ3NMb2NhdGlvbikgY29udGFpbmluZyB0aGUgQ2FzZUZpZWxkIGluc3RhbmNlIHRvXG4gICAgICAgIC8vIHdoaWNoIHRoZSBuZXcgZmxhZyBoYXMgYmVlbiBhZGRlZFxuICAgICAgICBpZiAoKGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEUgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuQ1JFQVRFXzJfUE9JTlRfMSB8fFxuICAgICAgICAgIGZsYWdMYXVuY2hlckNvbXBvbmVudC5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0X3BhcmFtZXRlciA9PT0gQ2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5DUkVBVEVfRVhURVJOQUwpICYmXG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LnNlbGVjdGVkRmxhZ3NMb2NhdGlvbikge1xuICAgICAgICAgIHRoaXMucGF0aFRvRmxhZ3NGb3JtR3JvdXAgPSBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uLnBhdGhUb0ZsYWdzRm9ybUdyb3VwO1xuICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID0gdGhpcy5leHRyYWN0TmV3RmxhZ1RvRmxhZ0RldGFpbERpc3BsYXlPYmplY3QoXG4gICAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnc0xvY2F0aW9uKTtcbiAgICAgICAgLy8gVGhlIEZsYWdMYXVuY2hlciBjb21wb25lbnQgaG9sZHMgYSByZWZlcmVuY2UgKHNlbGVjdGVkRmxhZyksIHdoaWNoIGdldHMgc2V0IGFmdGVyIHRoZSBzZWxlY3Rpb24gc3RlcCBvZiB0aGVcbiAgICAgICAgLy8gTWFuYWdlIENhc2UgRmxhZ3Mgam91cm5leVxuICAgICAgICB9IGVsc2UgaWYgKChmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFIHx8XG4gICAgICAgICAgZmxhZ0xhdW5jaGVyQ29tcG9uZW50LmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHRfcGFyYW1ldGVyID09PSBDYXNlRmxhZ0Rpc3BsYXlDb250ZXh0UGFyYW1ldGVyLlVQREFURV8yX1BPSU5UXzEgfHxcbiAgICAgICAgICBmbGFnTGF1bmNoZXJDb21wb25lbnQuY2FzZUZpZWxkLmRpc3BsYXlfY29udGV4dF9wYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFX0VYVEVSTkFMKSAmJlxuICAgICAgICAgIChmbGFnTGF1bmNoZXJDb21wb25lbnQuc2VsZWN0ZWRGbGFnIHx8XG4gICAgICAgICAgICAodGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5mb3JtR3JvdXAuZ2V0KCdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbicpLnZhbHVlLmZsYWdEZXRhaWxEaXNwbGF5ICYmIHRoaXMuZGlzcGxheUNvbnRleHRQYXJhbWV0ZXIgPT09IENhc2VGbGFnRGlzcGxheUNvbnRleHRQYXJhbWV0ZXIuVVBEQVRFXzJfUE9JTlRfMSkpKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZm9ybUdyb3VwLmdldChmbGFnTGF1bmNoZXJDb250cm9sTmFtZSlbJ2NvbXBvbmVudCddPy5zZWxlY3RlZEZsYWc/LmZsYWdEZXRhaWxEaXNwbGF5ICE9PSB1bmRlZmluZWQpe1xuICAgICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkgPVxuICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoZmxhZ0xhdW5jaGVyQ29udHJvbE5hbWUpWydjb21wb25lbnQnXS5zZWxlY3RlZEZsYWcuZmxhZ0RldGFpbERpc3BsYXk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuZmxhZ0ZvclN1bW1hcnlEaXNwbGF5ID1cbiAgICAgICAgICAgICAgdGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5mb3JtR3JvdXAuZ2V0KCdzZWxlY3RlZE1hbmFnZUNhc2VMb2NhdGlvbicpLnZhbHVlLmZsYWdEZXRhaWxEaXNwbGF5O1xuICAgICAgICAgIH1cbiAgICAgICAgICAvLyBUT0RPOiBub3QgdGhlIGJlc3Qgc29sdXRpb24sIHRoZSBjYXNlRmxhZ1N0YXRlU2VydmljZSBzaG91bGQgaGF2ZSBhbGwgdGhlIGZpZWxkcywgdGhlbiB3ZSBjYW4gZGVsZXRlIGEgbG90IG9mIHRoZSB0cmFuc2Zvcm1hdGlvbnMgaGVyZVxuICAgICAgICAgIC8vIGluIENyZWF0ZSBDYXNlIEZsYWcgaXQgYWxyZWFkeSBoYXMgYWxsIGZpZWxkc1xuICAgICAgICAgIGNvbnN0IGNhc2VGbGFnRm9ybUdyb3VwVmFsdWUgPSB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmZvcm1Hcm91cD8udmFsdWU7XG4gICAgICAgICAgaWYgKGNhc2VGbGFnRm9ybUdyb3VwVmFsdWUpIHtcbiAgICAgICAgICAgIGNhc2VGbGFnRm9ybUdyb3VwVmFsdWUuc3RhdHVzID0gQ2FzZUZsYWdTdGF0dXNbY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZS5zdGF0dXNdO1xuICAgICAgICAgICAgdGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkuZmxhZ0RldGFpbCA9IHtcbiAgICAgICAgICAgICAgLi4udGhpcy5mbGFnRm9yU3VtbWFyeURpc3BsYXkuZmxhZ0RldGFpbCxcbiAgICAgICAgICAgICAgLi4uY2FzZUZsYWdGb3JtR3JvdXBWYWx1ZVxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4dHJhY3ROZXdGbGFnVG9GbGFnRGV0YWlsRGlzcGxheU9iamVjdChzZWxlY3RlZEZsYWdzTG9jYXRpb246IEZsYWdzV2l0aEZvcm1Hcm91cFBhdGgpOiBGbGFnRGV0YWlsRGlzcGxheSB7XG4gICAgLy8gVXNlIHRoZSBwYXRoVG9GbGFnc0Zvcm1Hcm91cCBwcm9wZXJ0eSBmcm9tIHRoZSBzZWxlY3RlZCBmbGFnIGxvY2F0aW9uIHRvIGRyaWxsIGRvd24gdG8gdGhlIGNvcnJlY3QgcGFydCBvZiB0aGVcbiAgICAvLyBDYXNlRmllbGQgdmFsdWUgY29udGFpbmluZyB0aGUgbmV3IGZsYWdcbiAgICBsZXQgZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IHNlbGVjdGVkRmxhZ3NMb2NhdGlvbi5jYXNlRmllbGQ/LnZhbHVlO1xuICAgIGNvbnN0IHBhdGggPSBzZWxlY3RlZEZsYWdzTG9jYXRpb24ucGF0aFRvRmxhZ3NGb3JtR3JvdXA7XG4gICAgLy8gUm9vdC1sZXZlbCBGbGFncyBDYXNlRmllbGRzIGRvbid0IGhhdmUgYSBkb3QtZGVsaW1pdGVkIHBhdGggLSBqdXN0IHRoZSBDYXNlRmllbGQgSUQgaXRzZWxmIC0gc28gZG9uJ3QgZHJpbGwgZG93blxuICAgIGlmIChwYXRoLmluZGV4T2YoJy4nKSA+IC0xKSB7XG4gICAgICBwYXRoLnNsaWNlKHBhdGguaW5kZXhPZignLicpICsgMSkuc3BsaXQoJy4nKS5mb3JFYWNoKHBhcnQgPT4gZmxhZ3NDYXNlRmllbGRWYWx1ZSA9IGZsYWdzQ2FzZUZpZWxkVmFsdWVbcGFydF0pO1xuICAgIH1cbiAgICBpZiAoZmxhZ3NDYXNlRmllbGRWYWx1ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgcGFydHlOYW1lOiBmbGFnc0Nhc2VGaWVsZFZhbHVlLnBhcnR5TmFtZSxcbiAgICAgICAgLy8gTG9vayBpbiB0aGUgZGV0YWlscyBhcnJheSBmb3IgdGhlIG9iamVjdCB0aGF0IGRvZXMgKm5vdCogaGF2ZSBhbiBpZCAtIHRoaXMgaW5kaWNhdGVzIGl0IGlzIHRoZSBuZXcgZmxhZ1xuICAgICAgICBmbGFnRGV0YWlsOiBmbGFnc0Nhc2VGaWVsZFZhbHVlLmRldGFpbHM/LmZpbmQoZWxlbWVudCA9PiAhZWxlbWVudC5oYXNPd25Qcm9wZXJ0eSgnaWQnKSk/LnZhbHVlXG4gICAgICB9IGFzIEZsYWdEZXRhaWxEaXNwbGF5O1xuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgcHVibGljIG5hdmlnYXRlQmFja1RvRm9ybShmaWVsZFN0YXRlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLmNhc2VGbGFnU3RhdGVTZXJ2aWNlLmZpZWxkU3RhdGVUb05hdmlnYXRlID0gZmllbGRTdGF0ZTtcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbYC4uLyR7dGhpcy5jYXNlRmxhZ1N0YXRlU2VydmljZS5wYWdlTG9jYXRpb259YF0sIHsgcmVsYXRpdmVUbzogdGhpcy5yb3V0ZSB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgPT09IHBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCI+XG4gIDxjY2QtY2FzZS1mbGFnLXN1bW1hcnktbGlzdFxuICAgIFtmbGFnRm9yU3VtbWFyeURpc3BsYXldPVwiZmxhZ0ZvclN1bW1hcnlEaXNwbGF5XCJcbiAgICBbZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJdPVwiZGlzcGxheUNvbnRleHRQYXJhbWV0ZXJcIlxuICAgIChjaGFuZ2VCdXR0b25FbWl0dGVyKT1cIm5hdmlnYXRlQmFja1RvRm9ybSgkZXZlbnQpXCI+XG4gIDwvY2NkLWNhc2UtZmxhZy1zdW1tYXJ5LWxpc3Q+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbnRleHQgIT09IHBhbGV0dGVDb250ZXh0LkNIRUNLX1lPVVJfQU5TV0VSXCI+XG4gIDxuZy1jb250YWluZXIgW25nU3dpdGNoXT1cImRpc3BsYXlDb250ZXh0UGFyYW1ldGVyXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiY2FzZUZsYWdEaXNwbGF5Q29udGV4dFBhcmFtZXRlci5SRUFEX0VYVEVSTkFMXCI+XG4gICAgICA8aDIgaWQ9XCJyZWFkLWNhc2UtZmxhZy10aXRsZVwiIGNsYXNzPVwiZ292dWstaGVhZGluZy1sXCI+XG4gICAgICAgIHt7ICdTdXBwb3J0IHJlcXVlc3RlZCcgfCBycHhUcmFuc2xhdGUgfX1cbiAgICAgIDwvaDI+XG5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGZsYWdEYXRhIG9mIHBhcnR5TGV2ZWxDYXNlRmxhZ0RhdGFcIj5cbiAgICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGUgKm5nSWY9XCJmbGFnRGF0YS5mbGFncy5wYXJ0eU5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3RhYmxlQ2FwdGlvbl09XCInJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmxhZ0RhdGFdPVwiZmxhZ0RhdGFcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cImZsYWdEYXRhLmZsYWdzLnBhcnR5TmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2FzZUZsYWdzRXh0ZXJuYWxVc2VyXT1cImNhc2VGbGFnc0V4dGVybmFsVXNlclwiXG4gICAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cbiAgICAgIDxoMiBpZD1cInJlYWQtY2FzZS1mbGFnLXRpdGxlXCIgY2xhc3M9XCJnb3Z1ay1oZWFkaW5nLWxcIj5cbiAgICAgICAge3sgJ0Nhc2UgZmxhZ3MnIHwgcnB4VHJhbnNsYXRlIH19XG4gICAgICA8L2gyPlxuXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmbGFnRGF0YSBvZiBwYXJ0eUxldmVsQ2FzZUZsYWdEYXRhXCI+XG4gICAgICAgIDxjY2QtY2FzZS1mbGFnLXRhYmxlICpuZ0lmPVwiZmxhZ0RhdGEuZmxhZ3MucGFydHlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt0YWJsZUNhcHRpb25dPVwiZmxhZ0RhdGEuZmxhZ3MucGFydHlOYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtmbGFnRGF0YV09XCJmbGFnRGF0YVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbZmlyc3RDb2x1bW5IZWFkZXJdPVwiJ1BhcnR5IGxldmVsIGZsYWdzJyB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgKm5nSWY9XCJjYXNlTGV2ZWxDYXNlRmxhZ0RhdGFcIj5cbiAgICAgICAgPGNjZC1jYXNlLWZsYWctdGFibGVcbiAgICAgICAgICBbdGFibGVDYXB0aW9uXT1cIidDYXNlIGxldmVsIGZsYWdzJyB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICAgICAgW2ZsYWdEYXRhXT1cImNhc2VMZXZlbENhc2VGbGFnRGF0YVwiXG4gICAgICAgICAgW2ZpcnN0Q29sdW1uSGVhZGVyXT1cIidDYXNlIGZsYWdzJyB8IHJweFRyYW5zbGF0ZVwiXG4gICAgICAgID48L2NjZC1jYXNlLWZsYWctdGFibGU+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2pvdXJuZXkvam91cm5leS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBKb3VybmV5IHtcbiAgICBuZXh0KCk6IHZvaWQ7XG4gICAgcHJldmlvdXMoKTogdm9pZDtcbiAgICBoYXNOZXh0KCk6IGJvb2xlYW47XG4gICAgaGFzUHJldmlvdXMoKTogYm9vbGVhbjtcbiAgICBpc0ZpbmlzaGVkKCk6IGJvb2xlYW47XG4gICAgaXNTdGFydCgpOiBib29sZWFuO1xuICAgIG9uUGFnZUNoYW5nZSgpOiB2b2lkO1xuICAgIGpvdXJuZXlJZDogc3RyaW5nO1xuICAgIGpvdXJuZXlQYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgam91cm5leVN0YXJ0UGFnZU51bWJlcjogbnVtYmVyO1xuICAgIGpvdXJuZXlFbmRQYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgam91cm5leVByZXZpb3VzUGFnZU51bWJlcjogbnVtYmVyO1xuICAgIGNoaWxkSm91cm5leTogSm91cm5leTtcbn1cbiJdfQ==
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiam91cm5leS5tb2RlbC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NjZC1jYXNlLXVpLXRvb2xraXQvc3JjL2xpYi9zaGFyZWQvZG9tYWluL2pvdXJuZXkvam91cm5leS5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBKb3VybmV5IHtcbiAgICBuZXh0KCk6IHZvaWQ7XG4gICAgcHJldmlvdXMoKTogdm9pZDtcbiAgICBoYXNOZXh0KCk6IGJvb2xlYW47XG4gICAgaGFzUHJldmlvdXMoKTogYm9vbGVhbjtcbiAgICBpc0ZpbmlzaGVkKCk6IGJvb2xlYW47XG4gICAgaXNTdGFydCgpOiBib29sZWFuO1xuICAgIG9uUGFnZUNoYW5nZSgpOiB2b2lkO1xuICAgIGpvdXJuZXlJZDogc3RyaW5nO1xuICAgIGpvdXJuZXlQYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgam91cm5leVN0YXJ0UGFnZU51bWJlcjogbnVtYmVyO1xuICAgIGpvdXJuZXlFbmRQYWdlTnVtYmVyOiBudW1iZXI7XG4gICAgam91cm5leVByZXZpb3VzUGFnZU51bWJlcjogbnVtYmVyO1xuICAgIGNoaWxkSm91cm5leTogSm91cm5leTtcbiAgICBmaWVsZFN0YXRlPzogbnVtYmVyO1xufVxuIl19
@@ -10333,6 +10333,24 @@ class LinkedCasesService {
10333
10333
  type: Injectable
10334
10334
  }], () => [{ type: JurisdictionService }, { type: SearchService }], null); })();
10335
10335
 
10336
+ class CaseFlagStateService {
10337
+ formGroup = new FormGroup({});
10338
+ pageLocation;
10339
+ fieldStateToNavigate;
10340
+ lastPageFieldState;
10341
+ resetCache(pageLocation) {
10342
+ this.formGroup = new FormGroup({});
10343
+ this.fieldStateToNavigate = undefined;
10344
+ this.pageLocation = pageLocation;
10345
+ this.lastPageFieldState = 0;
10346
+ }
10347
+ static ɵfac = function CaseFlagStateService_Factory(t) { return new (t || CaseFlagStateService)(); };
10348
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseFlagStateService, factory: CaseFlagStateService.ɵfac });
10349
+ }
10350
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFlagStateService, [{
10351
+ type: Injectable
10352
+ }], null, null); })();
10353
+
10336
10354
  function CaseEditPageComponent_ng_container_0_h1_1_Template(rf, ctx) { if (rf & 1) {
10337
10355
  i0.ɵɵelementStart(0, "h1", 11);
10338
10356
  i0.ɵɵtext(1);
@@ -10521,6 +10539,7 @@ class CaseEditPageComponent {
10521
10539
  multipageComponentStateService;
10522
10540
  addressService;
10523
10541
  linkedCasesService;
10542
+ caseFlagStateService;
10524
10543
  static RESUMED_FORM_DISCARD = 'RESUMED_FORM_DISCARD';
10525
10544
  static NEW_FORM_DISCARD = 'NEW_FORM_DISCARD';
10526
10545
  static NEW_FORM_SAVE = 'NEW_FORM_CHANGED_SAVE';
@@ -10561,7 +10580,7 @@ class CaseEditPageComponent {
10561
10580
  topContainer.focus();
10562
10581
  }
10563
10582
  }
10564
- constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, multipageComponentStateService, addressService, linkedCasesService) {
10583
+ constructor(caseEdit, route, formValueService, formErrorService, cdRef, pageValidationService, dialog, caseFieldService, caseEditDataService, loadingService, validPageListCaseFieldsService, multipageComponentStateService, addressService, linkedCasesService, caseFlagStateService) {
10565
10584
  this.caseEdit = caseEdit;
10566
10585
  this.route = route;
10567
10586
  this.formValueService = formValueService;
@@ -10576,6 +10595,7 @@ class CaseEditPageComponent {
10576
10595
  this.multipageComponentStateService = multipageComponentStateService;
10577
10596
  this.addressService = addressService;
10578
10597
  this.linkedCasesService = linkedCasesService;
10598
+ this.caseFlagStateService = caseFlagStateService;
10579
10599
  this.multipageComponentStateService.setInstigator(this);
10580
10600
  }
10581
10601
  onFinalNext() {
@@ -10585,10 +10605,10 @@ class CaseEditPageComponent {
10585
10605
  this.cancel();
10586
10606
  }
10587
10607
  isAtStart() {
10588
- return this.multipageComponentStateService.getJourneyCollection()[0]?.journeyPageNumber === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyStartPageNumber;
10608
+ return this.multipageComponentStateService.getJourneyCollection()[0]?.fieldState === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyStartPageNumber;
10589
10609
  }
10590
10610
  isAtEnd() {
10591
- return this.multipageComponentStateService.getJourneyCollection()[0]?.journeyPageNumber === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyEndPageNumber;
10611
+ return this.multipageComponentStateService.getJourneyCollection()[0]?.fieldState === this.multipageComponentStateService.getJourneyCollection()[0]?.journeyEndPageNumber;
10592
10612
  }
10593
10613
  // This method will be triggered by the next button in the app component
10594
10614
  nextStep() {
@@ -10813,6 +10833,11 @@ class CaseEditPageComponent {
10813
10833
  }
10814
10834
  }
10815
10835
  submit() {
10836
+ // in some scenarios the fieldstate can be set to 0 even though the user is at the end of a journey, check for this case and set vars
10837
+ if ((this.caseFlagStateService.fieldStateToNavigate === 0) && (this.caseFlagStateService.fieldStateToNavigate !== this.multipageComponentStateService.getJourneyCollection()[0].journeyPageNumber)) {
10838
+ this.caseFlagStateService.fieldStateToNavigate = this.multipageComponentStateService.getJourneyCollection()[0].journeyPageNumber;
10839
+ this.caseFlagStateService.lastPageFieldState = this.multipageComponentStateService.getJourneyCollection()[0].journeyPageNumber;
10840
+ }
10816
10841
  this.caseEditDataService.clearFormValidationErrors();
10817
10842
  this.checkForStagesCompleted();
10818
10843
  if (this.currentPageIsNotValid()) {
@@ -11127,7 +11152,7 @@ class CaseEditPageComponent {
11127
11152
  }
11128
11153
  });
11129
11154
  }
11130
- static ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(LinkedCasesService)); };
11155
+ static ɵfac = function CaseEditPageComponent_Factory(t) { return new (t || CaseEditPageComponent)(i0.ɵɵdirectiveInject(CaseEditComponent), i0.ɵɵdirectiveInject(i1$1.ActivatedRoute), i0.ɵɵdirectiveInject(FormValueService), i0.ɵɵdirectiveInject(FormErrorService), i0.ɵɵdirectiveInject(i0.ChangeDetectorRef), i0.ɵɵdirectiveInject(PageValidationService), i0.ɵɵdirectiveInject(i1$3.MatLegacyDialog), i0.ɵɵdirectiveInject(CaseFieldService), i0.ɵɵdirectiveInject(CaseEditDataService), i0.ɵɵdirectiveInject(LoadingService), i0.ɵɵdirectiveInject(ValidPageListCaseFieldsService), i0.ɵɵdirectiveInject(MultipageComponentStateService), i0.ɵɵdirectiveInject(AddressesService), i0.ɵɵdirectiveInject(LinkedCasesService), i0.ɵɵdirectiveInject(CaseFlagStateService)); };
11131
11156
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: CaseEditPageComponent, selectors: [["ccd-case-edit-page"]], decls: 12, vars: 11, consts: [["titleBlock", ""], ["idBlock", ""], [4, "ngIf"], [4, "ngIf", "ngIfThen", "ngIfElse"], ["class", "govuk-error-summary", "aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 4, "ngIf"], [3, "error"], [3, "callbackErrorsContext", "triggerTextContinue", "triggerTextIgnore", "callbackErrorsSubject"], [1, "width-50"], ["class", "form", 3, "formGroup", "submit", 4, "ngIf"], [3, "eventCompletionParams", "eventCanBeCompleted", 4, "ngIf"], ["class", "govuk-heading-l", 4, "ngIf"], [1, "govuk-heading-l"], [1, "govuk-caption-l"], [3, "content"], ["class", "heading-h2", 4, "ngIf"], [1, "heading-h2"], ["aria-labelledby", "error-summary-title", "role", "alert", "tabindex", "-1", "data-module", "govuk-error-summary", 1, "govuk-error-summary"], ["id", "error-summary-title", 1, "govuk-error-summary__title"], ["class", "govuk-error-summary__body", 4, "ngFor", "ngForOf"], [1, "govuk-error-summary__body"], [1, "govuk-list", "govuk-error-summary__list"], [1, "validation-error", 3, "click"], [1, "form", 3, "submit", "formGroup"], ["id", "fieldset-case-data"], [2, "display", "none"], ["id", "caseEditForm", 3, "fields", "formGroup", "caseFields", "pageChangeSubject", "valuesChanged", 4, "ngIf"], ["class", "grid-row", 4, "ngIf"], [1, "form-group", "form-group-related"], ["class", "button button-secondary", "type", "button", 3, "disabled", "click", 4, "ngIf"], ["type", "submit", 1, "button", 3, "disabled"], [1, "cancel"], ["href", "javascript:void(0)", 3, "click"], ["id", "caseEditForm", 3, "valuesChanged", "fields", "formGroup", "caseFields", "pageChangeSubject"], [1, "grid-row"], [1, "column-two-thirds", "rightBorderSeparator"], ["id", "caseEditForm1", 3, "fields", "formGroup", "caseFields"], [1, "column-one-third"], ["id", "caseEditForm2", 3, "fields", "formGroup", "caseFields"], ["type", "button", 1, "button", "button-secondary", 3, "click", "disabled"], [3, "eventCanBeCompleted", "eventCompletionParams"]], template: function CaseEditPageComponent_Template(rf, ctx) { if (rf & 1) {
11132
11157
  const _r1 = i0.ɵɵgetCurrentView();
11133
11158
  i0.ɵɵtemplate(0, CaseEditPageComponent_ng_container_0_Template, 3, 2, "ng-container", 2)(1, CaseEditPageComponent_div_1_Template, 1, 0, "div", 3)(2, CaseEditPageComponent_ng_template_2_Template, 2, 5, "ng-template", null, 0, i0.ɵɵtemplateRefExtractor)(4, CaseEditPageComponent_ng_template_4_Template, 1, 1, "ng-template", null, 1, i0.ɵɵtemplateRefExtractor)(6, CaseEditPageComponent_div_6_Template, 5, 4, "div", 4);
@@ -11160,8 +11185,8 @@ class CaseEditPageComponent {
11160
11185
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseEditPageComponent, [{
11161
11186
  type: Component,
11162
11187
  args: [{ selector: 'ccd-case-edit-page', template: "<ng-container *ngIf=\"currentPage\">\n <h1 *ngIf=\"!currentPage.label\" class=\"govuk-heading-l\">{{eventTrigger.name | rpxTranslate}}</h1>\n <ng-container *ngIf=\"currentPage.label\">\n <span class=\"govuk-caption-l\">{{ eventTrigger.name | rpxTranslate}}</span>\n <h1 class=\"govuk-heading-l\">{{currentPage.label | rpxTranslate}}</h1>\n </ng-container>\n</ng-container>\n\n<!--Case ID or Title -->\n<div *ngIf=\"getCaseTitle(); then titleBlock; else idBlock\"></div>\n<ng-template #titleBlock>\n <ccd-markdown [content]=\"getCaseTitle() | ccdCaseTitle: caseFields : editForm.controls['data']\"></ccd-markdown>\n</ng-template>\n<ng-template #idBlock>\n <h2 *ngIf=\"getCaseId()\" class=\"heading-h2\">#{{ getCaseId() | ccdCaseReference }}</h2>\n</ng-template>\n\n<!-- Error message summary -->\n<div *ngIf=\"validationErrors.length > 0\" class=\"govuk-error-summary\" aria-labelledby=\"error-summary-title\" role=\"alert\" tabindex=\"-1\" data-module=\"govuk-error-summary\">\n <h2 class=\"govuk-error-summary__title\" id=\"error-summary-title\">\n {{'There is a problem' | rpxTranslate}}\n </h2>\n <div *ngFor=\"let validationError of validationErrors\" class=\"govuk-error-summary__body\">\n <ul class=\"govuk-list govuk-error-summary__list\">\n <li>\n <a (click)=\"navigateToErrorElement(validationError.id)\" class=\"validation-error\">\n {{ validationError.message | rpxTranslate: getRpxTranslatePipeArgs(validationError.label | rpxTranslate): null }}\n </a>\n </li>\n </ul>\n </div>\n</div>\n\n<ccd-case-edit-generic-errors [error]=\"caseEdit.error\"></ccd-case-edit-generic-errors>\n\n<ccd-callback-errors\n [triggerTextContinue]=\"triggerTextStart\"\n [triggerTextIgnore]=\"triggerTextIgnoreWarnings\"\n [callbackErrorsSubject]=\"caseEdit.callbackErrorsSubject\"\n (callbackErrorsContext)=\"callbackErrorsNotify($event)\">\n</ccd-callback-errors>\n<div class=\"width-50\">\n <form *ngIf=\"currentPage\" class=\"form\" [formGroup]=\"editForm\" (submit)=\"nextStep()\">\n <fieldset id=\"fieldset-case-data\">\n <legend style=\"display: none;\"></legend>\n <!-- single column -->\n <ccd-case-edit-form id='caseEditForm' *ngIf=\"!currentPage.isMultiColumn()\" [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"\n [pageChangeSubject]=\"pageChangeSubject\"\n (valuesChanged)=\"applyValuesChanged($event)\"></ccd-case-edit-form>\n <!-- two columns -->\n <div *ngIf=\"currentPage.isMultiColumn()\" class=\"grid-row\">\n <div class=\"column-two-thirds rightBorderSeparator\">\n <ccd-case-edit-form id='caseEditForm1' [fields]=\"currentPage.getCol1Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n <div class=\"column-one-third\">\n <ccd-case-edit-form id='caseEditForm2' [fields]=\"currentPage.getCol2Fields()\"\n [formGroup]=\"editForm.controls['data']\" [caseFields]=\"caseFields\"></ccd-case-edit-form>\n </div>\n </div>\n </fieldset>\n\n <div class=\"form-group form-group-related\">\n <button class=\"button button-secondary\" type=\"button\" (click)=\"toPreviousPage()\" *ngIf=\"!isAtStart()\" [disabled]=\"isAtStart()\">\n {{'Previous' | rpxTranslate}}\n </button>\n <button class=\"button\" type=\"submit\" [disabled]=\"submitting()\">{{triggerText | rpxTranslate}}</button>\n </div>\n\n <p class=\"cancel\"><a (click)=\"cancel()\" href=\"javascript:void(0)\">{{getCancelText() | rpxTranslate}}</a></p>\n </form>\n</div>\n\n<ccd-case-event-completion *ngIf=\"caseEdit.isEventCompletionChecksRequired\"\n [eventCompletionParams]=\"caseEdit.eventCompletionParams\"\n (eventCanBeCompleted)=\"onEventCanBeCompleted($event)\">\n</ccd-case-event-completion>\n", styles: [".rightBorderSeparator{border-right-width:4px;border-right-color:#ffcc02;border-right-style:solid}.validation-error{cursor:pointer;text-decoration:underline;color:#d4351c}\n"] }]
11163
- }], () => [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: MultipageComponentStateService }, { type: AddressesService }, { type: LinkedCasesService }], null); })();
11164
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 33 }); })();
11188
+ }], () => [{ type: CaseEditComponent }, { type: i1$1.ActivatedRoute }, { type: FormValueService }, { type: FormErrorService }, { type: i0.ChangeDetectorRef }, { type: PageValidationService }, { type: i1$3.MatLegacyDialog }, { type: CaseFieldService }, { type: CaseEditDataService }, { type: LoadingService }, { type: ValidPageListCaseFieldsService }, { type: MultipageComponentStateService }, { type: AddressesService }, { type: LinkedCasesService }, { type: CaseFlagStateService }], null); })();
11189
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseEditPageComponent, { className: "CaseEditPageComponent", filePath: "lib/shared/components/case-editor/case-edit-page/case-edit-page.component.ts", lineNumber: 34 }); })();
11165
11190
 
11166
11191
  class CallbackErrorsContext {
11167
11192
  triggerText;
@@ -12585,24 +12610,6 @@ class CaseFileViewFieldComponent {
12585
12610
  }], () => [{ type: i0.ElementRef }, { type: i1$1.ActivatedRoute }, { type: CaseFileViewService }, { type: DocumentManagementService }, { type: LoadingService }, { type: SessionStorageService }, { type: CaseNotifier }, { type: AbstractAppConfig }], null); })();
12586
12611
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(CaseFileViewFieldComponent, { className: "CaseFileViewFieldComponent", filePath: "lib/shared/components/palette/case-file-view/case-file-view-field.component.ts", lineNumber: 17 }); })();
12587
12612
 
12588
- class CaseFlagStateService {
12589
- formGroup = new FormGroup({});
12590
- pageLocation;
12591
- fieldStateToNavigate;
12592
- lastPageFieldState;
12593
- resetCache(pageLocation) {
12594
- this.formGroup = new FormGroup({});
12595
- this.fieldStateToNavigate = undefined;
12596
- this.pageLocation = pageLocation;
12597
- this.lastPageFieldState = 0;
12598
- }
12599
- static ɵfac = function CaseFlagStateService_Factory(t) { return new (t || CaseFlagStateService)(); };
12600
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: CaseFlagStateService, factory: CaseFlagStateService.ɵfac });
12601
- }
12602
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(CaseFlagStateService, [{
12603
- type: Injectable
12604
- }], null, null); })();
12605
-
12606
12613
  function ReadCaseFlagFieldComponent_ng_container_0_Template(rf, ctx) { if (rf & 1) {
12607
12614
  const _r1 = i0.ɵɵgetCurrentView();
12608
12615
  i0.ɵɵelementContainerStart(0);
@@ -12792,9 +12799,16 @@ class ReadCaseFlagFieldComponent extends AbstractFieldReadComponent {
12792
12799
  else if ((flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE ||
12793
12800
  flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1 ||
12794
12801
  flagLauncherComponent.caseField.display_context_parameter === CaseFlagDisplayContextParameter.UPDATE_EXTERNAL) &&
12795
- flagLauncherComponent.selectedFlag) {
12796
- this.flagForSummaryDisplay =
12797
- this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
12802
+ (flagLauncherComponent.selectedFlag ||
12803
+ (this.caseFlagStateService.formGroup.get('selectedManageCaseLocation').value.flagDetailDisplay && this.displayContextParameter === CaseFlagDisplayContextParameter.UPDATE_2_POINT_1))) {
12804
+ if (this.formGroup.get(flagLauncherControlName)['component']?.selectedFlag?.flagDetailDisplay !== undefined) {
12805
+ this.flagForSummaryDisplay =
12806
+ this.formGroup.get(flagLauncherControlName)['component'].selectedFlag.flagDetailDisplay;
12807
+ }
12808
+ else {
12809
+ this.flagForSummaryDisplay =
12810
+ this.caseFlagStateService.formGroup.get('selectedManageCaseLocation').value.flagDetailDisplay;
12811
+ }
12798
12812
  // TODO: not the best solution, the caseFlagStateService should have all the fields, then we can delete a lot of the transformations here
12799
12813
  // in Create Case Flag it already has all fields
12800
12814
  const caseFlagFormGroupValue = this.caseFlagStateService.formGroup?.value;