@provoly/hypervisor 1.4.64 → 1.4.66

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.
@@ -34,7 +34,7 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
34
34
  this.events = [];
35
35
  this._actions = [];
36
36
  this.triggers = {};
37
- this.clearingActionAllowed = false;
37
+ this.ignoreFirstEvent = true;
38
38
  this.refreshActions = new EventEmitter();
39
39
  this.model = model;
40
40
  this.ACTIONS_TYPES = Object.keys(ACTIONS_TYPES.values);
@@ -113,9 +113,10 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
113
113
  update(idx, prop, $event) {
114
114
  // @ts-ignore
115
115
  this.actions[idx][prop] = $event;
116
- if (this.clearingActionAllowed && prop == 'type') {
116
+ if (!this.ignoreFirstEvent) {
117
117
  this.clearAction(idx);
118
118
  }
119
+ this.ignoreFirstEvent = false;
119
120
  }
120
121
  clearAction(idx) {
121
122
  const { type, status, id, _status, _initial } = this.actions[idx];
@@ -153,10 +154,6 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
153
154
  case 'update':
154
155
  action._initial = JSON.parse(JSON.stringify(action));
155
156
  action._status = 'modify';
156
- this.clearingActionAllowed = false;
157
- setTimeout(() => {
158
- this.clearingActionAllowed = true;
159
- }, 500);
160
157
  break;
161
158
  case 'delete':
162
159
  this.actions.splice(idx, 1);
@@ -169,6 +166,7 @@ export class ProcedureActionsComponent extends SubscriptionnerDirective {
169
166
  sub.unsubscribe();
170
167
  }, 100);
171
168
  });
169
+ this.ignoreFirstEvent = true;
172
170
  }
173
171
  saveAction(action, idx) {
174
172
  delete action._initial;
@@ -234,4 +232,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
234
232
  }], refreshActions: [{
235
233
  type: Output
236
234
  }] } });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7YUFDOUQsZ0JBQVcsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQXFCeEIsWUFDVSxTQUEyQixFQUMzQixPQUFnQixFQUNoQixlQUFtQyxFQUNuQyxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUxBLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLG1C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SztnQkFHNEMsV0FBVztzQkFBNUQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQXNCbkMsT0FBTztzQkFBbkIsS0FBSztnQkFPSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBtb2RlbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nU2VydmljZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwgSHZ5QWN0aW9uTWVudURhdGEgfSBmcm9tICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQUNUSU9OU19UWVBFUyB9IGZyb20gJy4vYWN0aW9ucy10eXBlcy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9jb21tZW50cy9jb21tZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cENvbW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9jb21tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0b3JlL3NlcnZpY2Uvc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LXByb2NlZHVyZS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc3RhdGljIENBUkRfSEVJR0hUID0gNzU7XG4gIG1vdmluZ0FjdGlvbj86IEh5cEFjdGlvbjtcbiAgbW92ZVN0YXJ0ID0gMDtcbiAgbW92ZUluaXRpYWxJbmRleCA9IDA7XG4gIGluaXRpYWxBY3Rpb25MaXN0OiBIeXBBY3Rpb25bXSA9IFtdO1xuICBwcmV2aW91c09mZnNldCA9IDA7XG4gIGRyYWdUYXJnZXQ/OiBFdmVudFRhcmdldCB8IG51bGw7XG4gIEBPdXRwdXQoKSBtb2RpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHlwQWN0aW9uW10+KCk7XG4gIEBPdXRwdXQoKSBjb21tZW50ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBIeXBBY3Rpb247IGNvbW1lbnRzOiBIeXBDb21tZW50W10gfT4oKTtcbiAgQElucHV0KCkgbW9kZTogJ21vZGVsJyB8ICdwcm9jZWR1cmUnID0gJ3Byb2NlZHVyZSc7XG4gIEBJbnB1dCgpIG1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZE9ubHlDb21tZW50OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVFZGl0QWN0aW9uczogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBBQ1RJT05TX1RZUEVTOiBzdHJpbmdbXTtcbiAgX2FjdGlvbnM6IEh5cEFjdGlvbltdID0gW107XG4gIEBWaWV3Q2hpbGRyZW4oJ21lbnVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbWVudUJ1dHRvbnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHRyaWdnZXJzOiB7IFtwOiBzdHJpbmddOiBTdWJqZWN0PGJvb2xlYW4+IH0gPSB7fTtcbiAgY2xlYXJpbmdBY3Rpb25BbGxvd2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBwcnlEaWFsb2c6IFByeURpYWxvZ1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgY29tbWVudHNTZXJ2aWNlOiBIeXBDb21tZW50c1NlcnZpY2UsXG4gICAgcHJpdmF0ZSBzZXJ2aWNlU2VydmljZTogU2VydmljZVNlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLkFDVElPTlNfVFlQRVMgPSBPYmplY3Qua2V5cyhBQ1RJT05TX1RZUEVTLnZhbHVlcyk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTLnNvcnQoKGEsIGIpID0+IEFDVElPTlNfVFlQRVMudmFsdWVzW2FdLm9yZGVyIC0gQUNUSU9OU19UWVBFUy52YWx1ZXNbYl0ub3JkZXIpO1xuICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5hZGQoXG4gICAgICB0aGlzLnNlcnZpY2VTZXJ2aWNlLnJlZnJlc2hEaUFjdGlvbi5zdWJzY3JpYmUoKHJlc3VsdCkgPT4ge1xuICAgICAgICBpZiAocmVzdWx0KSB7XG4gICAgICAgICAgdGhpcy5yZWZyZXNoQWN0aW9ucy5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gICAgICAgIH1cbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBhY3Rpb25zKGFjdGlvbnM6IEh5cEFjdGlvbltdKSB7XG4gICAgdGhpcy5fYWN0aW9ucyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoYWN0aW9ucyA/PyBbXSkpO1xuICAgIHRoaXMudHJpZ2dlcnMgPSB0aGlzLmFjdGlvbnNcbiAgICAgIC5tYXAoKGEpID0+ICh7IFthLmlkXTogbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKSB9KSlcbiAgICAgIC5yZWR1Y2UoKHAsIGMpID0+ICh7IC4uLnAsIC4uLmMgfSksIHt9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKSByZWZyZXNoQWN0aW9ucyA9IG5ldyBFdmVudEVtaXR0ZXI8SHlwQWN0aW9uW10+KCk7XG5cbiAgZ2V0IGFjdGlvbnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGlvbnM7XG4gIH1cblxuICBnZXQgZWRpdGluZygpIHtcbiAgICByZXR1cm4gISF0aGlzLmFjdGlvbnMuZmluZCgoYWN0aW9uKSA9PiBhY3Rpb24uX3N0YXR1cyk7XG4gIH1cblxuICBvbk1vdXNlRG93bigkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLmRyYWdUYXJnZXQgPSAkZXZlbnQudGFyZ2V0O1xuICB9XG5cbiAgZHJhZ1N0YXJ0KCRldmVudDogTW91c2VFdmVudCwgYWN0aW9uOiBIeXBBY3Rpb24sIGluZGV4OiBudW1iZXIpIHtcbiAgICBpZiAodGhpcy5kcmFnVGFyZ2V0ICYmICh0aGlzLmRyYWdUYXJnZXQgYXMgSFRNTERpdkVsZW1lbnQpLnN0eWxlLm1hc2tJbWFnZS5pbmRleE9mKCdzaXhfZG90JykgPiAtMSkge1xuICAgICAgdGhpcy5tb3ZpbmdBY3Rpb24gPSBhY3Rpb247XG4gICAgICB0aGlzLm1vdmVTdGFydCA9ICRldmVudC5jbGllbnRZO1xuICAgICAgdGhpcy5tb3ZlSW5pdGlhbEluZGV4ID0gaW5kZXg7XG4gICAgICB0aGlzLmluaXRpYWxBY3Rpb25MaXN0ID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgfSBlbHNlIHtcbiAgICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgfVxuXG4gIG1vdmUoJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKHRoaXMubW92aW5nQWN0aW9uKSB7XG4gICAgICBjb25zdCBvZmZzZXRJbkNhcmRzID0gTWF0aC5yb3VuZCgoJGV2ZW50LmNsaWVudFkgLSB0aGlzLm1vdmVTdGFydCkgLyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50LkNBUkRfSEVJR0hUKTtcbiAgICAgIGlmICh0aGlzLnByZXZpb3VzT2Zmc2V0ICE9PSBvZmZzZXRJbkNhcmRzKSB7XG4gICAgICAgIHRoaXMucHJldmlvdXNPZmZzZXQgPSBvZmZzZXRJbkNhcmRzO1xuICAgICAgICBjb25zdCBuZXdJbmRleCA9IE1hdGgubWluKFxuICAgICAgICAgIE1hdGgubWF4KHRoaXMubW92ZUluaXRpYWxJbmRleCArIG9mZnNldEluQ2FyZHMsIDApLFxuICAgICAgICAgIHRoaXMuaW5pdGlhbEFjdGlvbkxpc3QubGVuZ3RoIC0gMVxuICAgICAgICApO1xuICAgICAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuaW5pdGlhbEFjdGlvbkxpc3RdO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gbmV3QWN0aW9ucy5zcGxpY2UodGhpcy5tb3ZlSW5pdGlhbEluZGV4LCAxKVswXTtcbiAgICAgICAgbmV3QWN0aW9ucy5zcGxpY2UobmV3SW5kZXgsIDAsIGVsZW1lbnQpO1xuXG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBkcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIHRoaXMubW92ZSgkZXZlbnQpO1xuICAgIHRoaXMubW92aW5nQWN0aW9uID0gdW5kZWZpbmVkO1xuICB9XG5cbiAgYWxsb3dEcm9wKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgdG9nZ2xlQWN0aW9uU3RhdHVzKGluZGV4OiBudW1iZXIsICRldmVudDogTW91c2VFdmVudCwgZGlzYWJsZWQ6IGJvb2xlYW4pIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBuZXdBY3Rpb25zID0gWy4uLnRoaXMuYWN0aW9uc107XG4gICAgICBpZiAobmV3QWN0aW9uc1tpbmRleF0uc3RhdHVzICE9PSAnRE9ORScpIHtcbiAgICAgICAgbmV3QWN0aW9uc1tpbmRleF0gPSB7XG4gICAgICAgICAgLi4ubmV3QWN0aW9uc1tpbmRleF0sXG4gICAgICAgICAgc3RhdHVzOiBuZXdBY3Rpb25zW2luZGV4XS5zdGF0dXMgPT09ICdORVcnID8gJ0lOX1BST0dSRVNTJyA6ICdORVcnXG4gICAgICAgIH07XG4gICAgICAgIHRoaXMubW9kaWZpZWQubmV4dChuZXdBY3Rpb25zKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBhZGQoKSB7XG4gICAgdGhpcy5hY3Rpb25zLnB1c2goeyB0eXBlOiAnJywgc3RhdHVzOiAnTkVXJywgaWQ6IHY0KCksIF9zdGF0dXM6ICdjcmVhdGUnIH0gYXMgSHlwQWN0aW9uKTtcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIHByb3RlY3RlZCByZWFkb25seSBtb2RlbCA9IG1vZGVsO1xuXG4gIHVwZGF0ZShpZHg6IG51bWJlciwgcHJvcDogc3RyaW5nLCAkZXZlbnQ6IGFueSkge1xuICAgIC8vIEB0cy1pZ25vcmVcbiAgICB0aGlzLmFjdGlvbnNbaWR4XVtwcm9wXSA9ICRldmVudDtcblxuICAgIGlmICh0aGlzLmNsZWFyaW5nQWN0aW9uQWxsb3dlZCAmJiBwcm9wID09ICd0eXBlJykge1xuICAgICAgdGhpcy5jbGVhckFjdGlvbihpZHgpO1xuICAgIH1cbiAgfVxuXG4gIGNsZWFyQWN0aW9uKGlkeDogbnVtYmVyKSB7XG4gICAgY29uc3QgeyB0eXBlLCBzdGF0dXMsIGlkLCBfc3RhdHVzLCBfaW5pdGlhbCB9ID0gdGhpcy5hY3Rpb25zW2lkeF07XG4gICAgdGhpcy5hY3Rpb25zW2lkeF0gPSB7IHR5cGUsIHN0YXR1cywgaWQsIF9zdGF0dXMsIF9pbml0aWFsIH0gYXMgSHlwQWN0aW9uO1xuICB9XG5cbiAgb3Blbk1vZGFsKGFjdGlvbjogSHlwQWN0aW9uLCBpZHg6IG51bWJlcikge1xuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMucHJ5RGlhbG9nLm9wZW4oSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwge1xuICAgICAgb3ZlcmxheUNvbmZpZzoge1xuICAgICAgICBoYXNCYWNrZHJvcDogdHJ1ZSxcbiAgICAgICAgcGFuZWxDbGFzczogWydwcnktZGlhbG9nLWNvbnRhaW5lciddLFxuICAgICAgICBiYWNrZHJvcENsYXNzOiAnYmFja2Ryb3AnLFxuICAgICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLm92ZXJsYXlcbiAgICAgICAgICAucG9zaXRpb24oKVxuICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMubWVudUJ1dHRvbnMuZ2V0KGlkeCkhKVxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgICBvdmVybGF5WTogJ3RvcCdcbiAgICAgICAgICAgIH1cbiAgICAgICAgICBdKVxuICAgICAgfSxcbiAgICAgIGRhdGE6IHtcbiAgICAgICAgYWN0aW9uLFxuICAgICAgICBtb2RlOiB0aGlzLm1vZGUsXG4gICAgICAgIGVuYWJsZUVkaXRBY3Rpb25zOiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zXG4gICAgICB9IGFzIEh2eUFjdGlvbk1lbnVEYXRhXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWIgPSBkaWFsb2dSZWYuY2xvc2VWYWx1ZS5zdWJzY3JpYmUoKHR5cGUpID0+IHtcbiAgICAgIHN3aXRjaCAodHlwZSkge1xuICAgICAgICBjYXNlICdjb21tZW50JzpcbiAgICAgICAgICB0aGlzLnRyaWdnZXJzW2FjdGlvbi5pZF0ubmV4dCh0cnVlKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAndXBkYXRlJzpcbiAgICAgICAgICBhY3Rpb24uX2luaXRpYWwgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbikpO1xuICAgICAgICAgIGFjdGlvbi5fc3RhdHVzID0gJ21vZGlmeSc7XG4gICAgICAgICAgdGhpcy5jbGVhcmluZ0FjdGlvbkFsbG93ZWQgPSBmYWxzZTtcbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xlYXJpbmdBY3Rpb25BbGxvd2VkID0gdHJ1ZTtcbiAgICAgICAgICB9LCA1MDApO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZG9uZSc6XG4gICAgICAgICAgYWN0aW9uLnN0YXR1cyA9ICdET05FJztcbiAgICAgIH1cbiAgICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNhdmVBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgZGVsZXRlIGFjdGlvbi5faW5pdGlhbDtcbiAgICBkZWxldGUgYWN0aW9uLl9zdGF0dXM7XG4gICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gIH1cblxuICBjYW5jZWxBY3Rpb24oYWN0aW9uOiBIeXBBY3Rpb24sIGlkeDogbnVtYmVyKSB7XG4gICAgaWYgKGFjdGlvbi5fc3RhdHVzID09PSAnbW9kaWZ5Jykge1xuICAgICAgdGhpcy5hY3Rpb25zW2lkeF0gPSB7IC4uLmFjdGlvbi5faW5pdGlhbCEgfTtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5faW5pdGlhbDtcbiAgICAgIGRlbGV0ZSB0aGlzLmFjdGlvbnNbaWR4XS5fc3RhdHVzO1xuICAgIH0gZWxzZSBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdjcmVhdGUnKSB7XG4gICAgICB0aGlzLmFjdGlvbnMuc3BsaWNlKGlkeCwgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignQ2Fubm90IGhhcHBlbicpO1xuICAgIH1cbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGlzVmFsaWQoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gKFxuICAgICAgYWN0aW9uLnR5cGUgJiZcbiAgICAgIChBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yID09PSB1bmRlZmluZWQgfHxcbiAgICAgICAgQUNUSU9OU19UWVBFUy52YWx1ZXNbYWN0aW9uLnR5cGVdLnZhbGlkYXRvciEoYWN0aW9uKSlcbiAgICApO1xuICB9XG5cbiAgaXNEcmFnZ2FibGUoYWN0aW9uOiBIeXBBY3Rpb24pIHtcbiAgICByZXR1cm4gIXRoaXMuZWRpdGluZyAmJiBhY3Rpb24uc3RhdHVzID09PSAnTkVXJyAmJiAhdGhpcy5yZWFkb25seSAmJiB0aGlzLmVuYWJsZUVkaXRBY3Rpb25zO1xuICB9XG5cbiAgdXBkYXRlQ29tbWVudChhY3Rpb246IEh5cEFjdGlvbiwgY29tbWVudDogeyBpZDogc3RyaW5nOyBtZXNzYWdlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLnNhdmUoYWN0aW9uLmlkLCAnYWN0aW9ucycsIGNvbW1lbnQpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmNvbW1lbnRzU2VydmljZS5nZXQoYWN0aW9uLmlkLCAnYWN0aW9ucycpLnN1YnNjcmliZSgoY29tbWVudHMpID0+IHtcbiAgICAgICAgdGhpcy5jb21tZW50ZWQubmV4dCh7IGFjdGlvbiwgY29tbWVudHMgfSk7XG4gICAgICB9KTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc1wiXG4gIChkcmFnKT1cIm1vdmUoJGV2ZW50KVwiXG4gIChkcm9wKT1cImRyb3AoJGV2ZW50KVwiXG4gIChkcmFnb3Zlcik9XCJhbGxvd0Ryb3AoJGV2ZW50KVwiXG4+XG4gIEBmb3IgKGFjdGlvbiBvZiBhY3Rpb25zOyB0cmFjayBhY3Rpb24uaWQ7IGxldCBpZHggPSAkaW5kZXgpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uXCJcbiAgICAgIFtkcmFnZ2FibGVdPVwiaXNEcmFnZ2FibGUoYWN0aW9uKSAmJiAhcmVhZG9ubHlcIlxuICAgICAgKGRyYWdzdGFydCk9XCJkcmFnU3RhcnQoJGV2ZW50LCBhY3Rpb24sIGlkeClcIlxuICAgICAgKG1vdXNlZG93bik9XCJvbk1vdXNlRG93bigkZXZlbnQpXCJcbiAgICAgIFtjbGFzcy4tdXBkYXRpbmddPVwiISFhY3Rpb24uX3N0YXR1c1wiXG4gICAgICBbY2xhc3MuLW90aGVyLXVwZGF0aW5nXT1cImVkaXRpbmdcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9faGVhZGVyXCI+XG4gICAgICAgIEBpZiAodGhpcy5lbmFibGVFZGl0QWN0aW9ucykge1xuICAgICAgICAgIDxwcnktaWNvblxuICAgICAgICAgICAgaWNvblN2Zz1cInNpeF9kb3RcIlxuICAgICAgICAgICAgI2hhbmRsZVxuICAgICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCIhaXNEcmFnZ2FibGUoYWN0aW9uKVwiXG4gICAgICAgICAgICBbY2xhc3MuLWhpZGRlbl09XCJhY3Rpb24uX3N0YXR1cyB8fCByZWFkb25seVwiXG4gICAgICAgICAgICBjbGFzcz1cImdyYWJiYWJsZVwiXG4gICAgICAgICAgPjwvcHJ5LWljb24+XG4gICAgICAgIH1cbiAgICAgICAgPGRpdiBjbGFzcz1cIm51bWJlci1iYWRnZVwiPnt7IGlkeCArIDEgfX08L2Rpdj5cbiAgICAgICAgQGlmICghYWN0aW9uLl9zdGF0dXMgfHwgcmVhZG9ubHkpIHtcbiAgICAgICAgICBAaWYgKG1vZGUgPT09ICdwcm9jZWR1cmUnKSB7XG4gICAgICAgICAgICA8cHJ5LWNoZWNrYm94XG4gICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi5zdGF0dXMgIT09ICdORVcnXCJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cInRvZ2dsZUFjdGlvblN0YXR1cyhpZHgsICRldmVudCwgYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnIHx8IChyZWFkb25seSA/PyBmYWxzZSkpXCJcbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImFjdGlvbi5zdGF0dXMgPT09ICdET05FJyB8fCAocmVhZG9ubHkgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgICAgW2NsYXNzLi1kaXNhYmxlZF09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORScgfHwgKHJlYWRvbmx5ID8/IGZhbHNlKVwiXG4gICAgICAgICAgICAgIFt0aXRsZV09XCInQGh2eS5wcm9jZWR1cmUuY2hlY2tib3guJyArIGFjdGlvbi5zdGF0dXMgfCBpMThuXCJcbiAgICAgICAgICAgID48L3ByeS1jaGVja2JveD5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBbY2xhc3MuLWRvbmVdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnXCIgW2NsYXNzLi1kaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXJcbiAgICAgICAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAgICAgICBbdHlwZV09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgIFtpc1BhcmFtXT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgW2V2ZW50c109XCJ0aGlzLmV2ZW50c1wiXG4gICAgICAgICAgICAgIFttb2RlXT1cInRoaXMubW9kZVwiXG4gICAgICAgICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICAgICA+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICBAaWYgKCFyZWFkb25seSkge1xuICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwib3Blbk1vZGFsKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwibW9yZV9ob3JpelwiICNtZW51QnV0dG9uPjwvcHJ5LWljb24+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25fX2NyZWF0ZV9faGVhZGVyXCI+XG4gICAgICAgICAgICAgIDxwPnt7ICdAaHZ5LnByb2NlZHVyZS5hY3Rpb24uJyArIGFjdGlvbi5fc3RhdHVzIHwgaTE4biB9fTwvcD5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwic2F2ZUFjdGlvbihhY3Rpb24sIGlkeClcIiBbZGlzYWJsZWRdPVwiIWlzVmFsaWQoYWN0aW9uKVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2hlY2tcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1pY29uLW9ubHlcIiAoY2xpY2spPVwiY2FuY2VsQWN0aW9uKGFjdGlvbiwgaWR4KVwiPlxuICAgICAgICAgICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiY2xvc2VcIj48L3ByeS1pY29uPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgPHByeS1zZWxlY3RcbiAgICAgICAgICAgICAgICBbbmdNb2RlbF09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgICAgW2l0ZW1zXT1cIkFDVElPTlNfVFlQRVNcIlxuICAgICAgICAgICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZShpZHgsICd0eXBlJywgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgaTE4blByZWZpeD1cIkBodnkucHJvY2VkdXJlLmFjdGlvbi5cIlxuICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInQGh2eS5wcm9jZWR1cmUuYWN0aW9uLnBsYWNlaG9sZGVyLmFjdGlvbicgfCBpMThuXCJcbiAgICAgICAgICAgICAgPjwvcHJ5LXNlbGVjdD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGh2eS1hY3Rpb24tcGFyYW1ldGVyXG4gICAgICAgICAgICAgIFthY3Rpb25dPVwiYWN0aW9uXCJcbiAgICAgICAgICAgICAgW3R5cGVdPVwiYWN0aW9uLnR5cGVcIlxuICAgICAgICAgICAgICBbaXNQYXJhbV09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgW2V2ZW50c109XCJ0aGlzLmV2ZW50c1wiXG4gICAgICAgICAgICAgIFttb2RlXT1cInRoaXMubW9kZVwiXG4gICAgICAgICAgICA+PC9odnktYWN0aW9uLXBhcmFtZXRlcj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICA8aHZ5LWNvbW1lbnRzXG4gICAgICAgIFtsYXN0Q29tbWVudF09XCJhY3Rpb24ubGFzdENvbW1lbnRcIlxuICAgICAgICBbY29tbWVudENvdW50XT1cImFjdGlvbi5jb21tZW50c0NvdW50XCJcbiAgICAgICAgW29iamVjdElkXT1cImFjdGlvbi5pZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkT25seUNvbW1lbnRcIlxuICAgICAgICAoY29tbWVudGVkKT1cInVwZGF0ZUNvbW1lbnQoYWN0aW9uLCAkZXZlbnQpXCJcbiAgICAgICAgW3R5cGVdPVwiJ2FjdGlvbnMnXCJcbiAgICAgICAgW3RyaWdnZXJdPVwidHJpZ2dlcnNbYWN0aW9uLmlkXVwiXG4gICAgICAgIFtkaXNwbGF5RW1wdHldPVwiZmFsc2VcIlxuICAgICAgICBbbWVdPVwibWVcIlxuICAgICAgPjwvaHZ5LWNvbW1lbnRzPlxuICAgIDwvZGl2PlxuICB9IEBlbXB0eSB7XG4gICAgQGlmIChhY3Rpb25zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgPGRpdj57eyAnQGh2eS5ldmVudC5sb2cucHJvY2VkdXJlLm5vQWN0aW9uJyB8IGkxOG4gfX08L2Rpdj5cbiAgICB9XG4gIH1cbiAgQGlmICghcmVhZG9ubHkgJiYgZW5hYmxlRWRpdEFjdGlvbnMpIHtcbiAgICA8ZGl2IGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19idXR0b25cIj5cbiAgICAgIDxidXR0b24gY2xhc3M9XCJhLWJ0biBhLWJ0bi0tcHJpbWFyeVwiIChjbGljayk9XCJhZGQoKVwiIFtkaXNhYmxlZF09XCJlZGl0aW5nXCI+XG4gICAgICAgIDxwcnktaWNvbiBpY29uU3ZnPVwiYWRkXCI+PC9wcnktaWNvbj5cbiAgICAgICAge3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi5hZGQnIHwgaTE4biB9fVxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gIH1cbjwvZGl2PlxuIl19
235
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvY2VkdXJlLWFjdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJvdm9seS9oeXBlcnZpc29yL3NyYy9saWIvZ2VuZXJhbC9wcm9jZWR1cmUtYWN0aW9ucy9wcm9jZWR1cmUtYWN0aW9ucy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcm92b2x5L2h5cGVydmlzb3Ivc3JjL2xpYi9nZW5lcmFsL3Byb2NlZHVyZS1hY3Rpb25zL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBYSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkgsT0FBTyxFQUFvQix3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRWhGLE9BQU8sRUFBRSxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUIsT0FBTyxFQUFFLHNCQUFzQixFQUFxQixNQUFNLHlCQUF5QixDQUFDO0FBRXBGLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7Ozs7O0FBUy9CLE1BQU0sT0FBTyx5QkFBMEIsU0FBUSx3QkFBd0I7YUFDOUQsZ0JBQVcsR0FBRyxFQUFFLEFBQUwsQ0FBTTtJQXFCeEIsWUFDVSxTQUEyQixFQUMzQixPQUFnQixFQUNoQixlQUFtQyxFQUNuQyxjQUE4QjtRQUV0QyxLQUFLLEVBQUUsQ0FBQztRQUxBLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQzNCLFlBQU8sR0FBUCxPQUFPLENBQVM7UUFDaEIsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBQ25DLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQXZCeEMsY0FBUyxHQUFHLENBQUMsQ0FBQztRQUNkLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUNyQixzQkFBaUIsR0FBZ0IsRUFBRSxDQUFDO1FBQ3BDLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBRVQsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUFDM0MsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFpRCxDQUFDO1FBQy9FLFNBQUksR0FBMEIsV0FBVyxDQUFDO1FBRTFDLGFBQVEsR0FBbUIsS0FBSyxDQUFDO1FBQ2pDLG9CQUFlLEdBQW1CLEtBQUssQ0FBQztRQUN4QyxzQkFBaUIsR0FBbUIsS0FBSyxDQUFDO1FBQzFDLFdBQU0sR0FBc0IsRUFBRSxDQUFDO1FBRXhDLGFBQVEsR0FBZ0IsRUFBRSxDQUFDO1FBRTNCLGFBQVEsR0FBc0MsRUFBRSxDQUFDO1FBQ2pELHFCQUFnQixHQUFJLElBQUksQ0FBQztRQTJCZixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7UUF5RXhDLFVBQUssR0FBRyxLQUFLLENBQUM7UUEzRi9CLElBQUksQ0FBQyxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pHLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUNwQixJQUFJLENBQUMsY0FBYyxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRTtZQUN2RCxJQUFJLE1BQU0sRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN6QyxDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQ0gsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFhLE9BQU8sQ0FBQyxPQUFvQjtRQUN2QyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ3pCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLElBQUksT0FBTyxFQUFXLEVBQUUsQ0FBQyxDQUFDO2FBQ2hELE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUlELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN2QixDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWtCO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUNsQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWtCLEVBQUUsTUFBaUIsRUFBRSxLQUFhO1FBQzVELElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSyxJQUFJLENBQUMsVUFBNkIsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO1lBQ25HLElBQUksQ0FBQyxZQUFZLEdBQUcsTUFBTSxDQUFDO1lBQzNCLElBQUksQ0FBQyxTQUFTLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1lBQzlCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQzFCLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxDQUFDLE1BQWtCO1FBQ3JCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDNUcsSUFBSSxJQUFJLENBQUMsY0FBYyxLQUFLLGFBQWEsRUFBRSxDQUFDO2dCQUMxQyxJQUFJLENBQUMsY0FBYyxHQUFHLGFBQWEsQ0FBQztnQkFDcEMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUNsRCxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FDbEMsQ0FBQztnQkFDRixNQUFNLFVBQVUsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7Z0JBQy9DLE1BQU0sT0FBTyxHQUFHLFVBQVUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMvRCxVQUFVLENBQUMsTUFBTSxDQUFDLFFBQVEsRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7Z0JBRXhDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2pDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FBQyxNQUFrQjtRQUNyQixNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNsQixJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztJQUNoQyxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWtCO1FBQzFCLE1BQU0sQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUMxQixDQUFDO0lBRUQsa0JBQWtCLENBQUMsS0FBYSxFQUFFLE1BQWtCLEVBQUUsUUFBaUI7UUFDckUsTUFBTSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNkLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckMsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLE1BQU0sRUFBRSxDQUFDO2dCQUN4QyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUc7b0JBQ2xCLEdBQUcsVUFBVSxDQUFDLEtBQUssQ0FBQztvQkFDcEIsTUFBTSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLEtBQUs7aUJBQ25FLENBQUM7Z0JBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFDakMsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsR0FBRztRQUNELElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFlLENBQUMsQ0FBQztRQUN6RixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUlELE1BQU0sQ0FBQyxHQUFXLEVBQUUsSUFBWSxFQUFFLE1BQVc7UUFDM0MsYUFBYTtRQUNiLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsTUFBTSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3hCLENBQUM7UUFDRCxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ2hDLENBQUM7SUFFRCxXQUFXLENBQUMsR0FBVztRQUNyQixNQUFNLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDbEUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQWUsQ0FBQztJQUMzRSxDQUFDO0lBRUQsU0FBUyxDQUFDLE1BQWlCLEVBQUUsR0FBVztRQUN0QyxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxzQkFBc0IsRUFBRTtZQUM1RCxhQUFhLEVBQUU7Z0JBQ2IsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFVBQVUsRUFBRSxDQUFDLHNCQUFzQixDQUFDO2dCQUNwQyxhQUFhLEVBQUUsVUFBVTtnQkFDekIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU87cUJBQzNCLFFBQVEsRUFBRTtxQkFDVixtQkFBbUIsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUUsQ0FBQztxQkFDL0MsYUFBYSxDQUFDO29CQUNiO3dCQUNFLE9BQU8sRUFBRSxPQUFPO3dCQUNoQixPQUFPLEVBQUUsUUFBUTt3QkFDakIsUUFBUSxFQUFFLE9BQU87d0JBQ2pCLFFBQVEsRUFBRSxLQUFLO3FCQUNoQjtpQkFDRixDQUFDO2FBQ0w7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osTUFBTTtnQkFDTixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUk7Z0JBQ2YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjthQUNyQjtTQUN2QixDQUFDLENBQUM7UUFFSCxNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ2xELFFBQVEsSUFBSSxFQUFFLENBQUM7Z0JBQ2IsS0FBSyxTQUFTO29CQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztvQkFDcEMsTUFBTTtnQkFDUixLQUFLLFFBQVE7b0JBQ1gsTUFBTSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztvQkFDckQsTUFBTSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUM7b0JBQzFCLE1BQU07Z0JBQ1IsS0FBSyxRQUFRO29CQUNYLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztvQkFDNUIsTUFBTTtnQkFDUixLQUFLLE1BQU07b0JBQ1QsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7WUFDM0IsQ0FBQztZQUNELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNqQyxVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNwQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELFVBQVUsQ0FBQyxNQUFpQixFQUFFLEdBQVc7UUFDdkMsT0FBTyxNQUFNLENBQUMsUUFBUSxDQUFDO1FBQ3ZCLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELFlBQVksQ0FBQyxNQUFpQixFQUFFLEdBQVc7UUFDekMsSUFBSSxNQUFNLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLE1BQU0sQ0FBQyxRQUFTLEVBQUUsQ0FBQztZQUM1QyxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUMsUUFBUSxDQUFDO1lBQ2xDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDbkMsQ0FBQzthQUFNLElBQUksTUFBTSxDQUFDLE9BQU8sS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUN2QyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDOUIsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkMsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUFpQjtRQUN2QixPQUFPLENBQ0wsTUFBTSxDQUFDLElBQUk7WUFDWCxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTO2dCQUN4RCxhQUFhLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FDeEQsQ0FBQztJQUNKLENBQUM7SUFFRCxXQUFXLENBQUMsTUFBaUI7UUFDM0IsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUM5RixDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWlCLEVBQUUsT0FBd0M7UUFDdkUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN0RSxJQUFJLENBQUMsZUFBZSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLFNBQVMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFO2dCQUNwRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQzVDLENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOzhHQTdOVSx5QkFBeUI7a0dBQXpCLHlCQUF5QiwrWUFrQkEsVUFBVSxvRENuQ2hELCt6SUEyR0E7OzJGRDFGYSx5QkFBeUI7a0JBSnJDLFNBQVM7K0JBQ0UsdUJBQXVCO3lLQVd2QixRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0UsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSztnQkFHNEMsV0FBVztzQkFBNUQsWUFBWTt1QkFBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO2dCQXNCbkMsT0FBTztzQkFBbkIsS0FBSztnQkFPSSxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBtb2RlbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUHJ5RGlhbG9nU2VydmljZSwgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIH0gZnJvbSAnQHByb3ZvbHkvZGFzaGJvYXJkJztcbmltcG9ydCB7IEh5cEFjdGlvbiB9IGZyb20gJy4uLy4uL21vZGVsL3Byb2NlZHVyZS9oeXAtYWN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyB2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSHZ5QWN0aW9uTWVudUNvbXBvbmVudCwgSHZ5QWN0aW9uTWVudURhdGEgfSBmcm9tICcuL2FjdGlvbi1tZW51LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQUNUSU9OU19UWVBFUyB9IGZyb20gJy4vYWN0aW9ucy10eXBlcy5jb25zdGFudCc7XG5pbXBvcnQgeyBIeXBDb21tZW50c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zdG9yZS9jb21tZW50cy9jb21tZW50cy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEh5cEV2ZW50RGV0YWlscyB9IGZyb20gJy4uLy4uL21vZGVsL2V2ZW50L2h5cC1ldmVudC1kZXRhaWwuaW50ZXJmYWNlJztcbmltcG9ydCB7IEh5cENvbW1lbnQgfSBmcm9tICcuLi8uLi9tb2RlbC9jb21tZW50LmludGVyZmFjZSc7XG5pbXBvcnQgeyBTZXJ2aWNlU2VydmljZSB9IGZyb20gJy4uLy4uL3N0b3JlL3NlcnZpY2Uvc2VydmljZS5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaHZ5LXByb2NlZHVyZS1hY3Rpb25zJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Byb2NlZHVyZS1hY3Rpb25zLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBQcm9jZWR1cmVBY3Rpb25zQ29tcG9uZW50IGV4dGVuZHMgU3Vic2NyaXB0aW9ubmVyRGlyZWN0aXZlIHtcbiAgc3RhdGljIENBUkRfSEVJR0hUID0gNzU7XG4gIG1vdmluZ0FjdGlvbj86IEh5cEFjdGlvbjtcbiAgbW92ZVN0YXJ0ID0gMDtcbiAgbW92ZUluaXRpYWxJbmRleCA9IDA7XG4gIGluaXRpYWxBY3Rpb25MaXN0OiBIeXBBY3Rpb25bXSA9IFtdO1xuICBwcmV2aW91c09mZnNldCA9IDA7XG4gIGRyYWdUYXJnZXQ/OiBFdmVudFRhcmdldCB8IG51bGw7XG4gIEBPdXRwdXQoKSBtb2RpZmllZCA9IG5ldyBFdmVudEVtaXR0ZXI8SHlwQWN0aW9uW10+KCk7XG4gIEBPdXRwdXQoKSBjb21tZW50ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgYWN0aW9uOiBIeXBBY3Rpb247IGNvbW1lbnRzOiBIeXBDb21tZW50W10gfT4oKTtcbiAgQElucHV0KCkgbW9kZTogJ21vZGVsJyB8ICdwcm9jZWR1cmUnID0gJ3Byb2NlZHVyZSc7XG4gIEBJbnB1dCgpIG1lOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkO1xuICBASW5wdXQoKSByZWFkb25seTogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgcmVhZE9ubHlDb21tZW50OiBib29sZWFuIHwgbnVsbCA9IGZhbHNlO1xuICBASW5wdXQoKSBlbmFibGVFZGl0QWN0aW9uczogYm9vbGVhbiB8IG51bGwgPSBmYWxzZTtcbiAgQElucHV0KCkgZXZlbnRzOiBIeXBFdmVudERldGFpbHNbXSA9IFtdO1xuICBBQ1RJT05TX1RZUEVTOiBzdHJpbmdbXTtcbiAgX2FjdGlvbnM6IEh5cEFjdGlvbltdID0gW107XG4gIEBWaWV3Q2hpbGRyZW4oJ21lbnVCdXR0b24nLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSkgbWVudUJ1dHRvbnMhOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG4gIHRyaWdnZXJzOiB7IFtwOiBzdHJpbmddOiBTdWJqZWN0PGJvb2xlYW4+IH0gPSB7fTtcbiAgaWdub3JlRmlyc3RFdmVudCA9ICB0cnVlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcHJ5RGlhbG9nOiBQcnlEaWFsb2dTZXJ2aWNlLFxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheSxcbiAgICBwcml2YXRlIGNvbW1lbnRzU2VydmljZTogSHlwQ29tbWVudHNTZXJ2aWNlLFxuICAgIHByaXZhdGUgc2VydmljZVNlcnZpY2U6IFNlcnZpY2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5BQ1RJT05TX1RZUEVTID0gT2JqZWN0LmtleXMoQUNUSU9OU19UWVBFUy52YWx1ZXMpO1xuICAgIHRoaXMuQUNUSU9OU19UWVBFUy5zb3J0KChhLCBiKSA9PiBBQ1RJT05TX1RZUEVTLnZhbHVlc1thXS5vcmRlciAtIEFDVElPTlNfVFlQRVMudmFsdWVzW2JdLm9yZGVyKTtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuYWRkKFxuICAgICAgdGhpcy5zZXJ2aWNlU2VydmljZS5yZWZyZXNoRGlBY3Rpb24uc3Vic2NyaWJlKChyZXN1bHQpID0+IHtcbiAgICAgICAgaWYgKHJlc3VsdCkge1xuICAgICAgICAgIHRoaXMucmVmcmVzaEFjdGlvbnMubmV4dCh0aGlzLmFjdGlvbnMpO1xuICAgICAgICB9XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgYWN0aW9ucyhhY3Rpb25zOiBIeXBBY3Rpb25bXSkge1xuICAgIHRoaXMuX2FjdGlvbnMgPSBKU09OLnBhcnNlKEpTT04uc3RyaW5naWZ5KGFjdGlvbnMgPz8gW10pKTtcbiAgICB0aGlzLnRyaWdnZXJzID0gdGhpcy5hY3Rpb25zXG4gICAgICAubWFwKChhKSA9PiAoeyBbYS5pZF06IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCkgfSkpXG4gICAgICAucmVkdWNlKChwLCBjKSA9PiAoeyAuLi5wLCAuLi5jIH0pLCB7fSk7XG4gIH1cblxuICBAT3V0cHV0KCkgcmVmcmVzaEFjdGlvbnMgPSBuZXcgRXZlbnRFbWl0dGVyPEh5cEFjdGlvbltdPigpO1xuXG4gIGdldCBhY3Rpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3Rpb25zO1xuICB9XG5cbiAgZ2V0IGVkaXRpbmcoKSB7XG4gICAgcmV0dXJuICEhdGhpcy5hY3Rpb25zLmZpbmQoKGFjdGlvbikgPT4gYWN0aW9uLl9zdGF0dXMpO1xuICB9XG5cbiAgb25Nb3VzZURvd24oJGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgdGhpcy5kcmFnVGFyZ2V0ID0gJGV2ZW50LnRhcmdldDtcbiAgfVxuXG4gIGRyYWdTdGFydCgkZXZlbnQ6IE1vdXNlRXZlbnQsIGFjdGlvbjogSHlwQWN0aW9uLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZHJhZ1RhcmdldCAmJiAodGhpcy5kcmFnVGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50KS5zdHlsZS5tYXNrSW1hZ2UuaW5kZXhPZignc2l4X2RvdCcpID4gLTEpIHtcbiAgICAgIHRoaXMubW92aW5nQWN0aW9uID0gYWN0aW9uO1xuICAgICAgdGhpcy5tb3ZlU3RhcnQgPSAkZXZlbnQuY2xpZW50WTtcbiAgICAgIHRoaXMubW92ZUluaXRpYWxJbmRleCA9IGluZGV4O1xuICAgICAgdGhpcy5pbml0aWFsQWN0aW9uTGlzdCA9IFsuLi50aGlzLmFjdGlvbnNdO1xuICAgIH0gZWxzZSB7XG4gICAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBtb3ZlKCRldmVudDogTW91c2VFdmVudCkge1xuICAgICRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIGlmICh0aGlzLm1vdmluZ0FjdGlvbikge1xuICAgICAgY29uc3Qgb2Zmc2V0SW5DYXJkcyA9IE1hdGgucm91bmQoKCRldmVudC5jbGllbnRZIC0gdGhpcy5tb3ZlU3RhcnQpIC8gUHJvY2VkdXJlQWN0aW9uc0NvbXBvbmVudC5DQVJEX0hFSUdIVCk7XG4gICAgICBpZiAodGhpcy5wcmV2aW91c09mZnNldCAhPT0gb2Zmc2V0SW5DYXJkcykge1xuICAgICAgICB0aGlzLnByZXZpb3VzT2Zmc2V0ID0gb2Zmc2V0SW5DYXJkcztcbiAgICAgICAgY29uc3QgbmV3SW5kZXggPSBNYXRoLm1pbihcbiAgICAgICAgICBNYXRoLm1heCh0aGlzLm1vdmVJbml0aWFsSW5kZXggKyBvZmZzZXRJbkNhcmRzLCAwKSxcbiAgICAgICAgICB0aGlzLmluaXRpYWxBY3Rpb25MaXN0Lmxlbmd0aCAtIDFcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV3QWN0aW9ucyA9IFsuLi50aGlzLmluaXRpYWxBY3Rpb25MaXN0XTtcbiAgICAgICAgY29uc3QgZWxlbWVudCA9IG5ld0FjdGlvbnMuc3BsaWNlKHRoaXMubW92ZUluaXRpYWxJbmRleCwgMSlbMF07XG4gICAgICAgIG5ld0FjdGlvbnMuc3BsaWNlKG5ld0luZGV4LCAwLCBlbGVtZW50KTtcblxuICAgICAgICB0aGlzLm1vZGlmaWVkLm5leHQobmV3QWN0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgZHJvcCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICB0aGlzLm1vdmUoJGV2ZW50KTtcbiAgICB0aGlzLm1vdmluZ0FjdGlvbiA9IHVuZGVmaW5lZDtcbiAgfVxuXG4gIGFsbG93RHJvcCgkZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAkZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHRvZ2dsZUFjdGlvblN0YXR1cyhpbmRleDogbnVtYmVyLCAkZXZlbnQ6IE1vdXNlRXZlbnQsIGRpc2FibGVkOiBib29sZWFuKSB7XG4gICAgJGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgY29uc3QgbmV3QWN0aW9ucyA9IFsuLi50aGlzLmFjdGlvbnNdO1xuICAgICAgaWYgKG5ld0FjdGlvbnNbaW5kZXhdLnN0YXR1cyAhPT0gJ0RPTkUnKSB7XG4gICAgICAgIG5ld0FjdGlvbnNbaW5kZXhdID0ge1xuICAgICAgICAgIC4uLm5ld0FjdGlvbnNbaW5kZXhdLFxuICAgICAgICAgIHN0YXR1czogbmV3QWN0aW9uc1tpbmRleF0uc3RhdHVzID09PSAnTkVXJyA/ICdJTl9QUk9HUkVTUycgOiAnTkVXJ1xuICAgICAgICB9O1xuICAgICAgICB0aGlzLm1vZGlmaWVkLm5leHQobmV3QWN0aW9ucyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgYWRkKCkge1xuICAgIHRoaXMuYWN0aW9ucy5wdXNoKHsgdHlwZTogJycsIHN0YXR1czogJ05FVycsIGlkOiB2NCgpLCBfc3RhdHVzOiAnY3JlYXRlJyB9IGFzIEh5cEFjdGlvbik7XG4gICAgdGhpcy5tb2RpZmllZC5uZXh0KHRoaXMuYWN0aW9ucyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgbW9kZWwgPSBtb2RlbDtcblxuICB1cGRhdGUoaWR4OiBudW1iZXIsIHByb3A6IHN0cmluZywgJGV2ZW50OiBhbnkpIHtcbiAgICAvLyBAdHMtaWdub3JlXG4gICAgdGhpcy5hY3Rpb25zW2lkeF1bcHJvcF0gPSAkZXZlbnQ7XG4gICAgaWYgKCF0aGlzLmlnbm9yZUZpcnN0RXZlbnQpIHtcbiAgICAgIHRoaXMuY2xlYXJBY3Rpb24oaWR4KTtcbiAgICB9XG4gICAgdGhpcy5pZ25vcmVGaXJzdEV2ZW50ID0gZmFsc2U7XG4gIH1cblxuICBjbGVhckFjdGlvbihpZHg6IG51bWJlcikge1xuICAgIGNvbnN0IHsgdHlwZSwgc3RhdHVzLCBpZCwgX3N0YXR1cywgX2luaXRpYWwgfSA9IHRoaXMuYWN0aW9uc1tpZHhdO1xuICAgIHRoaXMuYWN0aW9uc1tpZHhdID0geyB0eXBlLCBzdGF0dXMsIGlkLCBfc3RhdHVzLCBfaW5pdGlhbCB9IGFzIEh5cEFjdGlvbjtcbiAgfVxuXG4gIG9wZW5Nb2RhbChhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLnByeURpYWxvZy5vcGVuKEh2eUFjdGlvbk1lbnVDb21wb25lbnQsIHtcbiAgICAgIG92ZXJsYXlDb25maWc6IHtcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIHBhbmVsQ2xhc3M6IFsncHJ5LWRpYWxvZy1jb250YWluZXInXSxcbiAgICAgICAgYmFja2Ryb3BDbGFzczogJ2JhY2tkcm9wJyxcbiAgICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5vdmVybGF5XG4gICAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgICAuZmxleGlibGVDb25uZWN0ZWRUbyh0aGlzLm1lbnVCdXR0b25zLmdldChpZHgpISlcbiAgICAgICAgICAud2l0aFBvc2l0aW9ucyhbXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIG9yaWdpblg6ICdzdGFydCcsXG4gICAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICAgICAgICB9XG4gICAgICAgICAgXSlcbiAgICAgIH0sXG4gICAgICBkYXRhOiB7XG4gICAgICAgIGFjdGlvbixcbiAgICAgICAgbW9kZTogdGhpcy5tb2RlLFxuICAgICAgICBlbmFibGVFZGl0QWN0aW9uczogdGhpcy5lbmFibGVFZGl0QWN0aW9uc1xuICAgICAgfSBhcyBIdnlBY3Rpb25NZW51RGF0YVxuICAgIH0pO1xuXG4gICAgY29uc3Qgc3ViID0gZGlhbG9nUmVmLmNsb3NlVmFsdWUuc3Vic2NyaWJlKCh0eXBlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHR5cGUpIHtcbiAgICAgICAgY2FzZSAnY29tbWVudCc6XG4gICAgICAgICAgdGhpcy50cmlnZ2Vyc1thY3Rpb24uaWRdLm5leHQodHJ1ZSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ3VwZGF0ZSc6XG4gICAgICAgICAgYWN0aW9uLl9pbml0aWFsID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShhY3Rpb24pKTtcbiAgICAgICAgICBhY3Rpb24uX3N0YXR1cyA9ICdtb2RpZnknO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdkZWxldGUnOlxuICAgICAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnZG9uZSc6XG4gICAgICAgICAgYWN0aW9uLnN0YXR1cyA9ICdET05FJztcbiAgICAgIH1cbiAgICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHN1Yi51bnN1YnNjcmliZSgpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9KTtcbiAgICB0aGlzLmlnbm9yZUZpcnN0RXZlbnQgPSB0cnVlO1xuICB9XG5cbiAgc2F2ZUFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBkZWxldGUgYWN0aW9uLl9pbml0aWFsO1xuICAgIGRlbGV0ZSBhY3Rpb24uX3N0YXR1cztcbiAgICB0aGlzLm1vZGlmaWVkLm5leHQodGhpcy5hY3Rpb25zKTtcbiAgfVxuXG4gIGNhbmNlbEFjdGlvbihhY3Rpb246IEh5cEFjdGlvbiwgaWR4OiBudW1iZXIpIHtcbiAgICBpZiAoYWN0aW9uLl9zdGF0dXMgPT09ICdtb2RpZnknKSB7XG4gICAgICB0aGlzLmFjdGlvbnNbaWR4XSA9IHsgLi4uYWN0aW9uLl9pbml0aWFsISB9O1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9pbml0aWFsO1xuICAgICAgZGVsZXRlIHRoaXMuYWN0aW9uc1tpZHhdLl9zdGF0dXM7XG4gICAgfSBlbHNlIGlmIChhY3Rpb24uX3N0YXR1cyA9PT0gJ2NyZWF0ZScpIHtcbiAgICAgIHRoaXMuYWN0aW9ucy5zcGxpY2UoaWR4LCAxKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdDYW5ub3QgaGFwcGVuJyk7XG4gICAgfVxuICAgIHRoaXMubW9kaWZpZWQubmV4dCh0aGlzLmFjdGlvbnMpO1xuICB9XG5cbiAgaXNWYWxpZChhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAoXG4gICAgICBhY3Rpb24udHlwZSAmJlxuICAgICAgKEFDVElPTlNfVFlQRVMudmFsdWVzW2FjdGlvbi50eXBlXS52YWxpZGF0b3IgPT09IHVuZGVmaW5lZCB8fFxuICAgICAgICBBQ1RJT05TX1RZUEVTLnZhbHVlc1thY3Rpb24udHlwZV0udmFsaWRhdG9yIShhY3Rpb24pKVxuICAgICk7XG4gIH1cblxuICBpc0RyYWdnYWJsZShhY3Rpb246IEh5cEFjdGlvbikge1xuICAgIHJldHVybiAhdGhpcy5lZGl0aW5nICYmIGFjdGlvbi5zdGF0dXMgPT09ICdORVcnICYmICF0aGlzLnJlYWRvbmx5ICYmIHRoaXMuZW5hYmxlRWRpdEFjdGlvbnM7XG4gIH1cblxuICB1cGRhdGVDb21tZW50KGFjdGlvbjogSHlwQWN0aW9uLCBjb21tZW50OiB7IGlkOiBzdHJpbmc7IG1lc3NhZ2U6IHN0cmluZyB9KSB7XG4gICAgdGhpcy5jb21tZW50c1NlcnZpY2Uuc2F2ZShhY3Rpb24uaWQsICdhY3Rpb25zJywgY29tbWVudCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuY29tbWVudHNTZXJ2aWNlLmdldChhY3Rpb24uaWQsICdhY3Rpb25zJykuc3Vic2NyaWJlKChjb21tZW50cykgPT4ge1xuICAgICAgICB0aGlzLmNvbW1lbnRlZC5uZXh0KHsgYWN0aW9uLCBjb21tZW50cyB9KTtcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zXCJcbiAgKGRyYWcpPVwibW92ZSgkZXZlbnQpXCJcbiAgKGRyb3ApPVwiZHJvcCgkZXZlbnQpXCJcbiAgKGRyYWdvdmVyKT1cImFsbG93RHJvcCgkZXZlbnQpXCJcbj5cbiAgQGZvciAoYWN0aW9uIG9mIGFjdGlvbnM7IHRyYWNrIGFjdGlvbi5pZDsgbGV0IGlkeCA9ICRpbmRleCkge1xuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiby1odnktZXZlbnRzLWRldGFpbF9fcHJvY2VkdXJlX19hY3Rpb25zX19hY3Rpb25cIlxuICAgICAgW2RyYWdnYWJsZV09XCJpc0RyYWdnYWJsZShhY3Rpb24pICYmICFyZWFkb25seVwiXG4gICAgICAoZHJhZ3N0YXJ0KT1cImRyYWdTdGFydCgkZXZlbnQsIGFjdGlvbiwgaWR4KVwiXG4gICAgICAobW91c2Vkb3duKT1cIm9uTW91c2VEb3duKCRldmVudClcIlxuICAgICAgW2NsYXNzLi11cGRhdGluZ109XCIhIWFjdGlvbi5fc3RhdHVzXCJcbiAgICAgIFtjbGFzcy4tb3RoZXItdXBkYXRpbmddPVwiZWRpdGluZ1wiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uX19oZWFkZXJcIj5cbiAgICAgICAgQGlmICh0aGlzLmVuYWJsZUVkaXRBY3Rpb25zKSB7XG4gICAgICAgICAgPHByeS1pY29uXG4gICAgICAgICAgICBpY29uU3ZnPVwic2l4X2RvdFwiXG4gICAgICAgICAgICAjaGFuZGxlXG4gICAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cIiFpc0RyYWdnYWJsZShhY3Rpb24pXCJcbiAgICAgICAgICAgIFtjbGFzcy4taGlkZGVuXT1cImFjdGlvbi5fc3RhdHVzIHx8IHJlYWRvbmx5XCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ3JhYmJhYmxlXCJcbiAgICAgICAgICA+PC9wcnktaWNvbj5cbiAgICAgICAgfVxuICAgICAgICA8ZGl2IGNsYXNzPVwibnVtYmVyLWJhZGdlXCI+e3sgaWR4ICsgMSB9fTwvZGl2PlxuICAgICAgICBAaWYgKCFhY3Rpb24uX3N0YXR1cyB8fCByZWFkb25seSkge1xuICAgICAgICAgIEBpZiAobW9kZSA9PT0gJ3Byb2NlZHVyZScpIHtcbiAgICAgICAgICAgIDxwcnktY2hlY2tib3hcbiAgICAgICAgICAgICAgW25nTW9kZWxdPVwiYWN0aW9uLnN0YXR1cyAhPT0gJ05FVydcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQWN0aW9uU3RhdHVzKGlkeCwgJGV2ZW50LCBhY3Rpb24uc3RhdHVzID09PSAnRE9ORScgfHwgKHJlYWRvbmx5ID8/IGZhbHNlKSlcIlxuICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiYWN0aW9uLnN0YXR1cyA9PT0gJ0RPTkUnIHx8IChyZWFkb25seSA/PyBmYWxzZSlcIlxuICAgICAgICAgICAgICBbY2xhc3MuLWRpc2FibGVkXT1cImFjdGlvbi5zdGF0dXMgPT09ICdET05FJyB8fCAocmVhZG9ubHkgPz8gZmFsc2UpXCJcbiAgICAgICAgICAgICAgW3RpdGxlXT1cIidAaHZ5LnByb2NlZHVyZS5jaGVja2JveC4nICsgYWN0aW9uLnN0YXR1cyB8IGkxOG5cIlxuICAgICAgICAgICAgPjwvcHJ5LWNoZWNrYm94PlxuICAgICAgICAgIH1cbiAgICAgICAgICA8ZGl2IFtjbGFzcy4tZG9uZV09XCJhY3Rpb24uc3RhdHVzID09PSAnRE9ORSdcIiBbY2xhc3MuLWRpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgIDxodnktYWN0aW9uLXBhcmFtZXRlclxuICAgICAgICAgICAgICBbYWN0aW9uXT1cImFjdGlvblwiXG4gICAgICAgICAgICAgIFt0eXBlXT1cImFjdGlvbi50eXBlXCJcbiAgICAgICAgICAgICAgW2lzUGFyYW1dPVwiZmFsc2VcIlxuICAgICAgICAgICAgICBbZXZlbnRzXT1cInRoaXMuZXZlbnRzXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwidGhpcy5tb2RlXCJcbiAgICAgICAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgICAgID48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIEBpZiAoIXJlYWRvbmx5KSB7XG4gICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJvcGVuTW9kYWwoYWN0aW9uLCBpZHgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJtb3JlX2hvcml6XCIgI21lbnVCdXR0b24+PC9wcnktaWNvbj5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm8taHZ5LWV2ZW50cy1kZXRhaWxfX3Byb2NlZHVyZV9fYWN0aW9uc19fYWN0aW9uX19jcmVhdGVcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2FjdGlvbnNfX2FjdGlvbl9fY3JlYXRlX19oZWFkZXJcIj5cbiAgICAgICAgICAgICAgPHA+e3sgJ0BodnkucHJvY2VkdXJlLmFjdGlvbi4nICsgYWN0aW9uLl9zdGF0dXMgfCBpMThuIH19PC9wPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJzYXZlQWN0aW9uKGFjdGlvbiwgaWR4KVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZChhY3Rpb24pXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjaGVja1wiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYS1idG4gYS1idG4tLWljb24tb25seVwiIChjbGljayk9XCJjYW5jZWxBY3Rpb24oYWN0aW9uLCBpZHgpXCI+XG4gICAgICAgICAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJjbG9zZVwiPjwvcHJ5LWljb24+XG4gICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICA8cHJ5LXNlbGVjdFxuICAgICAgICAgICAgICAgIFtuZ01vZGVsXT1cImFjdGlvbi50eXBlXCJcbiAgICAgICAgICAgICAgICBbaXRlbXNdPVwiQUNUSU9OU19UWVBFU1wiXG4gICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlKGlkeCwgJ3R5cGUnLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICBpMThuUHJlZml4PVwiQGh2eS5wcm9jZWR1cmUuYWN0aW9uLlwiXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidAaHZ5LnByb2NlZHVyZS5hY3Rpb24ucGxhY2Vob2xkZXIuYWN0aW9uJyB8IGkxOG5cIlxuICAgICAgICAgICAgICA+PC9wcnktc2VsZWN0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8aHZ5LWFjdGlvbi1wYXJhbWV0ZXJcbiAgICAgICAgICAgICAgW2FjdGlvbl09XCJhY3Rpb25cIlxuICAgICAgICAgICAgICBbdHlwZV09XCJhY3Rpb24udHlwZVwiXG4gICAgICAgICAgICAgIFtpc1BhcmFtXT1cInRydWVcIlxuICAgICAgICAgICAgICBbZXZlbnRzXT1cInRoaXMuZXZlbnRzXCJcbiAgICAgICAgICAgICAgW21vZGVdPVwidGhpcy5tb2RlXCJcbiAgICAgICAgICAgID48L2h2eS1hY3Rpb24tcGFyYW1ldGVyPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICA8L2Rpdj5cbiAgICAgIDxodnktY29tbWVudHNcbiAgICAgICAgW2xhc3RDb21tZW50XT1cImFjdGlvbi5sYXN0Q29tbWVudFwiXG4gICAgICAgIFtjb21tZW50Q291bnRdPVwiYWN0aW9uLmNvbW1lbnRzQ291bnRcIlxuICAgICAgICBbb2JqZWN0SWRdPVwiYWN0aW9uLmlkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRPbmx5Q29tbWVudFwiXG4gICAgICAgIChjb21tZW50ZWQpPVwidXBkYXRlQ29tbWVudChhY3Rpb24sICRldmVudClcIlxuICAgICAgICBbdHlwZV09XCInYWN0aW9ucydcIlxuICAgICAgICBbdHJpZ2dlcl09XCJ0cmlnZ2Vyc1thY3Rpb24uaWRdXCJcbiAgICAgICAgW2Rpc3BsYXlFbXB0eV09XCJmYWxzZVwiXG4gICAgICAgIFttZV09XCJtZVwiXG4gICAgICA+PC9odnktY29tbWVudHM+XG4gICAgPC9kaXY+XG4gIH0gQGVtcHR5IHtcbiAgICBAaWYgKGFjdGlvbnMubGVuZ3RoID09PSAwKSB7XG4gICAgICA8ZGl2Pnt7ICdAaHZ5LmV2ZW50LmxvZy5wcm9jZWR1cmUubm9BY3Rpb24nIHwgaTE4biB9fTwvZGl2PlxuICAgIH1cbiAgfVxuICBAaWYgKCFyZWFkb25seSAmJiBlbmFibGVFZGl0QWN0aW9ucykge1xuICAgIDxkaXYgY2xhc3M9XCJvLWh2eS1ldmVudHMtZGV0YWlsX19wcm9jZWR1cmVfX2J1dHRvblwiPlxuICAgICAgPGJ1dHRvbiBjbGFzcz1cImEtYnRuIGEtYnRuLS1wcmltYXJ5XCIgKGNsaWNrKT1cImFkZCgpXCIgW2Rpc2FibGVkXT1cImVkaXRpbmdcIj5cbiAgICAgICAgPHByeS1pY29uIGljb25Tdmc9XCJhZGRcIj48L3ByeS1pY29uPlxuICAgICAgICB7eyAnQGh2eS5wcm9jZWR1cmUuYWN0aW9uLmFkZCcgfCBpMThuIH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG4iXX0=
@@ -1481,7 +1481,7 @@ class ProcedureActionsComponent extends SubscriptionnerDirective {
1481
1481
  this.events = [];
1482
1482
  this._actions = [];
1483
1483
  this.triggers = {};
1484
- this.clearingActionAllowed = false;
1484
+ this.ignoreFirstEvent = true;
1485
1485
  this.refreshActions = new EventEmitter();
1486
1486
  this.model = model$1;
1487
1487
  this.ACTIONS_TYPES = Object.keys(ACTIONS_TYPES.values);
@@ -1560,9 +1560,10 @@ class ProcedureActionsComponent extends SubscriptionnerDirective {
1560
1560
  update(idx, prop, $event) {
1561
1561
  // @ts-ignore
1562
1562
  this.actions[idx][prop] = $event;
1563
- if (this.clearingActionAllowed && prop == 'type') {
1563
+ if (!this.ignoreFirstEvent) {
1564
1564
  this.clearAction(idx);
1565
1565
  }
1566
+ this.ignoreFirstEvent = false;
1566
1567
  }
1567
1568
  clearAction(idx) {
1568
1569
  const { type, status, id, _status, _initial } = this.actions[idx];
@@ -1600,10 +1601,6 @@ class ProcedureActionsComponent extends SubscriptionnerDirective {
1600
1601
  case 'update':
1601
1602
  action._initial = JSON.parse(JSON.stringify(action));
1602
1603
  action._status = 'modify';
1603
- this.clearingActionAllowed = false;
1604
- setTimeout(() => {
1605
- this.clearingActionAllowed = true;
1606
- }, 500);
1607
1604
  break;
1608
1605
  case 'delete':
1609
1606
  this.actions.splice(idx, 1);
@@ -1616,6 +1613,7 @@ class ProcedureActionsComponent extends SubscriptionnerDirective {
1616
1613
  sub.unsubscribe();
1617
1614
  }, 100);
1618
1615
  });
1616
+ this.ignoreFirstEvent = true;
1619
1617
  }
1620
1618
  saveAction(action, idx) {
1621
1619
  delete action._initial;