@wavemaker/app-ng-runtime 11.5.0-next.24746 → 11.5.0-next.26222

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.
Files changed (37) hide show
  1. app-ng-runtime/components/base/bundles/index.umd.js +23 -9
  2. app-ng-runtime/components/base/esm2020/widgets/common/base/base-field-validations.mjs +12 -9
  3. app-ng-runtime/components/base/esm2020/widgets/common/partial-param/partial-param.directive.mjs +13 -2
  4. app-ng-runtime/components/base/fesm2015/index.mjs +23 -9
  5. app-ng-runtime/components/base/fesm2015/index.mjs.map +1 -1
  6. app-ng-runtime/components/base/fesm2020/index.mjs +23 -9
  7. app-ng-runtime/components/base/fesm2020/index.mjs.map +1 -1
  8. app-ng-runtime/components/base/widgets/common/base/base-field-validations.d.ts +1 -0
  9. app-ng-runtime/components/base/widgets/common/partial-param/partial-param.directive.d.ts +1 -0
  10. app-ng-runtime/components/data/list/bundles/index.umd.js +8 -6
  11. app-ng-runtime/components/data/list/esm2020/list-item.directive.mjs +11 -9
  12. app-ng-runtime/components/data/list/fesm2015/index.mjs +10 -8
  13. app-ng-runtime/components/data/list/fesm2015/index.mjs.map +1 -1
  14. app-ng-runtime/components/data/list/fesm2020/index.mjs +8 -8
  15. app-ng-runtime/components/data/list/fesm2020/index.mjs.map +1 -1
  16. app-ng-runtime/components/data/list/list-item.directive.d.ts +3 -2
  17. app-ng-runtime/components/input/default/bundles/index.umd.js +1 -1
  18. app-ng-runtime/components/input/default/esm2020/base-form-custom.component.mjs +2 -2
  19. app-ng-runtime/components/input/default/fesm2015/index.mjs +1 -1
  20. app-ng-runtime/components/input/default/fesm2015/index.mjs.map +1 -1
  21. app-ng-runtime/components/input/default/fesm2020/index.mjs +1 -1
  22. app-ng-runtime/components/input/default/fesm2020/index.mjs.map +1 -1
  23. app-ng-runtime/core/bundles/index.umd.js +12 -40
  24. app-ng-runtime/core/esm2020/utils/utils.mjs +12 -40
  25. app-ng-runtime/core/esm2020/utils/watcher.mjs +2 -2
  26. app-ng-runtime/core/fesm2015/index.mjs +12 -40
  27. app-ng-runtime/core/fesm2015/index.mjs.map +1 -1
  28. app-ng-runtime/core/fesm2020/index.mjs +12 -40
  29. app-ng-runtime/core/fesm2020/index.mjs.map +1 -1
  30. app-ng-runtime/core/utils/utils.d.ts +2 -2
  31. app-ng-runtime/package.json +1 -1
  32. app-ng-runtime/variables/bundles/index.umd.js +2 -1
  33. app-ng-runtime/variables/esm2020/service/variables.service.mjs +3 -2
  34. app-ng-runtime/variables/fesm2015/index.mjs +2 -1
  35. app-ng-runtime/variables/fesm2015/index.mjs.map +1 -1
  36. app-ng-runtime/variables/fesm2020/index.mjs +2 -1
  37. app-ng-runtime/variables/fesm2020/index.mjs.map +1 -1
@@ -275,5 +275,5 @@ export declare const transformFileURI: (url: any) => any;
275
275
  export declare const appendScriptToHead: (callback: any) => void;
276
276
  export declare const getAppSetting: (key: any, defaultValue: any) => any;
277
277
  export declare const setListClass: (scope: any) => void;
278
- export declare const findParent: (lView: any, viewParentApp?: any) => {};
279
- export declare const findViewParent: (lView: any, parentObj: any) => any;
278
+ export declare const findParent: (lView: any, viewParentApp?: any) => any;
279
+ export declare const findViewParent: (lView: any) => any;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wavemaker/app-ng-runtime",
3
- "version": "11.5.0-next.24746",
3
+ "version": "11.5.0-next.26222",
4
4
  "description": "All modules required for a wavemaker application.",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -3060,7 +3060,8 @@
3060
3060
  let v = _.isArray(d.value) ? d.value[0] : d.value;
3061
3061
  if (v) {
3062
3062
  if (v.startsWith && v.startsWith('bind:')) {
3063
- v = i1.$watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, undefined, () => variable.isMuted);
3063
+ const watchExpression = i1.$watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, d, () => variable.isMuted);
3064
+ v = scope.registerDestroyListener ? scope.registerDestroyListener(watchExpression) : watchExpression;
3064
3065
  }
3065
3066
  else if (!_.isUndefined(d.value)) {
3066
3067
  variables.setValueToNode(d.target, d, root, variable, d.value, true);
@@ -72,7 +72,8 @@ export class VariablesService {
72
72
  let v = _.isArray(d.value) ? d.value[0] : d.value;
73
73
  if (v) {
74
74
  if (v.startsWith && v.startsWith('bind:')) {
75
- v = $watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, undefined, () => variable.isMuted);
75
+ const watchExpression = $watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, d, () => variable.isMuted);
76
+ v = scope.registerDestroyListener ? scope.registerDestroyListener(watchExpression) : watchExpression;
76
77
  }
77
78
  else if (!_.isUndefined(d.value)) {
78
79
  setValueToNode(d.target, d, root, variable, d.value, true);
@@ -189,4 +190,4 @@ VariablesService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: Variabl
189
190
  (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(VariablesService, [{
190
191
  type: Injectable
191
192
  }], function () { return [{ type: i1.AbstractHttpService }, { type: i2.MetadataService }, { type: i1.AbstractNavigationService }, { type: i3.Router }, { type: i1.AbstractToasterService }, { type: i4.OAuthService }, { type: i5.SecurityService }, { type: i1.AbstractDialogService }]; }, null); })();
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92YXJpYWJsZXMvc3JjL3NlcnZpY2UvdmFyaWFibGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUNILE1BQU0sRUFDTixXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUNwRSxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0SSxPQUFPLEVBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQUc1RCxNQUFNLE9BQU8sU0FBUztJQUNsQixNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU07UUFDaEIsT0FBUSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDaEUsQ0FBQztDQUNKO0FBS0QsTUFBTSxPQUFPLGdCQUFnQjtJQUV6QixZQUNZLFdBQWdDLEVBQ2hDLGVBQWdDLEVBQ2hDLGlCQUE0QyxFQUM1QyxhQUFxQixFQUNyQixjQUFzQyxFQUN0QyxZQUEwQixFQUMxQixlQUFnQyxFQUNoQyxhQUFvQztRQVBwQyxnQkFBVyxHQUFYLFdBQVcsQ0FBcUI7UUFDaEMsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBQ2hDLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBMkI7UUFDNUMsa0JBQWEsR0FBYixhQUFhLENBQVE7UUFDckIsbUJBQWMsR0FBZCxjQUFjLENBQXdCO1FBQ3RDLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQUNoQyxrQkFBYSxHQUFiLGFBQWEsQ0FBdUI7UUFFNUMsb0ZBQW9GO1FBQ3BGLGFBQWEsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQ3hDLGFBQWEsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2hELGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUMzRCxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUM5QyxhQUFhLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMxQyxhQUFhLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNoRCxhQUFhLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUM1QyxlQUFlLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUM1QyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxlQUFlLENBQUMsTUFBTSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFVBQVUsQ0FBQyxVQUFVO1FBQ2pCLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ25DLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFO2dCQUMvQixRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDckI7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7O09BR0c7SUFDSCxrQkFBa0IsQ0FBQyxVQUFVO1FBQ3pCLE9BQU8sT0FBTyxDQUFDLEdBQUcsQ0FDZCxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQzthQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDN0IsTUFBTSxDQUFFLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxFQUFFLFdBQVcsSUFBSSxRQUFRLENBQUMsTUFBTSxDQUFDO2FBQzdELEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUN0QyxDQUFDO0lBQ1YsQ0FBQztJQUVELGNBQWMsQ0FBQyxDQUFNLEVBQUUsS0FBVSxFQUFFLFFBQVE7UUFDdkMsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxFQUM1QixhQUFhLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUMxQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO1FBQ2xELElBQUksQ0FBQyxFQUFFO1lBQ0gsSUFBSSxDQUFDLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3ZDLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7YUFDMUo7aUJBQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNoQyxjQUFjLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO2dCQUMzRCxJQUFJLE9BQU8sSUFBSSxJQUFJLEtBQUssYUFBYSxFQUFFO29CQUNuQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFO3dCQUNyQyxvQkFBb0IsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO3FCQUMxQztvQkFDRCxDQUFDLENBQUMsR0FBRyxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFFLFFBQVEsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3pGO2FBQ0o7U0FDSjtRQUNELE9BQU87WUFDSCxJQUFJLEVBQUUsQ0FBQyxDQUFDLE1BQU07WUFDZCxLQUFLLEVBQUUsQ0FBQztTQUNYLENBQUM7SUFDTixDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQWEsRUFBRSxPQUFZLEVBQUUsVUFBbUIsRUFBRSxVQUFtQjtRQUNoRixVQUFVLEdBQUcsVUFBVSxJQUFJLGFBQWEsQ0FBQztRQUN6QyxVQUFVLEdBQUcsVUFBVSxJQUFJLGFBQWEsQ0FBQztRQUV6QyxNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDckMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUMxQixRQUFRLENBQUMsT0FBTyxHQUFHLFVBQVUsQ0FBQyxHQUFHLE9BQU8sQ0FBQztRQUN6QyxJQUFJLENBQUMsT0FBTyxJQUFJLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUNqQyxPQUFPO1NBQ1Y7UUFDRCxPQUFPLENBQUMsT0FBTyxDQUFFLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDdEIsMklBQTJJO1lBQzNJLElBQUksUUFBUSxDQUFDLFFBQVEsS0FBSyxhQUFhLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxhQUFhLEVBQUU7Z0JBQ3RFLElBQUksQ0FBQyxNQUFNLEdBQUcsU0FBUyxDQUFDO2FBQzNCO1lBQ0QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ2pELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG1CQUFtQixDQUFDLGFBQWEsRUFBRSxZQUFZO1FBQzNDLE9BQU8sYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsS0FBSyxhQUFhLElBQUksYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsS0FBSyxvQkFBb0I7WUFDMUgsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsSUFBSSxhQUFhLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxLQUFLLGlCQUFpQixDQUFBO0lBQ2hJLENBQUM7SUFFRCxtQkFBbUIsQ0FBQyxRQUFRO1FBQ3hCLElBQUksUUFBUSxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsRUFBRTtZQUN6QyxPQUFPLFFBQVEsQ0FBQyxTQUFTLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDLGFBQWEsQ0FBQztTQUN6RTthQUFNLElBQUksUUFBUSxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsRUFBRTtZQUNqRCxPQUFPLFNBQVMsQ0FBQztTQUNwQjthQUFNO1lBQ0gsT0FBTyxhQUFhLENBQUM7U0FDeEI7SUFDTCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxRQUFRLENBQUMsSUFBWSxFQUFFLGFBQWtCLEVBQUUsS0FBVTtRQUNqRCxNQUFNLGlCQUFpQixHQUFHO1lBQ3RCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsT0FBTyxFQUFFLEVBQUU7WUFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtTQUNwQyxDQUFDO1FBQ0YsSUFBSSxXQUFXLENBQUM7UUFFaEIsS0FBSyxNQUFNLFlBQVksSUFBSSxhQUFhLEVBQUU7WUFDdEMsTUFBTSxNQUFNLEdBQVEsRUFBRSxDQUFDO1lBQ3ZCLFdBQVcsR0FBRyxlQUFlLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUN6RSxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDcEIsSUFBSSxJQUFJLENBQUMsbUJBQW1CLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO2dCQUN2RCxJQUFJLENBQUMsY0FBYyxDQUFDLFdBQVcsRUFBRSxLQUFLLEVBQUUsYUFBYSxFQUFFLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO2dCQUM5RixXQUFXLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7Z0JBQzNDLFdBQVcsQ0FBQyxhQUFhLEdBQUcsSUFBSSxTQUFTLEVBQUUsQ0FBQztnQkFDNUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxhQUFhLEVBQUUsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ2xFLElBQUksV0FBVyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsU0FBUyxLQUFLLE1BQU0sRUFBRTtvQkFDaEYsd0JBQXdCLENBQUMsV0FBVyxDQUFDLFFBQVEsRUFBRSxXQUFXLENBQUMsaUJBQWlCLEVBQUUsV0FBVyxDQUFDLENBQUM7aUJBQzlGO2dCQUNELElBQUksV0FBVyxDQUFDLFFBQVEsS0FBSyxpQkFBaUIsSUFBSSxXQUFXLENBQUMsUUFBUSxLQUFLLG9CQUFvQixFQUFFO29CQUM3RixXQUFXLENBQUMsb0JBQW9CLEdBQUcsb0JBQW9CLENBQUM7aUJBQzNEO2FBRUo7WUFFRCxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLEVBQUUsWUFBWSxDQUFDLElBQUksYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsS0FBSyxrQkFBa0IsRUFBRTtnQkFDdEgsS0FBSyxNQUFNLENBQUMsSUFBSSxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7b0JBQ3RDLElBQUksV0FBVyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFO3dCQUMxQyxXQUFXLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO3FCQUNwRztpQkFDSjthQUNKO1lBR0EsOENBQThDO1lBQzlDLElBQUksV0FBVyxZQUFZLFVBQVUsRUFBRTtnQkFDbkMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUN6RDtpQkFBTTtnQkFDSCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO2FBQzNEO1NBQ0o7UUFFRCxpR0FBaUc7UUFDakcsSUFBSSxLQUFLLENBQUMsdUJBQXVCLEVBQUU7WUFDL0IsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTztJQUNQLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUN4QixhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Z0ZBckxRLGdCQUFnQjtzRUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgICR3YXRjaCxcbiAgICAkcGFyc2VFdmVudCxcbiAgICBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFic3RyYWN0VG9hc3RlclNlcnZpY2UsIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSwgJGludm9rZVdhdGNoZXJzLCBnZXRDbG9uZWRPYmplY3Rcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnQHdtL29BdXRoJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5cbmltcG9ydCB7IFZhcmlhYmxlRmFjdG9yeSB9IGZyb20gJy4uL2ZhY3RvcnkvdmFyaWFibGUuZmFjdG9yeSc7XG5pbXBvcnQgeyB3bVNldERlcGVuZGVuY3ksIEJhc2VBY3Rpb24sIGdldFRhcmdldCwgc2V0VmFsdWVUb05vZGUsIGdldFRhcmdldE5vZGVLZXksIGludGVybmFsQm91bmROb2RlTWFwIH0gZnJvbSAnQHdhdmVtYWtlci92YXJpYWJsZXMnO1xuaW1wb3J0IHtzZXREZXBlbmRlbmN5LCBzaW11bGF0ZUZpbGVEb3dubG9hZH0gZnJvbSAnLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9tZXRhZGF0YS1zZXJ2aWNlL21ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFSSUFCTEVfQ09OU1RBTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL3ZhcmlhYmxlcy5jb25zdGFudHMnO1xuaW1wb3J0IHthcHBNYW5hZ2VyfSBmcm9tICcuLi91dGlsL3ZhcmlhYmxlL3ZhcmlhYmxlcy51dGlscyc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyIH0gZnJvbSAnQHdhdmVtYWtlci92YXJpYWJsZXMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybWF0dGVyIGltcGxlbWVudHMgRGF0ZUZvcm1hdHRlciB7XG4gICAgZm9ybWF0KHZhbHVlLCBmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuICBhcHBNYW5hZ2VyLmdldFBpcGUoJ2RhdGUnKS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XG4gICAgfVxufVxuXG5kZWNsYXJlIGNvbnN0IF87XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWYXJpYWJsZXNTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1ldGFkYXRhU2VydmljZTogTWV0YWRhdGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZWN1cml0eVNlcnZpY2U6IFNlY3VyaXR5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgLy8gc2V0IGV4dGVybmFsIGRlcGVuZGVuY2llcywgdG8gYmUgdXNlZCBhY3Jvc3MgdmFyaWFibGUgY2xhc3NlcywgbWFuYWdlcnMgYW5kIHV0aWxzXG4gICAgICAgIHNldERlcGVuZGVuY3koJ2h0dHAnLCB0aGlzLmh0dHBTZXJ2aWNlKTtcbiAgICAgICAgc2V0RGVwZW5kZW5jeSgnbWV0YWRhdGEnLCB0aGlzLm1ldGFkYXRhU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ25hdmlnYXRpb25TZXJ2aWNlJywgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3JvdXRlcicsIHRoaXMucm91dGVyU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3RvYXN0ZXInLCB0aGlzLnRvYXN0ZXJTZXJ2aWNlKTtcbiAgICAgICAgc2V0RGVwZW5kZW5jeSgnb0F1dGgnLCB0aGlzLm9BdXRoU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3NlY3VyaXR5JywgdGhpcy5zZWN1cml0eVNlcnZpY2UpO1xuICAgICAgICBzZXREZXBlbmRlbmN5KCdkaWFsb2cnLCB0aGlzLmRpYWxvZ1NlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ29BdXRoJywgdGhpcy5vQXV0aFNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ3NlY3VyaXR5JywgdGhpcy5zZWN1cml0eVNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ21ldGFkYXRhJywgdGhpcy5tZXRhZGF0YVNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ2h0dHAnLCB0aGlzLmh0dHBTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb29wIHRocm91Z2ggYSBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcy9hY3Rpb25zXG4gICAgICogdHJpZ2dlciBjYW5jZWwgb24gZWFjaCAob2YgZXhpc3RzKVxuICAgICAqIEBwYXJhbSBjb2xsZWN0aW9uXG4gICAgICovXG4gICAgYnVsa0NhbmNlbChjb2xsZWN0aW9uKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNvbGxlY3Rpb24pLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGNvbGxlY3Rpb25bbmFtZV07XG4gICAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKHZhcmlhYmxlLmNhbmNlbCkpIHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZS5jYW5jZWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9vcHMgb3ZlciB0aGUgdmFyaWFibGUvYWN0aW9ucyBjb2xsZWN0aW9uIGFuZCB0cmlnZ2VyIGludm9rZSBvbiBpdCBpZiBzdGFydFVwZGF0ZSBvbiBpdCBpcyB0cnVlXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25cbiAgICAgKi9cbiAgICB0cmlnZ2VyU3RhcnRVcGRhdGUoY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjb2xsZWN0aW9uKVxuICAgICAgICAgICAgICAgIC5tYXAobmFtZSA9PiBjb2xsZWN0aW9uW25hbWVdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoIHZhcmlhYmxlID0+IHZhcmlhYmxlPy5zdGFydFVwZGF0ZSAmJiB2YXJpYWJsZS5pbnZva2UpXG4gICAgICAgICAgICAgICAgLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5pbnZva2UoKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0JpbmRFeHAoZDogYW55LCBzY29wZTogYW55LCB2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCByb290ID0gZ2V0VGFyZ2V0KHZhcmlhYmxlKSxcbiAgICAgICAgICAgIHRhcmdldE5vZGVLZXkgPSBnZXRUYXJnZXROb2RlS2V5KGQudGFyZ2V0KSxcbiAgICAgICAgICAgIHJ1bk1vZGUgPSB0cnVlO1xuICAgICAgICBsZXQgdiA9IF8uaXNBcnJheShkLnZhbHVlKSA/IGQudmFsdWVbMF0gOiBkLnZhbHVlO1xuICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgaWYgKHYuc3RhcnRzV2l0aCAmJiB2LnN0YXJ0c1dpdGgoJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICB2ID0gJHdhdGNoKHYucmVwbGFjZSgnYmluZDonLCAnJyksIHNjb3BlLCB7fSwgdmFyaWFibGUuaW52b2tlT25QYXJhbUNoYW5nZS5iaW5kKHZhcmlhYmxlLCBkKSwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgKCkgPT4gdmFyaWFibGUuaXNNdXRlZCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKCFfLmlzVW5kZWZpbmVkKGQudmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgc2V0VmFsdWVUb05vZGUoZC50YXJnZXQsIGQsIHJvb3QsIHZhcmlhYmxlLCBkLnZhbHVlLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBpZiAocnVuTW9kZSAmJiByb290ICE9PSB0YXJnZXROb2RlS2V5KSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghaW50ZXJuYWxCb3VuZE5vZGVNYXAuaGFzKHZhcmlhYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaW50ZXJuYWxCb3VuZE5vZGVNYXAuc2V0KHZhcmlhYmxlLCB7fSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXy5zZXQoaW50ZXJuYWxCb3VuZE5vZGVNYXAuZ2V0KHZhcmlhYmxlKSwgWyB2YXJpYWJsZS5uYW1lLCByb290LCBkLnRhcmdldCBdLCBkLnZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5hbWU6IGQudGFyZ2V0LFxuICAgICAgICAgICAgdmFsdWU6IHZcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBwcm9jZXNzQmluZGluZyh2YXJpYWJsZTogYW55LCBjb250ZXh0OiBhbnksIGJpbmRTb3VyY2U/OiBzdHJpbmcsIGJpbmRUYXJnZXQ/OiBzdHJpbmcpIHtcbiAgICAgICAgYmluZFNvdXJjZSA9IGJpbmRTb3VyY2UgfHwgJ2RhdGFCaW5kaW5nJztcbiAgICAgICAgYmluZFRhcmdldCA9IGJpbmRUYXJnZXQgfHwgJ2RhdGFCaW5kaW5nJztcblxuICAgICAgICBjb25zdCBiaW5kTWFwID0gdmFyaWFibGVbYmluZFNvdXJjZV07XG4gICAgICAgIHZhcmlhYmxlW2JpbmRTb3VyY2VdID0ge307XG4gICAgICAgIHZhcmlhYmxlWydfYmluZCcgKyBiaW5kU291cmNlXSA9IGJpbmRNYXA7XG4gICAgICAgIGlmICghYmluZE1hcCB8fCAhXy5pc0FycmF5KGJpbmRNYXApKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgYmluZE1hcC5mb3JFYWNoKCAobm9kZSkgPT4ge1xuICAgICAgICAgICAgLyogZm9yIHN0YXRpYyB2YXJpYWJsZSBjaGFuZ2UgdGhlIGJpbmRpbmcgd2l0aCB0YXJnZXQgJ2RhdGFCaW5kaW5nJyB0byAnZGF0YVNldCcsIGFzIHRoZSByZXN1bHRzIGhhdmUgdG8gcmVmbGVjdCBkaXJlY3RseSBpbiB0aGUgZGF0YVNldCAqL1xuICAgICAgICAgICAgaWYgKHZhcmlhYmxlLmNhdGVnb3J5ID09PSAnd20uVmFyaWFibGUnICYmIG5vZGUudGFyZ2V0ID09PSAnZGF0YUJpbmRpbmcnKSB7XG4gICAgICAgICAgICAgICAgbm9kZS50YXJnZXQgPSAnZGF0YVNldCc7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnByb2Nlc3NCaW5kRXhwKG5vZGUsIGNvbnRleHQsIHZhcmlhYmxlKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgaXNWYXJpYWJsZVNlcGVyYXRlZCh2YXJpYWJsZXNKc29uLCB2YXJpYWJsZU5hbWUpIHtcbiAgICAgICAgcmV0dXJuIHZhcmlhYmxlc0pzb25bdmFyaWFibGVOYW1lXS5jYXRlZ29yeSA9PT0gJ3dtLlZhcmlhYmxlJyB8fCB2YXJpYWJsZXNKc29uW3ZhcmlhYmxlTmFtZV0uY2F0ZWdvcnkgPT09ICd3bS5TZXJ2aWNlVmFyaWFibGUnIHx8XG4gICAgICAgICAgICB2YXJpYWJsZXNKc29uW3ZhcmlhYmxlTmFtZV0uY2F0ZWdvcnkgPT09ICd3bS5MaXZlVmFyaWFibGUnIHx8IHZhcmlhYmxlc0pzb25bdmFyaWFibGVOYW1lXS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZSdcbiAgICB9XG5cbiAgICBnZXRCaW5kU291cmNlVGFyZ2V0KHZhcmlhYmxlKSB7XG4gICAgICAgIGlmICh2YXJpYWJsZS5jYXRlZ29yeSA9PT0gJ3dtLkxpdmVWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiB2YXJpYWJsZS5vcGVyYXRpb24gPT09ICdyZWFkJyA/ICdmaWx0ZXJGaWVsZHMnIDogJ2lucHV0RmllbGRzJztcbiAgICAgICAgfSBlbHNlIGlmICh2YXJpYWJsZS5jYXRlZ29yeSA9PT0gJ3dtLk1vZGVsVmFyaWFibGUnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RhdGFTZXQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdkYXRhQmluZGluZyc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyB0aGUgcmF3IHZhcmlhYmxlcyBhbmQgYWN0aW9ucyBqc29uIGFzIGlucHV0XG4gICAgICogSW5pdGlhbGl6ZSB0aGUgdmFyaWFibGUgYW5kIGFjdGlvbiBpbnN0YW5jZXMgdGhyb3VnaCB0aGUgZmFjdG9yeVxuICAgICAqIGNvbGxlY3QgdGhlIHZhcmlhYmxlcyBhbmQgYWN0aW9ucyBpbiBzZXBhcmF0ZSBtYXBzIGFuZCByZXR1cm4gdGhlIGNvbGxlY3Rpb25cbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcGFnZVxuICAgICAqIEBwYXJhbSB2YXJpYWJsZXNKc29uXG4gICAgICogQHBhcmFtIHNjb3BlXG4gICAgICogQHJldHVybnMge1ZhcmlhYmxlcyAsIEFjdGlvbnN9XG4gICAgICovXG4gICAgcmVnaXN0ZXIocGFnZTogc3RyaW5nLCB2YXJpYWJsZXNKc29uOiBhbnksIHNjb3BlOiBhbnkpIHtcbiAgICAgICAgY29uc3QgdmFyaWFibGVJbnN0YW5jZXMgPSB7XG4gICAgICAgICAgICBWYXJpYWJsZXM6IHt9LFxuICAgICAgICAgICAgQWN0aW9uczoge30sXG4gICAgICAgICAgICBjYWxsYmFjazogdGhpcy50cmlnZ2VyU3RhcnRVcGRhdGVcbiAgICAgICAgfTtcbiAgICAgICAgbGV0IHZhckluc3RhbmNlO1xuXG4gICAgICAgIGZvciAoY29uc3QgdmFyaWFibGVOYW1lIGluIHZhcmlhYmxlc0pzb24pIHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmFtczogYW55ID0ge307XG4gICAgICAgICAgICB2YXJJbnN0YW5jZSA9IFZhcmlhYmxlRmFjdG9yeS5jcmVhdGUodmFyaWFibGVzSnNvblt2YXJpYWJsZU5hbWVdLCBzY29wZSk7XG4gICAgICAgICAgICB2YXJJbnN0YW5jZS5pbml0KCk7XG4gICAgICAgICAgIGlmICh0aGlzLmlzVmFyaWFibGVTZXBlcmF0ZWQodmFyaWFibGVzSnNvbiwgdmFyaWFibGVOYW1lKSkge1xuICAgICAgICAgICAgICAgdGhpcy5wcm9jZXNzQmluZGluZyh2YXJJbnN0YW5jZSwgc2NvcGUsICdkYXRhQmluZGluZycsIHRoaXMuZ2V0QmluZFNvdXJjZVRhcmdldCh2YXJJbnN0YW5jZSkpO1xuICAgICAgICAgICAgICAgdmFySW5zdGFuY2UuaHR0cFNlcnZpY2UgPSB0aGlzLmh0dHBTZXJ2aWNlO1xuICAgICAgICAgICAgICAgdmFySW5zdGFuY2UuZGF0ZUZvcm1hdHRlciA9IG5ldyBGb3JtYXR0ZXIoKTtcbiAgICAgICAgICAgICAgIHZhckluc3RhbmNlLnN1YnNjcmliZSgnYWZ0ZXJJbnZva2UnLCAoKSA9PiAkaW52b2tlV2F0Y2hlcnModHJ1ZSkpO1xuICAgICAgICAgICAgICAgaWYgKHZhckluc3RhbmNlLmNhdGVnb3J5ID09PSAnd20uTGl2ZVZhcmlhYmxlJyAmJiB2YXJJbnN0YW5jZS5vcGVyYXRpb24gPT09ICdyZWFkJykge1xuICAgICAgICAgICAgICAgICAgIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSh2YXJJbnN0YW5jZS5fY29udGV4dCwgdmFySW5zdGFuY2UuZmlsdGVyRXhwcmVzc2lvbnMsIHZhckluc3RhbmNlKTtcbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIGlmICh2YXJJbnN0YW5jZS5jYXRlZ29yeSA9PT0gJ3dtLkNydWRWYXJpYWJsZScgfHwgdmFySW5zdGFuY2UuY2F0ZWdvcnkgPT09ICd3bS5TZXJ2aWNlVmFyaWFibGUnKSB7XG4gICAgICAgICAgICAgICAgICAgdmFySW5zdGFuY2Uuc2ltdWxhdGVGaWxlRG93bmxvYWQgPSBzaW11bGF0ZUZpbGVEb3dubG9hZDtcbiAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICB9XG5cbiAgICAgICAgICAgaWYgKHRoaXMuaXNWYXJpYWJsZVNlcGVyYXRlZCh2YXJpYWJsZXNKc29uLCB2YXJpYWJsZU5hbWUpIHx8IHZhcmlhYmxlc0pzb25bdmFyaWFibGVOYW1lXS5jYXRlZ29yeSA9PT0gJ3dtLlRpbWVyVmFyaWFibGUnKSB7XG4gICAgICAgICAgICAgICBmb3IgKGNvbnN0IGUgaW4gVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5UKSB7XG4gICAgICAgICAgICAgICAgICAgaWYgKHZhckluc3RhbmNlW1ZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVFtlXV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgdmFySW5zdGFuY2VbVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5UW2VdXSA9ICRwYXJzZUV2ZW50KHZhckluc3RhbmNlW1ZBUklBQkxFX0NPTlNUQU5UUy5FVkVOVFtlXV0pO1xuICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgfVxuXG5cbiAgICAgICAgICAgIC8vIGlmIGFjdGlvbiB0eXBlLCBwdXQgaXQgaW4gQWN0aW9ucyBuYW1lc3BhY2VcbiAgICAgICAgICAgIGlmICh2YXJJbnN0YW5jZSBpbnN0YW5jZW9mIEJhc2VBY3Rpb24pIHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZUluc3RhbmNlcy5BY3Rpb25zW3ZhcmlhYmxlTmFtZV0gPSB2YXJJbnN0YW5jZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdmFyaWFibGVJbnN0YW5jZXMuVmFyaWFibGVzW3ZhcmlhYmxlTmFtZV0gPSB2YXJJbnN0YW5jZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHRoZSBjb250ZXh0IGhhcyBvbkRlc3Ryb3kgbGlzdGVuZXIsIHN1YnNjcmliZSB0aGUgZXZlbnQgYW5kIHRyaWdnZXIgY2FuY2VsIG9uIGFsbCB2YXJpYmFsZXNcbiAgICAgICAgaWYgKHNjb3BlLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKSB7XG4gICAgICAgICAgICBzY29wZS5yZWdpc3RlckRlc3Ryb3lMaXN0ZW5lcigoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5idWxrQ2FuY2VsKHZhcmlhYmxlSW5zdGFuY2VzLlZhcmlhYmxlcyk7XG4gICAgICAgICAgICAgICAgdGhpcy5idWxrQ2FuY2VsKHZhcmlhYmxlSW5zdGFuY2VzLkFjdGlvbnMpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdmFyaWFibGVJbnN0YW5jZXM7XG4gICAgfVxuXG4gICAgZGVzdHJveSgpIHtcbiAgICB9XG5cbiAgICByZWdpc3RlckRlcGVuZGVuY3kobmFtZSwgcmVmKSB7XG4gICAgICAgIHNldERlcGVuZGVuY3kobmFtZSwgcmVmKTtcbiAgICAgICAgd21TZXREZXBlbmRlbmN5KG5hbWUsIHJlZik7XG4gICAgfVxufVxuIl19
193
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmFyaWFibGVzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy92YXJpYWJsZXMvc3JjL3NlcnZpY2UvdmFyaWFibGVzLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFekMsT0FBTyxFQUNILE1BQU0sRUFDTixXQUFXLEVBQ1gscUJBQXFCLEVBQ3JCLG1CQUFtQixFQUNuQix5QkFBeUIsRUFDekIsc0JBQXNCLEVBQUUsd0JBQXdCLEVBQUUsZUFBZSxFQUNwRSxNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFFL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQzlELE9BQU8sRUFBRSxlQUFlLEVBQUUsVUFBVSxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN0SSxPQUFPLEVBQUMsYUFBYSxFQUFFLG9CQUFvQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDckYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3RFLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQzs7Ozs7OztBQUc1RCxNQUFNLE9BQU8sU0FBUztJQUNsQixNQUFNLENBQUMsS0FBSyxFQUFFLE1BQU07UUFDaEIsT0FBUSxVQUFVLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLEVBQUUs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TyxDQUFDLFlBQVksQ0FBQyxHQUFHLFdBQVcsQ0FBQzthQUN6RDtpQkFBTTtnQkFDSCxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUFDLEdBQUcsV0FBVyxDQUFDO2FBQzNEO1NBQ0o7UUFFRCxpR0FBaUc7UUFDakcsSUFBSSxLQUFLLENBQUMsdUJBQXVCLEVBQUU7WUFDL0IsS0FBSyxDQUFDLHVCQUF1QixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUMvQyxDQUFDLENBQUMsQ0FBQztTQUNOO1FBRUQsT0FBTyxpQkFBaUIsQ0FBQztJQUM3QixDQUFDO0lBRUQsT0FBTztJQUNQLENBQUM7SUFFRCxrQkFBa0IsQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUN4QixhQUFhLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQ3pCLGVBQWUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs7Z0ZBdExRLGdCQUFnQjtzRUFBaEIsZ0JBQWdCLFdBQWhCLGdCQUFnQjt1RkFBaEIsZ0JBQWdCO2NBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuXG5pbXBvcnQge1xuICAgICR3YXRjaCxcbiAgICAkcGFyc2VFdmVudCxcbiAgICBBYnN0cmFjdERpYWxvZ1NlcnZpY2UsXG4gICAgQWJzdHJhY3RIdHRwU2VydmljZSxcbiAgICBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgIEFic3RyYWN0VG9hc3RlclNlcnZpY2UsIHByb2Nlc3NGaWx0ZXJFeHBCaW5kTm9kZSwgJGludm9rZVdhdGNoZXJzLCBnZXRDbG9uZWRPYmplY3Rcbn0gZnJvbSAnQHdtL2NvcmUnO1xuaW1wb3J0IHsgT0F1dGhTZXJ2aWNlIH0gZnJvbSAnQHdtL29BdXRoJztcbmltcG9ydCB7IFNlY3VyaXR5U2VydmljZSB9IGZyb20gJ0B3bS9zZWN1cml0eSc7XG5cbmltcG9ydCB7IFZhcmlhYmxlRmFjdG9yeSB9IGZyb20gJy4uL2ZhY3RvcnkvdmFyaWFibGUuZmFjdG9yeSc7XG5pbXBvcnQgeyB3bVNldERlcGVuZGVuY3ksIEJhc2VBY3Rpb24sIGdldFRhcmdldCwgc2V0VmFsdWVUb05vZGUsIGdldFRhcmdldE5vZGVLZXksIGludGVybmFsQm91bmROb2RlTWFwIH0gZnJvbSAnQHdhdmVtYWtlci92YXJpYWJsZXMnO1xuaW1wb3J0IHtzZXREZXBlbmRlbmN5LCBzaW11bGF0ZUZpbGVEb3dubG9hZH0gZnJvbSAnLi4vdXRpbC92YXJpYWJsZS92YXJpYWJsZXMudXRpbHMnO1xuaW1wb3J0IHsgTWV0YWRhdGFTZXJ2aWNlIH0gZnJvbSAnLi9tZXRhZGF0YS1zZXJ2aWNlL21ldGFkYXRhLnNlcnZpY2UnO1xuaW1wb3J0IHsgVkFSSUFCTEVfQ09OU1RBTlRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL3ZhcmlhYmxlcy5jb25zdGFudHMnO1xuaW1wb3J0IHthcHBNYW5hZ2VyfSBmcm9tICcuLi91dGlsL3ZhcmlhYmxlL3ZhcmlhYmxlcy51dGlscyc7XG5pbXBvcnQgeyBEYXRlRm9ybWF0dGVyIH0gZnJvbSAnQHdhdmVtYWtlci92YXJpYWJsZXMnO1xuXG5leHBvcnQgY2xhc3MgRm9ybWF0dGVyIGltcGxlbWVudHMgRGF0ZUZvcm1hdHRlciB7XG4gICAgZm9ybWF0KHZhbHVlLCBmb3JtYXQpIHtcbiAgICAgICAgcmV0dXJuICBhcHBNYW5hZ2VyLmdldFBpcGUoJ2RhdGUnKS50cmFuc2Zvcm0odmFsdWUsIGZvcm1hdCk7XG4gICAgfVxufVxuXG5kZWNsYXJlIGNvbnN0IF87XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBWYXJpYWJsZXNTZXJ2aWNlIHtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHBTZXJ2aWNlOiBBYnN0cmFjdEh0dHBTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG1ldGFkYXRhU2VydmljZTogTWV0YWRhdGFTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIG5hdmlnYXRpb25TZXJ2aWNlOiBBYnN0cmFjdE5hdmlnYXRpb25TZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlclNlcnZpY2U6IFJvdXRlcixcbiAgICAgICAgcHJpdmF0ZSB0b2FzdGVyU2VydmljZTogQWJzdHJhY3RUb2FzdGVyU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBvQXV0aFNlcnZpY2U6IE9BdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBzZWN1cml0eVNlcnZpY2U6IFNlY3VyaXR5U2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBkaWFsb2dTZXJ2aWNlOiBBYnN0cmFjdERpYWxvZ1NlcnZpY2VcbiAgICApIHtcbiAgICAgICAgLy8gc2V0IGV4dGVybmFsIGRlcGVuZGVuY2llcywgdG8gYmUgdXNlZCBhY3Jvc3MgdmFyaWFibGUgY2xhc3NlcywgbWFuYWdlcnMgYW5kIHV0aWxzXG4gICAgICAgIHNldERlcGVuZGVuY3koJ2h0dHAnLCB0aGlzLmh0dHBTZXJ2aWNlKTtcbiAgICAgICAgc2V0RGVwZW5kZW5jeSgnbWV0YWRhdGEnLCB0aGlzLm1ldGFkYXRhU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ25hdmlnYXRpb25TZXJ2aWNlJywgdGhpcy5uYXZpZ2F0aW9uU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3JvdXRlcicsIHRoaXMucm91dGVyU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3RvYXN0ZXInLCB0aGlzLnRvYXN0ZXJTZXJ2aWNlKTtcbiAgICAgICAgc2V0RGVwZW5kZW5jeSgnb0F1dGgnLCB0aGlzLm9BdXRoU2VydmljZSk7XG4gICAgICAgIHNldERlcGVuZGVuY3koJ3NlY3VyaXR5JywgdGhpcy5zZWN1cml0eVNlcnZpY2UpO1xuICAgICAgICBzZXREZXBlbmRlbmN5KCdkaWFsb2cnLCB0aGlzLmRpYWxvZ1NlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ29BdXRoJywgdGhpcy5vQXV0aFNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ3NlY3VyaXR5JywgdGhpcy5zZWN1cml0eVNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ21ldGFkYXRhJywgdGhpcy5tZXRhZGF0YVNlcnZpY2UpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3koJ2h0dHAnLCB0aGlzLmh0dHBTZXJ2aWNlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBsb29wIHRocm91Z2ggYSBjb2xsZWN0aW9uIG9mIHZhcmlhYmxlcy9hY3Rpb25zXG4gICAgICogdHJpZ2dlciBjYW5jZWwgb24gZWFjaCAob2YgZXhpc3RzKVxuICAgICAqIEBwYXJhbSBjb2xsZWN0aW9uXG4gICAgICovXG4gICAgYnVsa0NhbmNlbChjb2xsZWN0aW9uKSB7XG4gICAgICAgIE9iamVjdC5rZXlzKGNvbGxlY3Rpb24pLmZvckVhY2gobmFtZSA9PiB7XG4gICAgICAgICAgICBjb25zdCB2YXJpYWJsZSA9IGNvbGxlY3Rpb25bbmFtZV07XG4gICAgICAgICAgICBpZiAoXy5pc0Z1bmN0aW9uKHZhcmlhYmxlLmNhbmNlbCkpIHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZS5jYW5jZWwoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogbG9vcHMgb3ZlciB0aGUgdmFyaWFibGUvYWN0aW9ucyBjb2xsZWN0aW9uIGFuZCB0cmlnZ2VyIGludm9rZSBvbiBpdCBpZiBzdGFydFVwZGF0ZSBvbiBpdCBpcyB0cnVlXG4gICAgICogQHBhcmFtIGNvbGxlY3Rpb25cbiAgICAgKi9cbiAgICB0cmlnZ2VyU3RhcnRVcGRhdGUoY29sbGVjdGlvbikge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICAgICAgICBPYmplY3Qua2V5cyhjb2xsZWN0aW9uKVxuICAgICAgICAgICAgICAgIC5tYXAobmFtZSA9PiBjb2xsZWN0aW9uW25hbWVdKVxuICAgICAgICAgICAgICAgIC5maWx0ZXIoIHZhcmlhYmxlID0+IHZhcmlhYmxlPy5zdGFydFVwZGF0ZSAmJiB2YXJpYWJsZS5pbnZva2UpXG4gICAgICAgICAgICAgICAgLm1hcCh2YXJpYWJsZSA9PiB2YXJpYWJsZS5pbnZva2UoKSlcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvY2Vzc0JpbmRFeHAoZDogYW55LCBzY29wZTogYW55LCB2YXJpYWJsZSkge1xuICAgICAgICBjb25zdCByb290ID0gZ2V0VGFyZ2V0KHZhcmlhYmxlKSxcbiAgICAgICAgICAgIHRhcmdldE5vZGVLZXkgPSBnZXRUYXJnZXROb2RlS2V5KGQudGFyZ2V0KSxcbiAgICAgICAgICAgIHJ1bk1vZGUgPSB0cnVlO1xuICAgICAgICBsZXQgdiA9IF8uaXNBcnJheShkLnZhbHVlKSA/IGQudmFsdWVbMF0gOiBkLnZhbHVlO1xuICAgICAgICBpZiAodikge1xuICAgICAgICAgICAgaWYgKHYuc3RhcnRzV2l0aCAmJiB2LnN0YXJ0c1dpdGgoJ2JpbmQ6JykpIHtcbiAgICAgICAgICAgICAgICBjb25zdCB3YXRjaEV4cHJlc3Npb24gPSAkd2F0Y2godi5yZXBsYWNlKCdiaW5kOicsICcnKSwgc2NvcGUsIHt9LCB2YXJpYWJsZS5pbnZva2VPblBhcmFtQ2hhbmdlLmJpbmQodmFyaWFibGUsIGQpLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgZCwgKCkgPT4gdmFyaWFibGUuaXNNdXRlZCk7XG4gICAgICAgICAgICAgICAgdiA9IHNjb3BlLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyID8gc2NvcGUucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIod2F0Y2hFeHByZXNzaW9uKSA6IHdhdGNoRXhwcmVzc2lvbjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoIV8uaXNVbmRlZmluZWQoZC52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZVRvTm9kZShkLnRhcmdldCwgZCwgcm9vdCwgdmFyaWFibGUsIGQudmFsdWUsIHRydWUpO1xuICAgICAgICAgICAgICAgIGlmIChydW5Nb2RlICYmIHJvb3QgIT09IHRhcmdldE5vZGVLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFpbnRlcm5hbEJvdW5kTm9kZU1hcC5oYXModmFyaWFibGUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpbnRlcm5hbEJvdW5kTm9kZU1hcC5zZXQodmFyaWFibGUsIHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBfLnNldChpbnRlcm5hbEJvdW5kTm9kZU1hcC5nZXQodmFyaWFibGUpLCBbIHZhcmlhYmxlLm5hbWUsIHJvb3QsIGQudGFyZ2V0IF0sIGQudmFsdWUpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbmFtZTogZC50YXJnZXQsXG4gICAgICAgICAgICB2YWx1ZTogdlxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByb2Nlc3NCaW5kaW5nKHZhcmlhYmxlOiBhbnksIGNvbnRleHQ6IGFueSwgYmluZFNvdXJjZT86IHN0cmluZywgYmluZFRhcmdldD86IHN0cmluZykge1xuICAgICAgICBiaW5kU291cmNlID0gYmluZFNvdXJjZSB8fCAnZGF0YUJpbmRpbmcnO1xuICAgICAgICBiaW5kVGFyZ2V0ID0gYmluZFRhcmdldCB8fCAnZGF0YUJpbmRpbmcnO1xuXG4gICAgICAgIGNvbnN0IGJpbmRNYXAgPSB2YXJpYWJsZVtiaW5kU291cmNlXTtcbiAgICAgICAgdmFyaWFibGVbYmluZFNvdXJjZV0gPSB7fTtcbiAgICAgICAgdmFyaWFibGVbJ19iaW5kJyArIGJpbmRTb3VyY2VdID0gYmluZE1hcDtcbiAgICAgICAgaWYgKCFiaW5kTWFwIHx8ICFfLmlzQXJyYXkoYmluZE1hcCkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBiaW5kTWFwLmZvckVhY2goIChub2RlKSA9PiB7XG4gICAgICAgICAgICAvKiBmb3Igc3RhdGljIHZhcmlhYmxlIGNoYW5nZSB0aGUgYmluZGluZyB3aXRoIHRhcmdldCAnZGF0YUJpbmRpbmcnIHRvICdkYXRhU2V0JywgYXMgdGhlIHJlc3VsdHMgaGF2ZSB0byByZWZsZWN0IGRpcmVjdGx5IGluIHRoZSBkYXRhU2V0ICovXG4gICAgICAgICAgICBpZiAodmFyaWFibGUuY2F0ZWdvcnkgPT09ICd3bS5WYXJpYWJsZScgJiYgbm9kZS50YXJnZXQgPT09ICdkYXRhQmluZGluZycpIHtcbiAgICAgICAgICAgICAgICBub2RlLnRhcmdldCA9ICdkYXRhU2V0JztcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMucHJvY2Vzc0JpbmRFeHAobm9kZSwgY29udGV4dCwgdmFyaWFibGUpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBpc1ZhcmlhYmxlU2VwZXJhdGVkKHZhcmlhYmxlc0pzb24sIHZhcmlhYmxlTmFtZSkge1xuICAgICAgICByZXR1cm4gdmFyaWFibGVzSnNvblt2YXJpYWJsZU5hbWVdLmNhdGVnb3J5ID09PSAnd20uVmFyaWFibGUnIHx8IHZhcmlhYmxlc0pzb25bdmFyaWFibGVOYW1lXS5jYXRlZ29yeSA9PT0gJ3dtLlNlcnZpY2VWYXJpYWJsZScgfHxcbiAgICAgICAgICAgIHZhcmlhYmxlc0pzb25bdmFyaWFibGVOYW1lXS5jYXRlZ29yeSA9PT0gJ3dtLkxpdmVWYXJpYWJsZScgfHwgdmFyaWFibGVzSnNvblt2YXJpYWJsZU5hbWVdLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJ1xuICAgIH1cblxuICAgIGdldEJpbmRTb3VyY2VUYXJnZXQodmFyaWFibGUpIHtcbiAgICAgICAgaWYgKHZhcmlhYmxlLmNhdGVnb3J5ID09PSAnd20uTGl2ZVZhcmlhYmxlJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhcmlhYmxlLm9wZXJhdGlvbiA9PT0gJ3JlYWQnID8gJ2ZpbHRlckZpZWxkcycgOiAnaW5wdXRGaWVsZHMnO1xuICAgICAgICB9IGVsc2UgaWYgKHZhcmlhYmxlLmNhdGVnb3J5ID09PSAnd20uTW9kZWxWYXJpYWJsZScpIHtcbiAgICAgICAgICAgIHJldHVybiAnZGF0YVNldCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2RhdGFCaW5kaW5nJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRha2VzIHRoZSByYXcgdmFyaWFibGVzIGFuZCBhY3Rpb25zIGpzb24gYXMgaW5wdXRcbiAgICAgKiBJbml0aWFsaXplIHRoZSB2YXJpYWJsZSBhbmQgYWN0aW9uIGluc3RhbmNlcyB0aHJvdWdoIHRoZSBmYWN0b3J5XG4gICAgICogY29sbGVjdCB0aGUgdmFyaWFibGVzIGFuZCBhY3Rpb25zIGluIHNlcGFyYXRlIG1hcHMgYW5kIHJldHVybiB0aGUgY29sbGVjdGlvblxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBwYWdlXG4gICAgICogQHBhcmFtIHZhcmlhYmxlc0pzb25cbiAgICAgKiBAcGFyYW0gc2NvcGVcbiAgICAgKiBAcmV0dXJucyB7VmFyaWFibGVzICwgQWN0aW9uc31cbiAgICAgKi9cbiAgICByZWdpc3RlcihwYWdlOiBzdHJpbmcsIHZhcmlhYmxlc0pzb246IGFueSwgc2NvcGU6IGFueSkge1xuICAgICAgICBjb25zdCB2YXJpYWJsZUluc3RhbmNlcyA9IHtcbiAgICAgICAgICAgIFZhcmlhYmxlczoge30sXG4gICAgICAgICAgICBBY3Rpb25zOiB7fSxcbiAgICAgICAgICAgIGNhbGxiYWNrOiB0aGlzLnRyaWdnZXJTdGFydFVwZGF0ZVxuICAgICAgICB9O1xuICAgICAgICBsZXQgdmFySW5zdGFuY2U7XG5cbiAgICAgICAgZm9yIChjb25zdCB2YXJpYWJsZU5hbWUgaW4gdmFyaWFibGVzSnNvbikge1xuICAgICAgICAgICAgY29uc3QgcGFyYW1zOiBhbnkgPSB7fTtcbiAgICAgICAgICAgIHZhckluc3RhbmNlID0gVmFyaWFibGVGYWN0b3J5LmNyZWF0ZSh2YXJpYWJsZXNKc29uW3ZhcmlhYmxlTmFtZV0sIHNjb3BlKTtcbiAgICAgICAgICAgIHZhckluc3RhbmNlLmluaXQoKTtcbiAgICAgICAgICAgaWYgKHRoaXMuaXNWYXJpYWJsZVNlcGVyYXRlZCh2YXJpYWJsZXNKc29uLCB2YXJpYWJsZU5hbWUpKSB7XG4gICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NCaW5kaW5nKHZhckluc3RhbmNlLCBzY29wZSwgJ2RhdGFCaW5kaW5nJywgdGhpcy5nZXRCaW5kU291cmNlVGFyZ2V0KHZhckluc3RhbmNlKSk7XG4gICAgICAgICAgICAgICB2YXJJbnN0YW5jZS5odHRwU2VydmljZSA9IHRoaXMuaHR0cFNlcnZpY2U7XG4gICAgICAgICAgICAgICB2YXJJbnN0YW5jZS5kYXRlRm9ybWF0dGVyID0gbmV3IEZvcm1hdHRlcigpO1xuICAgICAgICAgICAgICAgdmFySW5zdGFuY2Uuc3Vic2NyaWJlKCdhZnRlckludm9rZScsICgpID0+ICRpbnZva2VXYXRjaGVycyh0cnVlKSk7XG4gICAgICAgICAgICAgICBpZiAodmFySW5zdGFuY2UuY2F0ZWdvcnkgPT09ICd3bS5MaXZlVmFyaWFibGUnICYmIHZhckluc3RhbmNlLm9wZXJhdGlvbiA9PT0gJ3JlYWQnKSB7XG4gICAgICAgICAgICAgICAgICAgcHJvY2Vzc0ZpbHRlckV4cEJpbmROb2RlKHZhckluc3RhbmNlLl9jb250ZXh0LCB2YXJJbnN0YW5jZS5maWx0ZXJFeHByZXNzaW9ucywgdmFySW5zdGFuY2UpO1xuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgaWYgKHZhckluc3RhbmNlLmNhdGVnb3J5ID09PSAnd20uQ3J1ZFZhcmlhYmxlJyB8fCB2YXJJbnN0YW5jZS5jYXRlZ29yeSA9PT0gJ3dtLlNlcnZpY2VWYXJpYWJsZScpIHtcbiAgICAgICAgICAgICAgICAgICB2YXJJbnN0YW5jZS5zaW11bGF0ZUZpbGVEb3dubG9hZCA9IHNpbXVsYXRlRmlsZURvd25sb2FkO1xuICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgIH1cblxuICAgICAgICAgICBpZiAodGhpcy5pc1ZhcmlhYmxlU2VwZXJhdGVkKHZhcmlhYmxlc0pzb24sIHZhcmlhYmxlTmFtZSkgfHwgdmFyaWFibGVzSnNvblt2YXJpYWJsZU5hbWVdLmNhdGVnb3J5ID09PSAnd20uVGltZXJWYXJpYWJsZScpIHtcbiAgICAgICAgICAgICAgIGZvciAoY29uc3QgZSBpbiBWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlQpIHtcbiAgICAgICAgICAgICAgICAgICBpZiAodmFySW5zdGFuY2VbVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5UW2VdXSkge1xuICAgICAgICAgICAgICAgICAgICAgICB2YXJJbnN0YW5jZVtWQVJJQUJMRV9DT05TVEFOVFMuRVZFTlRbZV1dID0gJHBhcnNlRXZlbnQodmFySW5zdGFuY2VbVkFSSUFCTEVfQ09OU1RBTlRTLkVWRU5UW2VdXSk7XG4gICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgfVxuICAgICAgICAgICB9XG5cblxuICAgICAgICAgICAgLy8gaWYgYWN0aW9uIHR5cGUsIHB1dCBpdCBpbiBBY3Rpb25zIG5hbWVzcGFjZVxuICAgICAgICAgICAgaWYgKHZhckluc3RhbmNlIGluc3RhbmNlb2YgQmFzZUFjdGlvbikge1xuICAgICAgICAgICAgICAgIHZhcmlhYmxlSW5zdGFuY2VzLkFjdGlvbnNbdmFyaWFibGVOYW1lXSA9IHZhckluc3RhbmNlO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB2YXJpYWJsZUluc3RhbmNlcy5WYXJpYWJsZXNbdmFyaWFibGVOYW1lXSA9IHZhckluc3RhbmNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgLy8gaWYgdGhlIGNvbnRleHQgaGFzIG9uRGVzdHJveSBsaXN0ZW5lciwgc3Vic2NyaWJlIHRoZSBldmVudCBhbmQgdHJpZ2dlciBjYW5jZWwgb24gYWxsIHZhcmliYWxlc1xuICAgICAgICBpZiAoc2NvcGUucmVnaXN0ZXJEZXN0cm95TGlzdGVuZXIpIHtcbiAgICAgICAgICAgIHNjb3BlLnJlZ2lzdGVyRGVzdHJveUxpc3RlbmVyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bGtDYW5jZWwodmFyaWFibGVJbnN0YW5jZXMuVmFyaWFibGVzKTtcbiAgICAgICAgICAgICAgICB0aGlzLmJ1bGtDYW5jZWwodmFyaWFibGVJbnN0YW5jZXMuQWN0aW9ucyk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB2YXJpYWJsZUluc3RhbmNlcztcbiAgICB9XG5cbiAgICBkZXN0cm95KCkge1xuICAgIH1cblxuICAgIHJlZ2lzdGVyRGVwZW5kZW5jeShuYW1lLCByZWYpIHtcbiAgICAgICAgc2V0RGVwZW5kZW5jeShuYW1lLCByZWYpO1xuICAgICAgICB3bVNldERlcGVuZGVuY3kobmFtZSwgcmVmKTtcbiAgICB9XG59XG4iXX0=
@@ -3142,7 +3142,8 @@ class VariablesService {
3142
3142
  let v = _.isArray(d.value) ? d.value[0] : d.value;
3143
3143
  if (v) {
3144
3144
  if (v.startsWith && v.startsWith('bind:')) {
3145
- v = $watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, undefined, () => variable.isMuted);
3145
+ const watchExpression = $watch(v.replace('bind:', ''), scope, {}, variable.invokeOnParamChange.bind(variable, d), undefined, undefined, d, () => variable.isMuted);
3146
+ v = scope.registerDestroyListener ? scope.registerDestroyListener(watchExpression) : watchExpression;
3146
3147
  }
3147
3148
  else if (!_.isUndefined(d.value)) {
3148
3149
  setValueToNode$1(d.target, d, root, variable, d.value, true);