@hmcts/ccd-case-ui-toolkit 7.0.3-error-message-fix → 7.0.3-exui-1123

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.
@@ -88,7 +88,8 @@ export class WizardPageFieldToCaseFieldMapper {
88
88
  childrenCaseFields.forEach(e => this.hideParentIfAllChildrenHidden(e));
89
89
  if (childrenCaseFields.length > 0 && this.allCaseFieldsHidden(childrenCaseFields)) {
90
90
  caseField.hidden = true;
91
- caseField.display_context = 'HIDDEN';
91
+ // marking display_context as special hidden so field not being deleted in event submission
92
+ caseField.display_context = 'HIDDEN_TEMP';
92
93
  }
93
94
  }
94
95
  getCaseFieldChildren(caseField) {
@@ -102,7 +103,7 @@ export class WizardPageFieldToCaseFieldMapper {
102
103
  return childrenCaseFields;
103
104
  }
104
105
  allCaseFieldsHidden(children) {
105
- return !children.some(e => e.hidden !== true);
106
+ return children.every(e => e.display_context === 'HIDDEN' || e.display_context === 'HIDDEN_TEMP');
106
107
  }
107
108
  }
108
109
  WizardPageFieldToCaseFieldMapper.ɵfac = function WizardPageFieldToCaseFieldMapper_Factory(t) { return new (t || WizardPageFieldToCaseFieldMapper)(); };
@@ -113,4 +114,4 @@ WizardPageFieldToCaseFieldMapper.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable(
113
114
  providedIn: 'root',
114
115
  }]
115
116
  }], null, null); })();
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXBhZ2UtZmllbGQtdG8tY2FzZS1maWVsZC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3Ivc2VydmljZXMvd2l6YXJkLXBhZ2UtZmllbGQtdG8tY2FzZS1maWVsZC5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7O0FBUW5HLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsTUFBTSxDQUFDLGdCQUFtQyxFQUFFLFVBQXVCO1FBQ3hFLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sR0FBRyxDQUFDLGVBQWdDLEVBQUUsVUFBdUI7UUFDbkUsTUFBTSxTQUFTLEdBQWMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLFNBQVMsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUV4QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLElBQUksZUFBZSxDQUFDLHVCQUF1QixJQUFJLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pHLGVBQWUsQ0FBQyx1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QUFTLENBQUMsQ0FBQztRQUVoRSxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV2RSxJQUFJLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxDQUFDLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDLEVBQUU7WUFDakYsU0FBUyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDeEIsU0FBUyxDQUFDLGVBQWUsR0FBRyxRQUFRLENBQUM7U0FDdEM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsU0FBb0I7UUFDL0MsSUFBSSxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxTQUFTLENBQUMsWUFBWSxFQUFFLEVBQUU7WUFDNUIsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1NBQ3RGO2FBQU0sSUFBSSxTQUFTLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDaEMsa0JBQWtCLEdBQUcsU0FBUyxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1NBQ2hFO1FBQ0QsT0FBTyxrQkFBa0IsQ0FBQztJQUM1QixDQUFDO0lBRU8sbUJBQW1CLENBQUMsUUFBcUI7UUFDL0MsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDO0lBQ2hELENBQUM7O2dIQXJIVSxnQ0FBZ0M7c0ZBQWhDLGdDQUFnQyxXQUFoQyxnQ0FBZ0MsbUJBRi9CLE1BQU07dUZBRVAsZ0NBQWdDO2NBSDVDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvZG9tYWluL2NvbmRpdGlvbmFsLXNob3cubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBDb21wbGV4RmllbGRPdmVycmlkZSB9IGZyb20gJy4uL2RvbWFpbi93aXphcmQtcGFnZS1maWVsZC1jb21wbGV4LW92ZXJyaWRlLm1vZGVsJztcbmltcG9ydCB7IFdpemFyZFBhZ2VGaWVsZCB9IGZyb20gJy4uL2RvbWFpbi93aXphcmQtcGFnZS1maWVsZC5tb2RlbCc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBXaXphcmRQYWdlRmllbGRUb0Nhc2VGaWVsZE1hcHBlciB7XG4gIHB1YmxpYyBtYXBBbGwod2l6YXJkUGFnZUZpZWxkczogV2l6YXJkUGFnZUZpZWxkW10sIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogQ2FzZUZpZWxkW10ge1xuICAgIHJldHVybiB3aXphcmRQYWdlRmllbGRzLm1hcCh3aXphcmRGaWVsZCA9PiB7XG4gICAgICByZXR1cm4gdGhpcy5tYXAod2l6YXJkRmllbGQsIGNhc2VGaWVsZHMpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtYXAod2l6YXJkUGFnZUZpZWxkOiBXaXphcmRQYWdlRmllbGQsIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogQ2FzZUZpZWxkIHtcbiAgICBjb25zdCBjYXNlRmllbGQ6IENhc2VGaWVsZCA9IGNhc2VGaWVsZHMuZmluZChlID0+IGUuaWQgPT09IHdpemFyZFBhZ2VGaWVsZC5jYXNlX2ZpZWxkX2lkKTtcbiAgICBjYXNlRmllbGQud2l6YXJkUHJvcHMgPSB3aXphcmRQYWdlRmllbGQ7XG4gICAgY2FzZUZpZWxkLm9yZGVyID0gd2l6YXJkUGFnZUZpZWxkLm9yZGVyO1xuXG4gICAgdGhpcy5maXhTaG93Q29uZGl0aW9uUGF0aChjYXNlRmllbGQsICcnKTtcblxuICAgIGlmICh3aXphcmRQYWdlRmllbGQuY29tcGxleF9maWVsZF9vdmVycmlkZXMgJiYgd2l6YXJkUGFnZUZpZWxkLmNvbXBsZXhfZmllbGRfb3ZlcnJpZGVzLmxlbmd0aCA+IDApIHtcbiAgICAgIHdpemFyZFBhZ2VGaWVsZC5jb21wbGV4X2ZpZWxkX292ZXJyaWRlcy5mb3JFYWNoKChvdmVycmlkZTogQ29tcGxleEZpZWxkT3ZlcnJpZGUpID0+IHtcbiAgICAgICAgdGhpcy5wcm9jZXNzQ29tcGxleEZpZWxkT3ZlcnJpZGUob3ZlcnJpZGUsIGNhc2VGaWVsZCwgY2FzZUZpZWxkcyk7XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyB0aGlzIHdpbGwgZml4IHRoZSBDYXNlTGluayB0eXBlIGFzIHdlIGV4Y2x1ZGUgaXQgaW4gY2NkRmllbGRzRmlsdGVyIGRpcmVjdGl2ZVxuICAgIHRoaXMuaGlkZVBhcmVudElmQWxsQ2hpbGRyZW5IaWRkZW4oY2FzZUZpZWxkKTtcblxuICAgIHJldHVybiBjYXNlRmllbGQ7XG4gIH1cblxuICBwcml2YXRlIHByb2Nlc3NDb21wbGV4RmllbGRPdmVycmlkZShvdmVycmlkZTogQ29tcGxleEZpZWxkT3ZlcnJpZGUsIGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjYXNlRmllbGRzOiBDYXNlRmllbGRbXSkge1xuICAgIGNvbnN0IGNhc2VGaWVsZElkcyA9IG92ZXJyaWRlLmNvbXBsZXhfZmllbGRfZWxlbWVudF9pZC5zcGxpdCgnLicpO1xuICAgIGxldCBjYXNlRmllbGRMZWFmOiBDYXNlRmllbGQ7XG5cbiAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2FzZUZpZWxkQ2hpbGRyZW4oY2FzZUZpZWxkKTtcblxuICAgIGlmIChjaGlsZHJlbi5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBbXywgLi4udGFpbF0gPSBjYXNlRmllbGRJZHM7XG4gICAgICBjYXNlRmllbGRMZWFmID0gdGhpcy5nZXRDYXNlRmllbGRMZWFmKHRhaWwsIGNoaWxkcmVuKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FzZUZpZWxkTGVhZiA9IHRoaXMuZ2V0Q2FzZUZpZWxkTGVhZihjYXNlRmllbGRJZHMsIGNhc2VGaWVsZHMpO1xuICAgIH1cblxuICAgIGlmIChvdmVycmlkZS5kaXNwbGF5X2NvbnRleHQgIT09ICdISURERU4nKSB7XG4gICAgICBjYXNlRmllbGRMZWFmLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgY2FzZUZpZWxkTGVhZi5kaXNwbGF5X2NvbnRleHQgPSBvdmVycmlkZS5kaXNwbGF5X2NvbnRleHQ7XG4gICAgICBpZiAob3ZlcnJpZGUubGFiZWwgJiYgb3ZlcnJpZGUubGFiZWwubGVuZ3RoID4gMCkge1xuICAgICAgICBjYXNlRmllbGRMZWFmLmxhYmVsID0gb3ZlcnJpZGUubGFiZWw7XG4gICAgICB9XG4gICAgICBpZiAob3ZlcnJpZGUuaGludF90ZXh0ICYmIG92ZXJyaWRlLmhpbnRfdGV4dC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNhc2VGaWVsZExlYWYuaGludF90ZXh0ID0gb3ZlcnJpZGUuaGludF90ZXh0O1xuICAgICAgfVxuICAgICAgaWYgKG92ZXJyaWRlLnNob3dfY29uZGl0aW9uICYmIG92ZXJyaWRlLnNob3dfY29uZGl0aW9uLmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2FzZUZpZWxkTGVhZi5zaG93X2NvbmRpdGlvbiA9IG92ZXJyaWRlLnNob3dfY29uZGl0aW9uO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjYXNlRmllbGRMZWFmLmhpZGRlbiA9IHRydWU7XG4gICAgICBjYXNlRmllbGRMZWFmLmRpc3BsYXlfY29udGV4dCA9IG92ZXJyaWRlLmRpc3BsYXlfY29udGV4dDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGZpeFNob3dDb25kaXRpb25QYXRoKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBwYXRoUHJlZml4OiBzdHJpbmcpIHtcbiAgICBpZiAoY2FzZUZpZWxkLnNob3dfY29uZGl0aW9uKSB7XG4gICAgICBjYXNlRmllbGQuc2hvd19jb25kaXRpb24gPSBTaG93Q29uZGl0aW9uLmFkZFBhdGhQcmVmaXhUb0NvbmRpdGlvbihjYXNlRmllbGQuc2hvd19jb25kaXRpb24sIHBhdGhQcmVmaXgpO1xuICAgIH1cblxuICAgIGNvbnN0IGNoaWxkcmVuQ2FzZUZpZWxkcyA9IHRoaXMuZ2V0Q2FzZUZpZWxkQ2hpbGRyZW4oY2FzZUZpZWxkKTtcblxuICAgIGNoaWxkcmVuQ2FzZUZpZWxkcy5mb3JFYWNoKGNvbGxlY3Rpb25DYXNlRmllbGQgPT4ge1xuICAgICAgdGhpcy5maXhTaG93Q29uZGl0aW9uUGF0aChjb2xsZWN0aW9uQ2FzZUZpZWxkLCB0aGlzLnByZXBhcmVQYXRoUHJlZml4KHBhdGhQcmVmaXgsIGNhc2VGaWVsZC5pZCkpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlUGF0aFByZWZpeChwYXRoUHJlZml4OiBzdHJpbmcsIGNhc2VGaWVsZDogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHBhdGhQcmVmaXgubGVuZ3RoID09PSAwID8gY2FzZUZpZWxkIDogYCR7cGF0aFByZWZpeH0uJHtjYXNlRmllbGR9YDtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkTGVhZihjYXNlRmllbGRJZDogc3RyaW5nW10sIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKTogQ2FzZUZpZWxkIHtcbiAgICBjb25zdCBbaGVhZCwgLi4udGFpbF0gPSBjYXNlRmllbGRJZDtcbiAgICBpZiAoY2FzZUZpZWxkSWQubGVuZ3RoID09PSAxKSB7XG4gICAgICBjb25zdCBjYXNlTGVhZiA9IGNhc2VGaWVsZHMuZmluZChlID0+IGUuaWQgPT09IGhlYWQpO1xuICAgICAgaWYgKCFjYXNlTGVhZikge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGxlYWYgZm9yIGNhc2VGaWVsZElkICR7Y2FzZUZpZWxkSWQuam9pbignLicpfWApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGNhc2VMZWFmO1xuICAgIH0gZWxzZSBpZiAoY2FzZUZpZWxkSWQubGVuZ3RoID4gMSkge1xuICAgICAgY29uc3QgY2FzZUZpZWxkID0gY2FzZUZpZWxkcy5maW5kKGUgPT4gZS5pZCA9PT0gaGVhZCk7XG4gICAgICBjb25zdCBjaGlsZHJlbiA9IHRoaXMuZ2V0Q2FzZUZpZWxkQ2hpbGRyZW4oY2FzZUZpZWxkKTtcblxuICAgICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGZpZWxkX3R5cGUgb3IgY29tcGxleF9maWVsZHMgbWlzc2luZyBmb3IgJHtjYXNlRmllbGRJZC5qb2luKCcuJyl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gdGhpcy5nZXRDYXNlRmllbGRMZWFmKHRhaWwsIGNoaWxkcmVuKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBDYW5ub3QgZmluZCBsZWFmIGZvciBjYXNlRmllbGRJZCAke2Nhc2VGaWVsZElkLmpvaW4oJy4nKX1gKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhpZGVQYXJlbnRJZkFsbENoaWxkcmVuSGlkZGVuKGNhc2VGaWVsZDogQ2FzZUZpZWxkKSB7XG4gICAgY29uc3QgY2hpbGRyZW5DYXNlRmllbGRzID0gdGhpcy5nZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQpO1xuXG4gICAgY2hpbGRyZW5DYXNlRmllbGRzLmZvckVhY2goZSA9PiB0aGlzLmhpZGVQYXJlbnRJZkFsbENoaWxkcmVuSGlkZGVuKGUpKTtcblxuICAgIGlmIChjaGlsZHJlbkNhc2VGaWVsZHMubGVuZ3RoID4gMCAmJiB0aGlzLmFsbENhc2VGaWVsZHNIaWRkZW4oY2hpbGRyZW5DYXNlRmllbGRzKSkge1xuICAgICAgY2FzZUZpZWxkLmhpZGRlbiA9IHRydWU7XG4gICAgICBjYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ID0gJ0hJRERFTic7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQ6IENhc2VGaWVsZCkge1xuICAgIGxldCBjaGlsZHJlbkNhc2VGaWVsZHMgPSBbXTtcbiAgICBpZiAoY2FzZUZpZWxkLmlzQ29sbGVjdGlvbigpKSB7XG4gICAgICBjaGlsZHJlbkNhc2VGaWVsZHMgPSBjYXNlRmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMgfHwgW107XG4gICAgfSBlbHNlIGlmIChjYXNlRmllbGQuaXNDb21wbGV4KCkpIHtcbiAgICAgIGNoaWxkcmVuQ2FzZUZpZWxkcyA9IGNhc2VGaWVsZC5maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzIHx8IFtdO1xuICAgIH1cbiAgICByZXR1cm4gY2hpbGRyZW5DYXNlRmllbGRzO1xuICB9XG5cbiAgcHJpdmF0ZSBhbGxDYXNlRmllbGRzSGlkZGVuKGNoaWxkcmVuOiBDYXNlRmllbGRbXSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhY2hpbGRyZW4uc29tZShlID0+IGUuaGlkZGVuICE9PSB0cnVlKTtcbiAgfVxufVxuIl19
117
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l6YXJkLXBhZ2UtZmllbGQtdG8tY2FzZS1maWVsZC5tYXBwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvY2FzZS1lZGl0b3Ivc2VydmljZXMvd2l6YXJkLXBhZ2UtZmllbGQtdG8tY2FzZS1maWVsZC5tYXBwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sb0VBQW9FLENBQUM7O0FBUW5HLE1BQU0sT0FBTyxnQ0FBZ0M7SUFDcEMsTUFBTSxDQUFDLGdCQUFtQyxFQUFFLFVBQXVCO1FBQ3hFLE9BQU8sZ0JBQWdCLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQyxXQUFXLEVBQUUsVUFBVSxDQUFDLENBQUM7UUFDM0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sR0FBRyxDQUFDLGVBQWdDLEVBQUUsVUFBdUI7UUFDbkUsTUFBTSxTQUFTLEdBQWMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssZUFBZSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQzFGLFNBQVMsQ0FBQyxXQUFXLEdBQUcsZUFBZSxDQUFDO1FBQ3hDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsZUFBZSxDQUFDLEtBQUssQ0FBQztRQUV4QyxJQUFJLENBQUMsb0JBQW9CLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLElBQUksZUFBZSxDQUFDLHVCQUF1QixJQUFJLGVBQWUsQ0FBQyx1QkFBdUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pHLGVBQWUsQ0FBQyx1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bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IENvbXBsZXhGaWVsZE92ZXJyaWRlIH0gZnJvbSAnLi4vZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLWNvbXBsZXgtb3ZlcnJpZGUubW9kZWwnO1xuaW1wb3J0IHsgV2l6YXJkUGFnZUZpZWxkIH0gZnJvbSAnLi4vZG9tYWluL3dpemFyZC1wYWdlLWZpZWxkLm1vZGVsJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdpemFyZFBhZ2VGaWVsZFRvQ2FzZUZpZWxkTWFwcGVyIHtcbiAgcHVibGljIG1hcEFsbCh3aXphcmRQYWdlRmllbGRzOiBXaXphcmRQYWdlRmllbGRbXSwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGRbXSB7XG4gICAgcmV0dXJuIHdpemFyZFBhZ2VGaWVsZHMubWFwKHdpemFyZEZpZWxkID0+IHtcbiAgICAgIHJldHVybiB0aGlzLm1hcCh3aXphcmRGaWVsZCwgY2FzZUZpZWxkcyk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIG1hcCh3aXphcmRQYWdlRmllbGQ6IFdpemFyZFBhZ2VGaWVsZCwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGQge1xuICAgIGNvbnN0IGNhc2VGaWVsZDogQ2FzZUZpZWxkID0gY2FzZUZpZWxkcy5maW5kKGUgPT4gZS5pZCA9PT0gd2l6YXJkUGFnZUZpZWxkLmNhc2VfZmllbGRfaWQpO1xuICAgIGNhc2VGaWVsZC53aXphcmRQcm9wcyA9IHdpemFyZFBhZ2VGaWVsZDtcbiAgICBjYXNlRmllbGQub3JkZXIgPSB3aXphcmRQYWdlRmllbGQub3JkZXI7XG5cbiAgICB0aGlzLmZpeFNob3dDb25kaXRpb25QYXRoKGNhc2VGaWVsZCwgJycpO1xuXG4gICAgaWYgKHdpemFyZFBhZ2VGaWVsZC5jb21wbGV4X2ZpZWxkX292ZXJyaWRlcyAmJiB3aXphcmRQYWdlRmllbGQuY29tcGxleF9maWVsZF9vdmVycmlkZXMubGVuZ3RoID4gMCkge1xuICAgICAgd2l6YXJkUGFnZUZpZWxkLmNvbXBsZXhfZmllbGRfb3ZlcnJpZGVzLmZvckVhY2goKG92ZXJyaWRlOiBDb21wbGV4RmllbGRPdmVycmlkZSkgPT4ge1xuICAgICAgICB0aGlzLnByb2Nlc3NDb21wbGV4RmllbGRPdmVycmlkZShvdmVycmlkZSwgY2FzZUZpZWxkLCBjYXNlRmllbGRzKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIC8vIHRoaXMgd2lsbCBmaXggdGhlIENhc2VMaW5rIHR5cGUgYXMgd2UgZXhjbHVkZSBpdCBpbiBjY2RGaWVsZHNGaWx0ZXIgZGlyZWN0aXZlXG4gICAgdGhpcy5oaWRlUGFyZW50SWZBbGxDaGlsZHJlbkhpZGRlbihjYXNlRmllbGQpO1xuXG4gICAgcmV0dXJuIGNhc2VGaWVsZDtcbiAgfVxuXG4gIHByaXZhdGUgcHJvY2Vzc0NvbXBsZXhGaWVsZE92ZXJyaWRlKG92ZXJyaWRlOiBDb21wbGV4RmllbGRPdmVycmlkZSwgY2FzZUZpZWxkOiBDYXNlRmllbGQsIGNhc2VGaWVsZHM6IENhc2VGaWVsZFtdKSB7XG4gICAgY29uc3QgY2FzZUZpZWxkSWRzID0gb3ZlcnJpZGUuY29tcGxleF9maWVsZF9lbGVtZW50X2lkLnNwbGl0KCcuJyk7XG4gICAgbGV0IGNhc2VGaWVsZExlYWY6IENhc2VGaWVsZDtcblxuICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5nZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQpO1xuXG4gICAgaWYgKGNoaWxkcmVuLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IFtfLCAuLi50YWlsXSA9IGNhc2VGaWVsZElkcztcbiAgICAgIGNhc2VGaWVsZExlYWYgPSB0aGlzLmdldENhc2VGaWVsZExlYWYodGFpbCwgY2hpbGRyZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYXNlRmllbGRMZWFmID0gdGhpcy5nZXRDYXNlRmllbGRMZWFmKGNhc2VGaWVsZElkcywgY2FzZUZpZWxkcyk7XG4gICAgfVxuXG4gICAgaWYgKG92ZXJyaWRlLmRpc3BsYXlfY29udGV4dCAhPT0gJ0hJRERFTicpIHtcbiAgICAgIGNhc2VGaWVsZExlYWYuaGlkZGVuID0gZmFsc2U7XG4gICAgICBjYXNlRmllbGRMZWFmLmRpc3BsYXlfY29udGV4dCA9IG92ZXJyaWRlLmRpc3BsYXlfY29udGV4dDtcbiAgICAgIGlmIChvdmVycmlkZS5sYWJlbCAmJiBvdmVycmlkZS5sYWJlbC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNhc2VGaWVsZExlYWYubGFiZWwgPSBvdmVycmlkZS5sYWJlbDtcbiAgICAgIH1cbiAgICAgIGlmIChvdmVycmlkZS5oaW50X3RleHQgJiYgb3ZlcnJpZGUuaGludF90ZXh0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgY2FzZUZpZWxkTGVhZi5oaW50X3RleHQgPSBvdmVycmlkZS5oaW50X3RleHQ7XG4gICAgICB9XG4gICAgICBpZiAob3ZlcnJpZGUuc2hvd19jb25kaXRpb24gJiYgb3ZlcnJpZGUuc2hvd19jb25kaXRpb24ubGVuZ3RoID4gMCkge1xuICAgICAgICBjYXNlRmllbGRMZWFmLnNob3dfY29uZGl0aW9uID0gb3ZlcnJpZGUuc2hvd19jb25kaXRpb247XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGNhc2VGaWVsZExlYWYuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIGNhc2VGaWVsZExlYWYuZGlzcGxheV9jb250ZXh0ID0gb3ZlcnJpZGUuZGlzcGxheV9jb250ZXh0O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZml4U2hvd0NvbmRpdGlvblBhdGgoY2FzZUZpZWxkOiBDYXNlRmllbGQsIHBhdGhQcmVmaXg6IHN0cmluZykge1xuICAgIGlmIChjYXNlRmllbGQuc2hvd19jb25kaXRpb24pIHtcbiAgICAgIGNhc2VGaWVsZC5zaG93X2NvbmRpdGlvbiA9IFNob3dDb25kaXRpb24uYWRkUGF0aFByZWZpeFRvQ29uZGl0aW9uKGNhc2VGaWVsZC5zaG93X2NvbmRpdGlvbiwgcGF0aFByZWZpeCk7XG4gICAgfVxuXG4gICAgY29uc3QgY2hpbGRyZW5DYXNlRmllbGRzID0gdGhpcy5nZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQpO1xuXG4gICAgY2hpbGRyZW5DYXNlRmllbGRzLmZvckVhY2goY29sbGVjdGlvbkNhc2VGaWVsZCA9PiB7XG4gICAgICB0aGlzLmZpeFNob3dDb25kaXRpb25QYXRoKGNvbGxlY3Rpb25DYXNlRmllbGQsIHRoaXMucHJlcGFyZVBhdGhQcmVmaXgocGF0aFByZWZpeCwgY2FzZUZpZWxkLmlkKSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHByZXBhcmVQYXRoUHJlZml4KHBhdGhQcmVmaXg6IHN0cmluZywgY2FzZUZpZWxkOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gcGF0aFByZWZpeC5sZW5ndGggPT09IDAgPyBjYXNlRmllbGQgOiBgJHtwYXRoUHJlZml4fS4ke2Nhc2VGaWVsZH1gO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRDYXNlRmllbGRMZWFmKGNhc2VGaWVsZElkOiBzdHJpbmdbXSwgY2FzZUZpZWxkczogQ2FzZUZpZWxkW10pOiBDYXNlRmllbGQge1xuICAgIGNvbnN0IFtoZWFkLCAuLi50YWlsXSA9IGNhc2VGaWVsZElkO1xuICAgIGlmIChjYXNlRmllbGRJZC5sZW5ndGggPT09IDEpIHtcbiAgICAgIGNvbnN0IGNhc2VMZWFmID0gY2FzZUZpZWxkcy5maW5kKGUgPT4gZS5pZCA9PT0gaGVhZCk7XG4gICAgICBpZiAoIWNhc2VMZWFmKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgQ2Fubm90IGZpbmQgbGVhZiBmb3IgY2FzZUZpZWxkSWQgJHtjYXNlRmllbGRJZC5qb2luKCcuJyl9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gY2FzZUxlYWY7XG4gICAgfSBlbHNlIGlmIChjYXNlRmllbGRJZC5sZW5ndGggPiAxKSB7XG4gICAgICBjb25zdCBjYXNlRmllbGQgPSBjYXNlRmllbGRzLmZpbmQoZSA9PiBlLmlkID09PSBoZWFkKTtcbiAgICAgIGNvbnN0IGNoaWxkcmVuID0gdGhpcy5nZXRDYXNlRmllbGRDaGlsZHJlbihjYXNlRmllbGQpO1xuXG4gICAgICBpZiAoY2hpbGRyZW4ubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgZmllbGRfdHlwZSBvciBjb21wbGV4X2ZpZWxkcyBtaXNzaW5nIGZvciAke2Nhc2VGaWVsZElkLmpvaW4oJy4nKX1gKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiB0aGlzLmdldENhc2VGaWVsZExlYWYodGFpbCwgY2hpbGRyZW4pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYENhbm5vdCBmaW5kIGxlYWYgZm9yIGNhc2VGaWVsZElkICR7Y2FzZUZpZWxkSWQuam9pbignLicpfWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGlkZVBhcmVudElmQWxsQ2hpbGRyZW5IaWRkZW4oY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICBjb25zdCBjaGlsZHJlbkNhc2VGaWVsZHMgPSB0aGlzLmdldENhc2VGaWVsZENoaWxkcmVuKGNhc2VGaWVsZCk7XG5cbiAgICBjaGlsZHJlbkNhc2VGaWVsZHMuZm9yRWFjaChlID0+IHRoaXMuaGlkZVBhcmVudElmQWxsQ2hpbGRyZW5IaWRkZW4oZSkpO1xuXG4gICAgaWYgKGNoaWxkcmVuQ2FzZUZpZWxkcy5sZW5ndGggPiAwICYmIHRoaXMuYWxsQ2FzZUZpZWxkc0hpZGRlbihjaGlsZHJlbkNhc2VGaWVsZHMpKSB7XG4gICAgICBjYXNlRmllbGQuaGlkZGVuID0gdHJ1ZTtcbiAgICAgIC8vIG1hcmtpbmcgZGlzcGxheV9jb250ZXh0IGFzIHNwZWNpYWwgaGlkZGVuIHNvIGZpZWxkIG5vdCBiZWluZyBkZWxldGVkIGluIGV2ZW50IHN1Ym1pc3Npb25cbiAgICAgIGNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgPSAnSElEREVOX1RFTVAnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0Q2FzZUZpZWxkQ2hpbGRyZW4oY2FzZUZpZWxkOiBDYXNlRmllbGQpIHtcbiAgICBsZXQgY2hpbGRyZW5DYXNlRmllbGRzID0gW107XG4gICAgaWYgKGNhc2VGaWVsZC5pc0NvbGxlY3Rpb24oKSkge1xuICAgICAgY2hpbGRyZW5DYXNlRmllbGRzID0gY2FzZUZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmNvbXBsZXhfZmllbGRzIHx8IFtdO1xuICAgIH0gZWxzZSBpZiAoY2FzZUZpZWxkLmlzQ29tcGxleCgpKSB7XG4gICAgICBjaGlsZHJlbkNhc2VGaWVsZHMgPSBjYXNlRmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICB9XG4gICAgcmV0dXJuIGNoaWxkcmVuQ2FzZUZpZWxkcztcbiAgfVxuXG4gIHByaXZhdGUgYWxsQ2FzZUZpZWxkc0hpZGRlbihjaGlsZHJlbjogQ2FzZUZpZWxkW10pOiBib29sZWFuIHtcbiAgICByZXR1cm4gY2hpbGRyZW4uZXZlcnkoZSA9PiBlLmRpc3BsYXlfY29udGV4dCA9PT0gJ0hJRERFTicgfHwgZS5kaXNwbGF5X2NvbnRleHQgPT09ICdISURERU5fVEVNUCcpO1xuICB9XG59XG4iXX0=
@@ -16,7 +16,11 @@ export class AbstractFormFieldComponent {
16
16
  return control;
17
17
  }
18
18
  const existing = container.controls[this.caseField.id];
19
+ // update the field value which has been set in mid-event call back
19
20
  if (existing) {
21
+ if (existing.value === null && this.caseField?.value) {
22
+ existing.value = this.caseField.value;
23
+ }
20
24
  if (replace) {
21
25
  // Set the validators on the replacement with what already exists.
22
26
  control.setValidators(existing.validator);
@@ -76,4 +80,4 @@ AbstractFormFieldComponent.ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type:
76
80
  }], idPrefix: [{
77
81
  type: Input
78
82
  }] }); })();
79
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBTXBFLE1BQU0sT0FBZ0IsMEJBQTBCO0lBRGhEO1FBWVMsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQTBEdEI7SUF4RFEsRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRVMsZUFBZSxDQUE0QixPQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDOUUsTUFBTSxTQUFTLEdBQWtCLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFDRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLE9BQU8sRUFBRTtnQkFDWCxrRUFBa0U7Z0JBQ2xFLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQzNDO2lCQUFNO2dCQUNMLE9BQU8sUUFBUSxDQUFDO2FBQ2pCO1NBQ0Y7UUFDRCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDNUMsV0FBVyxDQUFDLGtDQUFrQyxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlFLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVTLGFBQWEsQ0FBQyxTQUFvQixFQUFFLE9BQXdCO1FBQ3BFLHVGQUF1RjtJQUN6RixDQUFDO0lBRU8sa0JBQWtCLENBQUMsT0FBd0IsRUFBRSxNQUFxQixFQUFFLE9BQWdCO1FBQzFGLElBQUksTUFBTSxZQUFZLFNBQVMsRUFBRTtZQUMvQixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQzdEO1FBQ0QsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRU8scUJBQXFCLENBQUMsT0FBd0IsRUFBRSxNQUFpQixFQUFFLE9BQWdCO1FBQ3pGLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5QyxJQUFJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNuQzthQUFNO1lBQ0wsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN0QjtRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUF3QixFQUFFLE1BQWlCLEVBQUUsT0FBZ0I7UUFDekYsSUFBSSxPQUFPLEVBQUU7WUFDWCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsSUFBSSxLQUFLLFNBQVMsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQUU7Z0JBQ2pLLE1BQU0sQ0FBQyxVQUFVLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO2FBQzFFO2lCQUFNO2dCQUNMLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLEVBQUUsT0FBTyxDQUFDLENBQUM7YUFDL0M7U0FDRjthQUFNO1lBQ0wsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQztTQUMvQztRQUNELE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7O29HQXBFbUIsMEJBQTBCOzZFQUExQiwwQkFBMEI7dUZBQTFCLDBCQUEwQjtjQUQvQyxTQUFTO2dCQUdELFNBQVM7a0JBRGYsS0FBSztZQUlDLFNBQVM7a0JBRGYsS0FBSztZQUlDLE1BQU07a0JBRFosS0FBSztZQUlDLFFBQVE7a0JBRGQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcblxuXG50eXBlIEZvcm1Db250YWluZXIgPSBGb3JtR3JvdXAgfCBGb3JtQXJyYXk7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0Rm9ybUZpZWxkQ29tcG9uZW50IHtcbiAgQElucHV0KClcbiAgcHVibGljIGNhc2VGaWVsZDogQ2FzZUZpZWxkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmb3JtR3JvdXA6IEZvcm1Hcm91cDtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcGFyZW50PzogRm9ybUNvbnRhaW5lcjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaWRQcmVmaXggPSAnJztcblxuICBwdWJsaWMgaWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuaWRQcmVmaXggKyB0aGlzLmNhc2VGaWVsZC5pZDtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWdpc3RlckNvbnRyb2w8VCBleHRlbmRzIEFic3RyYWN0Q29udHJvbD4oY29udHJvbDogVCwgcmVwbGFjZSA9IGZhbHNlKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBjb25zdCBjb250YWluZXI6IEZvcm1Db250YWluZXIgPSB0aGlzLnBhcmVudCB8fCB0aGlzLmZvcm1Hcm91cDtcbiAgICBpZiAoIWNvbnRhaW5lcikge1xuICAgICAgcmV0dXJuIGNvbnRyb2w7XG4gICAgfVxuICAgIGNvbnN0IGV4aXN0aW5nID0gY29udGFpbmVyLmNvbnRyb2xzW3RoaXMuY2FzZUZpZWxkLmlkXTtcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGlmIChyZXBsYWNlKSB7XG4gICAgICAgIC8vIFNldCB0aGUgdmFsaWRhdG9ycyBvbiB0aGUgcmVwbGFjZW1lbnQgd2l0aCB3aGF0IGFscmVhZHkgZXhpc3RzLlxuICAgICAgICBjb250cm9sLnNldFZhbGlkYXRvcnMoZXhpc3RpbmcudmFsaWRhdG9yKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBleGlzdGluZztcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5hZGRWYWxpZGF0b3JzKHRoaXMuY2FzZUZpZWxkLCBjb250cm9sKTtcbiAgICBGaWVsZHNVdGlscy5hZGRDYXNlRmllbGRBbmRDb21wb25lbnRSZWZlcmVuY2VzKGNvbnRyb2wsIHRoaXMuY2FzZUZpZWxkLCB0aGlzKTtcbiAgICByZXR1cm4gdGhpcy5hZGRDb250cm9sVG9QYXJlbnQoY29udHJvbCwgY29udGFpbmVyLCByZXBsYWNlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhZGRWYWxpZGF0b3JzKGNhc2VGaWVsZDogQ2FzZUZpZWxkLCBjb250cm9sOiBBYnN0cmFjdENvbnRyb2wpOiB2b2lkIHtcbiAgICAvLyBObyB2YWxpZGF0b3JzIGJ5IGRlZmF1bHQsIG92ZXJyaWRlIHRoaXMgbWV0aG9kIHRvIGFkZCB2YWxpZGF0b3JzIHRvIHRoZSBmb3JtIGNvbnRyb2xcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29udHJvbFRvUGFyZW50KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGFyZW50OiBGb3JtQ29udGFpbmVyLCByZXBsYWNlOiBib29sZWFuKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBpZiAocGFyZW50IGluc3RhbmNlb2YgRm9ybUFycmF5KSB7XG4gICAgICByZXR1cm4gdGhpcy5hZGRDb250cm9sVG9Gb3JtQXJyYXkoY29udHJvbCwgcGFyZW50LCByZXBsYWNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYWRkQ29udHJvbFRvRm9ybUdyb3VwKGNvbnRyb2wsIHBhcmVudCwgcmVwbGFjZSk7XG4gIH1cblxuICBwcml2YXRlIGFkZENvbnRyb2xUb0Zvcm1BcnJheShjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHBhcmVudDogRm9ybUFycmF5LCByZXBsYWNlOiBib29sZWFuKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBjb25zdCBpbmRleCA9IHBhcnNlSW50KHRoaXMuY2FzZUZpZWxkLmlkLCAxMCk7XG4gICAgaWYgKHJlcGxhY2UgJiYgIWlzTmFOKGluZGV4KSkge1xuICAgICAgcGFyZW50LnNldENvbnRyb2woaW5kZXgsIGNvbnRyb2wpO1xuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnQucHVzaChjb250cm9sKTtcbiAgICB9XG4gICAgcmV0dXJuIGNvbnRyb2w7XG4gIH1cblxuICBwcml2YXRlIGFkZENvbnRyb2xUb0Zvcm1Hcm91cChjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIHBhcmVudDogRm9ybUdyb3VwLCByZXBsYWNlOiBib29sZWFuKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICBpZiAocmVwbGFjZSkge1xuICAgICAgaWYgKHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUgJiYgdGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZS5pZCA9PT0gJ0Nhc2VMaW5rJyAmJiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4JyAmJiAvXi0/XFxkKyQvLnRlc3QodGhpcy5jYXNlRmllbGQuaWQpKSB7XG4gICAgICAgIHBhcmVudC5zZXRDb250cm9sKCdDYXNlUmVmZXJlbmNlJywgY29udHJvbFsnY29udHJvbHMnXVsnQ2FzZVJlZmVyZW5jZSddKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBhcmVudC5zZXRDb250cm9sKHRoaXMuY2FzZUZpZWxkLmlkLCBjb250cm9sKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgcGFyZW50LmFkZENvbnRyb2wodGhpcy5jYXNlRmllbGQuaWQsIGNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxufVxuIl19
83
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZm9ybS1maWVsZC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jY2QtY2FzZS11aS10b29sa2l0L3NyYy9saWIvc2hhcmVkL2NvbXBvbmVudHMvcGFsZXR0ZS9iYXNlLWZpZWxkL2Fic3RyYWN0LWZvcm0tZmllbGQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBbUIsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sdUNBQXVDLENBQUM7O0FBTXBFLE1BQU0sT0FBZ0IsMEJBQTBCO0lBRGhEO1FBWVMsYUFBUSxHQUFHLEVBQUUsQ0FBQztLQThEdEI7SUE1RFEsRUFBRTtRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRVMsZUFBZSxDQUE0QixPQUFVLEVBQUUsT0FBTyxHQUFHLEtBQUs7UUFDOUUsTUFBTSxTQUFTLEdBQWtCLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztRQUMvRCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2QsT0FBTyxPQUFPLENBQUM7U0FDaEI7UUFDRCxNQUFNLFFBQVEsR0FBRyxTQUFTLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkQsbUVBQW1FO1FBQ25FLElBQUksUUFBUSxFQUFFO1lBQ1osSUFBRyxRQUFRLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLEtBQUssRUFBRTtnQkFDbkQsUUFBUSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQzthQUN2QztZQUNELElBQUksT0FBTyxFQUFFO2dCQUNYLGtFQUFrRTtnQkFDbEUsT0FBTyxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDM0M7aUJBQU07Z0JBQ0wsT0FBTyxRQUFRLENBQUM7YUFDakI7U0FDRjtRQUNELElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUM1QyxXQUFXLENBQUMsa0NBQWtDLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDOUUsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRVMsYUFBYSxDQUFDLFNBQW9CLEVBQUUsT0FBd0I7UUFDcEUsdUZBQXVGO0lBQ3pGLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxPQUF3QixFQUFFLE1BQXFCLEVBQUUsT0FBZ0I7UUFDMUYsSUFBSSxNQUFNLFlBQVksU0FBUyxFQUFFO1lBQy9CLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7U0FDN0Q7UUFDRCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQzlELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxPQUF3QixFQUFFLE1BQWlCLEVBQUUsT0FBZ0I7UUFDekYsTUFBTSxLQUFLLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQzlDLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQzVCLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQ25DO2FBQU07WUFDTCxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQUVPLHFCQUFxQixDQUFDLE9BQXdCLEVBQUUsTUFBaUIsRUFBRSxPQUFnQjtRQUN6RixJQUFJLE9BQU8sRUFBRTtZQUNYLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLFVBQVUsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEtBQUssU0FBUyxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtnQkFDakssTUFBTSxDQUFDLFVBQVUsQ0FBQyxlQUFlLEVBQUUsT0FBTyxDQUFDLFVBQVUsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUM7YUFDMUU7aUJBQU07Z0JBQ0wsTUFBTSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRSxPQUFPLENBQUMsQ0FBQzthQUMvQztTQUNGO2FBQU07WUFDTCxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1NBQy9DO1FBQ0QsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQzs7b0dBeEVtQiwwQkFBMEI7NkVBQTFCLDBCQUEwQjt1RkFBMUIsMEJBQTBCO2NBRC9DLFNBQVM7Z0JBR0QsU0FBUztrQkFEZixLQUFLO1lBSUMsU0FBUztrQkFEZixLQUFLO1lBSUMsTUFBTTtrQkFEWixLQUFLO1lBSUMsUUFBUTtrQkFEZCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuXG5cbnR5cGUgRm9ybUNvbnRhaW5lciA9IEZvcm1Hcm91cCB8IEZvcm1BcnJheTtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQWJzdHJhY3RGb3JtRmllbGRDb21wb25lbnQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgY2FzZUZpZWxkOiBDYXNlRmllbGQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZvcm1Hcm91cDogRm9ybUdyb3VwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwYXJlbnQ/OiBGb3JtQ29udGFpbmVyO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpZFByZWZpeCA9ICcnO1xuXG4gIHB1YmxpYyBpZCgpIHtcbiAgICByZXR1cm4gdGhpcy5pZFByZWZpeCArIHRoaXMuY2FzZUZpZWxkLmlkO1xuICB9XG5cbiAgcHJvdGVjdGVkIHJlZ2lzdGVyQ29udHJvbDxUIGV4dGVuZHMgQWJzdHJhY3RDb250cm9sPihjb250cm9sOiBULCByZXBsYWNlID0gZmFsc2UpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGNvbnN0IGNvbnRhaW5lcjogRm9ybUNvbnRhaW5lciA9IHRoaXMucGFyZW50IHx8IHRoaXMuZm9ybUdyb3VwO1xuICAgIGlmICghY29udGFpbmVyKSB7XG4gICAgICByZXR1cm4gY29udHJvbDtcbiAgICB9XG4gICAgY29uc3QgZXhpc3RpbmcgPSBjb250YWluZXIuY29udHJvbHNbdGhpcy5jYXNlRmllbGQuaWRdO1xuICAgIC8vIHVwZGF0ZSB0aGUgZmllbGQgdmFsdWUgd2hpY2ggaGFzIGJlZW4gc2V0IGluIG1pZC1ldmVudCBjYWxsIGJhY2tcbiAgICBpZiAoZXhpc3RpbmcpIHtcbiAgICAgIGlmKGV4aXN0aW5nLnZhbHVlID09PSBudWxsICYmIHRoaXMuY2FzZUZpZWxkPy52YWx1ZSkge1xuICAgICAgICBleGlzdGluZy52YWx1ZSA9IHRoaXMuY2FzZUZpZWxkLnZhbHVlO1xuICAgICAgfVxuICAgICAgaWYgKHJlcGxhY2UpIHtcbiAgICAgICAgLy8gU2V0IHRoZSB2YWxpZGF0b3JzIG9uIHRoZSByZXBsYWNlbWVudCB3aXRoIHdoYXQgYWxyZWFkeSBleGlzdHMuXG4gICAgICAgIGNvbnRyb2wuc2V0VmFsaWRhdG9ycyhleGlzdGluZy52YWxpZGF0b3IpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmFkZFZhbGlkYXRvcnModGhpcy5jYXNlRmllbGQsIGNvbnRyb2wpO1xuICAgIEZpZWxkc1V0aWxzLmFkZENhc2VGaWVsZEFuZENvbXBvbmVudFJlZmVyZW5jZXMoY29udHJvbCwgdGhpcy5jYXNlRmllbGQsIHRoaXMpO1xuICAgIHJldHVybiB0aGlzLmFkZENvbnRyb2xUb1BhcmVudChjb250cm9sLCBjb250YWluZXIsIHJlcGxhY2UpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFkZFZhbGlkYXRvcnMoY2FzZUZpZWxkOiBDYXNlRmllbGQsIGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHZvaWQge1xuICAgIC8vIE5vIHZhbGlkYXRvcnMgYnkgZGVmYXVsdCwgb3ZlcnJpZGUgdGhpcyBtZXRob2QgdG8gYWRkIHZhbGlkYXRvcnMgdG8gdGhlIGZvcm0gY29udHJvbFxuICB9XG5cbiAgcHJpdmF0ZSBhZGRDb250cm9sVG9QYXJlbnQoY29udHJvbDogQWJzdHJhY3RDb250cm9sLCBwYXJlbnQ6IEZvcm1Db250YWluZXIsIHJlcGxhY2U6IGJvb2xlYW4pOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChwYXJlbnQgaW5zdGFuY2VvZiBGb3JtQXJyYXkpIHtcbiAgICAgIHJldHVybiB0aGlzLmFkZENvbnRyb2xUb0Zvcm1BcnJheShjb250cm9sLCBwYXJlbnQsIHJlcGxhY2UpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5hZGRDb250cm9sVG9Gb3JtR3JvdXAoY29udHJvbCwgcGFyZW50LCByZXBsYWNlKTtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29udHJvbFRvRm9ybUFycmF5KGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGFyZW50OiBGb3JtQXJyYXksIHJlcGxhY2U6IGJvb2xlYW4pOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGNvbnN0IGluZGV4ID0gcGFyc2VJbnQodGhpcy5jYXNlRmllbGQuaWQsIDEwKTtcbiAgICBpZiAocmVwbGFjZSAmJiAhaXNOYU4oaW5kZXgpKSB7XG4gICAgICBwYXJlbnQuc2V0Q29udHJvbChpbmRleCwgY29udHJvbCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHBhcmVudC5wdXNoKGNvbnRyb2wpO1xuICAgIH1cbiAgICByZXR1cm4gY29udHJvbDtcbiAgfVxuXG4gIHByaXZhdGUgYWRkQ29udHJvbFRvRm9ybUdyb3VwKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCwgcGFyZW50OiBGb3JtR3JvdXAsIHJlcGxhY2U6IGJvb2xlYW4pOiBBYnN0cmFjdENvbnRyb2wge1xuICAgIGlmIChyZXBsYWNlKSB7XG4gICAgICBpZiAodGhpcy5jYXNlRmllbGQuZmllbGRfdHlwZSAmJiB0aGlzLmNhc2VGaWVsZC5maWVsZF90eXBlLmlkID09PSAnQ2FzZUxpbmsnICYmIHRoaXMuY2FzZUZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnICYmIC9eLT9cXGQrJC8udGVzdCh0aGlzLmNhc2VGaWVsZC5pZCkpIHtcbiAgICAgICAgcGFyZW50LnNldENvbnRyb2woJ0Nhc2VSZWZlcmVuY2UnLCBjb250cm9sWydjb250cm9scyddWydDYXNlUmVmZXJlbmNlJ10pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcGFyZW50LnNldENvbnRyb2wodGhpcy5jYXNlRmllbGQuaWQsIGNvbnRyb2wpO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBwYXJlbnQuYWRkQ29udHJvbCh0aGlzLmNhc2VGaWVsZC5pZCwgY29udHJvbCk7XG4gICAgfVxuICAgIHJldHVybiBjb250cm9sO1xuICB9XG59XG4iXX0=
@@ -254,19 +254,7 @@ export class WriteDocumentFieldComponent extends AbstractFieldWriteComponent {
254
254
  if (0 === error.status || 502 === error.status) {
255
255
  return WriteDocumentFieldComponent.UPLOAD_ERROR_NOT_AVAILABLE;
256
256
  }
257
- let errorMsg = 'Error uploading file';
258
- if (error && error?.error) {
259
- const fullError = error.error;
260
- const start = fullError.indexOf('{');
261
- if (start >= 0) {
262
- const json = fullError.substring(start, fullError.length - 1).split('<EOL>').join('');
263
- const obj = JSON.parse(json);
264
- if (obj && obj?.error) {
265
- errorMsg = obj.error;
266
- }
267
- }
268
- }
269
- return errorMsg;
257
+ return error.error;
270
258
  }
271
259
  buildDocumentUploadData(selectedFile) {
272
260
  const documentUpload = new FormData();
@@ -381,4 +369,4 @@ WriteDocumentFieldComponent.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type:
381
369
  type: ViewChild,
382
370
  args: ['fileInput', { static: false }]
383
371
  }] }); })();
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLElBQUksU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0Ys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QUM3QyxzREFBMEIsR0FBRyx5REFBeUQsQ0FBQztBQUN2RixzREFBMEIsR0FBRyxjQUFjLENBQUM7c0dBUHhELDJCQUEyQjs4RUFBM0IsMkJBQTJCOzs7Ozs7UUN0QnhDLDhCQUEyRSxlQUFBLGNBQUE7O1FBRUUsWUFBOEM7OztRQUFBLGlCQUFPLEVBQUE7UUFFaEksOEVBQWlHO1FBQ2pHLDhFQUE2RztRQUU3RywyQkFBSztRQUVILHNIQUE2RjtRQUMvRixpQkFBTTtRQUVOLCtCQUErQixjQUFBO1FBRW1CLHNHQUFTLHFCQUFpQixJQUFDO1FBQUMsaUJBQU07UUFDbEYsb0NBQ3dFO1FBRFYsb0hBQWUsMEJBQXNCLElBQUMsbUdBQVcsMkJBQXVCLElBQWxDO1FBQXBHLGlCQUN3RSxFQUFBLEVBQUE7UUFHNUUsZ0NBQWtDLGtCQUFBO1FBQ2lELHlHQUFTLGtCQUFjLElBQUM7UUFBb0MsYUFBa0M7O1FBQUEsaUJBQVMsRUFBQTs7UUFwQmxLLGlFQUFrRDtRQUNqRSxlQUFZO1FBQVosOEJBQVk7UUFDUSxlQUErQztRQUEvQyxrRUFBK0M7UUFBQyxlQUE4QztRQUE5QyxpRkFBOEM7UUFFaEcsZUFBeUI7UUFBekIsOENBQXlCO1FBQ3JCLGVBQWtDO1FBQWxDLDJEQUFrQztRQUluQyxlQUFlO1FBQWYsb0NBQWU7UUFLcEMsZUFBMEM7UUFBMUMsNERBQTBDO1FBRXhDLGVBQW9EO1FBQXBELCtFQUFvRDtRQURyQiw2QkFBVztRQUt1RCxlQUFrQztRQUFsQyxvREFBa0M7UUFBQyxlQUFrQztRQUFsQyw2REFBa0M7O3VGREVwSywyQkFBMkI7Y0FKdkMsU0FBUzsyQkFDRSwwQkFBMEI7NE9BWWMsU0FBUztrQkFBMUQsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhLCBGb3JtRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZG9jdW1lbnQvZG9jdW1lbnQtZGF0YS5tb2RlbCdcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RvY3VtZW50LW1hbmFnZW1lbnQvZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlJ1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbmltcG9ydCB7IERvY3VtZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbml0LWRpYWxvZy1oZWxwZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFN0YXRlU2VydmljZSB9IGZyb20gJy4vZmlsZS11cGxvYWQtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1kb2N1bWVudC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1kb2N1bWVudC1maWVsZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfVVJMID0gJ2RvY3VtZW50X3VybCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfQklOQVJZX1VSTCA9ICdkb2N1bWVudF9iaW5hcnlfdXJsJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9GSUxFTkFNRSA9ICdkb2N1bWVudF9maWxlbmFtZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfSEFTSCA9ICdkb2N1bWVudF9oYXNoJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfRVJST1JfRklMRV9SRVFVSVJFRCA9ICdGaWxlIHJlcXVpcmVkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfRVJST1JfTk9UX0FWQUlMQUJMRSA9ICdEb2N1bWVudCB1cGxvYWQgZmFjaWxpdHkgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfV0FJVElOR19GSUxFX1NUQVRVUyA9ICdVcGxvYWRpbmcuLi4nO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGU6IEZpbGU7XG4gIHB1YmxpYyB2YWxpZCA9IHRydWU7XG4gIHB1YmxpYyBmaWxlVXBsb2FkTWVzc2FnZXM6IHN0cmluZztcbiAgcHVibGljIGNvbmZpcm1SZXBsYWNlUmVzdWx0OiBzdHJpbmc7XG4gIHB1YmxpYyBjbGlja0luc2lkZVRoZURvY3VtZW50OiBib29sZWFuO1xuXG4gIC8vIHRoZXNlIGFyZSBwdWJsaWMgc28gdGhhdCB0aGV5IGNhbiBiZSBtb2NrZWQgZm9yIHRlc3RzXG4gIHB1YmxpYyBmaWxlVXBsb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBkaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VOb3RpZmllclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMganVyaXNkaWN0aW9uU3ViczogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgdXBsb2FkZWREb2N1bWVudDogRm9ybUdyb3VwO1xuICBwcml2YXRlIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnO1xuICBwcml2YXRlIHNlY3VyZU1vZGVPbjogYm9vbGVhbjtcblxuICBwdWJsaWMganVyaXNkaWN0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGNhc2VUeXBlSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50TWFuYWdlbWVudDogRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU3RhdGVTZXJ2aWNlOiBGaWxlVXBsb2FkU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkganVyaXNkaWN0aW9uU2VydmljZTogSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyZU1vZGVPbiA9IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZSgpO1xuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0Nhc2VEZXRhaWxzKCk7XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nQ29uZmlnID0gaW5pdERpYWxvZygpO1xuICAgIC8vIEVVSS0zNDAzLiBUaGUgZmllbGQgd2FzIG5vdCBiZWluZyByZWdpc3RlcmVkIHdoZW4gdGhlcmUgd2FzIG5vIHZhbHVlIGFuZCB0aGUgZmllbGRcbiAgICAvLyBpdHNlbGYgd2FzIG5vdCBtYW5kYXRvcnksIHdoaWNoIG1lYW50IHRoYXQgc2hvd19jb25kaXRpb25zIHdvdWxkIG5vdCBiZSBldmFsdWF0ZWQuXG4gICAgLy8gSSd2ZSBjbGVhbmVkIHVwIHRoZSBsb2dpYyBhbmQgaXQncyBub3cgYWx3YXlzIHJlZ2lzdGVyZWQuXG4gICAgbGV0IGRvY3VtZW50ID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgeyBkb2N1bWVudF91cmw6IG51bGwsIGRvY3VtZW50X2JpbmFyeV91cmw6IG51bGwsIGRvY3VtZW50X2ZpbGVuYW1lOiBudWxsIH07XG4gICAgZG9jdW1lbnQgPSB0aGlzLnNlY3VyZU1vZGVPbiAmJiAhZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCA/IHsgLi4uZG9jdW1lbnQsIGRvY3VtZW50X2hhc2g6IG51bGwgfSA6IGRvY3VtZW50O1xuICAgIGlmICh0aGlzLmlzQU1hbmRhdG9yeUNvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybVdpdGhWYWxpZGF0b3IoZG9jdW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybShkb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaWFsb2dTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNhc2VOb3RpZmllclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuanVyaXNkaWN0aW9uU3Vicykge1xuICAgICAgdGhpcy5qdXJpc2RpY3Rpb25TdWJzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzVXBsb2FkSW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLmlzVXBsb2FkSW5Qcm9ncmVzcygpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFVwbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGVVcGxvYWRTdGF0ZVNlcnZpY2Uuc2V0VXBsb2FkSW5Qcm9ncmVzcyhmYWxzZSk7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucmVzZXRVcGxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlVmFsaWRhdGlvbnNPblRhYigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgaWYgKHRoaXMudmFsaWRhdGVGb3JtVXBsb2FkZWREb2N1bWVudCgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlRXZlbnQoZmlsZUlucHV0OiBhbnkpOiB2b2lkIHtcblxuICAgIGlmIChmaWxlSW5wdXQudGFyZ2V0LmZpbGVzWzBdKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGVJbnB1dC50YXJnZXQuZmlsZXNbMF07XG4gICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9XQUlUSU5HX0ZJTEVfU1RBVFVTKTtcbiAgICAgIGNvbnN0IGRvY3VtZW50VXBsb2FkOiBGb3JtRGF0YSA9IHRoaXMuYnVpbGREb2N1bWVudFVwbG9hZERhdGEodGhpcy5zZWxlY3RlZEZpbGUpO1xuICAgICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3ModHJ1ZSk7XG5cbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuZG9jdW1lbnRNYW5hZ2VtZW50LnVwbG9hZEZpbGUoZG9jdW1lbnRVcGxvYWQpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXN1bHREb2N1bWVudDogRG9jdW1lbnREYXRhKSA9PiB0aGlzLmhhbmRsZURvY3VtZW50VXBsb2FkUmVzdWx0KHJlc3VsdERvY3VtZW50KSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yKSA9PiB0aGlzLmhhbmRsZURvY3VtZW50VXBsb2FkRXJyb3IoZXJyb3IpXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldFVwbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuRmlsZURpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZVNlbGVjdEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICgodGhpcy5jYXNlRmllbGQudmFsdWUgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUpIHx8XG4gICAgICAodGhpcy5zZWxlY3RlZEZpbGUgJiYgdGhpcy5zZWxlY3RlZEZpbGUubmFtZSkpIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZyh0aGlzLmRpYWxvZ0NvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbkZpbGVEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlclJlcGxhY2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29uZmlybVJlcGxhY2VSZXN1bHQgPT09ICdSZXBsYWNlJykge1xuICAgICAgdGhpcy5vcGVuRmlsZURpYWxvZygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcGxvYWRlZEZpbGVOYW1lKCk6IGFueSB7XG4gICAgaWYgKHRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0obnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9GSUxFX1JFUVVJUkVEKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWxlVmFsaWRhdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBTWFuZGF0b3J5Q29tcG9uZW50KCkpIHtcbiAgICAgIGlmICh0aGlzLmNsaWNrSW5zaWRlVGhlRG9jdW1lbnQgJiYgdGhpcy52YWxpZGF0ZUZvcm1VcGxvYWRlZERvY3VtZW50KCkgJiYgIXRoaXMuaXNVcExvYWRpbmdBRmlsZSgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRpYWxvZyhkaWFsb2dDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERvY3VtZW50RGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5jb25maXJtUmVwbGFjZVJlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMudHJpZ2dlclJlcGxhY2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgd2UgY2FuIGdldCB0aGUgY2FzZSB0eXBlIGFuZCBqdXJpc2RpY3Rpb24gZnJvbSBkaWZmZXJlbnQgc291cmNlc1xuICAvLyBJZiB3ZSBhcmUgcnVubmluZyBhbiBldmVudCwgdGhlIGNhc2VOb3RpZmllciB3aWxsIGhhdmUgdGhlIGN1cnJlbnQgY2FzZVxuICAvLyBJZiB3ZSBhcmUgY3JlYXRpbmcgYSBjYXNlLCB0aGUgY2FzZSBkb2Vzbid0IGV4aXN0IHlldCwgc28gdGhlIGNhc2VOb3RpZmllciBjYW4ndCBoZWxwXG4gIC8vIEluc3RlYWQgd2UgY2FuIHVzZSB0aGUgZXZlbnRUcmlnZ2VyIHRvIGdldCB0aGUgY2FzZSB0eXBlLCBhbmQgdGhlIGp1cmlzZGljdGlvbiBzZXJ2aWNlIHRvXG4gIC8vIGdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGp1cmlzZGljdGlvblxuICBwcml2YXRlIHN1YnNjcmliZVRvQ2FzZURldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGNhc2VEZXRhaWxzOiBDYXNlVmlldykgPT4ge1xuICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBjYXNlRGV0YWlscz8uY2FzZV9pZDtcbiAgICAgICAgdGhpcy5qdXJpc2RpY3Rpb25JZCA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5qdXJpc2RpY3Rpb25TdWJzID0gdGhpcy5qdXJpc2RpY3Rpb25TZXJ2aWNlLnNlbGVjdGVkSnVyaXNkaWN0aW9uQlMuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChqdXJpc2RpY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGp1cmlzZGljdGlvbikge1xuICAgICAgICAgIHRoaXMuanVyaXNkaWN0aW9uSWQgPSBqdXJpc2RpY3Rpb24uaWQ7XG4gICAgICAgICAgaWYgKGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZVR5cGVJZCA9IGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUuaWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBTWFuZGF0b3J5Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgJiYgdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ID09PSBDb25zdGFudHMuTUFOREFUT1JZO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5RmlsZVVwbG9hZE1lc3NhZ2VzKGZpbGVVcGxvYWRNZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPSBmaWxlVXBsb2FkTWVzc2FnZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNVcExvYWRpbmdBRmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPT09IFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfV0FJVElOR19GSUxFX1NUQVRVUztcbiAgfVxuICBwcml2YXRlIHZhbGlkYXRlRm9ybVVwbG9hZGVkRG9jdW1lbnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnVwbG9hZGVkRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCB2YWxpZGF0aW9uID0gIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX1VSTCkudmFsaWQgJiZcbiAgICAgICF0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9CSU5BUllfVVJMKS52YWxpZCAmJlxuICAgICAgIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS52YWxpZDtcblxuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdmFsaWRhdGlvbiA9IHZhbGlkYXRpb24gJiYgIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0hBU0gpLnZhbGlkO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEb2N1bWVudEZvcm0odXJsOiBzdHJpbmcsIGJpbmFyeVVybDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCBkb2N1bWVudEhhc2g/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9VUkwpLnNldFZhbHVlKHVybCk7XG4gICAgdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfQklOQVJZX1VSTCkuc2V0VmFsdWUoYmluYXJ5VXJsKTtcbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9GSUxFTkFNRSkuc2V0VmFsdWUoZmlsZW5hbWUpO1xuICAgIGlmIChkb2N1bWVudEhhc2gpIHtcbiAgICAgIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0hBU0gpLnNldFZhbHVlKGRvY3VtZW50SGFzaCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50OiBGb3JtRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICBkb2N1bWVudF91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICB9O1xuXG4gICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHtcbiAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgLi4ueyBkb2N1bWVudF9oYXNoOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCkgfVxuICAgIH0gOiBkb2N1bWVudEZvcm1Hcm91cDtcblxuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoZG9jdW1lbnRGb3JtR3JvdXApLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvY3VtZW50Rm9ybShkb2N1bWVudDogRm9ybURvY3VtZW50KTogdm9pZCB7XG4gICAgbGV0IGRvY3VtZW50Rm9ybUdyb3VwID0ge1xuICAgICAgZG9jdW1lbnRfdXJsOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfdXJsKSxcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9iaW5hcnlfdXJsKSxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWUpXG4gICAgfTtcblxuICAgIGRvY3VtZW50Rm9ybUdyb3VwID0gdGhpcy5zZWN1cmVNb2RlT24gPyB7XG4gICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgIC4uLnsgZG9jdW1lbnRfaGFzaDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2hhc2gpIH1cbiAgICB9IDogZG9jdW1lbnRGb3JtR3JvdXA7XG5cbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKGRvY3VtZW50Rm9ybUdyb3VwKSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvck1lc3NhZ2UoZXJyb3I6IEh0dHBFcnJvcik6IHN0cmluZyB7XG4gICAgLy8gRG9jdW1lbnQgTWFuYWdlbWVudCB1bmF2YWlsYWJsZVxuICAgIGlmICgwID09PSBlcnJvci5zdGF0dXMgfHwgNTAyID09PSBlcnJvci5zdGF0dXMpIHtcbiAgICAgIHJldHVybiBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX05PVF9BVkFJTEFCTEU7XG4gICAgfVxuXG4gICAgbGV0IGVycm9yTXNnID0gJ0Vycm9yIHVwbG9hZGluZyBmaWxlJztcbiAgICBpZiAoZXJyb3IgJiYgZXJyb3I/LmVycm9yKSB7XG4gICAgICBjb25zdCBmdWxsRXJyb3IgPSBlcnJvci5lcnJvcjtcbiAgICAgIGNvbnN0IHN0YXJ0ID0gZnVsbEVycm9yLmluZGV4T2YoJ3snKTtcbiAgICAgIGlmIChzdGFydCA+PSAwKSB7XG4gICAgICAgIGNvbnN0IGpzb24gPSBmdWxsRXJyb3Iuc3Vic3RyaW5nKHN0YXJ0LCBmdWxsRXJyb3IubGVuZ3RoIC0gMSkuc3BsaXQoJzxFT0w+Jykuam9pbignJyk7XG4gICAgICAgIGNvbnN0IG9iaiA9IEpTT04ucGFyc2UoanNvbik7XG4gICAgICAgIGlmIChvYmogJiYgb2JqPy5lcnJvcikge1xuICAgICAgICAgIGVycm9yTXNnID0gb2JqLmVycm9yO1xuICAgICAgICB9XG5cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGVycm9yTXNnO1xuICB9XG5cbiAgcHJpdmF0ZSBidWlsZERvY3VtZW50VXBsb2FkRGF0YShzZWxlY3RlZEZpbGU6IEZpbGUpOiBGb3JtRGF0YSB7XG4gICAgY29uc3QgZG9jdW1lbnRVcGxvYWQ6IEZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgZG9jdW1lbnRVcGxvYWQuYXBwZW5kKCdmaWxlcycsIHNlbGVjdGVkRmlsZSwgc2VsZWN0ZWRGaWxlLm5hbWUpO1xuICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnY2xhc3NpZmljYXRpb24nLCAnUFVCTElDJyk7XG5cbiAgICBpZiAodGhpcy5hcHBDb25maWcuZ2V0RG9jdW1lbnRTZWN1cmVNb2RlKCkpIHtcbiAgICAgIGNvbnN0IGNhc2VUeXBlSWQgPSB0aGlzLmNhc2VUeXBlSWQgPyB0aGlzLmNhc2VUeXBlSWQgOiBudWxsO1xuICAgICAgY29uc3QgY2FzZVR5cGVKdXJpc2RpY3Rpb25JZCA9IHRoaXMuanVyaXNkaWN0aW9uSWQgPyB0aGlzLmp1cmlzZGljdGlvbklkIDogbnVsbDtcbiAgICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnY2FzZVR5cGVJZCcsIGNhc2VUeXBlSWQpO1xuICAgICAgZG9jdW1lbnRVcGxvYWQuYXBwZW5kKCdqdXJpc2RpY3Rpb25JZCcsIGNhc2VUeXBlSnVyaXNkaWN0aW9uSWQpO1xuICAgIH1cblxuICAgIHJldHVybiBkb2N1bWVudFVwbG9hZDtcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRG9jdW1lbnRVcGxvYWRSZXN1bHQocmVzdWx0OiBEb2N1bWVudERhdGEpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgaWYgKHRoaXMuc2VjdXJlTW9kZU9uKSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRG9jdW1lbnRGb3JtKHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCwgZG9jdW1lbnRfaGFzaDogbnVsbCB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY3JlYXRlRG9jdW1lbnRGb3JtKHsgZG9jdW1lbnRfdXJsOiBudWxsLCBkb2N1bWVudF9iaW5hcnlfdXJsOiBudWxsLCBkb2N1bWVudF9maWxlbmFtZTogbnVsbCB9KTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBkb2N1bWVudCA9IHRoaXMuc2VjdXJlTW9kZU9uID8gcmVzdWx0LmRvY3VtZW50c1swXSA6IHJlc3VsdC5fZW1iZWRkZWQuZG9jdW1lbnRzWzBdO1xuXG4gICAgaWYgKHRoaXMuc2VjdXJlTW9kZU9uKSB7XG4gICAgICB0aGlzLnVwZGF0ZURvY3VtZW50Rm9ybShcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLnNlbGYuaHJlZixcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmLFxuICAgICAgICBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZSxcbiAgICAgICAgZG9jdW1lbnQuaGFzaFRva2VuXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnVwZGF0ZURvY3VtZW50Rm9ybShcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLnNlbGYuaHJlZixcbiAgICAgICAgZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmLFxuICAgICAgICBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3MoZmFsc2UpO1xuXG4gICAgLy8gcmVmcmVzaCByZXBsYWNlZCBkb2N1bWVudCBpbmZvXG4gICAgaWYgKHRoaXMuY2FzZUZpZWxkLnZhbHVlKSB7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF9iaW5hcnlfdXJsID0gZG9jdW1lbnQuX2xpbmtzLmJpbmFyeS5ocmVmO1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUgPSBkb2N1bWVudC5vcmlnaW5hbERvY3VtZW50TmFtZTtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X3VybCA9IGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWY7XG5cbiAgICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF9oYXNoID0gZG9jdW1lbnQuaGFzaFRva2VuO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRG9jdW1lbnRVcGxvYWRFcnJvcihlcnJvcjogSHR0cEVycm9yKTogdm9pZCB7XG4gICAgdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPSB0aGlzLmdldEVycm9yTWVzc2FnZShlcnJvcik7XG4gICAgdGhpcy52YWxpZCA9IGZhbHNlO1xuICAgIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5zZXRVcGxvYWRJblByb2dyZXNzKGZhbHNlKTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZvcm0tZ3JvdXBcIiBbbmdDbGFzc109XCJ7J2Zvcm0tZ3JvdXAtZXJyb3IgYm90dG9tLTMwJzogIXZhbGlkfVwiPlxuICA8bGFiZWwgW2Zvcl09XCJpZCgpXCI+XG4gICAgPHNwYW4gY2xhc3M9XCJmb3JtLWxhYmVsXCIgYXR0ci5hcmlhLWxhYmVsPVwie3tjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsfX1cIj57eyhjYXNlRmllbGQgfCBjY2RGaWVsZExhYmVsKSB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICA8L2xhYmVsPlxuICA8c3BhbiBjbGFzcz1cImZvcm0taGludFwiICpuZ0lmPVwiY2FzZUZpZWxkLmhpbnRfdGV4dFwiPnt7Y2FzZUZpZWxkLmhpbnRfdGV4dCB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIiAqbmdJZj1cImZpbGVVcGxvYWRNZXNzYWdlcyAmJiAhdmFsaWRcIj57e2ZpbGVVcGxvYWRNZXNzYWdlcyB8IHJweFRyYW5zbGF0ZX19PC9zcGFuPlxuXG4gIDxkaXY+XG4gICAgPCEtLTxzcGFuICpuZ0lmPVwiZ2V0VXBsb2FkZWRGaWxlTmFtZSgpXCIgY2xhc3M9XCJ0ZXh0LTE2XCI+RmlsZSBuYW1lOiB7e2dldFVwbG9hZGVkRmlsZU5hbWUoKX19PC9zcGFuPi0tPlxuICAgIDxjY2QtcmVhZC1kb2N1bWVudC1maWVsZCAqbmdJZj1cImNhc2VGaWVsZFwiIFtjYXNlRmllbGRdPVwiY2FzZUZpZWxkXCI+PC9jY2QtcmVhZC1kb2N1bWVudC1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBzdHlsZT0ncG9zaXRpb246cmVsYXRpdmUnPlxuXG4gICAgPGRpdiBbaWRdPVwiY3JlYXRlRWxlbWVudElkKCdmaWxlSW5wdXRXcmFwcGVyJylcIiAoY2xpY2spPVwiZmlsZVNlbGVjdEV2ZW50KClcIj48L2Rpdj5cbiAgICA8aW5wdXQgY2xhc3M9XCJmb3JtLWNvbnRyb2wgYm90dG9tLTMwXCIgW2lkXT1cImlkKClcIiB0eXBlPVwiZmlsZVwiIChrZXlkb3duLlRhYik9XCJmaWxlVmFsaWRhdGlvbnNPblRhYigpXCIgKGNoYW5nZSk9XCJmaWxlQ2hhbmdlRXZlbnQoJGV2ZW50KVwiXG4gICAgICAgICAgIGFjY2VwdD1cInt7Y2FzZUZpZWxkLmZpZWxkX3R5cGUucmVndWxhcl9leHByZXNzaW9ufX1cIiAjZmlsZUlucHV0Lz5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwIGJvdHRvbS0zMFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIGJ1dHRvbi1zZWNvbmRhcnlcIiB0eXBlPVwiYnV0dG9uXCIgYXJpYS1sYWJlbD1cIkNhbmNlbCB1cGxvYWRcIiAoY2xpY2spPVwiY2FuY2VsVXBsb2FkKClcIiBbZGlzYWJsZWRdPVwiIWlzVXBsb2FkSW5Qcm9ncmVzcygpXCI+e3snQ2FuY2VsIHVwbG9hZCcgfCBycHhUcmFuc2xhdGV9fTwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
372
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9jb21wb25lbnRzL3BhbGV0dGUvZG9jdW1lbnQvd3JpdGUtZG9jdW1lbnQtZmllbGQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBcUIsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxlQUFlLElBQUksU0FBUyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFHL0UsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBSXZELE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLG1FQUFtRSxDQUFBO0FBQzdHLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBQzFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUQsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDM0Ys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QUE5QyxpRkFBOEM7UUFFaEcsZUFBeUI7UUFBekIsOENBQXlCO1FBQ3JCLGVBQWtDO1FBQWxDLDJEQUFrQztRQUluQyxlQUFlO1FBQWYsb0NBQWU7UUFLcEMsZUFBMEM7UUFBMUMsNERBQTBDO1FBRXhDLGVBQW9EO1FBQXBELCtFQUFvRDtRQURyQiw2QkFBVztRQUt1RCxlQUFrQztRQUFsQyxvREFBa0M7UUFBQyxlQUFrQztRQUFsQyw2REFBa0M7O3VGREVwSywyQkFBMkI7Y0FKdkMsU0FBUzsyQkFDRSwwQkFBMEI7NE9BWWMsU0FBUztrQkFBMUQsU0FBUzttQkFBQyxXQUFXLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkRlc3Ryb3ksIE9uSW5pdCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgRm9ybUdyb3VwLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nIGFzIE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2xlZ2FjeS1kaWFsb2cnO1xuaW1wb3J0IHsgTWF0RGlhbG9nQ29uZmlnIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQWJzdHJhY3RBcHBDb25maWcgfSBmcm9tICcuLi8uLi8uLi8uLi9hcHAuY29uZmlnJztcbmltcG9ydCB7IENvbnN0YW50cyB9IGZyb20gJy4uLy4uLy4uL2NvbW1vbnMvY29uc3RhbnRzJztcbmltcG9ydCB7IENhc2VWaWV3IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluL2Nhc2Utdmlldy9jYXNlLXZpZXcubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnREYXRhLCBGb3JtRG9jdW1lbnQgfSBmcm9tICcuLi8uLi8uLi9kb21haW4vZG9jdW1lbnQvZG9jdW1lbnQtZGF0YS5tb2RlbCdcbmltcG9ydCB7IEh0dHBFcnJvciB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbi9odHRwL2h0dHAtZXJyb3IubW9kZWwnO1xuaW1wb3J0IHsgRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RvY3VtZW50LW1hbmFnZW1lbnQvZG9jdW1lbnQtbWFuYWdlbWVudC5zZXJ2aWNlJ1xuaW1wb3J0IHsgSnVyaXNkaWN0aW9uU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2p1cmlzZGljdGlvbi9qdXJpc2RpY3Rpb24uc2VydmljZSc7XG5pbXBvcnQgeyBDYXNlTm90aWZpZXIgfSBmcm9tICcuLi8uLi9jYXNlLWVkaXRvci9zZXJ2aWNlcy9jYXNlLm5vdGlmaWVyJztcbmltcG9ydCB7IERvY3VtZW50RGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vZGlhbG9ncy9kb2N1bWVudC1kaWFsb2cvZG9jdW1lbnQtZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBpbml0RGlhbG9nIH0gZnJvbSAnLi4vLi4vaGVscGVycy9pbml0LWRpYWxvZy1oZWxwZXInO1xuaW1wb3J0IHsgQWJzdHJhY3RGaWVsZFdyaXRlQ29tcG9uZW50IH0gZnJvbSAnLi4vYmFzZS1maWVsZC9hYnN0cmFjdC1maWVsZC13cml0ZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmlsZVVwbG9hZFN0YXRlU2VydmljZSB9IGZyb20gJy4vZmlsZS11cGxvYWQtc3RhdGUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2NjZC13cml0ZS1kb2N1bWVudC1maWVsZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi93cml0ZS1kb2N1bWVudC1maWVsZC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEZpZWxkV3JpdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfVVJMID0gJ2RvY3VtZW50X3VybCc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfQklOQVJZX1VSTCA9ICdkb2N1bWVudF9iaW5hcnlfdXJsJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBET0NVTUVOVF9GSUxFTkFNRSA9ICdkb2N1bWVudF9maWxlbmFtZSc7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgRE9DVU1FTlRfSEFTSCA9ICdkb2N1bWVudF9oYXNoJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfRVJST1JfRklMRV9SRVFVSVJFRCA9ICdGaWxlIHJlcXVpcmVkJztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfRVJST1JfTk9UX0FWQUlMQUJMRSA9ICdEb2N1bWVudCB1cGxvYWQgZmFjaWxpdHkgaXMgbm90IGF2YWlsYWJsZSBhdCB0aGUgbW9tZW50JztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBVUExPQURfV0FJVElOR19GSUxFX1NUQVRVUyA9ICdVcGxvYWRpbmcuLi4nO1xuXG4gIEBWaWV3Q2hpbGQoJ2ZpbGVJbnB1dCcsIHsgc3RhdGljOiBmYWxzZSB9KSBwdWJsaWMgZmlsZUlucHV0OiBFbGVtZW50UmVmO1xuXG4gIHB1YmxpYyBzZWxlY3RlZEZpbGU6IEZpbGU7XG4gIHB1YmxpYyB2YWxpZCA9IHRydWU7XG4gIHB1YmxpYyBmaWxlVXBsb2FkTWVzc2FnZXM6IHN0cmluZztcbiAgcHVibGljIGNvbmZpcm1SZXBsYWNlUmVzdWx0OiBzdHJpbmc7XG4gIHB1YmxpYyBjbGlja0luc2lkZVRoZURvY3VtZW50OiBib29sZWFuO1xuXG4gIC8vIHRoZXNlIGFyZSBwdWJsaWMgc28gdGhhdCB0aGV5IGNhbiBiZSBtb2NrZWQgZm9yIHRlc3RzXG4gIHB1YmxpYyBmaWxlVXBsb2FkU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG4gIHB1YmxpYyBkaWFsb2dTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcbiAgcHVibGljIGNhc2VOb3RpZmllclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBwdWJsaWMganVyaXNkaWN0aW9uU3ViczogU3Vic2NyaXB0aW9uO1xuXG4gIHByaXZhdGUgdXBsb2FkZWREb2N1bWVudDogRm9ybUdyb3VwO1xuICBwcml2YXRlIGRpYWxvZ0NvbmZpZzogTWF0RGlhbG9nQ29uZmlnO1xuICBwcml2YXRlIHNlY3VyZU1vZGVPbjogYm9vbGVhbjtcblxuICBwdWJsaWMganVyaXNkaWN0aW9uSWQ6IHN0cmluZztcbiAgcHVibGljIGNhc2VUeXBlSWQ6IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcENvbmZpZzogQWJzdHJhY3RBcHBDb25maWcsXG4gICAgcHJpdmF0ZSByZWFkb25seSBjYXNlTm90aWZpZXI6IENhc2VOb3RpZmllcixcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvY3VtZW50TWFuYWdlbWVudDogRG9jdW1lbnRNYW5hZ2VtZW50U2VydmljZSxcbiAgICBwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2csXG4gICAgcHJpdmF0ZSByZWFkb25seSBmaWxlVXBsb2FkU3RhdGVTZXJ2aWNlOiBGaWxlVXBsb2FkU3RhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkganVyaXNkaWN0aW9uU2VydmljZTogSnVyaXNkaWN0aW9uU2VydmljZSxcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlY3VyZU1vZGVPbiA9IHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZSgpO1xuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdGhpcy5zdWJzY3JpYmVUb0Nhc2VEZXRhaWxzKCk7XG4gICAgfVxuICAgIHRoaXMuZGlhbG9nQ29uZmlnID0gaW5pdERpYWxvZygpO1xuICAgIC8vIEVVSS0zNDAzLiBUaGUgZmllbGQgd2FzIG5vdCBiZWluZyByZWdpc3RlcmVkIHdoZW4gdGhlcmUgd2FzIG5vIHZhbHVlIGFuZCB0aGUgZmllbGRcbiAgICAvLyBpdHNlbGYgd2FzIG5vdCBtYW5kYXRvcnksIHdoaWNoIG1lYW50IHRoYXQgc2hvd19jb25kaXRpb25zIHdvdWxkIG5vdCBiZSBldmFsdWF0ZWQuXG4gICAgLy8gSSd2ZSBjbGVhbmVkIHVwIHRoZSBsb2dpYyBhbmQgaXQncyBub3cgYWx3YXlzIHJlZ2lzdGVyZWQuXG4gICAgbGV0IGRvY3VtZW50ID0gdGhpcy5jYXNlRmllbGQudmFsdWUgfHwgeyBkb2N1bWVudF91cmw6IG51bGwsIGRvY3VtZW50X2JpbmFyeV91cmw6IG51bGwsIGRvY3VtZW50X2ZpbGVuYW1lOiBudWxsIH07XG4gICAgZG9jdW1lbnQgPSB0aGlzLnNlY3VyZU1vZGVPbiAmJiAhZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCA/IHsgLi4uZG9jdW1lbnQsIGRvY3VtZW50X2hhc2g6IG51bGwgfSA6IGRvY3VtZW50O1xuICAgIGlmICh0aGlzLmlzQU1hbmRhdG9yeUNvbXBvbmVudCgpKSB7XG4gICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybVdpdGhWYWxpZGF0b3IoZG9jdW1lbnQpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybShkb2N1bWVudCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgICBpZiAodGhpcy5kaWFsb2dTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICAgIGlmICh0aGlzLmNhc2VOb3RpZmllclN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuanVyaXNkaWN0aW9uU3Vicykge1xuICAgICAgdGhpcy5qdXJpc2RpY3Rpb25TdWJzLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGlzVXBsb2FkSW5Qcm9ncmVzcygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLmlzVXBsb2FkSW5Qcm9ncmVzcygpO1xuICB9XG5cbiAgcHVibGljIGNhbmNlbFVwbG9hZCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5maWxlVXBsb2FkU3Vic2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLmZpbGVVcGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbGVVcGxvYWRTdGF0ZVNlcnZpY2Uuc2V0VXBsb2FkSW5Qcm9ncmVzcyhmYWxzZSk7XG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC52YWx1ZSA9ICcnO1xuICAgIHRoaXMucmVzZXRVcGxvYWQoKTtcbiAgfVxuXG4gIHB1YmxpYyBmaWxlVmFsaWRhdGlvbnNPblRhYigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgaWYgKHRoaXMudmFsaWRhdGVGb3JtVXBsb2FkZWREb2N1bWVudCgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmaWxlQ2hhbmdlRXZlbnQoZmlsZUlucHV0OiBhbnkpOiB2b2lkIHtcblxuICAgIGlmIChmaWxlSW5wdXQudGFyZ2V0LmZpbGVzWzBdKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmlsZSA9IGZpbGVJbnB1dC50YXJnZXQuZmlsZXNbMF07XG4gICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9XQUlUSU5HX0ZJTEVfU1RBVFVTKTtcbiAgICAgIGNvbnN0IGRvY3VtZW50VXBsb2FkOiBGb3JtRGF0YSA9IHRoaXMuYnVpbGREb2N1bWVudFVwbG9hZERhdGEodGhpcy5zZWxlY3RlZEZpbGUpO1xuICAgICAgdGhpcy5maWxlVXBsb2FkU3RhdGVTZXJ2aWNlLnNldFVwbG9hZEluUHJvZ3Jlc3ModHJ1ZSk7XG5cbiAgICAgIHRoaXMuZmlsZVVwbG9hZFN1YnNjcmlwdGlvbiA9IHRoaXMuZG9jdW1lbnRNYW5hZ2VtZW50LnVwbG9hZEZpbGUoZG9jdW1lbnRVcGxvYWQpLnN1YnNjcmliZSh7XG4gICAgICAgIG5leHQ6IChyZXN1bHREb2N1bWVudDogRG9jdW1lbnREYXRhKSA9PiB0aGlzLmhhbmRsZURvY3VtZW50VXBsb2FkUmVzdWx0KHJlc3VsdERvY3VtZW50KSxcbiAgICAgICAgZXJyb3I6IChlcnJvcjogSHR0cEVycm9yKSA9PiB0aGlzLmhhbmRsZURvY3VtZW50VXBsb2FkRXJyb3IoZXJyb3IpXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5yZXNldFVwbG9hZCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvcGVuRmlsZURpYWxvZygpOiB2b2lkIHtcbiAgICB0aGlzLmZpbGVJbnB1dC5uYXRpdmVFbGVtZW50LmNsaWNrKCk7XG4gIH1cblxuICBwdWJsaWMgZmlsZVNlbGVjdEV2ZW50KCk6IHZvaWQge1xuICAgIGlmICgodGhpcy5jYXNlRmllbGQudmFsdWUgJiYgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfZmlsZW5hbWUpIHx8XG4gICAgICAodGhpcy5zZWxlY3RlZEZpbGUgJiYgdGhpcy5zZWxlY3RlZEZpbGUubmFtZSkpIHtcbiAgICAgIHRoaXMub3BlbkRpYWxvZyh0aGlzLmRpYWxvZ0NvbmZpZyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbkZpbGVEaWFsb2coKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdHJpZ2dlclJlcGxhY2UoKTogYm9vbGVhbiB7XG4gICAgaWYgKHRoaXMuY29uZmlybVJlcGxhY2VSZXN1bHQgPT09ICdSZXBsYWNlJykge1xuICAgICAgdGhpcy5vcGVuRmlsZURpYWxvZygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRVcGxvYWRlZEZpbGVOYW1lKCk6IGFueSB7XG4gICAgaWYgKHRoaXMudXBsb2FkZWREb2N1bWVudCkge1xuICAgICAgcmV0dXJuIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS52YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlc2V0VXBsb2FkKCk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWxlID0gbnVsbDtcbiAgICBpZiAodGhpcy5pc0FNYW5kYXRvcnlDb21wb25lbnQoKSkge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0obnVsbCwgbnVsbCwgbnVsbCk7XG4gICAgICB0aGlzLmRpc3BsYXlGaWxlVXBsb2FkTWVzc2FnZXMoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LlVQTE9BRF9FUlJPUl9GSUxFX1JFUVVJUkVEKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWxpZCA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmaWxlVmFsaWRhdGlvbnMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNBTWFuZGF0b3J5Q29tcG9uZW50KCkpIHtcbiAgICAgIGlmICh0aGlzLmNsaWNrSW5zaWRlVGhlRG9jdW1lbnQgJiYgdGhpcy52YWxpZGF0ZUZvcm1VcGxvYWRlZERvY3VtZW50KCkgJiYgIXRoaXMuaXNVcExvYWRpbmdBRmlsZSgpKSB7XG4gICAgICAgIHRoaXMuZGlzcGxheUZpbGVVcGxvYWRNZXNzYWdlcyhXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX0ZJTEVfUkVRVUlSRUQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3BlbkRpYWxvZyhkaWFsb2dDb25maWcpOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKERvY3VtZW50RGlhbG9nQ29tcG9uZW50LCBkaWFsb2dDb25maWcpO1xuICAgIHRoaXMuZGlhbG9nU3Vic2NyaXB0aW9uID0gZGlhbG9nUmVmLmJlZm9yZUNsb3NlZCgpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgdGhpcy5jb25maXJtUmVwbGFjZVJlc3VsdCA9IHJlc3VsdDtcbiAgICAgIHRoaXMudHJpZ2dlclJlcGxhY2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIERlcGVuZGluZyBvbiB0aGUgY29udGV4dCwgd2UgY2FuIGdldCB0aGUgY2FzZSB0eXBlIGFuZCBqdXJpc2RpY3Rpb24gZnJvbSBkaWZmZXJlbnQgc291cmNlc1xuICAvLyBJZiB3ZSBhcmUgcnVubmluZyBhbiBldmVudCwgdGhlIGNhc2VOb3RpZmllciB3aWxsIGhhdmUgdGhlIGN1cnJlbnQgY2FzZVxuICAvLyBJZiB3ZSBhcmUgY3JlYXRpbmcgYSBjYXNlLCB0aGUgY2FzZSBkb2Vzbid0IGV4aXN0IHlldCwgc28gdGhlIGNhc2VOb3RpZmllciBjYW4ndCBoZWxwXG4gIC8vIEluc3RlYWQgd2UgY2FuIHVzZSB0aGUgZXZlbnRUcmlnZ2VyIHRvIGdldCB0aGUgY2FzZSB0eXBlLCBhbmQgdGhlIGp1cmlzZGljdGlvbiBzZXJ2aWNlIHRvXG4gIC8vIGdldCB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGp1cmlzZGljdGlvblxuICBwcml2YXRlIHN1YnNjcmliZVRvQ2FzZURldGFpbHMoKTogdm9pZCB7XG4gICAgdGhpcy5jYXNlTm90aWZpZXJTdWJzY3JpcHRpb24gPSB0aGlzLmNhc2VOb3RpZmllci5jYXNlVmlldy5zdWJzY3JpYmUoe1xuICAgICAgbmV4dDogKGNhc2VEZXRhaWxzOiBDYXNlVmlldykgPT4ge1xuICAgICAgICB0aGlzLmNhc2VUeXBlSWQgPSBjYXNlRGV0YWlscz8uY2FzZV9pZDtcbiAgICAgICAgdGhpcy5qdXJpc2RpY3Rpb25JZCA9IGNhc2VEZXRhaWxzPy5jYXNlX3R5cGU/Lmp1cmlzZGljdGlvbj8uaWQ7XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5qdXJpc2RpY3Rpb25TdWJzID0gdGhpcy5qdXJpc2RpY3Rpb25TZXJ2aWNlLnNlbGVjdGVkSnVyaXNkaWN0aW9uQlMuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChqdXJpc2RpY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKGp1cmlzZGljdGlvbikge1xuICAgICAgICAgIHRoaXMuanVyaXNkaWN0aW9uSWQgPSBqdXJpc2RpY3Rpb24uaWQ7XG4gICAgICAgICAgaWYgKGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUpIHtcbiAgICAgICAgICAgIHRoaXMuY2FzZVR5cGVJZCA9IGp1cmlzZGljdGlvbi5jdXJyZW50Q2FzZVR5cGUuaWRcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNBTWFuZGF0b3J5Q29tcG9uZW50KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmNhc2VGaWVsZC5kaXNwbGF5X2NvbnRleHQgJiYgdGhpcy5jYXNlRmllbGQuZGlzcGxheV9jb250ZXh0ID09PSBDb25zdGFudHMuTUFOREFUT1JZO1xuICB9XG5cbiAgcHJpdmF0ZSBkaXNwbGF5RmlsZVVwbG9hZE1lc3NhZ2VzKGZpbGVVcGxvYWRNZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPSBmaWxlVXBsb2FkTWVzc2FnZTtcbiAgfVxuXG4gIHByaXZhdGUgaXNVcExvYWRpbmdBRmlsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5maWxlVXBsb2FkTWVzc2FnZXMgPT09IFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5VUExPQURfV0FJVElOR19GSUxFX1NUQVRVUztcbiAgfVxuICBwcml2YXRlIHZhbGlkYXRlRm9ybVVwbG9hZGVkRG9jdW1lbnQoKTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnVwbG9hZGVkRG9jdW1lbnQpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGxldCB2YWxpZGF0aW9uID0gIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX1VSTCkudmFsaWQgJiZcbiAgICAgICF0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9CSU5BUllfVVJMKS52YWxpZCAmJlxuICAgICAgIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0ZJTEVOQU1FKS52YWxpZDtcblxuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdmFsaWRhdGlvbiA9IHZhbGlkYXRpb24gJiYgIXRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0hBU0gpLnZhbGlkO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZGF0aW9uO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVEb2N1bWVudEZvcm0odXJsOiBzdHJpbmcsIGJpbmFyeVVybDogc3RyaW5nLCBmaWxlbmFtZTogc3RyaW5nLCBkb2N1bWVudEhhc2g/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9VUkwpLnNldFZhbHVlKHVybCk7XG4gICAgdGhpcy51cGxvYWRlZERvY3VtZW50LmdldChXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuRE9DVU1FTlRfQklOQVJZX1VSTCkuc2V0VmFsdWUoYmluYXJ5VXJsKTtcbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQuZ2V0KFdyaXRlRG9jdW1lbnRGaWVsZENvbXBvbmVudC5ET0NVTUVOVF9GSUxFTkFNRSkuc2V0VmFsdWUoZmlsZW5hbWUpO1xuICAgIGlmIChkb2N1bWVudEhhc2gpIHtcbiAgICAgIHRoaXMudXBsb2FkZWREb2N1bWVudC5nZXQoV3JpdGVEb2N1bWVudEZpZWxkQ29tcG9uZW50LkRPQ1VNRU5UX0hBU0gpLnNldFZhbHVlKGRvY3VtZW50SGFzaCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVEb2N1bWVudEZvcm1XaXRoVmFsaWRhdG9yKGRvY3VtZW50OiBGb3JtRG9jdW1lbnQpOiB2b2lkIHtcbiAgICBsZXQgZG9jdW1lbnRGb3JtR3JvdXAgPSB7XG4gICAgICBkb2N1bWVudF91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfYmluYXJ5X3VybDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2JpbmFyeV91cmwsIFZhbGlkYXRvcnMucmVxdWlyZWQpLFxuICAgICAgZG9jdW1lbnRfZmlsZW5hbWU6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9maWxlbmFtZSwgVmFsaWRhdG9ycy5yZXF1aXJlZClcbiAgICB9O1xuXG4gICAgZG9jdW1lbnRGb3JtR3JvdXAgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHtcbiAgICAgIC4uLmRvY3VtZW50Rm9ybUdyb3VwLFxuICAgICAgLi4ueyBkb2N1bWVudF9oYXNoOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfaGFzaCkgfVxuICAgIH0gOiBkb2N1bWVudEZvcm1Hcm91cDtcblxuICAgIHRoaXMudXBsb2FkZWREb2N1bWVudCA9IHRoaXMucmVnaXN0ZXJDb250cm9sKG5ldyBGb3JtR3JvdXAoZG9jdW1lbnRGb3JtR3JvdXApLCB0cnVlKSBhcyBGb3JtR3JvdXA7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZURvY3VtZW50Rm9ybShkb2N1bWVudDogRm9ybURvY3VtZW50KTogdm9pZCB7XG4gICAgbGV0IGRvY3VtZW50Rm9ybUdyb3VwID0ge1xuICAgICAgZG9jdW1lbnRfdXJsOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfdXJsKSxcbiAgICAgIGRvY3VtZW50X2JpbmFyeV91cmw6IG5ldyBGb3JtQ29udHJvbChkb2N1bWVudC5kb2N1bWVudF9iaW5hcnlfdXJsKSxcbiAgICAgIGRvY3VtZW50X2ZpbGVuYW1lOiBuZXcgRm9ybUNvbnRyb2woZG9jdW1lbnQuZG9jdW1lbnRfZmlsZW5hbWUpXG4gICAgfTtcblxuICAgIGRvY3VtZW50Rm9ybUdyb3VwID0gdGhpcy5zZWN1cmVNb2RlT24gPyB7XG4gICAgICAuLi5kb2N1bWVudEZvcm1Hcm91cCxcbiAgICAgIC4uLnsgZG9jdW1lbnRfaGFzaDogbmV3IEZvcm1Db250cm9sKGRvY3VtZW50LmRvY3VtZW50X2hhc2gpIH1cbiAgICB9IDogZG9jdW1lbnRGb3JtR3JvdXA7XG5cbiAgICB0aGlzLnVwbG9hZGVkRG9jdW1lbnQgPSB0aGlzLnJlZ2lzdGVyQ29udHJvbChuZXcgRm9ybUdyb3VwKGRvY3VtZW50Rm9ybUdyb3VwKSwgdHJ1ZSkgYXMgRm9ybUdyb3VwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFcnJvck1lc3NhZ2UoZXJyb3I6IEh0dHBFcnJvcik6IHN0cmluZyB7XG4gICAgLy8gRG9jdW1lbnQgTWFuYWdlbWVudCB1bmF2YWlsYWJsZVxuICAgIGlmICgwID09PSBlcnJvci5zdGF0dXMgfHwgNTAyID09PSBlcnJvci5zdGF0dXMpIHtcbiAgICAgIHJldHVybiBXcml0ZURvY3VtZW50RmllbGRDb21wb25lbnQuVVBMT0FEX0VSUk9SX05PVF9BVkFJTEFCTEU7XG4gICAgfVxuICAgIHJldHVybiBlcnJvci5lcnJvcjtcbiAgfVxuXG4gIHByaXZhdGUgYnVpbGREb2N1bWVudFVwbG9hZERhdGEoc2VsZWN0ZWRGaWxlOiBGaWxlKTogRm9ybURhdGEge1xuICAgIGNvbnN0IGRvY3VtZW50VXBsb2FkOiBGb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xuICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnZmlsZXMnLCBzZWxlY3RlZEZpbGUsIHNlbGVjdGVkRmlsZS5uYW1lKTtcbiAgICBkb2N1bWVudFVwbG9hZC5hcHBlbmQoJ2NsYXNzaWZpY2F0aW9uJywgJ1BVQkxJQycpO1xuXG4gICAgaWYgKHRoaXMuYXBwQ29uZmlnLmdldERvY3VtZW50U2VjdXJlTW9kZSgpKSB7XG4gICAgICBjb25zdCBjYXNlVHlwZUlkID0gdGhpcy5jYXNlVHlwZUlkID8gdGhpcy5jYXNlVHlwZUlkIDogbnVsbDtcbiAgICAgIGNvbnN0IGNhc2VUeXBlSnVyaXNkaWN0aW9uSWQgPSB0aGlzLmp1cmlzZGljdGlvbklkPyB0aGlzLmp1cmlzZGljdGlvbklkICA6IG51bGw7XG4gICAgICBkb2N1bWVudFVwbG9hZC5hcHBlbmQoJ2Nhc2VUeXBlSWQnLCBjYXNlVHlwZUlkKTtcbiAgICAgIGRvY3VtZW50VXBsb2FkLmFwcGVuZCgnanVyaXNkaWN0aW9uSWQnLCBjYXNlVHlwZUp1cmlzZGljdGlvbklkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gZG9jdW1lbnRVcGxvYWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURvY3VtZW50VXBsb2FkUmVzdWx0KHJlc3VsdDogRG9jdW1lbnREYXRhKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnVwbG9hZGVkRG9jdW1lbnQpIHtcbiAgICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybSh7IGRvY3VtZW50X3VybDogbnVsbCwgZG9jdW1lbnRfYmluYXJ5X3VybDogbnVsbCwgZG9jdW1lbnRfZmlsZW5hbWU6IG51bGwsIGRvY3VtZW50X2hhc2g6IG51bGwgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNyZWF0ZURvY3VtZW50Rm9ybSh7IGRvY3VtZW50X3VybDogbnVsbCwgZG9jdW1lbnRfYmluYXJ5X3VybDogbnVsbCwgZG9jdW1lbnRfZmlsZW5hbWU6IG51bGwgfSk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZG9jdW1lbnQgPSB0aGlzLnNlY3VyZU1vZGVPbiA/IHJlc3VsdC5kb2N1bWVudHNbMF0gOiByZXN1bHQuX2VtYmVkZGVkLmRvY3VtZW50c1swXTtcblxuICAgIGlmICh0aGlzLnNlY3VyZU1vZGVPbikge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0oXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWYsXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZixcbiAgICAgICAgZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWUsXG4gICAgICAgIGRvY3VtZW50Lmhhc2hUb2tlblxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy51cGRhdGVEb2N1bWVudEZvcm0oXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5zZWxmLmhyZWYsXG4gICAgICAgIGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZixcbiAgICAgICAgZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWUsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWQgPSB0cnVlO1xuICAgIHRoaXMuZmlsZVVwbG9hZFN0YXRlU2VydmljZS5zZXRVcGxvYWRJblByb2dyZXNzKGZhbHNlKTtcblxuICAgIC8vIHJlZnJlc2ggcmVwbGFjZWQgZG9jdW1lbnQgaW5mb1xuICAgIGlmICh0aGlzLmNhc2VGaWVsZC52YWx1ZSkge1xuICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfYmluYXJ5X3VybCA9IGRvY3VtZW50Ll9saW5rcy5iaW5hcnkuaHJlZjtcbiAgICAgIHRoaXMuY2FzZUZpZWxkLnZhbHVlLmRvY3VtZW50X2ZpbGVuYW1lID0gZG9jdW1lbnQub3JpZ2luYWxEb2N1bWVudE5hbWU7XG4gICAgICB0aGlzLmNhc2VGaWVsZC52YWx1ZS5kb2N1bWVudF91cmwgPSBkb2N1bWVudC5fbGlua3Muc2VsZi5ocmVmO1xuXG4gICAgICBpZiAodGhpcy5zZWN1cmVNb2RlT24pIHtcbiAgICAgICAgdGhpcy5jYXNlRmllbGQudmFsdWUuZG9jdW1lbnRfaGFzaCA9IGRvY3VtZW50Lmhhc2hUb2tlbjtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZURvY3VtZW50VXBsb2FkRXJyb3IoZXJyb3I6IEh0dHBFcnJvcik6IHZvaWQge1xuICAgIHRoaXMuZmlsZVVwbG9hZE1lc3NhZ2VzID0gdGhpcy5nZXRFcnJvck1lc3NhZ2UoZXJyb3IpO1xuICAgIHRoaXMudmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmZpbGVVcGxvYWRTdGF0ZVNlcnZpY2Uuc2V0VXBsb2FkSW5Qcm9ncmVzcyhmYWxzZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmb3JtLWdyb3VwXCIgW25nQ2xhc3NdPVwieydmb3JtLWdyb3VwLWVycm9yIGJvdHRvbS0zMCc6ICF2YWxpZH1cIj5cbiAgPGxhYmVsIFtmb3JdPVwiaWQoKVwiPlxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1sYWJlbFwiIGF0dHIuYXJpYS1sYWJlbD1cInt7Y2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbH19XCI+e3soY2FzZUZpZWxkIHwgY2NkRmllbGRMYWJlbCkgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgPC9sYWJlbD5cbiAgPHNwYW4gY2xhc3M9XCJmb3JtLWhpbnRcIiAqbmdJZj1cImNhc2VGaWVsZC5oaW50X3RleHRcIj57e2Nhc2VGaWVsZC5oaW50X3RleHQgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cbiAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCIgKm5nSWY9XCJmaWxlVXBsb2FkTWVzc2FnZXMgJiYgIXZhbGlkXCI+e3tmaWxlVXBsb2FkTWVzc2FnZXMgfCBycHhUcmFuc2xhdGV9fTwvc3Bhbj5cblxuICA8ZGl2PlxuICAgIDwhLS08c3BhbiAqbmdJZj1cImdldFVwbG9hZGVkRmlsZU5hbWUoKVwiIGNsYXNzPVwidGV4dC0xNlwiPkZpbGUgbmFtZToge3tnZXRVcGxvYWRlZEZpbGVOYW1lKCl9fTwvc3Bhbj4tLT5cbiAgICA8Y2NkLXJlYWQtZG9jdW1lbnQtZmllbGQgKm5nSWY9XCJjYXNlRmllbGRcIiBbY2FzZUZpZWxkXT1cImNhc2VGaWVsZFwiPjwvY2NkLXJlYWQtZG9jdW1lbnQtZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgc3R5bGU9J3Bvc2l0aW9uOnJlbGF0aXZlJz5cblxuICAgIDxkaXYgW2lkXT1cImNyZWF0ZUVsZW1lbnRJZCgnZmlsZUlucHV0V3JhcHBlcicpXCIgKGNsaWNrKT1cImZpbGVTZWxlY3RFdmVudCgpXCI+PC9kaXY+XG4gICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sIGJvdHRvbS0zMFwiIFtpZF09XCJpZCgpXCIgdHlwZT1cImZpbGVcIiAoa2V5ZG93bi5UYWIpPVwiZmlsZVZhbGlkYXRpb25zT25UYWIoKVwiIChjaGFuZ2UpPVwiZmlsZUNoYW5nZUV2ZW50KCRldmVudClcIlxuICAgICAgICAgICBhY2NlcHQ9XCJ7e2Nhc2VGaWVsZC5maWVsZF90eXBlLnJlZ3VsYXJfZXhwcmVzc2lvbn19XCIgI2ZpbGVJbnB1dC8+XG4gIDwvZGl2PlxuPC9kaXY+XG48ZGl2IGNsYXNzPVwiZm9ybS1ncm91cCBib3R0b20tMzBcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBidXR0b24tc2Vjb25kYXJ5XCIgdHlwZT1cImJ1dHRvblwiIGFyaWEtbGFiZWw9XCJDYW5jZWwgdXBsb2FkXCIgKGNsaWNrKT1cImNhbmNlbFVwbG9hZCgpXCIgW2Rpc2FibGVkXT1cIiFpc1VwbG9hZEluUHJvZ3Jlc3MoKVwiPnt7J0NhbmNlbCB1cGxvYWQnIHwgcnB4VHJhbnNsYXRlfX08L2J1dHRvbj5cbjwvZGl2PlxuIl19
@@ -138,7 +138,9 @@ export class ReadFieldsFilterPipe {
138
138
  })
139
139
  .map(f => {
140
140
  if (!f.display_context) {
141
- f.display_context = complexField.display_context;
141
+ if (FieldsUtils.isValidDisplayContext(complexField.display_context)) {
142
+ f.display_context = complexField.display_context;
143
+ }
142
144
  }
143
145
  if (setupHidden) {
144
146
  ReadFieldsFilterPipe.evaluateConditionalShow(f, checkConditionalShowAgainst, path, formGroupAvailable, complexField.id);
@@ -167,4 +169,4 @@ ReadFieldsFilterPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdReadFi
167
169
  name: 'ccdReadFieldsFilter'
168
170
  }]
169
171
  }], null, null); })();
170
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NkLXJlYWQtZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2NjZC1yZWFkLWZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0I7O09BRUc7SUFDSyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsTUFBZSxFQUFFLDJCQUFvQztRQUNuRyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztZQUM3RixPQUFPLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxNQUFN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LEVBQUU7Z0JBQ3RCLENBQUMsQ0FBQyxlQUFlLEdBQUcsWUFBWSxDQUFDLGVBQWUsQ0FBQzthQUNsRDtZQUNELElBQUksV0FBVyxFQUFFO2dCQUNmLG9CQUFvQixDQUFDLHVCQUF1QixDQUFDLENBQUMsRUFBRSwyQkFBMkIsRUFBRSxJQUFJLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3pIO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUM7YUFDRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxTQUFTLElBQUksb0JBQW9CLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLDJCQUEyQixDQUFDLENBQUMsQ0FBQztJQUNoSCxDQUFDOztBQXpLdUIsaUNBQVksR0FBRztJQUNyQyxTQUFTO0lBQ1QsSUFBSTtJQUNKLEVBQUU7SUFDRixFQUFFO0NBQ0gsQ0FBQztBQUVzQix1Q0FBa0IsR0FBRyxDQUFDLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxjQUFjLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztBQUVwRyxpQ0FBWSxHQUFHO0lBQ3JDLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQyxjQUFjO0lBQzVDLFVBQVUsRUFBRSxvQkFBb0IsQ0FBQyxpQkFBaUI7Q0FDbkQsQ0FBQzt3RkFkUyxvQkFBb0I7Z0dBQXBCLG9CQUFvQjt1RkFBcEIsb0JBQW9CO2NBSGhDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUscUJBQXFCO2FBQzVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IHBsYWluVG9DbGFzc0Zyb21FeGlzdCB9IGZyb20gJ2NsYXNzLXRyYW5zZm9ybWVyJztcbmltcG9ydCB7IFNob3dDb25kaXRpb24gfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2NvbmRpdGlvbmFsLXNob3cvZG9tYWluL2NvbmRpdGlvbmFsLXNob3cubW9kZWwnO1xuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RSZWFkRmllbGRzRmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBSZWFkRmllbGRzRmlsdGVyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEVNUFRZX1ZBTFVFUyA9IFtcbiAgICB1bmRlZmluZWQsXG4gICAgbnVsbCxcbiAgICAnJyxcbiAgICB7fVxuICBdO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IEFMV0FZU19OVUxMX0ZJRUxEUyA9IFsnQ2FzZVBheW1lbnRIaXN0b3J5Vmlld2VyJywgJ1dheXNUb1BheScsICdGbGFnTGF1bmNoZXInLCAnQ29tcG9uZW50TGF1bmNoZXInXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBORVNURURfVFlQRVMgPSB7XG4gICAgQ29tcGxleDogUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbXBsZXgsXG4gICAgQ29sbGVjdGlvbjogUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbGxlY3Rpb25cbiAgfTtcblxuICAvKipcbiAgICogQ29tcGxleCB0eXBlIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uIHNpbXBsZSBmaWVsZCBkZXNjZW5kYW50IHdpdGggYSB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb21wbGV4KGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlcz86IG9iamVjdCwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0Pzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgdmFsdWVzID0gdmFsdWVzIHx8IHt9O1xuICAgIGNvbnN0IHR5cGUgPSBmaWVsZC5maWVsZF90eXBlO1xuICAgIGNvbnN0IHZhbHVlID0gUmVhZEZpZWxkc0ZpbHRlclBpcGUuZ2V0VmFsdWUoZmllbGQsIHZhbHVlcyk7XG5cbiAgICBjb25zdCBoYXNDaGlsZHJlbldpdGhWYWx1ZSA9IHR5cGUuY29tcGxleF9maWVsZHMuZmluZChmID0+IHtcbiAgICAgIGNvbnN0IHdpbGxLZWVwID0gUmVhZEZpZWxkc0ZpbHRlclBpcGUua2VlcEZpZWxkKGYsIHZhbHVlLCB0cnVlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpO1xuICAgICAgcmV0dXJuIHdpbGxLZWVwICYmIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmV2YWx1YXRlQ29uZGl0aW9uYWxTaG93KGYsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCkuaGlkZGVuICE9PSB0cnVlO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuICEhaGFzQ2hpbGRyZW5XaXRoVmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbGlkQ29sbGVjdGlvbihmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZXM/OiBvYmplY3QsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdD86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIC8vIGlmIGZpZWxkIGlzIGNvbGxlY3Rpb24gYW5kIGl0IGhhcyBjb21wbGV4L2NvbGxlY3Rpb24gY2hpbGQgZmllbGQ7IHBhcmVudCBmaWVsZCBkb2VzbnQgaGF2ZSB2YWx1ZSBkZWZpbmVkXG4gICAgaWYgKCFBcnJheS5pc0FycmF5KGZpZWxkLnZhbHVlKSAmJiB2YWx1ZXMgJiYgdmFsdWVzLmhhc093blByb3BlcnR5KGZpZWxkLmlkKSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGNvbnN0IGlzTm90RW1wdHkgPSBBcnJheS5pc0FycmF5KGZpZWxkLnZhbHVlKSAmJiBmaWVsZC52YWx1ZS5sZW5ndGggPiAwO1xuICAgIGlmIChpc05vdEVtcHR5ICYmIGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLnR5cGUgPT09ICdDb21wbGV4Jykge1xuICAgICAgcmV0dXJuICEhZmllbGQudmFsdWUuZmluZChpdGVtID0+IHtcbiAgICAgICAgY29uc3QgY29tcGxleEZpZWxkID0gcGxhaW5Ub0NsYXNzRnJvbUV4aXN0KG5ldyBDYXNlRmllbGQoKSwge1xuICAgICAgICAgIGlkOiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZS5pZCxcbiAgICAgICAgICBmaWVsZF90eXBlOiBmaWVsZC5maWVsZF90eXBlLmNvbGxlY3Rpb25fZmllbGRfdHlwZSxcbiAgICAgICAgICB2YWx1ZTogaXRlbS52YWx1ZSxcbiAgICAgICAgICBsYWJlbDogbnVsbCxcbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcGxleChjb21wbGV4RmllbGQsIHVuZGVmaW5lZCwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gaXNOb3RFbXB0eTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5FTVBUWV9WQUxVRVMuaW5kZXhPZih2YWx1ZSkgIT09IC0xXG4gICAgICB8fCB2YWx1ZS5sZW5ndGggPT09IDA7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc0NvbXBvdW5kKGZpZWxkOiBDYXNlRmllbGQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gUmVhZEZpZWxkc0ZpbHRlclBpcGUuTkVTVEVEX1RZUEVTW2ZpZWxkLmZpZWxkX3R5cGUudHlwZV07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbGlkQ29tcG91bmQoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWU/OiBvYmplY3QsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdD86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0NvbXBvdW5kKGZpZWxkKVxuICAgICAgICAgICAgJiYgUmVhZEZpZWxkc0ZpbHRlclBpcGUuTkVTVEVEX1RZUEVTW2ZpZWxkLmZpZWxkX3R5cGUudHlwZV0oZmllbGQsIHZhbHVlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMga2VlcEZpZWxkKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlPzogb2JqZWN0LCBpZ25vcmVMYWJlbHMgPSBmYWxzZSwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0Pzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgLy8gV2Ugc2hvdWxkbid0IGRpdGNoIGxhYmVscy5cbiAgICBpZiAoIWlnbm9yZUxhYmVscyAmJiBmaWVsZC5maWVsZF90eXBlLnR5cGUgPT09ICdMYWJlbCcgJiYgKGZpZWxkLmxhYmVsIHx8ICcnKS5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgLy8gV2UgYWxzbyBzaG91bGRuJ3QgZGl0Y2ggZmllbGRzIHRoYXQgd2lsbCBhbHdheXMgY29tZSBiYWNrIHdpdGggYSBudWxsIHZhbHVlLlxuICAgIGlmICh0aGlzLkFMV0FZU19OVUxMX0ZJRUxEUy5pbmRleE9mKGZpZWxkLmZpZWxkX3R5cGUudHlwZSkgIT09IC0xKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICB2YWx1ZSA9IHZhbHVlIHx8IHt9O1xuXG4gICAgaWYgKFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzQ29tcG91bmQoZmllbGQpKSB7XG4gICAgICByZXR1cm4gUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbXBvdW5kKGZpZWxkLCB2YWx1ZSwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0KTtcbiAgICB9XG5cbiAgICByZXR1cm4gIVJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkoZmllbGQudmFsdWUpXG4gICAgICB8fCAhUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZVtmaWVsZC5pZF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VmFsdWUoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWVzOiBhbnksIGluZGV4PzogbnVtYmVyKTogYW55IHtcbiAgICBpZiAoUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eShmaWVsZC52YWx1ZSkpIHtcbiAgICAgIGxldCB2YWx1ZTogYW55O1xuICAgICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZXNbaW5kZXhdLnZhbHVlW2ZpZWxkLmlkXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWVzW2ZpZWxkLmlkXTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gZmllbGQudmFsdWU7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBldmFsdWF0ZUNvbmRpdGlvbmFsU2hvdyhmaWVsZDogQ2FzZUZpZWxkLCBmb3JtVmFsdWU6IGFueSwgcGF0aD86IHN0cmluZyxcbiAgICBmb3JtR3JvdXBBdmFpbGFibGU/OiBib29sZWFuLCBmaWVsZElkPzogc3RyaW5nKTogQ2FzZUZpZWxkIHtcbiAgICBpZiAoZmllbGQuZGlzcGxheV9jb250ZXh0ID09PSAnSElEREVOJykge1xuICAgICAgZmllbGQuaGlkZGVuID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKGZpZWxkLnNob3dfY29uZGl0aW9uKSB7XG4gICAgICBsZXQgY29uZDogU2hvd0NvbmRpdGlvbjtcbiAgICAgIGlmIChmaWVsZElkICYmIGZpZWxkLnNob3dfY29uZGl0aW9uLmluZGV4T2YoYCR7ZmllbGRJZH0uYCkgPiAtMSAmJiAhZm9ybUdyb3VwQXZhaWxhYmxlICYmICEhT2JqZWN0LmtleXMoZm9ybVZhbHVlKS5sZW5ndGgpIHtcbiAgICAgICAgY29uc3Qgc2VhcmNoID0gYCR7ZmllbGRJZH0uYDtcbiAgICAgICAgY29uc3Qgc2VhcmNoUmVnRXhwID0gbmV3IFJlZ0V4cChzZWFyY2gsICdnJyk7XG4gICAgICAgIGNvbnN0IHJlcGxhY2VXaXRoID0gJyc7XG4gICAgICAgIGNvbmQgPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKGZpZWxkLnNob3dfY29uZGl0aW9uLnJlcGxhY2Uoc2VhcmNoUmVnRXhwLCByZXBsYWNlV2l0aCkpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgY29uZCA9IFNob3dDb25kaXRpb24uZ2V0SW5zdGFuY2UoZmllbGQuc2hvd19jb25kaXRpb24pO1xuICAgICAgfVxuICAgICAgZmllbGQuaGlkZGVuID0gIWNvbmQubWF0Y2goZm9ybVZhbHVlLCBwYXRoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgZmllbGQuaGlkZGVuID0gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0IGZpZWxkcyBoYXZpbmcgbm8gZGF0YSB0byBkaXNwbGF5IGFuZCBoYXJtb25pc2UgZmllbGQgdmFsdWVzIGNvbWluZyBwYXJlbnQncyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0oXG4gICAgY29tcGxleEZpZWxkOiBDYXNlRmllbGQsIGtlZXBFbXB0eT86IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyLFxuICAgIHNldHVwSGlkZGVuID0gZmFsc2UsIGZvcm1Hcm91cD86IEZvcm1Hcm91cCB8IEFic3RyYWN0Q29udHJvbCwgcGF0aD86IHN0cmluZywgaWRQcmVmaXg/OiBzdHJpbmcpOiBDYXNlRmllbGRbXSB7XG4gICAgaWYgKCFjb21wbGV4RmllbGQgfHwgIWNvbXBsZXhGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzID0gY29tcGxleEZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMgfHwgW107XG4gICAgY29uc3QgdmFsdWVzID0gY29tcGxleEZpZWxkLnZhbHVlIHx8IHt9O1xuICAgIGxldCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3Q6IGFueSA9IHZhbHVlcztcbiAgICBsZXQgZm9ybUdyb3VwQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgaWYgKGZvcm1Hcm91cCkge1xuICAgICAgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0ID0gZm9ybUdyb3VwLnZhbHVlID8gZm9ybUdyb3VwLnBhcmVudC5nZXRSYXdWYWx1ZSgpLmRhdGEgOiBmb3JtR3JvdXA7XG4gICAgICBmb3JtR3JvdXBBdmFpbGFibGUgPSB0cnVlO1xuICAgICAgaWYgKGlkUHJlZml4ICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgaWYgKGlkUHJlZml4ICE9PSAnJykge1xuICAgICAgICAgIGNvbnN0IGZpZWxkSWQgPSBpZFByZWZpeC5zdWJzdHJpbmcoMCwgaWRQcmVmaXguaW5kZXhPZignXycpKTtcbiAgICAgICAgICBpZiAoY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0W2ZpZWxkSWRdKSB7XG4gICAgICAgICAgICBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QgPSB2YWx1ZXM7XG4gICAgICAgICAgICBmb3JtR3JvdXBBdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0ID0gT2JqZWN0LmFzc2lnbihjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QsIHZhbHVlcyk7XG4gICAgICAgICAgZm9ybUdyb3VwQXZhaWxhYmxlID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gZmllbGRzXG4gICAgICAubWFwKGYgPT4ge1xuICAgICAgICBjb25zdCBjbG9uZSA9IEZpZWxkc1V0aWxzLmNsb25lT2JqZWN0KGYpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmdldFZhbHVlKGYsIHZhbHVlcywgaW5kZXgpO1xuICAgICAgICBpZiAoIVJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgY2xvbmUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xvbmU7XG4gICAgICB9KVxuICAgICAgLm1hcChmID0+IHtcbiAgICAgICAgaWYgKCFmLmRpc3BsYXlfY29udGV4dCkge1xuICAgICAgICAgIGYuZGlzcGxheV9jb250ZXh0ID0gY29tcGxleEZpZWxkLmRpc3BsYXlfY29udGV4dDtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc2V0dXBIaWRkZW4pIHtcbiAgICAgICAgICBSZWFkRmllbGRzRmlsdGVyUGlwZS5ldmFsdWF0ZUNvbmRpdGlvbmFsU2hvdyhmLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QsIHBhdGgsIGZvcm1Hcm91cEF2YWlsYWJsZSwgY29tcGxleEZpZWxkLmlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZjtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKGYgPT4ga2VlcEVtcHR5IHx8IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmtlZXBGaWVsZChmLCB1bmRlZmluZWQsIGZhbHNlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpKTtcbiAgfVxufVxuIl19
172
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2NkLXJlYWQtZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2NjZC1yZWFkLWZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUdwRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFDaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ3JFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLakUsTUFBTSxPQUFPLG9CQUFvQjtJQWdCL0I7O09BRUc7SUFDSyxNQUFNLENBQUMsY0FBYyxDQUFDLEtBQWdCLEVBQUUsTUFBZSxFQUFFLDJCQUFvQztRQUNuRyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsVUFBVSxDQUFDO1FBQzlCLE1BQU0sS0FBSyxHQUFHLG9CQUFvQixDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFM0QsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUN4RCxNQUFNLFFBQVEsR0FBRyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztZQUM3RixPQUFPLFFBQVEsSUFBSSxvQkFBb0IsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxNQUFNLEtBQUssSUFBSSxDQUFDO1FBQ2xILENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxLQUFnQixFQUFFLE1BQWUsRUFBRSwyQkFBb0M7UUFDdEcsMkdBQTJHO1FBQzNHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLElBQUksTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDNUUsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztRQUN4RSxJQUFJLFVBQVUsSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLElBQUksS0FBSyxTQUFTLEVBQUU7WUFDM0UsT0FBTyxDQUFDLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQy9CLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLElBQUksU0FBUyxFQUFFLEVBQUU7b0JBQzFELEVBQUUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQixDQUFDLEVBQUU7b0JBQzdDLFVBQVUsRUFBRSxLQUFLLENBQUMsVUFBVSxDQUFDLHFCQUFxQjtvQkFDbEQsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLO29CQUNqQixLQUFLLEVBQUUsSUFBSTtpQkFDWixDQUFDLENBQUM7Z0JBQ0gsT0FBTyxvQkFBb0IsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1lBQ25HLENBQUMsQ0FBQyxDQUFDO1NBQ0o7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFVO1FBQy9CLE9BQU8sb0JBQW9CLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7ZUFDekQsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVPLE1BQU0sQ0FBQyxVQUFVLENBQUMsS0FBZ0I7UUFDeEMsT0FBTyxvQkFBb0IsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRU8sTUFBTSxDQUFDLGVBQWUsQ0FBQyxLQUFnQixFQUFFLEtBQWMsRUFBRSwyQkFBb0M7UUFDbkcsT0FBTyxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDO2VBQ2xDLG9CQUFvQixDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxLQUFLLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNqSCxDQUFDO0lBRU8sTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEtBQWMsRUFBRSxZQUFZLEdBQUcsS0FBSyxFQUFFLDJCQUFvQztRQUNuSCw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFlBQVksSUFBSSxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksS0FBSyxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDeEYsT0FBTyxJQUFJLENBQUM7U0FDYjtRQUNELCtFQUErRTtRQUMvRSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRTtZQUNqRSxPQUFPLElBQUksQ0FBQztTQUNiO1FBRUQsS0FBSyxHQUFHLEtBQUssSUFBSSxFQUFFLENBQUM7UUFFcEIsSUFBSSxvQkFBb0IsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQUU7WUFDMUMsT0FBTyxvQkFBb0IsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO1NBQ3hGO1FBRUQsT0FBTyxDQUFDLG9CQUFvQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO2VBQzVDLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRU8sTUFBTSxDQUFDLFFBQVEsQ0FBQyxLQUFnQixFQUFFLE1BQVcsRUFBRSxLQUFjO1FBQ25FLElBQUksb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM3QyxJQUFJLEtBQVUsQ0FBQztZQUNmLElBQUksS0FBSyxJQUFJLENBQUMsRUFBRTtnQkFDZCxLQUFLLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDdkM7aUJBQU07Z0JBQ0wsS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDMUI7WUFFRCxPQUFPLEtBQUssQ0FBQztTQUNkO1FBQ0QsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDO0lBQ3JCLENBQUM7SUFFTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsS0FBZ0IsRUFBRSxTQUFjLEVBQUUsSUFBYSxFQUNwRixrQkFBNEIsRUFBRSxPQUFnQjtRQUM5QyxJQUFJLEtBQUssQ0FBQyxlQUFlLEtBQUssUUFBUSxFQUFFO1lBQ3RDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1NBQ3JCO2FBQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxFQUFFO1lBQy9CLElBQUksSUFBbUIsQ0FBQztZQUN4QixJQUFJLE9BQU8sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxHQUFHLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3pILE1BQU0sTUFBTSxHQUFHLEdBQUcsT0FBTyxHQUFHLENBQUM7Z0JBQzdCLE1BQU0sWUFBWSxHQUFHLElBQUksTUFBTSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQztnQkFDN0MsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO2dCQUN2QixJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQzthQUMzRjtpQkFBTTtnQkFDTCxJQUFJLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7YUFDeEQ7WUFDRCxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUM7U0FDN0M7YUFBTTtZQUNMLEtBQUssQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO1FBQ0QsT0FBTyxLQUFLLENBQUM7SUFDZixDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQ2QsWUFBdUIsRUFBRSxTQUFtQixFQUFFLEtBQWMsRUFDNUQsV0FBVyxHQUFHLEtBQUssRUFBRSxTQUF1QyxFQUFFLElBQWEsRUFBRSxRQUFpQjtRQUM5RixJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsWUFBWSxDQUFDLFVBQVUsRUFBRTtZQUM3QyxPQUFPLEVBQUUsQ0FBQztTQUNYO1FBRUQsTUFBTSxNQUFNLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUFDO1FBQzVELE1BQU0sTUFBTSxHQUFHLFlBQVksQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO1FBQ3hDLElBQUksMkJBQTJCLEdBQVEsTUFBTSxDQUFDO1FBQzlDLElBQUksa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLElBQUksU0FBUyxFQUFFO1lBQ2IsMkJBQTJCLEdBQUcsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDMUIsSUFBSSxRQUFRLEtBQUssU0FBUyxFQUFFO2dCQUMxQixJQUFJLFFBQVEsS0FBSyxFQUFFLEVBQUU7b0JBQ25CLE1BQU0sT0FBTyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztvQkFDN0QsSUFBSSwyQkFBMkIsQ0FBQyxPQUFPLENBQUMsRUFBRTt3QkFDeEMsMkJBQTJCLEdBQUcsTUFBTSxDQUFDO3dCQUNyQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7cUJBQzVCO2lCQUNGO3FCQUFNO29CQUNMLDJCQUEyQixHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLENBQUM7b0JBQ2pGLGtCQUFrQixHQUFHLEtBQUssQ0FBQztpQkFDNUI7YUFDRjtTQUNGO1FBRUQsT0FBTyxNQUFNO2FBQ1YsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1AsTUFBTSxLQUFLLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QyxNQUFNLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUN4QyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUNyQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO2FBQ0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLENBQUMsQ0FBQyxlQUFlLEVBQUU7Z0JBQ3RCLElBQUksV0FBVyxDQUFDLHFCQUFxQixDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRTtvQkFDbkUsQ0FBQyxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO2lCQUNsRDthQUNGO1lBQ0QsSUFBSSxXQUFXLEVBQUU7Z0JBQ2Ysb0JBQW9CLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxFQUFFLDJCQUEyQixFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxZQUFZLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDekg7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQzthQUNELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLFNBQVMsSUFBSSxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsMkJBQTJCLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7O0FBM0t1QixpQ0FBWSxHQUFHO0lBQ3JDLFNBQVM7SUFDVCxJQUFJO0lBQ0osRUFBRTtJQUNGLEVBQUU7Q0FDSCxDQUFDO0FBRXNCLHVDQUFrQixHQUFHLENBQUMsMEJBQTBCLEVBQUUsV0FBVyxFQUFFLGNBQWMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0FBRXBHLGlDQUFZLEdBQUc7SUFDckMsT0FBTyxFQUFFLG9CQUFvQixDQUFDLGNBQWM7SUFDNUMsVUFBVSxFQUFFLG9CQUFvQixDQUFDLGlCQUFpQjtDQUNuRCxDQUFDO3dGQWRTLG9CQUFvQjtnR0FBcEIsb0JBQW9CO3VGQUFwQixvQkFBb0I7Y0FIaEMsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxxQkFBcUI7YUFDNUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbnRyb2wsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuaW1wb3J0IHsgcGxhaW5Ub0NsYXNzRnJvbUV4aXN0IH0gZnJvbSAnY2xhc3MtdHJhbnNmb3JtZXInO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5pbXBvcnQgeyBDYXNlRmllbGQgfSBmcm9tICcuLi8uLi9kb21haW4vZGVmaW5pdGlvbi9jYXNlLWZpZWxkLm1vZGVsJztcbmltcG9ydCB7IEZpZWxkc1V0aWxzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZmllbGRzL2ZpZWxkcy51dGlscyc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2NjZFJlYWRGaWVsZHNGaWx0ZXInXG59KVxuZXhwb3J0IGNsYXNzIFJlYWRGaWVsZHNGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRU1QVFlfVkFMVUVTID0gW1xuICAgIHVuZGVmaW5lZCxcbiAgICBudWxsLFxuICAgICcnLFxuICAgIHt9XG4gIF07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgQUxXQVlTX05VTExfRklFTERTID0gWydDYXNlUGF5bWVudEhpc3RvcnlWaWV3ZXInLCAnV2F5c1RvUGF5JywgJ0ZsYWdMYXVuY2hlcicsICdDb21wb25lbnRMYXVuY2hlciddO1xuXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE5FU1RFRF9UWVBFUyA9IHtcbiAgICBDb21wbGV4OiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcGxleCxcbiAgICBDb2xsZWN0aW9uOiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29sbGVjdGlvblxuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wbGV4IHR5cGUgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb24gc2ltcGxlIGZpZWxkIGRlc2NlbmRhbnQgd2l0aCBhIHZhbHVlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZENvbXBsZXgoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWVzPzogb2JqZWN0LCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3Q/OiBvYmplY3QpOiBib29sZWFuIHtcbiAgICB2YWx1ZXMgPSB2YWx1ZXMgfHwge307XG4gICAgY29uc3QgdHlwZSA9IGZpZWxkLmZpZWxkX3R5cGU7XG4gICAgY29uc3QgdmFsdWUgPSBSZWFkRmllbGRzRmlsdGVyUGlwZS5nZXRWYWx1ZShmaWVsZCwgdmFsdWVzKTtcblxuICAgIGNvbnN0IGhhc0NoaWxkcmVuV2l0aFZhbHVlID0gdHlwZS5jb21wbGV4X2ZpZWxkcy5maW5kKGYgPT4ge1xuICAgICAgY29uc3Qgd2lsbEtlZXAgPSBSZWFkRmllbGRzRmlsdGVyUGlwZS5rZWVwRmllbGQoZiwgdmFsdWUsIHRydWUsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCk7XG4gICAgICByZXR1cm4gd2lsbEtlZXAgJiYgUmVhZEZpZWxkc0ZpbHRlclBpcGUuZXZhbHVhdGVDb25kaXRpb25hbFNob3coZiwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0KS5oaWRkZW4gIT09IHRydWU7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gISFoYXNDaGlsZHJlbldpdGhWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb2xsZWN0aW9uKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlcz86IG9iamVjdCwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0Pzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgLy8gaWYgZmllbGQgaXMgY29sbGVjdGlvbiBhbmQgaXQgaGFzIGNvbXBsZXgvY29sbGVjdGlvbiBjaGlsZCBmaWVsZDsgcGFyZW50IGZpZWxkIGRvZXNudCBoYXZlIHZhbHVlIGRlZmluZWRcbiAgICBpZiAoIUFycmF5LmlzQXJyYXkoZmllbGQudmFsdWUpICYmIHZhbHVlcyAmJiB2YWx1ZXMuaGFzT3duUHJvcGVydHkoZmllbGQuaWQpKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgY29uc3QgaXNOb3RFbXB0eSA9IEFycmF5LmlzQXJyYXkoZmllbGQudmFsdWUpICYmIGZpZWxkLnZhbHVlLmxlbmd0aCA+IDA7XG4gICAgaWYgKGlzTm90RW1wdHkgJiYgZmllbGQuZmllbGRfdHlwZS5jb2xsZWN0aW9uX2ZpZWxkX3R5cGUudHlwZSA9PT0gJ0NvbXBsZXgnKSB7XG4gICAgICByZXR1cm4gISFmaWVsZC52YWx1ZS5maW5kKGl0ZW0gPT4ge1xuICAgICAgICBjb25zdCBjb21wbGV4RmllbGQgPSBwbGFpblRvQ2xhc3NGcm9tRXhpc3QobmV3IENhc2VGaWVsZCgpLCB7XG4gICAgICAgICAgaWQ6IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLmlkLFxuICAgICAgICAgIGZpZWxkX3R5cGU6IGZpZWxkLmZpZWxkX3R5cGUuY29sbGVjdGlvbl9maWVsZF90eXBlLFxuICAgICAgICAgIHZhbHVlOiBpdGVtLnZhbHVlLFxuICAgICAgICAgIGxhYmVsOiBudWxsLFxuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzVmFsaWRDb21wbGV4KGNvbXBsZXhGaWVsZCwgdW5kZWZpbmVkLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBpc05vdEVtcHR5O1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNFbXB0eSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLkVNUFRZX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTFcbiAgICAgIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzQ29tcG91bmQoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5ORVNURURfVFlQRVNbZmllbGQuZmllbGRfdHlwZS50eXBlXTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb21wb3VuZChmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZT86IG9iamVjdCwgY2hlY2tDb25kaXRpb25hbFNob3dBZ2FpbnN0Pzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmlzQ29tcG91bmQoZmllbGQpXG4gICAgICAgICAgICAmJiBSZWFkRmllbGRzRmlsdGVyUGlwZS5ORVNURURfVFlQRVNbZmllbGQuZmllbGRfdHlwZS50eXBlXShmaWVsZCwgdmFsdWUsIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBrZWVwRmllbGQoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWU/OiBvYmplY3QsIGlnbm9yZUxhYmVscyA9IGZhbHNlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3Q/OiBvYmplY3QpOiBib29sZWFuIHtcbiAgICAvLyBXZSBzaG91bGRuJ3QgZGl0Y2ggbGFiZWxzLlxuICAgIGlmICghaWdub3JlTGFiZWxzICYmIGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0xhYmVsJyAmJiAoZmllbGQubGFiZWwgfHwgJycpLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICAvLyBXZSBhbHNvIHNob3VsZG4ndCBkaXRjaCBmaWVsZHMgdGhhdCB3aWxsIGFsd2F5cyBjb21lIGJhY2sgd2l0aCBhIG51bGwgdmFsdWUuXG4gICAgaWYgKHRoaXMuQUxXQVlTX05VTExfRklFTERTLmluZGV4T2YoZmllbGQuZmllbGRfdHlwZS50eXBlKSAhPT0gLTEpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgfHwge307XG5cbiAgICBpZiAoUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNDb21wb3VuZChmaWVsZCkpIHtcbiAgICAgIHJldHVybiBSZWFkRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcG91bmQoZmllbGQsIHZhbHVlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpO1xuICAgIH1cblxuICAgIHJldHVybiAhUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eShmaWVsZC52YWx1ZSlcbiAgICAgIHx8ICFSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0VtcHR5KHZhbHVlW2ZpZWxkLmlkXSk7XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRWYWx1ZShmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZXM6IGFueSwgaW5kZXg/OiBudW1iZXIpOiBhbnkge1xuICAgIGlmIChSZWFkRmllbGRzRmlsdGVyUGlwZS5pc0VtcHR5KGZpZWxkLnZhbHVlKSkge1xuICAgICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF0udmFsdWVbZmllbGQuaWRdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZXNbZmllbGQuaWRdO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuICAgIHJldHVybiBmaWVsZC52YWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGV2YWx1YXRlQ29uZGl0aW9uYWxTaG93KGZpZWxkOiBDYXNlRmllbGQsIGZvcm1WYWx1ZTogYW55LCBwYXRoPzogc3RyaW5nLFxuICAgIGZvcm1Hcm91cEF2YWlsYWJsZT86IGJvb2xlYW4sIGZpZWxkSWQ/OiBzdHJpbmcpOiBDYXNlRmllbGQge1xuICAgIGlmIChmaWVsZC5kaXNwbGF5X2NvbnRleHQgPT09ICdISURERU4nKSB7XG4gICAgICBmaWVsZC5oaWRkZW4gPSB0cnVlO1xuICAgIH0gZWxzZSBpZiAoZmllbGQuc2hvd19jb25kaXRpb24pIHtcbiAgICAgIGxldCBjb25kOiBTaG93Q29uZGl0aW9uO1xuICAgICAgaWYgKGZpZWxkSWQgJiYgZmllbGQuc2hvd19jb25kaXRpb24uaW5kZXhPZihgJHtmaWVsZElkfS5gKSA+IC0xICYmICFmb3JtR3JvdXBBdmFpbGFibGUgJiYgISFPYmplY3Qua2V5cyhmb3JtVmFsdWUpLmxlbmd0aCkge1xuICAgICAgICBjb25zdCBzZWFyY2ggPSBgJHtmaWVsZElkfS5gO1xuICAgICAgICBjb25zdCBzZWFyY2hSZWdFeHAgPSBuZXcgUmVnRXhwKHNlYXJjaCwgJ2cnKTtcbiAgICAgICAgY29uc3QgcmVwbGFjZVdpdGggPSAnJztcbiAgICAgICAgY29uZCA9IFNob3dDb25kaXRpb24uZ2V0SW5zdGFuY2UoZmllbGQuc2hvd19jb25kaXRpb24ucmVwbGFjZShzZWFyY2hSZWdFeHAsIHJlcGxhY2VXaXRoKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBjb25kID0gU2hvd0NvbmRpdGlvbi5nZXRJbnN0YW5jZShmaWVsZC5zaG93X2NvbmRpdGlvbik7XG4gICAgICB9XG4gICAgICBmaWVsZC5oaWRkZW4gPSAhY29uZC5tYXRjaChmb3JtVmFsdWUsIHBhdGgpO1xuICAgIH0gZWxzZSB7XG4gICAgICBmaWVsZC5oaWRkZW4gPSBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIGZpZWxkO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBvdXQgZmllbGRzIGhhdmluZyBubyBkYXRhIHRvIGRpc3BsYXkgYW5kIGhhcm1vbmlzZSBmaWVsZCB2YWx1ZXMgY29taW5nIHBhcmVudCdzIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHRyYW5zZm9ybShcbiAgICBjb21wbGV4RmllbGQ6IENhc2VGaWVsZCwga2VlcEVtcHR5PzogYm9vbGVhbiwgaW5kZXg/OiBudW1iZXIsXG4gICAgc2V0dXBIaWRkZW4gPSBmYWxzZSwgZm9ybUdyb3VwPzogRm9ybUdyb3VwIHwgQWJzdHJhY3RDb250cm9sLCBwYXRoPzogc3RyaW5nLCBpZFByZWZpeD86IHN0cmluZyk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAoIWNvbXBsZXhGaWVsZCB8fCAhY29tcGxleEZpZWxkLmZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHMgPSBjb21wbGV4RmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb21wbGV4RmllbGQudmFsdWUgfHwge307XG4gICAgbGV0IGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdDogYW55ID0gdmFsdWVzO1xuICAgIGxldCBmb3JtR3JvdXBBdmFpbGFibGUgPSBmYWxzZTtcbiAgICBpZiAoZm9ybUdyb3VwKSB7XG4gICAgICBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QgPSBmb3JtR3JvdXAudmFsdWUgPyBmb3JtR3JvdXAucGFyZW50LmdldFJhd1ZhbHVlKCkuZGF0YSA6IGZvcm1Hcm91cDtcbiAgICAgIGZvcm1Hcm91cEF2YWlsYWJsZSA9IHRydWU7XG4gICAgICBpZiAoaWRQcmVmaXggIT09IHVuZGVmaW5lZCkge1xuICAgICAgICBpZiAoaWRQcmVmaXggIT09ICcnKSB7XG4gICAgICAgICAgY29uc3QgZmllbGRJZCA9IGlkUHJlZml4LnN1YnN0cmluZygwLCBpZFByZWZpeC5pbmRleE9mKCdfJykpO1xuICAgICAgICAgIGlmIChjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3RbZmllbGRJZF0pIHtcbiAgICAgICAgICAgIGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCA9IHZhbHVlcztcbiAgICAgICAgICAgIGZvcm1Hcm91cEF2YWlsYWJsZSA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QgPSBPYmplY3QuYXNzaWduKGNoZWNrQ29uZGl0aW9uYWxTaG93QWdhaW5zdCwgdmFsdWVzKTtcbiAgICAgICAgICBmb3JtR3JvdXBBdmFpbGFibGUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBmaWVsZHNcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lID0gRmllbGRzVXRpbHMuY2xvbmVPYmplY3QoZik7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUmVhZEZpZWxkc0ZpbHRlclBpcGUuZ2V0VmFsdWUoZiwgdmFsdWVzLCBpbmRleCk7XG4gICAgICAgIGlmICghUmVhZEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICBjbG9uZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH0pXG4gICAgICAubWFwKGYgPT4ge1xuICAgICAgICBpZiAoIWYuZGlzcGxheV9jb250ZXh0KSB7XG4gICAgICAgICAgaWYgKEZpZWxkc1V0aWxzLmlzVmFsaWREaXNwbGF5Q29udGV4dChjb21wbGV4RmllbGQuZGlzcGxheV9jb250ZXh0KSkge1xuICAgICAgICAgICAgZi5kaXNwbGF5X2NvbnRleHQgPSBjb21wbGV4RmllbGQuZGlzcGxheV9jb250ZXh0O1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoc2V0dXBIaWRkZW4pIHtcbiAgICAgICAgICBSZWFkRmllbGRzRmlsdGVyUGlwZS5ldmFsdWF0ZUNvbmRpdGlvbmFsU2hvdyhmLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QsIHBhdGgsIGZvcm1Hcm91cEF2YWlsYWJsZSwgY29tcGxleEZpZWxkLmlkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZjtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKGYgPT4ga2VlcEVtcHR5IHx8IFJlYWRGaWVsZHNGaWx0ZXJQaXBlLmtlZXBGaWVsZChmLCB1bmRlZmluZWQsIGZhbHNlLCBjaGVja0NvbmRpdGlvbmFsU2hvd0FnYWluc3QpKTtcbiAgfVxufVxuIl19
@@ -77,7 +77,9 @@ export class FieldsFilterPipe {
77
77
  .filter(f => keepEmpty || FieldsFilterPipe.keepField(f))
78
78
  .map(f => {
79
79
  if (!f.display_context) {
80
- f.display_context = complexField.display_context;
80
+ if (FieldsUtils.isValidDisplayContext(complexField.display_context)) {
81
+ f.display_context = complexField.display_context;
82
+ }
81
83
  }
82
84
  return f;
83
85
  });
@@ -100,4 +102,4 @@ FieldsFilterPipe.ɵpipe = /*@__PURE__*/ i0.ɵɵdefinePipe({ name: "ccdFieldsFilt
100
102
  name: 'ccdFieldsFilter'
101
103
  }]
102
104
  }], null, null); })();
103
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2ZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFHaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCOztPQUVHO0lBQ0ssTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLE1BQWU7UUFDN0QsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBVTtRQUMvQixPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2VBQ3JELEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxNQUFNLENBQUMsVUFB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QkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUNyQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsQ0FBQyxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUMsZUFBZSxDQUFDO2FBQ2xEO1lBQ0QsT0FBTyxDQUFDLENBQUM7UUFDWCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7O0FBckd1Qiw2QkFBWSxHQUFHO0lBQ3JDLFNBQVM7SUFDVCxJQUFJO0lBQ0osRUFBRTtJQUNGLEVBQUU7Q0FDSCxDQUFDO0FBRXNCLDZCQUFZLEdBQUc7SUFDckMsT0FBTyxFQUFFLGdCQUFnQixDQUFDLGNBQWM7Q0FDekMsQ0FBQztnRkFYUyxnQkFBZ0I7d0ZBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBSDVCLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsaUJBQWlCO2FBQ3hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGlwZSwgUGlwZVRyYW5zZm9ybSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2hvd0NvbmRpdGlvbiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvY29uZGl0aW9uYWwtc2hvdy9kb21haW4vY29uZGl0aW9uYWwtc2hvdy5tb2RlbCc7XG5cbmltcG9ydCB7IENhc2VGaWVsZCB9IGZyb20gJy4uLy4uL2RvbWFpbi9kZWZpbml0aW9uL2Nhc2UtZmllbGQubW9kZWwnO1xuaW1wb3J0IHsgRmllbGRzVXRpbHMgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9maWVsZHMvZmllbGRzLnV0aWxzJztcblxuQFBpcGUoe1xuICBuYW1lOiAnY2NkRmllbGRzRmlsdGVyJ1xufSlcbmV4cG9ydCBjbGFzcyBGaWVsZHNGaWx0ZXJQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgRU1QVFlfVkFMVUVTID0gW1xuICAgIHVuZGVmaW5lZCxcbiAgICBudWxsLFxuICAgICcnLFxuICAgIHt9XG4gIF07XG5cbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTkVTVEVEX1RZUEVTID0ge1xuICAgIENvbXBsZXg6IEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbXBsZXhcbiAgfTtcblxuICAvKipcbiAgICogQ29tcGxleCB0eXBlIHNob3VsZCBoYXZlIGF0IGxlYXN0IG9uIHNpbXBsZSBmaWVsZCBkZXNjZW5kYW50IHdpdGggYSB2YWx1ZS5cbiAgICovXG4gIHByaXZhdGUgc3RhdGljIGlzVmFsaWRDb21wbGV4KGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlcz86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIHZhbHVlcyA9IHZhbHVlcyB8fCB7fTtcbiAgICBjb25zdCB0eXBlID0gZmllbGQuZmllbGRfdHlwZTtcbiAgICBjb25zdCB2YWx1ZSA9IEZpZWxkc0ZpbHRlclBpcGUuZ2V0VmFsdWUoZmllbGQsIHZhbHVlcyk7XG5cbiAgICBjb25zdCBoYXNDaGlsZHJlbldpdGhWYWx1ZSA9IHR5cGUuY29tcGxleF9maWVsZHMuZmluZChmID0+IHtcbiAgICAgIHJldHVybiBGaWVsZHNGaWx0ZXJQaXBlLmtlZXBGaWVsZChmLCB2YWx1ZSk7XG4gICAgfSk7XG5cbiAgICByZXR1cm4gISFoYXNDaGlsZHJlbldpdGhWYWx1ZTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGaWVsZHNGaWx0ZXJQaXBlLkVNUFRZX1ZBTFVFUy5pbmRleE9mKHZhbHVlKSAhPT0gLTFcbiAgICAgIHx8IHZhbHVlLmxlbmd0aCA9PT0gMDtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGlzQ29tcG91bmQoZmllbGQ6IENhc2VGaWVsZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBGaWVsZHNGaWx0ZXJQaXBlLk5FU1RFRF9UWVBFU1tmaWVsZC5maWVsZF90eXBlLnR5cGVdO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZENvbXBvdW5kKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlPzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUuaXNDb21wb3VuZChmaWVsZClcbiAgICAgICAgICAgICYmIEZpZWxkc0ZpbHRlclBpcGUuTkVTVEVEX1RZUEVTW2ZpZWxkLmZpZWxkX3R5cGUudHlwZV0oZmllbGQsIHZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGtlZXBGaWVsZChmaWVsZDogQ2FzZUZpZWxkLCB2YWx1ZT86IG9iamVjdCk6IGJvb2xlYW4ge1xuICAgIC8vIFdlIHNob3VsZG4ndCBkaXRjaCBsYWJlbHMuXG4gICAgaWYgKGZpZWxkLmZpZWxkX3R5cGUudHlwZSA9PT0gJ0xhYmVsJyAmJiAoZmllbGQubGFiZWwgfHwgJycpLmxlbmd0aCA+IDApIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIHZhbHVlID0gdmFsdWUgfHwge307XG5cbiAgICBpZiAoRmllbGRzRmlsdGVyUGlwZS5pc0NvbXBvdW5kKGZpZWxkKSkge1xuICAgICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUuaXNWYWxpZENvbXBvdW5kKGZpZWxkLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgcmV0dXJuICFGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkoZmllbGQudmFsdWUpXG4gICAgICAgICAgICAgIHx8ICFGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkodmFsdWVbZmllbGQuaWRdKTtcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldFZhbHVlKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlczogYW55LCBpbmRleD86IG51bWJlcik6IGFueSB7XG4gICAgbGV0IHZhbHVlOiBhbnk7XG4gICAgaWYgKGluZGV4ID49IDAgKSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlc1tpbmRleF0udmFsdWVbZmllbGQuaWRdO1xuICAgIH0gZWxzZSB7XG4gICAgICB2YWx1ZSA9IHZhbHVlc1tmaWVsZC5pZF07XG4gICAgfVxuICAgIHJldHVybiBGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkoZmllbGQudmFsdWUpID8gdmFsdWUgOiBmaWVsZC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBGaWx0ZXIgb3V0IGZpZWxkcyBoYXZpbmcgbm8gZGF0YSB0byBkaXNwbGF5IGFuZCBoYXJtb25pc2UgZmllbGQgdmFsdWVzIGNvbWluZyBwYXJlbnQncyB2YWx1ZS5cbiAgICovXG4gIHB1YmxpYyB0cmFuc2Zvcm0oY29tcGxleEZpZWxkOiBDYXNlRmllbGQsIGtlZXBFbXB0eT86IGJvb2xlYW4sIGluZGV4PzogbnVtYmVyLCBzdHJpcEhpZGRlbj0gZmFsc2UpOiBDYXNlRmllbGRbXSB7XG4gICAgaWYgKCFjb21wbGV4RmllbGQgfHwgIWNvbXBsZXhGaWVsZC5maWVsZF90eXBlKSB7XG4gICAgICByZXR1cm4gW107XG4gICAgfVxuXG4gICAgY29uc3QgZmllbGRzID0gY29tcGxleEZpZWxkLmZpZWxkX3R5cGUuY29tcGxleF9maWVsZHMgfHwgW107XG4gICAgY29uc3QgdmFsdWVzID0gY29tcGxleEZpZWxkLnZhbHVlIHx8IHt9O1xuICAgIGNvbnN0IGNoZWNrQ29uZGl0aW9uc0FnYWluc3QgPSB7IFtjb21wbGV4RmllbGQuaWRdOiB2YWx1ZXMgfTtcblxuICAgIHJldHVybiBmaWVsZHNcbiAgICAgIC5maWx0ZXIoIGYgPT4ge1xuICAgICAgICBpZiAoc3RyaXBIaWRkZW4gJiYgZi5zaG93X2NvbmRpdGlvbikge1xuICAgICAgICAgIGNvbnN0IGNvbmQgPSBTaG93Q29uZGl0aW9uLmdldEluc3RhbmNlKGYuc2hvd19jb25kaXRpb24pO1xuICAgICAgICAgIHJldHVybiBjb25kLm1hdGNoKGNoZWNrQ29uZGl0aW9uc0FnYWluc3QpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfSlcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGNvbnN0IGNsb25lID0gRmllbGRzVXRpbHMuY2xvbmVPYmplY3QoZik7XG4gICAgICAgIGNvbnN0IHZhbHVlID0gRmllbGRzRmlsdGVyUGlwZS5nZXRWYWx1ZShmLCB2YWx1ZXMsIGluZGV4KTtcbiAgICAgICAgaWYgKCFGaWVsZHNGaWx0ZXJQaXBlLmlzRW1wdHkodmFsdWUpKSB7XG4gICAgICAgICAgY2xvbmUudmFsdWUgPSB2YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gY2xvbmU7XG4gICAgICB9KVxuICAgICAgLmZpbHRlcihmID0+IGtlZXBFbXB0eSB8fCBGaWVsZHNGaWx0ZXJQaXBlLmtlZXBGaWVsZChmKSlcbiAgICAgIC5tYXAoZiA9PiB7XG4gICAgICAgIGlmICghZi5kaXNwbGF5X2NvbnRleHQpIHtcbiAgICAgICAgICBmLmRpc3BsYXlfY29udGV4dCA9IGNvbXBsZXhGaWVsZC5kaXNwbGF5X2NvbnRleHQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KTtcbiAgfVxufVxuIl19
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmllbGRzLWZpbHRlci5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2NkLWNhc2UtdWktdG9vbGtpdC9zcmMvbGliL3NoYXJlZC9waXBlcy9jb21wbGV4L2ZpZWxkcy1maWx0ZXIucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNwRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUVBQWlFLENBQUM7QUFHaEcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLG9DQUFvQyxDQUFDOztBQUtqRSxNQUFNLE9BQU8sZ0JBQWdCO0lBYTNCOztPQUVHO0lBQ0ssTUFBTSxDQUFDLGNBQWMsQ0FBQyxLQUFnQixFQUFFLE1BQWU7UUFDN0QsTUFBTSxHQUFHLE1BQU0sSUFBSSxFQUFFLENBQUM7UUFDdEIsTUFBTSxJQUFJLEdBQUcsS0FBSyxDQUFDLFVBQVUsQ0FBQztRQUM5QixNQUFNLEtBQUssR0FBRyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXZELE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDeEQsT0FBTyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQzlDLENBQUMsQ0FBQyxDQUFDO1FBRUgsT0FBTyxDQUFDLENBQUMsb0JBQW9CLENBQUM7SUFDaEMsQ0FBQztJQUVPLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBVTtRQUMvQixPQUFPLGdCQUFnQixDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDO2VBQ3JELEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFTyxNQUFNLENBQUMsVUFB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QkFBZ0IsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNwQyxLQUFLLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzthQUNyQjtZQUNELE9BQU8sS0FBSyxDQUFDO1FBQ2YsQ0FBQyxDQUFDO2FBQ0QsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsU0FBUyxJQUFJLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQzthQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDUCxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFBRTtnQkFDdEIsSUFBSSxXQUFXLENBQUMscUJBQXFCLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxFQUFFO29CQUNuRSxDQUFDLENBQUMsZUFBZSxHQUFHLFlBQVksQ0FBQyxlQUFlLENBQUM7aUJBQ2xEO2FBQ0Y7WUFDRCxPQUFPLENBQUMsQ0FBQztRQUNYLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQzs7QUF2R3VCLDZCQUFZLEdBQUc7SUFDckMsU0FBUztJQUNULElBQUk7SUFDSixFQUFFO0lBQ0YsRUFBRTtDQUNILENBQUM7QUFFc0IsNkJBQVksR0FBRztJQUNyQyxPQUFPLEVBQUUsZ0JBQWdCLENBQUMsY0FBYztDQUN6QyxDQUFDO2dGQVhTLGdCQUFnQjt3RkFBaEIsZ0JBQWdCO3VGQUFoQixnQkFBZ0I7Y0FINUIsSUFBSTtlQUFDO2dCQUNKLElBQUksRUFBRSxpQkFBaUI7YUFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTaG93Q29uZGl0aW9uIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9jb25kaXRpb25hbC1zaG93L2RvbWFpbi9jb25kaXRpb25hbC1zaG93Lm1vZGVsJztcblxuaW1wb3J0IHsgQ2FzZUZpZWxkIH0gZnJvbSAnLi4vLi4vZG9tYWluL2RlZmluaXRpb24vY2FzZS1maWVsZC5tb2RlbCc7XG5pbXBvcnQgeyBGaWVsZHNVdGlscyB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2ZpZWxkcy9maWVsZHMudXRpbHMnO1xuXG5AUGlwZSh7XG4gIG5hbWU6ICdjY2RGaWVsZHNGaWx0ZXInXG59KVxuZXhwb3J0IGNsYXNzIEZpZWxkc0ZpbHRlclBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBFTVBUWV9WQUxVRVMgPSBbXG4gICAgdW5kZWZpbmVkLFxuICAgIG51bGwsXG4gICAgJycsXG4gICAge31cbiAgXTtcblxuICBwcml2YXRlIHN0YXRpYyByZWFkb25seSBORVNURURfVFlQRVMgPSB7XG4gICAgQ29tcGxleDogRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcGxleFxuICB9O1xuXG4gIC8qKlxuICAgKiBDb21wbGV4IHR5cGUgc2hvdWxkIGhhdmUgYXQgbGVhc3Qgb24gc2ltcGxlIGZpZWxkIGRlc2NlbmRhbnQgd2l0aCBhIHZhbHVlLlxuICAgKi9cbiAgcHJpdmF0ZSBzdGF0aWMgaXNWYWxpZENvbXBsZXgoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWVzPzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgdmFsdWVzID0gdmFsdWVzIHx8IHt9O1xuICAgIGNvbnN0IHR5cGUgPSBmaWVsZC5maWVsZF90eXBlO1xuICAgIGNvbnN0IHZhbHVlID0gRmllbGRzRmlsdGVyUGlwZS5nZXRWYWx1ZShmaWVsZCwgdmFsdWVzKTtcblxuICAgIGNvbnN0IGhhc0NoaWxkcmVuV2l0aFZhbHVlID0gdHlwZS5jb21wbGV4X2ZpZWxkcy5maW5kKGYgPT4ge1xuICAgICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUua2VlcEZpZWxkKGYsIHZhbHVlKTtcbiAgICB9KTtcblxuICAgIHJldHVybiAhIWhhc0NoaWxkcmVuV2l0aFZhbHVlO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNFbXB0eSh2YWx1ZTogYW55KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUuRU1QVFlfVkFMVUVTLmluZGV4T2YodmFsdWUpICE9PSAtMVxuICAgICAgfHwgdmFsdWUubGVuZ3RoID09PSAwO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgaXNDb21wb3VuZChmaWVsZDogQ2FzZUZpZWxkKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUuTkVTVEVEX1RZUEVTW2ZpZWxkLmZpZWxkX3R5cGUudHlwZV07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBpc1ZhbGlkQ29tcG91bmQoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWU/OiBvYmplY3QpOiBib29sZWFuIHtcbiAgICByZXR1cm4gRmllbGRzRmlsdGVyUGlwZS5pc0NvbXBvdW5kKGZpZWxkKVxuICAgICAgICAgICAgJiYgRmllbGRzRmlsdGVyUGlwZS5ORVNURURfVFlQRVNbZmllbGQuZmllbGRfdHlwZS50eXBlXShmaWVsZCwgdmFsdWUpO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMga2VlcEZpZWxkKGZpZWxkOiBDYXNlRmllbGQsIHZhbHVlPzogb2JqZWN0KTogYm9vbGVhbiB7XG4gICAgLy8gV2Ugc2hvdWxkbid0IGRpdGNoIGxhYmVscy5cbiAgICBpZiAoZmllbGQuZmllbGRfdHlwZS50eXBlID09PSAnTGFiZWwnICYmIChmaWVsZC5sYWJlbCB8fCAnJykubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgdmFsdWUgPSB2YWx1ZSB8fCB7fTtcblxuICAgIGlmIChGaWVsZHNGaWx0ZXJQaXBlLmlzQ29tcG91bmQoZmllbGQpKSB7XG4gICAgICByZXR1cm4gRmllbGRzRmlsdGVyUGlwZS5pc1ZhbGlkQ29tcG91bmQoZmllbGQsIHZhbHVlKTtcbiAgICB9XG5cbiAgICByZXR1cm4gIUZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eShmaWVsZC52YWx1ZSlcbiAgICAgICAgICAgICAgfHwgIUZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZVtmaWVsZC5pZF0pO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0VmFsdWUoZmllbGQ6IENhc2VGaWVsZCwgdmFsdWVzOiBhbnksIGluZGV4PzogbnVtYmVyKTogYW55IHtcbiAgICBsZXQgdmFsdWU6IGFueTtcbiAgICBpZiAoaW5kZXggPj0gMCApIHtcbiAgICAgIHZhbHVlID0gdmFsdWVzW2luZGV4XS52YWx1ZVtmaWVsZC5pZF07XG4gICAgfSBlbHNlIHtcbiAgICAgIHZhbHVlID0gdmFsdWVzW2ZpZWxkLmlkXTtcbiAgICB9XG4gICAgcmV0dXJuIEZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eShmaWVsZC52YWx1ZSkgPyB2YWx1ZSA6IGZpZWxkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEZpbHRlciBvdXQgZmllbGRzIGhhdmluZyBubyBkYXRhIHRvIGRpc3BsYXkgYW5kIGhhcm1vbmlzZSBmaWVsZCB2YWx1ZXMgY29taW5nIHBhcmVudCdzIHZhbHVlLlxuICAgKi9cbiAgcHVibGljIHRyYW5zZm9ybShjb21wbGV4RmllbGQ6IENhc2VGaWVsZCwga2VlcEVtcHR5PzogYm9vbGVhbiwgaW5kZXg/OiBudW1iZXIsIHN0cmlwSGlkZGVuPSBmYWxzZSk6IENhc2VGaWVsZFtdIHtcbiAgICBpZiAoIWNvbXBsZXhGaWVsZCB8fCAhY29tcGxleEZpZWxkLmZpZWxkX3R5cGUpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBmaWVsZHMgPSBjb21wbGV4RmllbGQuZmllbGRfdHlwZS5jb21wbGV4X2ZpZWxkcyB8fCBbXTtcbiAgICBjb25zdCB2YWx1ZXMgPSBjb21wbGV4RmllbGQudmFsdWUgfHwge307XG4gICAgY29uc3QgY2hlY2tDb25kaXRpb25zQWdhaW5zdCA9IHsgW2NvbXBsZXhGaWVsZC5pZF06IHZhbHVlcyB9O1xuXG4gICAgcmV0dXJuIGZpZWxkc1xuICAgICAgLmZpbHRlciggZiA9PiB7XG4gICAgICAgIGlmIChzdHJpcEhpZGRlbiAmJiBmLnNob3dfY29uZGl0aW9uKSB7XG4gICAgICAgICAgY29uc3QgY29uZCA9IFNob3dDb25kaXRpb24uZ2V0SW5zdGFuY2UoZi5zaG93X2NvbmRpdGlvbik7XG4gICAgICAgICAgcmV0dXJuIGNvbmQubWF0Y2goY2hlY2tDb25kaXRpb25zQWdhaW5zdCk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9KVxuICAgICAgLm1hcChmID0+IHtcbiAgICAgICAgY29uc3QgY2xvbmUgPSBGaWVsZHNVdGlscy5jbG9uZU9iamVjdChmKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBGaWVsZHNGaWx0ZXJQaXBlLmdldFZhbHVlKGYsIHZhbHVlcywgaW5kZXgpO1xuICAgICAgICBpZiAoIUZpZWxkc0ZpbHRlclBpcGUuaXNFbXB0eSh2YWx1ZSkpIHtcbiAgICAgICAgICBjbG9uZS52YWx1ZSA9IHZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBjbG9uZTtcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKGYgPT4ga2VlcEVtcHR5IHx8IEZpZWxkc0ZpbHRlclBpcGUua2VlcEZpZWxkKGYpKVxuICAgICAgLm1hcChmID0+IHtcbiAgICAgICAgaWYgKCFmLmRpc3BsYXlfY29udGV4dCkge1xuICAgICAgICAgIGlmIChGaWVsZHNVdGlscy5pc1ZhbGlkRGlzcGxheUNvbnRleHQoY29tcGxleEZpZWxkLmRpc3BsYXlfY29udGV4dCkpIHtcbiAgICAgICAgICAgIGYuZGlzcGxheV9jb250ZXh0ID0gY29tcGxleEZpZWxkLmRpc3BsYXlfY29udGV4dDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGY7XG4gICAgICB9KTtcbiAgfVxufVxuIl19