mmhglobal-dynamicform 2.11.3 → 2.12.0

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.
@@ -162,23 +162,23 @@ export class SfquerybuilderComponent {
162
162
  template: await this.generateColumnSelection(field),
163
163
  });
164
164
  }
165
- else if (field.Type === 'date') {
165
+ else if (field.Type === 'date' || field.Type === 'zdate' || field.Type === 'zdatetime' || field.Type === 'zuidatetime' || field.Type === 'zshortdate') {
166
166
  this.sdFilter.push({
167
167
  field: componentField,
168
168
  label: componentLabel,
169
+ type: 'date',
169
170
  operators: this.dateOperators,
170
- type: 'date'
171
171
  });
172
172
  }
173
- else if (field.Type === 'number') {
173
+ else if (field.Type === 'number' || field.Type === 'znumeric' || field.Type === 'numeric') {
174
174
  this.sdFilter.push({
175
175
  field: componentField,
176
176
  label: componentLabel,
177
+ type: 'number',
177
178
  operators: this.integerOperators,
178
- type: 'number'
179
179
  });
180
180
  }
181
- else if (field.Value === 'boolean') {
181
+ else if (field.Value === 'boolean' || field.Value === 'zcheckbox') {
182
182
  this.sdFilter.push({
183
183
  field: componentField,
184
184
  label: componentLabel,
@@ -198,8 +198,8 @@ export class SfquerybuilderComponent {
198
198
  this.sdFilter.push({
199
199
  field: componentField,
200
200
  label: componentLabel,
201
+ type: 'string',
201
202
  operators: this.stringOperators,
202
- type: 'string'
203
203
  });
204
204
  }
205
205
  this.sdFilter.sort((a, b) => a.label.toLowerCase() < b.label.toLowerCase() ? -1 : 1);
@@ -496,4 +496,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
496
496
  }], form: [{
497
497
  type: Input
498
498
  }] } });
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHdEYsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBZSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsMkNBQTJDO0FBQzNDLE9BQU8sRUFDUyxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFDaEMsd0JBQXdCLEVBQzdDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQU96QixNQUFNLE9BQU8sdUJBQXVCO0lBNkZsQyxZQUNVLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxhQUE0QjtRQUY1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztR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SUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDO1NBQ3RDO0lBQ0gsQ0FBQztJQUVNLFNBQVM7UUFDZCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEMsQ0FBQztJQUVNLFVBQVUsQ0FBQyxJQUF5QjtRQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7O29IQXBqQlUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsOE5DMUJwQyxxNkJBc0JBOzJGRElhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxvQkFBb0I7Z0tBS0gsVUFBVTtzQkFBcEMsU0FBUzt1QkFBQyxjQUFjO2dCQUNoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKioqKioqKioqIEFuZ3VsYXIgKioqKioqKioqKi9cclxuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIGlnbm9yZUVsZW1lbnRzLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSdWxlTW9kZWwsIFF1ZXJ5QnVpbGRlckNvbXBvbmVudCwgQ29sdW1uc01vZGVsLCBUZW1wbGF0ZUNvbHVtbiwgUnVsZUNoYW5nZUV2ZW50QXJncyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXF1ZXJ5YnVpbGRlcic7XHJcbmltcG9ydCB7IERyb3BEb3duTGlzdCwgTXVsdGlTZWxlY3QgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZHJvcGRvd25zJztcclxuaW1wb3J0IHsgZ2V0Q29tcG9uZW50LCBjcmVhdGVFbGVtZW50IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBEYXRhTWFuYWdlciwgUXVlcnkgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZGF0YSc7XHJcbmltcG9ydCB7IENoZWNrQm94IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJ1dHRvbnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIEZpZWxkU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpGaWVsZCwgWkdyb3VwLFxyXG4gIEZvbnRBd2VTb21lU2VydmljZSwgRGVmYXVsdFBhZ2VTZXR0aW5nUGFyYW1zLCBXZWJBcGlTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2ZxdWVyeWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZnF1ZXJ5YnVpbGRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNmcXVlcnlidWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdxdWVyeWJ1aWxkZXInKSBxcnlCbGRyT2JqOiBRdWVyeUJ1aWxkZXJDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBxYkl0ZW1zID0ge307XHJcblxyXG4gIHB1YmxpYyBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIGlzc2ZMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcXVlcnlDdHJsOiBhbnk7XHJcbiAgcHVibGljIGFsbG93UnVsZXNldDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGFsbG93Q29sbGFwc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHJ1bGU6IGFueTtcclxuICBwdWJsaWMgZmlsdGVyczogYW55O1xyXG4gIHByaXZhdGUgZmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRpc3BsYXlSdWxlOiBhbnkgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBsb2FkZWREcm9wZG93bk9wdGlvbnMgPSBbXTtcclxuXHJcbiAgcHVibGljIHNmRGF0YTogT2JqZWN0W107XHJcbiAgcHVibGljIGltcG9ydFJ1bGVzOiBSdWxlTW9kZWw7XHJcbiAgcHVibGljIHNkRmlsdGVyOiBDb2x1bW5zTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZlFCVGVtcGxhdGU6IFRlbXBsYXRlQ29sdW1uO1xyXG5cclxuICAvLyNyZWdpb24gT3BlcmF0b3JcclxuICBwcml2YXRlIHJlYWRvbmx5IGVxdWFsT3BlcmF0b3IgPSB7IHZhbHVlOiAnZXF1YWwnLCBrZXk6ICdFcXVhbHMnIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBub3RlcXVhbE9wZXJhdG9yID0geyB2YWx1ZTogJ25vdGVxdWFsJywga2V5OiAnTm90IEVxdWFscycgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0c3dpdGhPcGVyYXRvciA9IHsgdmFsdWU6ICdzdGFydHN3aXRoJywga2V5OiAnU3RhcnQgV2l0aCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVuZHN3aXRoT3BlcmF0b3IgPSB7IHZhbHVlOiAnZW5kc3dpdGgnLCBrZXk6ICdFbmQgV2l0aCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5zT3BlcmF0b3IgPSB7IHZhbHVlOiAnY29udGFpbnMnLCBrZXk6ICdDb250YWlucycgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGlzZW1wdHlPcGVyYXRvciA9IHsgdmFsdWU6ICdpc2VtcHR5Jywga2V5OiAnSXMgRW1wdHknIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc25vdGVtcHR5T3BlcmF0b3IgPSB7IHZhbHVlOiAnaXNub3RlbXB0eScsIGtleTogJ0lzIE5vdCBFbXB0eScgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGlzbnVsbE9wZXJhdG9yID0geyB2YWx1ZTogJ2lzbnVsbCcsIGtleTogJ0lzIE51bGwnIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc25vdG51bGxPcGVyYXRvciA9IHsgdmFsdWU6ICdpc25vdG51bGwnLCBrZXk6ICdJcyBOb3QgTnVsbCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGluT3BlcmF0b3IgPSB7IHZhbHVlOiAnaW4nLCBrZXk6ICdJbicgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IG5vdGluT3BlcmF0b3IgPSB7IHZhbHVlOiAnbm90aW4nLCBrZXk6ICdOb3QgSW4nIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGdyZWF0ZXJ0aGFuT3BlcmF0b3IgPSB7IHZhbHVlOiAnZ3JlYXRlcnRoYW4nLCBrZXk6ICdHcmVhdGVyIFRoYW4nIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBncmVhdGVydGhhbm9yZXF1YWxPcGVyYXRvciA9IHsgdmFsdWU6ICdncmVhdGVydGhhbm9yZXF1YWwnLCBrZXk6ICdHcmVhdGVyIFRoYW4gT3IgRXF1YWxzJyB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbGVzc3RoYW5PcGVyYXRvciA9IHsgdmFsdWU6ICdsZXNzdGhhbicsIGtleTogJ0xlc3MgVGhhbicgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxlc3N0aGFub3JlcXVhbE9wZXJhdG9yID0geyB2YWx1ZTogJ2xlc3N0aGFub3JlcXVhbCcsIGtleTogJ0xlc3MgVGhhbiBPciBFcXVhbHMnIH07XHJcblxyXG4gIHB1YmxpYyBpbk9wZXJhdG9yczogc3RyaW5nW10gPSBbJ2luJywgJ25vdGluJ107XHJcbiAgcHVibGljIGRyb3Bkb3duT3BlcmF0b3JzOiBhbnkgPSBbXHJcbiAgICB0aGlzLmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmluT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGluT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbnVsbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc25vdG51bGxPcGVyYXRvclxyXG4gIF07XHJcbiAgcHVibGljIHN0cmluZ09wZXJhdG9yczogYW55ID0gW1xyXG4gICAgdGhpcy5lcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ub3RlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5zdGFydHN3aXRoT3BlcmF0b3IsXHJcbiAgICB0aGlzLmVuZHN3aXRoT3BlcmF0b3IsXHJcbiAgICB0aGlzLmNvbnRhaW5zT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzZW1wdHlPcGVyYXRvcixcclxuICAgIHRoaXMuaXNub3RlbXB0eU9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc251bGxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNub3RudWxsT3BlcmF0b3JcclxuICBdO1xyXG4gIHB1YmxpYyBpbnRlZ2VyT3BlcmF0b3JzOiBhbnkgPSBbXHJcbiAgICB0aGlzLmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmdyZWF0ZXJ0aGFuT3BlcmF0b3IsXHJcbiAgICB0aGlzLmdyZWF0ZXJ0aGFub3JlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5sZXNzdGhhbk9wZXJhdG9yLFxyXG4gICAgdGhpcy5sZXNzdGhhbm9yZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNudWxsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbm90bnVsbE9wZXJhdG9yXHJcbiAgXTtcclxuICBwdWJsaWMgZGF0ZU9wZXJhdG9yczogYW55ID0gW1xyXG4gICAgdGhpcy5lcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ub3RlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ncmVhdGVydGhhbk9wZXJhdG9yLFxyXG4gICAgdGhpcy5ncmVhdGVydGhhbm9yZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMubGVzc3RoYW5PcGVyYXRvcixcclxuICAgIHRoaXMubGVzc3RoYW5vcmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbnVsbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc25vdG51bGxPcGVyYXRvclxyXG4gIF07XHJcbiAgcHVibGljIGJvb2xlYW5PcGVyYXRvcnM6IGFueSA9IFtcclxuICAgIHRoaXMuZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMubm90ZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNudWxsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbm90bnVsbE9wZXJhdG9yXHJcbiAgXTtcclxuICAvLyNlbmRyZWdpb25cclxuICBwdWJsaWMgc2VsZWN0aW9uQ29tcG9uZW50TGlzdCA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgb2YodHJ1ZSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJlZm9yZUxvYWRGaWVsZCh0aGlzLmRhdGEpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgWkZpZWxkO1xyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRRdWVyeUJ1aWxkZXIoKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgLy8gV2hlcmUgdG8gdXBkYXRlIG9wZXJhdG9yIHN5bnRheFxyXG4gICAgICAvLyAxLiBFMSAtIHF1ZXJ5QnVpbGRlclRlbXBsYXRlMlxyXG4gICAgICAvLyAyLiBzaGFyZWQgZm9sZGVyID4gaGVscGVyID4gcXVlcnlidWlsZGVyLWZpZWxkaW5mby1oZWxwZXIudHNcclxuICAgICAgLy8gMy4gcGF0Y2ggZGIgZGF0YSB3aXRoIHNtYWxsIGNhcGl0YWwgbGV0dGVyXHJcblxyXG4gICAgICAvL3RoaXMuaXNzZkxvYWRlZCA9IHRydWU7ICBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiZWZvcmVMb2FkRmllbGQoZmllbGRFbGVtZW50RGF0YTogYW55KSB7XHJcbiAgICBsZXQgYmVmb3JlTG9hZEZpZWxkID0gZmllbGRFbGVtZW50RGF0YVsnQmVmb3JlTG9hZEZpZWxkJ107XHJcbiAgICBpZiAoYmVmb3JlTG9hZEZpZWxkKSB7XHJcbiAgICAgIGJlZm9yZUxvYWRGaWVsZCA9IGJlZm9yZUxvYWRGaWVsZC5yZXBsYWNlKCdtb2RhbEdyb3VwLicsICdncm91cC4nKTtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBldmFsKCd0aGlzLicgKyBiZWZvcmVMb2FkRmllbGQpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjYWxsRnVuYyA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RnVuYyA9IGNhbGxGdW5jLmJpbmQodGhpcyk7XHJcbiAgICAgICAgcmV0dXJuIG5ld0Z1bmMoZXZlbnQsIHRoaXMsIGZpZWxkRWxlbWVudERhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YoZmllbGRFbGVtZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRRdWVyeUJ1aWxkZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHwgT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ10gPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5hbGxvd0NvbGxhcHNlID0gdGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnQWxsb3dSdWxlc2V0J10gPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dSdWxlc2V0ID0gdGhpcy5kYXRhWydBbGxvd1J1bGVzZXQnXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydGaWx0ZXJzJ10pIHtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgdGhpcy5kYXRhWydGaWx0ZXJzJ10sXHJcbiAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZSh0aGlzLmRhdGEuVmFsdWUsIFwiRm9ybUZpZWxkXCIsIG51bGwsIG51bGwpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpZWxkcy5waXBlKFxyXG4gICAgICAgIHRhcCgoZGF0YTogW10pID0+IHtcclxuXHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goYXN5bmMgKGZpZWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRUeXBlKGZpZWxkKTtcclxuICAgICAgICAgIH0pOy8vZW5kIGZvcmVhY2hcclxuXHJcbiAgICAgICAgICB0aGlzLmlzc2ZMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVuZGVyQ29tcG9uZW50VHlwZShmaWVsZDogYW55LCBmaWVsZFRpdGxlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgY29tcG9uZW50TGFiZWwgPSBmaWVsZC5TdWJUeXBlID8gZmllbGQuTGFiZWwgOiBmaWVsZC5MYWJlbCA/PyBmaWVsZC5OYW1lO1xyXG4gICAgY29tcG9uZW50TGFiZWwgPSAhWkNvbXBvbmVudEhlbHBlci5pc051bGxVbmRlZmluZWRFbXB0eShmaWVsZFRpdGxlKSA/IFwiW1wiICsgZmllbGRUaXRsZSArIFwiXSBcIiArIGZpZWxkLkxhYmVsIDogIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkoZmllbGQuTGFiZWwpID8gZmllbGQuTGFiZWwgOiBmaWVsZC5OYW1lO1xyXG5cclxuICAgIGxldCBjb21wb25lbnRGaWVsZCA9ICFaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KGZpZWxkVGl0bGUpID8gZmllbGRUaXRsZSArIFwiX1wiICsgZmllbGQuVmFsdWUgOiBmaWVsZC5WYWx1ZTtcclxuXHJcbiAgICBpZiAoZmllbGQuVHlwZSA9PT0gJ2NhdGVnb3J5JyB8fCBmaWVsZC5UeXBlID09PSAnbXVsdGlzZWxlY3QnIHx8IGZpZWxkLlR5cGUgPT09ICd6dWlzZWxlY3RtdWx0aXBsZScpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5kcm9wZG93bk9wZXJhdG9ycyxcclxuICAgICAgICB0ZW1wbGF0ZTogYXdhaXQgdGhpcy5nZW5lcmF0ZUNvbHVtblNlbGVjdGlvbihmaWVsZCksXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmaWVsZC5UeXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5kYXRlT3BlcmF0b3JzLFxyXG4gICAgICAgIHR5cGU6ICdkYXRlJ1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmllbGQuVHlwZSA9PT0gJ251bWJlcicpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5pbnRlZ2VyT3BlcmF0b3JzLFxyXG4gICAgICAgIHR5cGU6ICdudW1iZXInXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmaWVsZC5WYWx1ZSA9PT0gJ2Jvb2xlYW4nKSB7XHJcbiAgICAgIHRoaXMuc2RGaWx0ZXIucHVzaCh7XHJcbiAgICAgICAgZmllbGQ6IGNvbXBvbmVudEZpZWxkLFxyXG4gICAgICAgIGxhYmVsOiBjb21wb25lbnRMYWJlbCxcclxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXHJcbiAgICAgICAgb3BlcmF0b3JzOiB0aGlzLmJvb2xlYW5PcGVyYXRvcnMsXHJcbiAgICAgICAgdGVtcGxhdGU6IGF3YWl0IHRoaXMuZ2VuZXJhdGVDb2x1bW5DaGVja2JveChmaWVsZC5OYW1lLCBmYWxzZSlcclxuICAgICAgfSlcclxuICAgIH1cclxuICAgIGVsc2UgaWYgKGZpZWxkLlR5cGUgPT09ICdrY2FyZCcpIHtcclxuICAgICAgaWYgKGZpZWxkLlZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgICBmaWVsZC5WYWx1ZS5mb3JFYWNoKGFzeW5jIChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMucmVuZGVyQ29tcG9uZW50VHlwZShpdGVtLCBmaWVsZC5UaXRsZSk7XHJcbiAgICAgICAgfSlcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmllbGQuVHlwZSAhPSAnemxhYmVsJykge1xyXG4gICAgICB0aGlzLnNkRmlsdGVyLnB1c2goe1xyXG4gICAgICAgIGZpZWxkOiBjb21wb25lbnRGaWVsZCxcclxuICAgICAgICBsYWJlbDogY29tcG9uZW50TGFiZWwsXHJcbiAgICAgICAgb3BlcmF0b3JzOiB0aGlzLnN0cmluZ09wZXJhdG9ycyxcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJ1xyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2RGaWx0ZXIuc29ydCgoYSwgYikgPT4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpIDwgYi5sYWJlbC50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBHZW5lcmF0ZSBjb21wb25lbnQgXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNvbHVtbkNoZWNrYm94KGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKTogVGVtcGxhdGVDb2x1bW4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JlYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ2lucHV0JywgeyBhdHRyczogeyAndHlwZSc6ICdjaGVja2JveCcgfSB9KTtcclxuICAgICAgfSxcclxuICAgICAgZGVzdHJveTogKGFyZ3M6IHsgZWxlbWVudElkOiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgICAgIChnZXRDb21wb25lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYXJncy5lbGVtZW50SWQpLCAnY2hlY2tib3gnKSBhcyBDaGVja0JveCkuZGVzdHJveSgpO1xyXG4gICAgICB9LFxyXG4gICAgICB3cml0ZTogKGFyZ3M6IHsgZWxlbWVudHM6IEVsZW1lbnQsIHZhbHVlczogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICBjb25zdCBib3hPYmo6IENoZWNrQm94ID0gbmV3IENoZWNrQm94KHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIGNoZWNrZWQ6IHZhbHVlLFxyXG4gICAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucXJ5Qmxkck9iai5ub3RpZnlDaGFuZ2UodmFsdWUsIGUuZXZlbnQudGFyZ2V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBib3hPYmouYXBwZW5kVG8oJyMnICsgYXJncy5lbGVtZW50cy5pZCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlQ29sdW1uU2VsZWN0aW9uKGZpZWxkRWxlbWVudERhdGE6IGFueSk6IFRlbXBsYXRlQ29sdW1uIHtcclxuICAgIHJldHVybiB7XHJcblxyXG4gICAgICAvLyBDcmVhdGVzIHRoZSBjdXN0b20gY29tcG9uZW50XHJcbiAgICAgIGNyZWF0ZTogKCkgPT4ge1xyXG4gICAgICAgIC8vIEFkZGl0aW9uYWwgZmlsdGVyIHNldCBpbiB0aGUgcGFnZVxyXG4gICAgICAgIGlmICh0aGlzLmRhdGFbJ0ZpbHRlcnMnXSkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICB0aGlzLmRhdGFbJ0ZpbHRlcnMnXSxcclxuICAgICAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdpbnB1dCcsIHsgYXR0cnM6IHsgJ3R5cGUnOiAndGV4dCcgfSB9KTsgLy8gJ2Rpc3BsYXk6IG5vbmUnXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAvLyBEZXN0cm95IHRoZSBjdXN0b20gY29tcG9uZW50XHJcbiAgICAgIGRlc3Ryb3k6IChhcmdzOiB7IGVsZW1lbnRJZDogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICBpZiAoYXJnc1snZWxlbWVudHMnXSkge1xyXG4gICAgICAgICAgbGV0IG11bHRpU2VsZWN0OiBNdWx0aVNlbGVjdCA9IChnZXRDb21wb25lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYXJncy5lbGVtZW50SWQpLCAnbXVsdGlzZWxlY3QnKSBhcyBNdWx0aVNlbGVjdCk7XHJcbiAgICAgICAgICBpZiAobXVsdGlTZWxlY3QpIHtcclxuICAgICAgICAgICAgbXVsdGlTZWxlY3QuZGVzdHJveSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGRyb3Bkb3duOiBEcm9wRG93bkxpc3QgPSAoZ2V0Q29tcG9uZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFyZ3MuZWxlbWVudElkKSwgJ2Ryb3Bkb3dubGlzdCcpIGFzIERyb3BEb3duTGlzdCk7XHJcbiAgICAgICAgICBpZiAoZHJvcGRvd24pIHtcclxuICAgICAgICAgICAgZHJvcGRvd24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ107XHJcbiAgICAgICAgICBpZiAoc2VsZWN0T3B0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG4gICAgICAgICAgICBjb25zdCBwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nID0gc2VsZWN0T3B0aW9uc1Jlc291cmNlVVJMICsgJ18nICsgYXJncy5lbGVtZW50SWQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2FkZWREcm9wZG93bk9wdGlvbnMuaW5jbHVkZXMocHJlZml4UmVzb3VyY2VVUkxDaGVja2luZykpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRlZERyb3Bkb3duT3B0aW9ucyA9IHRoaXMucmVtb3ZlQXJyYXlJdGVtKHRoaXMubG9hZGVkRHJvcGRvd25PcHRpb25zLCBwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuXHJcbiAgICAgIC8vIFdpcmUgZXZlbnRzIGZvciB0aGUgY3VzdG9tIGNvbXBvbmVudC5cclxuICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnRzOiBFbGVtZW50LCB2YWx1ZXM6IHN0cmluZ1tdIHwgc3RyaW5nLCBvcGVyYXRvcjogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICAvL29yaWdpblxyXG4gICAgICAgIGlmIChmaWVsZEVsZW1lbnREYXRhWydWYWx1ZU9wdGlvbnMnXSkge1xyXG4gICAgICAgICAgLy8gY29udmVydCB0byBwcm9wZXJ0eSBuYW1lIHVzZWQgaW4gdGhlIGNvbXBvbmVudCByZW5kZXJpbmdcclxuICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3Q6IHsgW25hbWU6IHN0cmluZ106IE9iamVjdCB9W10gPSBbXTtcclxuICAgICAgICAgIGZpZWxkRWxlbWVudERhdGFbJ1ZhbHVlT3B0aW9ucyddLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIHRleHQ6IGl0ZW1bJ05hbWUnXSxcclxuICAgICAgICAgICAgICB2YWx1ZTogaXRlbVsnVmFsdWUnXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ29tcG9uZW50ID0gdGhpcy5nZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzLCBvcHRpb25MaXN0KTtcclxuICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG1hbnVhbCBkcm9wZG93biBvciB6dWRmIG1hbnVhbCBkcm9wZG93blxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkRWxlbWVudERhdGFbJ1NlbGVjdE9wdGlvbnMnXSAmJiBBcnJheS5pc0FycmF5KGZpZWxkRWxlbWVudERhdGFbJ1NlbGVjdE9wdGlvbnMnXSkpIHtcclxuICAgICAgICAgIC8vIGNvbnZlcnQgdG8gcHJvcGVydHkgbmFtZSB1c2VkIGluIHRoZSBjb21wb25lbnQgcmVuZGVyaW5nXHJcbiAgICAgICAgICBjb25zdCBvcHRpb25MaXN0OiB7IFtuYW1lOiBzdHJpbmddOiBPYmplY3QgfVtdID0gW107XHJcbiAgICAgICAgICBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ10uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIG9wdGlvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogaXRlbVsndGV4dCddLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBpdGVtWyd2YWx1ZSddXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb25Db21wb25lbnQgPSB0aGlzLmdlbmVyYXRlU2VsZWN0aW9uQ29tcG9uZW50KGFyZ3MsIG9wdGlvbkxpc3QpO1xyXG4gICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50LmFwcGVuZFRvKCcjJyArIGFyZ3MuZWxlbWVudHMuaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8genVkZiBSZXNvdXJjZVVSTCAvIENvbW1vbiBNYXN0ZXIgZHJvcGRvd25cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ107XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG5cclxuICAgICAgICAgIC8vIFJlc291cmNlVVJMIGRyb3Bkb3duXHJcbiAgICAgICAgICBpZiAoc2VsZWN0T3B0aW9uc1Jlc291cmNlVVJMKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeFJlc291cmNlVVJMQ2hlY2tpbmcgPSBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgKyAnXycgKyBhcmdzLmVsZW1lbnRzLmlkO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRlZERyb3Bkb3duT3B0aW9ucy5pbmNsdWRlcyhwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGVkRHJvcGRvd25PcHRpb25zLnB1c2gocHJlZml4UmVzb3VyY2VVUkxDaGVja2luZyk7XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXSA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IHBhcmFtID0gT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdFBhZ2VTZXR0aW5nUGFyYW1zKTtcclxuICAgICAgICAgICAgICBwYXJhbS5wYWdlU2l6ZSA9IHNlbGVjdE9wdGlvbnNbJ1BhZ2VTaXplJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uY29sdW1ucyA9IHNlbGVjdE9wdGlvbnNbJ0NvbHVtbnMnXTtcclxuICAgICAgICAgICAgICBwYXJhbS5maWx0ZXJzICs9IHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXTtcclxuICAgICAgICAgICAgICBwYXJhbS5zb3J0Q29sdW1uTmFtZSA9IHNlbGVjdE9wdGlvbnNbJ1NvcnRDb2x1bW5OYW1lJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uc29ydE9yZGVyID0gc2VsZWN0T3B0aW9uc1snU29ydE9yZGVyJ107XHJcblxyXG4gICAgICAgICAgICAgIC8vIE5lZWQgZGVsYXkgNDAwbXMgaWYgbm90IDNyZCBzZWdtZW50ICh2YWx1ZSkgd2lsbCBub3QgYmUgcmVuZGVyZWQuXHJcbiAgICAgICAgICAgICAgdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRQYWdlVXJsKHNlbGVjdE9wdGlvbnNSZXNvdXJjZVVSTCksIHBhcmFtKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgZGVsYXkoNDAwKSxcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25MaXN0ID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YVNldC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogaXRlbVtzZWxlY3RPcHRpb25zWydOYW1lJ11dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bc2VsZWN0T3B0aW9uc1snVmFsdWUnXV1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbXBvbmVudCA9IHRoaXMuZ2VuZXJhdGVTZWxlY3Rpb25Db21wb25lbnQoYXJncywgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vI3JlZ2lvbiB1c2VkIGZvciB1cGRhdGVTZWxlY3Rpb25PcHRpb25cclxuICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY29tcG9uZW50SWQgPT09IGFyZ3MuZWxlbWVudHMuaWRcclxuICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9iamVjdCB3aXRoIHRoZSBzYW1lIGNvbXBvbmVudElkIGV4aXN0cywgcmVwbGFjZSByZXNvdXJjZVVybFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdFtleGlzdGluZ0luZGV4XS5yZXNvdXJjZVVybCA9IHNlbGVjdE9wdGlvbnNSZXNvdXJjZVVSTDtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBPYmplY3Qgd2l0aCBjb21wb25lbnRJZCBkb2Vzbid0IGV4aXN0LCBwdXNoIGEgbmV3IG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVXJsOiBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJZDogYXJncy5lbGVtZW50cy5pZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8genVkZiBDb21tb24gTWFzdGVyIGRyb3Bkb3duXHJcbiAgICAgICAgICBlbHNlIGlmIChmaWVsZEVsZW1lbnREYXRhLnp1ZGZEYXRhU291cmNlVHlwZSAmJiBmaWVsZEVsZW1lbnREYXRhLnp1ZGZEYXRhU291cmNlVHlwZSA9PT0gXCJyZXNvdXJjZVwiKSB7XHJcblxyXG4gICAgICAgICAgICAvLyBleHRyYWN0IHp1ZGZfZHJvcGRvd24gZnJvbSBzZXNzaW9uIHN0b3JhZ2VcclxuICAgICAgICAgICAgY29uc3QgenVkZl9kcm9wZG93biA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJ6dWRmX2Ryb3Bkb3duXCIpID8gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwienVkZl9kcm9wZG93blwiKSkgOiBudWxsO1xyXG4gICAgICAgICAgICBpZiAoenVkZl9kcm9wZG93bikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgenVkZl9kcm9wZG93bi5mb3JFYWNoKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcmVzLnRleHQuc3BsaXQoXCJPcHRpb25zXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkRWxlbWVudERhdGEuTGFiZWwgPT09IG5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlLmZvckVhY2godmFsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsWydOYW1lJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsWydJZCddXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ29tcG9uZW50ID0gdGhpcy5nZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzLCBvcHRpb25MaXN0KTtcclxuICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQuYXBwZW5kVG8oJyMnICsgYXJncy5lbGVtZW50cy5pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBVc2VyIExpc3QgZHJvcGRvd25cclxuICAgICAgICAgIGVsc2UgaWYgKGZpZWxkRWxlbWVudERhdGEuenVkZkRhdGFTb3VyY2VUeXBlICYmIGZpZWxkRWxlbWVudERhdGEuenVkZkRhdGFTb3VyY2VUeXBlID09PSBcInVzZXJcIikge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25MaXN0ID0gW107XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXJMaXN0ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZT8uZ2V0SXRlbShcInVzZXJMaXN0XCIpID8/ICdudWxsJyk7XHJcblxyXG4gICAgICAgICAgICAvL2NvbnN0IGFycmF5VGVzdCA9IHVzZXJMaXN0Lm1hcCgoeyBTZWxlY3Rpb25OYW1lLCBJZCB9KSA9PiAoeyB0ZXh0OiBTZWxlY3Rpb25OYW1lLCB2YWx1ZTogSWQgfSkpO1xyXG4gICAgICAgICAgICB1c2VyTGlzdC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdGV4dDogaXRlbVsnU2VsZWN0aW9uTmFtZSddLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bJ0lkJ11cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbXBvbmVudCA9IHRoaXMuZ2VuZXJhdGVTZWxlY3Rpb25Db21wb25lbnQoYXJncywgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0vL2VuZCB3cml0ZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNlbGVjdGlvbk9wdGlvbihyZXNvdXJjZVVybDogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5mb3JFYWNoKHNlbGVjdGlvbkNvbXBvbmVudCA9PiB7XHJcbiAgICAgIGxldCBtdWx0aVNlbGVjdDogTXVsdGlTZWxlY3QgPSAoZ2V0Q29tcG9uZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdGlvbkNvbXBvbmVudC5jb21wb25lbnRJZCksICdtdWx0aXNlbGVjdCcpIGFzIE11bHRpU2VsZWN0KTtcclxuICAgICAgaWYgKG11bHRpU2VsZWN0KSB7XHJcbiAgICAgICAgbXVsdGlTZWxlY3QudmFsdWUgPSBkYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkcm9wZG93bjogRHJvcERvd25MaXN0ID0gKGdldENvbXBvbmVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rpb25Db21wb25lbnQuY29tcG9uZW50SWQpLCAnZHJvcGRvd25saXN0JykgYXMgRHJvcERvd25MaXN0KTtcclxuICAgICAgaWYgKGRyb3Bkb3duKSB7XHJcbiAgICAgICAgdGhpcy5maWVsZFNlcnZpY2UuZGF0YUZvcm1GaWVsZHNbdGhpcy5kYXRhLlZhbHVlXS5mb3JFYWNoKGFzeW5jIChmaWVsZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmllbGQuU2VsZWN0T3B0aW9ucy5SZXNvdXJjZVVSTCA9PT0gc2VsZWN0aW9uQ29tcG9uZW50LnJlc291cmNlVXJsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZFsnU2VsZWN0T3B0aW9ucyddO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbSA9IE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRQYWdlU2V0dGluZ1BhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhWydGaWx0ZXJzJ10pIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhWydGaWx0ZXJzJ10sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVycykge1xyXG4gICAgICAgICAgICAgIHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXSA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFyYW0ucGFnZVNpemUgPSBzZWxlY3RPcHRpb25zWydQYWdlU2l6ZSddO1xyXG4gICAgICAgICAgICBwYXJhbS5jb2x1bW5zID0gc2VsZWN0T3B0aW9uc1snQ29sdW1ucyddO1xyXG4gICAgICAgICAgICBwYXJhbS5maWx0ZXJzICs9IHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXTtcclxuICAgICAgICAgICAgcGFyYW0uc29ydENvbHVtbk5hbWUgPSBzZWxlY3RPcHRpb25zWydTb3J0Q29sdW1uTmFtZSddO1xyXG4gICAgICAgICAgICBwYXJhbS5zb3J0T3JkZXIgPSBzZWxlY3RPcHRpb25zWydTb3J0T3JkZXInXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMud2ViQXBpU2VydmljZS5odHRwUG9zdCQodGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0UGFnZVVybChzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwpLCBwYXJhbSkucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3QgPSBbXTtcclxuICAgICAgICAgICAgICAgIHJlc3AuZGF0YVNldC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtW3NlbGVjdE9wdGlvbnNbJ05hbWUnXV0sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bc2VsZWN0T3B0aW9uc1snVmFsdWUnXV1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgIGRyb3Bkb3duLmRhdGFTb3VyY2UgPSBvcHRpb25MaXN0O1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZUFycmF5SXRlbTxUPihhcnI6IEFycmF5PFQ+LCB2YWx1ZTogVCk6IEFycmF5PFQ+IHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyLmluZGV4T2YodmFsdWUpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgYXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzOiBhbnksIG9wdGlvbkxpc3Q6IGFueSk6IE11bHRpU2VsZWN0IHwgRHJvcERvd25MaXN0IHtcclxuICAgIGlmICh0aGlzLmluT3BlcmF0b3JzLmluZGV4T2YoYXJncy5vcGVyYXRvcikgPiAtMSkge1xyXG4gICAgICByZXR1cm4gbmV3IE11bHRpU2VsZWN0KHtcclxuICAgICAgICBkYXRhU291cmNlOiBvcHRpb25MaXN0LFxyXG4gICAgICAgIGZpZWxkczogeyB0ZXh0OiAndGV4dCcsIHZhbHVlOiAndmFsdWUnIH0sXHJcbiAgICAgICAgdmFsdWU6IGFyZ3MudmFsdWVzIGFzIHN0cmluZ1tdLFxyXG4gICAgICAgIG1vZGU6ICdDaGVja0JveCcsXHJcbiAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnFyeUJsZHJPYmoubm90aWZ5Q2hhbmdlKGUudmFsdWUsIGUuZWxlbWVudCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBzZXQgY29udGFpbnMgc2VhcmNoIGJ5IGRlZmF1bHRcclxuICAgICAgICBmaWx0ZXJpbmc6IChlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMub25GaWx0ZXJpbmcoZSwgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3IERyb3BEb3duTGlzdCh7XHJcbiAgICAgICAgYWxsb3dGaWx0ZXJpbmc6IHRydWUsIC8vIHNlYXJjaCBib3ggYXBwZWFyXHJcbiAgICAgICAgZGF0YVNvdXJjZTogb3B0aW9uTGlzdCxcclxuICAgICAgICBmaWVsZHM6IHsgdGV4dDogJ3RleHQnLCB2YWx1ZTogJ3ZhbHVlJyB9LFxyXG4gICAgICAgIHZhbHVlOiBhcmdzLnZhbHVlcyBhcyBzdHJpbmcsXHJcbiAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBlLnZhbHVlICE9PSBudWxsID8gdGhpcy5xcnlCbGRyT2JqLm5vdGlmeUNoYW5nZShlLml0ZW1EYXRhLnZhbHVlLCBlLmVsZW1lbnQpIDogaWdub3JlRWxlbWVudHM7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBzZXQgZGVmYXVsdCBzZWFyY2ggYnkgJ2NvbnRhaW5zJ1xyXG4gICAgICAgIGZpbHRlcmluZzogKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkZpbHRlcmluZyhlLCBvcHRpb25MaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIG9uRmlsdGVyaW5nKGU6IGFueSwgb3B0aW9uTGlzdDogYW55KTogdm9pZCB7XHJcbiAgICAvLyBsb2FkIG92ZXJhbGwgZGF0YSB3aGVuIHNlYXJjaCBrZXkgZW1wdHkuXHJcbiAgICBpZiAoZS50ZXh0ID09PSAnJykge1xyXG4gICAgICBlLnVwZGF0ZURhdGEodGhpcy5kYXRhKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBEZWZpbmUgYXJyYXkgZGF0YVxyXG4gICAgICBsZXQgc2VhcmNoRGF0YSA9IG9wdGlvbkxpc3Q7XHJcblxyXG4gICAgICAvL0JpbmQgdGhlIGZpbHRlciBldmVudFxyXG4gICAgICBsZXQgcXVlcnkgPSBuZXcgUXVlcnkoKTtcclxuXHJcbiAgICAgIC8vZnJhbWUgdGhlIHF1ZXJ5IGJhc2VkIG9uIHNlYXJjaCBzdHJpbmcgd2l0aCBmaWx0ZXIgdHlwZS5cclxuICAgICAgcXVlcnkgPSAoZS50ZXh0ICE9IFwiXCIpID8gcXVlcnkud2hlcmUoXCJ0ZXh0XCIsIFwiY29udGFpbnNcIiwgZS50ZXh0LCB0cnVlKSA6IHF1ZXJ5O1xyXG5cclxuICAgICAgLy9wYXNzIHRoZSBmaWx0ZXIgZGF0YSBzb3VyY2UsIGZpbHRlciBxdWVyeSB0byB1cGRhdGVEYXRhIG1ldGhvZC5cclxuICAgICAgZS51cGRhdGVEYXRhKHNlYXJjaERhdGEsIHF1ZXJ5KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0UXVlcnlWYWx1ZShzYXZlZERhdGE6IGFueSk6dm9pZCB7XHJcbiAgICBpZiAoc2F2ZWREYXRhKSB7XHJcbiAgICAgIHRoaXMucXJ5Qmxkck9iai5zZXRSdWxlcyhzYXZlZERhdGEpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVJ1bGUoeyBydWxlOiBzYXZlZERhdGEgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVzdWx0KCk6IFJ1bGVNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5xcnlCbGRyT2JqLmdldFJ1bGVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlUnVsZShhcmdzOiBSdWxlQ2hhbmdlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BsYXlSdWxlID0gSlNPTi5zdHJpbmdpZnkoYXJncy5ydWxlLCBudWxsLCAxMik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZVJ1bGUoeyBydWxlOiB0aGlzLnFyeUJsZHJPYmouZ2V0VmFsaWRSdWxlcyh0aGlzLnFyeUJsZHJPYmoucnVsZSkgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aW9uLWl0ZW0gKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8ZGl2IGNsYXNzPVwicWJjb250YWluZXJcIj5cclxuICAgIDxlanMtcXVlcnlidWlsZGVyICpuZ0lmPVwiaXNzZkxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAjcXVlcnlidWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwic2ZEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cInNkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtydWxlXT1cImltcG9ydFJ1bGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChydWxlQ2hhbmdlKT1cInVwZGF0ZVJ1bGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY3JlYXRlZCk9XCJvbkNoYW5nZSgpXCI+XHJcbiAgICA8L2Vqcy1xdWVyeWJ1aWxkZXI+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFkYXRhLkhpZGVTaG93UmVzdWx0UGFuZWxcIj5cclxuICAgICAgPGJyPlxyXG4gICAgICA8aW9uLWxhYmVsPlJlc3VsdDwvaW9uLWxhYmVsPlxyXG4gICAgICA8dGV4dGFyZWEgY2xhc3M9XCJvdXRwdXRcIlxyXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOiAxMDAlO1wiPnt7ZGlzcGxheVJ1bGV9fTwvdGV4dGFyZWE+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
499
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtL3NyYy9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsK0JBQStCO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLFNBQVMsRUFBb0IsTUFBTSxlQUFlLENBQUM7QUFHdEYsNkJBQTZCO0FBRTdCLDhCQUE4QjtBQUM5QixPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxXQUFXLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ25FLE9BQU8sRUFBZSxLQUFLLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFFbkQsMkNBQTJDO0FBQzNDLE9BQU8sRUFDUyxnQkFBZ0IsRUFBRSxvQkFBb0IsRUFDaEMsd0JBQXdCLEVBQzdDLE1BQU0saUJBQWlCLENBQUM7Ozs7OztBQU96QixNQUFNLE9BQU8sdUJBQXVCO0lBNkZsQyxZQUNVLFlBQTBCLEVBQzFCLGtCQUFzQyxFQUN0QyxhQUE0QjtRQUY1QixpQkFBWSxHQUFaLFlBQVksQ0FBYztR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b3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIEZvcm1Hcm91cCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbi8qKioqKioqKioqIElvbmljICoqKioqKioqKiovXHJcblxyXG4vKioqKioqKioqKiBQbHVnaW4gKioqKioqKioqKi9cclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZGVsYXksIGlnbm9yZUVsZW1lbnRzLCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBSdWxlTW9kZWwsIFF1ZXJ5QnVpbGRlckNvbXBvbmVudCwgQ29sdW1uc01vZGVsLCBUZW1wbGF0ZUNvbHVtbiwgUnVsZUNoYW5nZUV2ZW50QXJncyB9IGZyb20gJ0BzeW5jZnVzaW9uL2VqMi1hbmd1bGFyLXF1ZXJ5YnVpbGRlcic7XHJcbmltcG9ydCB7IERyb3BEb3duTGlzdCwgTXVsdGlTZWxlY3QgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZHJvcGRvd25zJztcclxuaW1wb3J0IHsgZ2V0Q29tcG9uZW50LCBjcmVhdGVFbGVtZW50IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJhc2UnO1xyXG5pbXBvcnQgeyBEYXRhTWFuYWdlciwgUXVlcnkgfSBmcm9tICdAc3luY2Z1c2lvbi9lajItZGF0YSc7XHJcbmltcG9ydCB7IENoZWNrQm94IH0gZnJvbSAnQHN5bmNmdXNpb24vZWoyLWJ1dHRvbnMnO1xyXG5cclxuLyoqKioqKioqKiogQ29tcG9uZW50ICYgU2VydmljZSAqKioqKioqKioqL1xyXG5pbXBvcnQge1xyXG4gIEZpZWxkU2VydmljZSwgWkNvbXBvbmVudEhlbHBlciwgWkNvbXBvbmVudFByb3BlcnRpZXMsIFpGaWVsZCwgWkdyb3VwLFxyXG4gIEZvbnRBd2VTb21lU2VydmljZSwgRGVmYXVsdFBhZ2VTZXR0aW5nUGFyYW1zLCBXZWJBcGlTZXJ2aWNlLCBSZXNvdXJjZUFwaVNlcnZpY2VcclxufSBmcm9tICdtbWhnbG9iYWwtemNvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtc2ZxdWVyeWJ1aWxkZXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zZnF1ZXJ5YnVpbGRlci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFNmcXVlcnlidWlsZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdxdWVyeWJ1aWxkZXInKSBxcnlCbGRyT2JqOiBRdWVyeUJ1aWxkZXJDb21wb25lbnQ7XHJcbiAgQElucHV0KCkgZGF0YTogWkZpZWxkO1xyXG4gIEBJbnB1dCgpIGdyb3VwOiBaR3JvdXA7XHJcbiAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xyXG5cclxuICBxYkl0ZW1zID0ge307XHJcblxyXG4gIHB1YmxpYyBjb21wb25lbnRQcm9wZXJ0aWVzID0gbmV3IFpDb21wb25lbnRQcm9wZXJ0aWVzKCk7XHJcbiAgcHVibGljIGlzc2ZMb2FkZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcXVlcnlDdHJsOiBhbnk7XHJcbiAgcHVibGljIGFsbG93UnVsZXNldDogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIGFsbG93Q29sbGFwc2U6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBwdWJsaWMgcGVyc2lzdFZhbHVlT25GaWVsZENoYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHB1YmxpYyBpc0Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHVibGljIHJ1bGU6IGFueTtcclxuICBwdWJsaWMgZmlsdGVyczogYW55O1xyXG4gIHByaXZhdGUgZmllbGRzOiBhbnk7XHJcbiAgcHVibGljIGRpc3BsYXlSdWxlOiBhbnkgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBsb2FkZWREcm9wZG93bk9wdGlvbnMgPSBbXTtcclxuXHJcbiAgcHVibGljIHNmRGF0YTogT2JqZWN0W107XHJcbiAgcHVibGljIGltcG9ydFJ1bGVzOiBSdWxlTW9kZWw7XHJcbiAgcHVibGljIHNkRmlsdGVyOiBDb2x1bW5zTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzZlFCVGVtcGxhdGU6IFRlbXBsYXRlQ29sdW1uO1xyXG5cclxuICAvLyNyZWdpb24gT3BlcmF0b3JcclxuICBwcml2YXRlIHJlYWRvbmx5IGVxdWFsT3BlcmF0b3IgPSB7IHZhbHVlOiAnZXF1YWwnLCBrZXk6ICdFcXVhbHMnIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBub3RlcXVhbE9wZXJhdG9yID0geyB2YWx1ZTogJ25vdGVxdWFsJywga2V5OiAnTm90IEVxdWFscycgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0c3dpdGhPcGVyYXRvciA9IHsgdmFsdWU6ICdzdGFydHN3aXRoJywga2V5OiAnU3RhcnQgV2l0aCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGVuZHN3aXRoT3BlcmF0b3IgPSB7IHZhbHVlOiAnZW5kc3dpdGgnLCBrZXk6ICdFbmQgV2l0aCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGNvbnRhaW5zT3BlcmF0b3IgPSB7IHZhbHVlOiAnY29udGFpbnMnLCBrZXk6ICdDb250YWlucycgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGlzZW1wdHlPcGVyYXRvciA9IHsgdmFsdWU6ICdpc2VtcHR5Jywga2V5OiAnSXMgRW1wdHknIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc25vdGVtcHR5T3BlcmF0b3IgPSB7IHZhbHVlOiAnaXNub3RlbXB0eScsIGtleTogJ0lzIE5vdCBFbXB0eScgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGlzbnVsbE9wZXJhdG9yID0geyB2YWx1ZTogJ2lzbnVsbCcsIGtleTogJ0lzIE51bGwnIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBpc25vdG51bGxPcGVyYXRvciA9IHsgdmFsdWU6ICdpc25vdG51bGwnLCBrZXk6ICdJcyBOb3QgTnVsbCcgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGluT3BlcmF0b3IgPSB7IHZhbHVlOiAnaW4nLCBrZXk6ICdJbicgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IG5vdGluT3BlcmF0b3IgPSB7IHZhbHVlOiAnbm90aW4nLCBrZXk6ICdOb3QgSW4nIH1cclxuICBwcml2YXRlIHJlYWRvbmx5IGdyZWF0ZXJ0aGFuT3BlcmF0b3IgPSB7IHZhbHVlOiAnZ3JlYXRlcnRoYW4nLCBrZXk6ICdHcmVhdGVyIFRoYW4nIH07XHJcbiAgcHJpdmF0ZSByZWFkb25seSBncmVhdGVydGhhbm9yZXF1YWxPcGVyYXRvciA9IHsgdmFsdWU6ICdncmVhdGVydGhhbm9yZXF1YWwnLCBrZXk6ICdHcmVhdGVyIFRoYW4gT3IgRXF1YWxzJyB9O1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgbGVzc3RoYW5PcGVyYXRvciA9IHsgdmFsdWU6ICdsZXNzdGhhbicsIGtleTogJ0xlc3MgVGhhbicgfTtcclxuICBwcml2YXRlIHJlYWRvbmx5IGxlc3N0aGFub3JlcXVhbE9wZXJhdG9yID0geyB2YWx1ZTogJ2xlc3N0aGFub3JlcXVhbCcsIGtleTogJ0xlc3MgVGhhbiBPciBFcXVhbHMnIH07XHJcblxyXG4gIHB1YmxpYyBpbk9wZXJhdG9yczogc3RyaW5nW10gPSBbJ2luJywgJ25vdGluJ107XHJcbiAgcHVibGljIGRyb3Bkb3duT3BlcmF0b3JzOiBhbnkgPSBbXHJcbiAgICB0aGlzLmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmluT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGluT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbnVsbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc25vdG51bGxPcGVyYXRvclxyXG4gIF07XHJcbiAgcHVibGljIHN0cmluZ09wZXJhdG9yczogYW55ID0gW1xyXG4gICAgdGhpcy5lcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ub3RlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5zdGFydHN3aXRoT3BlcmF0b3IsXHJcbiAgICB0aGlzLmVuZHN3aXRoT3BlcmF0b3IsXHJcbiAgICB0aGlzLmNvbnRhaW5zT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzZW1wdHlPcGVyYXRvcixcclxuICAgIHRoaXMuaXNub3RlbXB0eU9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc251bGxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNub3RudWxsT3BlcmF0b3JcclxuICBdO1xyXG4gIHB1YmxpYyBpbnRlZ2VyT3BlcmF0b3JzOiBhbnkgPSBbXHJcbiAgICB0aGlzLmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLm5vdGVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmdyZWF0ZXJ0aGFuT3BlcmF0b3IsXHJcbiAgICB0aGlzLmdyZWF0ZXJ0aGFub3JlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5sZXNzdGhhbk9wZXJhdG9yLFxyXG4gICAgdGhpcy5sZXNzdGhhbm9yZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNudWxsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbm90bnVsbE9wZXJhdG9yXHJcbiAgXTtcclxuICBwdWJsaWMgZGF0ZU9wZXJhdG9yczogYW55ID0gW1xyXG4gICAgdGhpcy5lcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ub3RlcXVhbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5ncmVhdGVydGhhbk9wZXJhdG9yLFxyXG4gICAgdGhpcy5ncmVhdGVydGhhbm9yZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMubGVzc3RoYW5PcGVyYXRvcixcclxuICAgIHRoaXMubGVzc3RoYW5vcmVxdWFsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbnVsbE9wZXJhdG9yLFxyXG4gICAgdGhpcy5pc25vdG51bGxPcGVyYXRvclxyXG4gIF07XHJcbiAgcHVibGljIGJvb2xlYW5PcGVyYXRvcnM6IGFueSA9IFtcclxuICAgIHRoaXMuZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMubm90ZXF1YWxPcGVyYXRvcixcclxuICAgIHRoaXMuaXNudWxsT3BlcmF0b3IsXHJcbiAgICB0aGlzLmlzbm90bnVsbE9wZXJhdG9yXHJcbiAgXTtcclxuICAvLyNlbmRyZWdpb25cclxuICBwdWJsaWMgc2VsZWN0aW9uQ29tcG9uZW50TGlzdCA9IFtdO1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgZmllbGRTZXJ2aWNlOiBGaWVsZFNlcnZpY2UsXHJcbiAgICBwcml2YXRlIHJlc291cmNlQXBpU2VydmljZTogUmVzb3VyY2VBcGlTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3ZWJBcGlTZXJ2aWNlOiBXZWJBcGlTZXJ2aWNlXHJcbiAgKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIFpDb21wb25lbnRIZWxwZXIuc2V0Q29tcG9uZW50UHJvcGVydGllcyh0aGlzKTtcclxuICAgIFpDb21wb25lbnRIZWxwZXIucmVnaXN0ZXJDb21wb25lbnQodGhpcyk7XHJcblxyXG4gICAgb2YodHJ1ZSkucGlwZShcclxuICAgICAgc3dpdGNoTWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmJlZm9yZUxvYWRGaWVsZCh0aGlzLmRhdGEpO1xyXG4gICAgICB9KSxcclxuICAgICAgdGFwKGRhdGEgPT4ge1xyXG4gICAgICAgIHRoaXMuZGF0YSA9IGRhdGEgYXMgWkZpZWxkO1xyXG4gICAgICB9KSxcclxuICAgICAgc3dpdGNoTWFwKF8gPT4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmxvYWRRdWVyeUJ1aWxkZXIoKTtcclxuICAgICAgfSlcclxuICAgICkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgLy8gV2hlcmUgdG8gdXBkYXRlIG9wZXJhdG9yIHN5bnRheFxyXG4gICAgICAvLyAxLiBFMSAtIHF1ZXJ5QnVpbGRlclRlbXBsYXRlMlxyXG4gICAgICAvLyAyLiBzaGFyZWQgZm9sZGVyID4gaGVscGVyID4gcXVlcnlidWlsZGVyLWZpZWxkaW5mby1oZWxwZXIudHNcclxuICAgICAgLy8gMy4gcGF0Y2ggZGIgZGF0YSB3aXRoIHNtYWxsIGNhcGl0YWwgbGV0dGVyXHJcblxyXG4gICAgICAvL3RoaXMuaXNzZkxvYWRlZCA9IHRydWU7ICBcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBiZWZvcmVMb2FkRmllbGQoZmllbGRFbGVtZW50RGF0YTogYW55KSB7XHJcbiAgICBsZXQgYmVmb3JlTG9hZEZpZWxkID0gZmllbGRFbGVtZW50RGF0YVsnQmVmb3JlTG9hZEZpZWxkJ107XHJcbiAgICBpZiAoYmVmb3JlTG9hZEZpZWxkKSB7XHJcbiAgICAgIGJlZm9yZUxvYWRGaWVsZCA9IGJlZm9yZUxvYWRGaWVsZC5yZXBsYWNlKCdtb2RhbEdyb3VwLicsICdncm91cC4nKTtcclxuICAgICAgY29uc3QgY2FsbEZ1bmMgPSBldmFsKCd0aGlzLicgKyBiZWZvcmVMb2FkRmllbGQpO1xyXG5cclxuICAgICAgaWYgKHR5cGVvZiBjYWxsRnVuYyA9PT0gXCJmdW5jdGlvblwiKSB7XHJcbiAgICAgICAgY29uc3QgbmV3RnVuYyA9IGNhbGxGdW5jLmJpbmQodGhpcyk7XHJcbiAgICAgICAgcmV0dXJuIG5ld0Z1bmMoZXZlbnQsIHRoaXMsIGZpZWxkRWxlbWVudERhdGEpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2YoZmllbGRFbGVtZW50RGF0YSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGxvYWRRdWVyeUJ1aWxkZXIoKTogT2JzZXJ2YWJsZTxhbnk+IHwgT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBpZiAodGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ10gPT09IHRydWUpIHtcclxuICAgICAgdGhpcy5hbGxvd0NvbGxhcHNlID0gdGhpcy5kYXRhWydBbGxvd0NvbGxhcHNlJ107XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0YVsnQWxsb3dSdWxlc2V0J10gPT09IGZhbHNlKSB7XHJcbiAgICAgIHRoaXMuYWxsb3dSdWxlc2V0ID0gdGhpcy5kYXRhWydBbGxvd1J1bGVzZXQnXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5kYXRhWydGaWx0ZXJzJ10pIHtcclxuICAgICAgdGhpcy5maWx0ZXJzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgIHRoaXMsXHJcbiAgICAgICAgdGhpcy5kYXRhWydGaWx0ZXJzJ10sXHJcbiAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZmllbGRzID0gdGhpcy5maWVsZFNlcnZpY2UuZ2V0Rm9ybUZpZWxkQ29kZSh0aGlzLmRhdGEuVmFsdWUsIFwiRm9ybUZpZWxkXCIsIG51bGwsIG51bGwpO1xyXG5cclxuICAgIHRyeSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmZpZWxkcy5waXBlKFxyXG4gICAgICAgIHRhcCgoZGF0YTogW10pID0+IHtcclxuXHJcbiAgICAgICAgICBkYXRhLmZvckVhY2goYXN5bmMgKGZpZWxkOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRUeXBlKGZpZWxkKTtcclxuICAgICAgICAgIH0pOy8vZW5kIGZvcmVhY2hcclxuXHJcbiAgICAgICAgICB0aGlzLmlzc2ZMb2FkZWQgPSB0cnVlO1xyXG4gICAgICAgIH0pXHJcbiAgICAgIClcclxuXHJcbiAgICAgIHJldHVybiBvZih0cnVlKTtcclxuICAgIH0gY2F0Y2ggKGVycm9yKSB7XHJcbiAgICAgIGNvbnNvbGUuZXJyb3IoXCJlcnJvcjogXCIsIGVycm9yKTtcclxuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXN5bmMgcmVuZGVyQ29tcG9uZW50VHlwZShmaWVsZDogYW55LCBmaWVsZFRpdGxlPzogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XHJcbiAgICBsZXQgY29tcG9uZW50TGFiZWwgPSBmaWVsZC5TdWJUeXBlID8gZmllbGQuTGFiZWwgOiBmaWVsZC5MYWJlbCA/PyBmaWVsZC5OYW1lO1xyXG4gICAgY29tcG9uZW50TGFiZWwgPSAhWkNvbXBvbmVudEhlbHBlci5pc051bGxVbmRlZmluZWRFbXB0eShmaWVsZFRpdGxlKSA/IFwiW1wiICsgZmllbGRUaXRsZSArIFwiXSBcIiArIGZpZWxkLkxhYmVsIDogIVpDb21wb25lbnRIZWxwZXIuaXNOdWxsVW5kZWZpbmVkRW1wdHkoZmllbGQuTGFiZWwpID8gZmllbGQuTGFiZWwgOiBmaWVsZC5OYW1lO1xyXG5cclxuICAgIGxldCBjb21wb25lbnRGaWVsZCA9ICFaQ29tcG9uZW50SGVscGVyLmlzTnVsbFVuZGVmaW5lZEVtcHR5KGZpZWxkVGl0bGUpID8gZmllbGRUaXRsZSArIFwiX1wiICsgZmllbGQuVmFsdWUgOiBmaWVsZC5WYWx1ZTtcclxuXHJcbiAgICBpZiAoZmllbGQuVHlwZSA9PT0gJ2NhdGVnb3J5JyB8fCBmaWVsZC5UeXBlID09PSAnbXVsdGlzZWxlY3QnIHx8IGZpZWxkLlR5cGUgPT09ICd6dWlzZWxlY3RtdWx0aXBsZScpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5kcm9wZG93bk9wZXJhdG9ycyxcclxuICAgICAgICB0ZW1wbGF0ZTogYXdhaXQgdGhpcy5nZW5lcmF0ZUNvbHVtblNlbGVjdGlvbihmaWVsZCksXHJcbiAgICAgIH0pXHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmaWVsZC5UeXBlID09PSAnZGF0ZScgfHwgZmllbGQuVHlwZSA9PT0gJ3pkYXRlJyB8fCBmaWVsZC5UeXBlID09PSAnemRhdGV0aW1lJyB8fCBmaWVsZC5UeXBlID09PSAnenVpZGF0ZXRpbWUnIHx8IGZpZWxkLlR5cGUgPT09ICd6c2hvcnRkYXRlJykge1xyXG4gICAgICB0aGlzLnNkRmlsdGVyLnB1c2goe1xyXG4gICAgICAgIGZpZWxkOiBjb21wb25lbnRGaWVsZCxcclxuICAgICAgICBsYWJlbDogY29tcG9uZW50TGFiZWwsXHJcbiAgICAgICAgdHlwZTogJ2RhdGUnLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5kYXRlT3BlcmF0b3JzLFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmllbGQuVHlwZSA9PT0gJ251bWJlcicgfHwgZmllbGQuVHlwZSA9PT0gJ3pudW1lcmljJyB8fCBmaWVsZC5UeXBlID09PSAnbnVtZXJpYycpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIHR5cGU6ICdudW1iZXInLFxyXG4gICAgICAgIG9wZXJhdG9yczogdGhpcy5pbnRlZ2VyT3BlcmF0b3JzLFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmllbGQuVmFsdWUgPT09ICdib29sZWFuJyB8fCBmaWVsZC5WYWx1ZSA9PT0gJ3pjaGVja2JveCcpIHtcclxuICAgICAgdGhpcy5zZEZpbHRlci5wdXNoKHtcclxuICAgICAgICBmaWVsZDogY29tcG9uZW50RmllbGQsXHJcbiAgICAgICAgbGFiZWw6IGNvbXBvbmVudExhYmVsLFxyXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcclxuICAgICAgICBvcGVyYXRvcnM6IHRoaXMuYm9vbGVhbk9wZXJhdG9ycyxcclxuICAgICAgICB0ZW1wbGF0ZTogYXdhaXQgdGhpcy5nZW5lcmF0ZUNvbHVtbkNoZWNrYm94KGZpZWxkLk5hbWUsIGZhbHNlKVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gICAgZWxzZSBpZiAoZmllbGQuVHlwZSA9PT0gJ2tjYXJkJykge1xyXG4gICAgICBpZiAoZmllbGQuVmFsdWUubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIGZpZWxkLlZhbHVlLmZvckVhY2goYXN5bmMgKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5yZW5kZXJDb21wb25lbnRUeXBlKGl0ZW0sIGZpZWxkLlRpdGxlKTtcclxuICAgICAgICB9KVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBlbHNlIGlmIChmaWVsZC5UeXBlICE9ICd6bGFiZWwnKSB7XHJcbiAgICAgIHRoaXMuc2RGaWx0ZXIucHVzaCh7XHJcbiAgICAgICAgZmllbGQ6IGNvbXBvbmVudEZpZWxkLFxyXG4gICAgICAgIGxhYmVsOiBjb21wb25lbnRMYWJlbCxcclxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcclxuICAgICAgICBvcGVyYXRvcnM6IHRoaXMuc3RyaW5nT3BlcmF0b3JzLFxyXG4gICAgICB9KVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2RGaWx0ZXIuc29ydCgoYSwgYikgPT4gYS5sYWJlbC50b0xvd2VyQ2FzZSgpIDwgYi5sYWJlbC50b0xvd2VyQ2FzZSgpID8gLTEgOiAxKTtcclxuICB9XHJcblxyXG4gIC8vI3JlZ2lvbiBHZW5lcmF0ZSBjb21wb25lbnQgXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZUNvbHVtbkNoZWNrYm94KGxhYmVsOiBzdHJpbmcsIHZhbHVlOiBib29sZWFuKTogVGVtcGxhdGVDb2x1bW4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgY3JlYXRlOiAoKSA9PiB7XHJcbiAgICAgICAgcmV0dXJuIGNyZWF0ZUVsZW1lbnQoJ2lucHV0JywgeyBhdHRyczogeyAndHlwZSc6ICdjaGVja2JveCcgfSB9KTtcclxuICAgICAgfSxcclxuICAgICAgZGVzdHJveTogKGFyZ3M6IHsgZWxlbWVudElkOiBzdHJpbmcgfSkgPT4ge1xyXG4gICAgICAgIChnZXRDb21wb25lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYXJncy5lbGVtZW50SWQpLCAnY2hlY2tib3gnKSBhcyBDaGVja0JveCkuZGVzdHJveSgpO1xyXG4gICAgICB9LFxyXG4gICAgICB3cml0ZTogKGFyZ3M6IHsgZWxlbWVudHM6IEVsZW1lbnQsIHZhbHVlczogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICBjb25zdCBib3hPYmo6IENoZWNrQm94ID0gbmV3IENoZWNrQm94KHtcclxuICAgICAgICAgIGxhYmVsOiBsYWJlbCxcclxuICAgICAgICAgIGNoZWNrZWQ6IHZhbHVlLFxyXG4gICAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMucXJ5Qmxkck9iai5ub3RpZnlDaGFuZ2UodmFsdWUsIGUuZXZlbnQudGFyZ2V0KTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgICBib3hPYmouYXBwZW5kVG8oJyMnICsgYXJncy5lbGVtZW50cy5pZCk7XHJcbiAgICAgIH1cclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGdlbmVyYXRlQ29sdW1uU2VsZWN0aW9uKGZpZWxkRWxlbWVudERhdGE6IGFueSk6IFRlbXBsYXRlQ29sdW1uIHtcclxuICAgIHJldHVybiB7XHJcblxyXG4gICAgICAvLyBDcmVhdGVzIHRoZSBjdXN0b20gY29tcG9uZW50XHJcbiAgICAgIGNyZWF0ZTogKCkgPT4ge1xyXG4gICAgICAgIC8vIEFkZGl0aW9uYWwgZmlsdGVyIHNldCBpbiB0aGUgcGFnZVxyXG4gICAgICAgIGlmICh0aGlzLmRhdGFbJ0ZpbHRlcnMnXSkge1xyXG4gICAgICAgICAgdGhpcy5maWx0ZXJzID0gWkNvbXBvbmVudEhlbHBlci5nZXRHcm91cEV2YWxWYWx1ZS5jYWxsKFxyXG4gICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICB0aGlzLmRhdGFbJ0ZpbHRlcnMnXSxcclxuICAgICAgICAgICAgdGhpcy5ncm91cFxyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBjcmVhdGVFbGVtZW50KCdpbnB1dCcsIHsgYXR0cnM6IHsgJ3R5cGUnOiAndGV4dCcgfSB9KTsgLy8gJ2Rpc3BsYXk6IG5vbmUnXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAvLyBEZXN0cm95IHRoZSBjdXN0b20gY29tcG9uZW50XHJcbiAgICAgIGRlc3Ryb3k6IChhcmdzOiB7IGVsZW1lbnRJZDogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICBpZiAoYXJnc1snZWxlbWVudHMnXSkge1xyXG4gICAgICAgICAgbGV0IG11bHRpU2VsZWN0OiBNdWx0aVNlbGVjdCA9IChnZXRDb21wb25lbnQoZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYXJncy5lbGVtZW50SWQpLCAnbXVsdGlzZWxlY3QnKSBhcyBNdWx0aVNlbGVjdCk7XHJcbiAgICAgICAgICBpZiAobXVsdGlTZWxlY3QpIHtcclxuICAgICAgICAgICAgbXVsdGlTZWxlY3QuZGVzdHJveSgpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgbGV0IGRyb3Bkb3duOiBEcm9wRG93bkxpc3QgPSAoZ2V0Q29tcG9uZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGFyZ3MuZWxlbWVudElkKSwgJ2Ryb3Bkb3dubGlzdCcpIGFzIERyb3BEb3duTGlzdCk7XHJcbiAgICAgICAgICBpZiAoZHJvcGRvd24pIHtcclxuICAgICAgICAgICAgZHJvcGRvd24uZGVzdHJveSgpO1xyXG4gICAgICAgICAgfVxyXG5cclxuICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ107XHJcbiAgICAgICAgICBpZiAoc2VsZWN0T3B0aW9ucykge1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG4gICAgICAgICAgICBjb25zdCBwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nID0gc2VsZWN0T3B0aW9uc1Jlc291cmNlVVJMICsgJ18nICsgYXJncy5lbGVtZW50SWQ7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5sb2FkZWREcm9wZG93bk9wdGlvbnMuaW5jbHVkZXMocHJlZml4UmVzb3VyY2VVUkxDaGVja2luZykpIHtcclxuICAgICAgICAgICAgICB0aGlzLmxvYWRlZERyb3Bkb3duT3B0aW9ucyA9IHRoaXMucmVtb3ZlQXJyYXlJdGVtKHRoaXMubG9hZGVkRHJvcGRvd25PcHRpb25zLCBwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuXHJcbiAgICAgIC8vIFdpcmUgZXZlbnRzIGZvciB0aGUgY3VzdG9tIGNvbXBvbmVudC5cclxuICAgICAgd3JpdGU6IChhcmdzOiB7IGVsZW1lbnRzOiBFbGVtZW50LCB2YWx1ZXM6IHN0cmluZ1tdIHwgc3RyaW5nLCBvcGVyYXRvcjogc3RyaW5nIH0pID0+IHtcclxuICAgICAgICAvL29yaWdpblxyXG4gICAgICAgIGlmIChmaWVsZEVsZW1lbnREYXRhWydWYWx1ZU9wdGlvbnMnXSkge1xyXG4gICAgICAgICAgLy8gY29udmVydCB0byBwcm9wZXJ0eSBuYW1lIHVzZWQgaW4gdGhlIGNvbXBvbmVudCByZW5kZXJpbmdcclxuICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3Q6IHsgW25hbWU6IHN0cmluZ106IE9iamVjdCB9W10gPSBbXTtcclxuICAgICAgICAgIGZpZWxkRWxlbWVudERhdGFbJ1ZhbHVlT3B0aW9ucyddLmZvckVhY2goKGl0ZW06IGFueSkgPT4ge1xyXG4gICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgIHRleHQ6IGl0ZW1bJ05hbWUnXSxcclxuICAgICAgICAgICAgICB2YWx1ZTogaXRlbVsnVmFsdWUnXVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICAgIH0pXHJcblxyXG4gICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ29tcG9uZW50ID0gdGhpcy5nZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzLCBvcHRpb25MaXN0KTtcclxuICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIG1hbnVhbCBkcm9wZG93biBvciB6dWRmIG1hbnVhbCBkcm9wZG93blxyXG4gICAgICAgIGVsc2UgaWYgKGZpZWxkRWxlbWVudERhdGFbJ1NlbGVjdE9wdGlvbnMnXSAmJiBBcnJheS5pc0FycmF5KGZpZWxkRWxlbWVudERhdGFbJ1NlbGVjdE9wdGlvbnMnXSkpIHtcclxuICAgICAgICAgIC8vIGNvbnZlcnQgdG8gcHJvcGVydHkgbmFtZSB1c2VkIGluIHRoZSBjb21wb25lbnQgcmVuZGVyaW5nXHJcbiAgICAgICAgICBjb25zdCBvcHRpb25MaXN0OiB7IFtuYW1lOiBzdHJpbmddOiBPYmplY3QgfVtdID0gW107XHJcbiAgICAgICAgICBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ10uZm9yRWFjaCgoaXRlbTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIG9wdGlvbkxpc3QucHVzaCh7XHJcbiAgICAgICAgICAgICAgdGV4dDogaXRlbVsndGV4dCddLFxyXG4gICAgICAgICAgICAgIHZhbHVlOiBpdGVtWyd2YWx1ZSddXHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICBjb25zdCBzZWxlY3Rpb25Db21wb25lbnQgPSB0aGlzLmdlbmVyYXRlU2VsZWN0aW9uQ29tcG9uZW50KGFyZ3MsIG9wdGlvbkxpc3QpO1xyXG4gICAgICAgICAgc2VsZWN0aW9uQ29tcG9uZW50LmFwcGVuZFRvKCcjJyArIGFyZ3MuZWxlbWVudHMuaWQpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8genVkZiBSZXNvdXJjZVVSTCAvIENvbW1vbiBNYXN0ZXIgZHJvcGRvd25cclxuICAgICAgICBlbHNlIHtcclxuICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZEVsZW1lbnREYXRhWydTZWxlY3RPcHRpb25zJ107XHJcbiAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG5cclxuICAgICAgICAgIC8vIFJlc291cmNlVVJMIGRyb3Bkb3duXHJcbiAgICAgICAgICBpZiAoc2VsZWN0T3B0aW9uc1Jlc291cmNlVVJMKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZWZpeFJlc291cmNlVVJMQ2hlY2tpbmcgPSBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgKyAnXycgKyBhcmdzLmVsZW1lbnRzLmlkO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aGlzLmxvYWRlZERyb3Bkb3duT3B0aW9ucy5pbmNsdWRlcyhwcmVmaXhSZXNvdXJjZVVSTENoZWNraW5nKSkge1xyXG4gICAgICAgICAgICAgIHRoaXMubG9hZGVkRHJvcGRvd25PcHRpb25zLnB1c2gocHJlZml4UmVzb3VyY2VVUkxDaGVja2luZyk7XHJcblxyXG4gICAgICAgICAgICAgIGlmICh0aGlzLmZpbHRlcnMpIHtcclxuICAgICAgICAgICAgICAgIHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXSA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgIGNvbnN0IHBhcmFtID0gT2JqZWN0LmFzc2lnbih7fSwgRGVmYXVsdFBhZ2VTZXR0aW5nUGFyYW1zKTtcclxuICAgICAgICAgICAgICBwYXJhbS5wYWdlU2l6ZSA9IHNlbGVjdE9wdGlvbnNbJ1BhZ2VTaXplJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uY29sdW1ucyA9IHNlbGVjdE9wdGlvbnNbJ0NvbHVtbnMnXTtcclxuICAgICAgICAgICAgICBwYXJhbS5maWx0ZXJzICs9IHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXTtcclxuICAgICAgICAgICAgICBwYXJhbS5zb3J0Q29sdW1uTmFtZSA9IHNlbGVjdE9wdGlvbnNbJ1NvcnRDb2x1bW5OYW1lJ107XHJcbiAgICAgICAgICAgICAgcGFyYW0uc29ydE9yZGVyID0gc2VsZWN0T3B0aW9uc1snU29ydE9yZGVyJ107XHJcblxyXG4gICAgICAgICAgICAgIC8vIE5lZWQgZGVsYXkgNDAwbXMgaWYgbm90IDNyZCBzZWdtZW50ICh2YWx1ZSkgd2lsbCBub3QgYmUgcmVuZGVyZWQuXHJcbiAgICAgICAgICAgICAgdGhpcy53ZWJBcGlTZXJ2aWNlLmh0dHBQb3N0JCh0aGlzLnJlc291cmNlQXBpU2VydmljZS5nZXRQYWdlVXJsKHNlbGVjdE9wdGlvbnNSZXNvdXJjZVVSTCksIHBhcmFtKS5waXBlKFxyXG4gICAgICAgICAgICAgICAgZGVsYXkoNDAwKSxcclxuICAgICAgICAgICAgICAgIG1hcCgocmVzcCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICBjb25zdCBvcHRpb25MaXN0ID0gW107XHJcbiAgICAgICAgICAgICAgICAgIHJlc3AuZGF0YVNldC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogaXRlbVtzZWxlY3RPcHRpb25zWydOYW1lJ11dLFxyXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bc2VsZWN0T3B0aW9uc1snVmFsdWUnXV1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbXBvbmVudCA9IHRoaXMuZ2VuZXJhdGVTZWxlY3Rpb25Db21wb25lbnQoYXJncywgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIC8vI3JlZ2lvbiB1c2VkIGZvciB1cGRhdGVTZWxlY3Rpb25PcHRpb25cclxuICAgICAgICAgICAgICAgICAgY29uc3QgZXhpc3RpbmdJbmRleCA9IHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5maW5kSW5kZXgoXHJcbiAgICAgICAgICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY29tcG9uZW50SWQgPT09IGFyZ3MuZWxlbWVudHMuaWRcclxuICAgICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICAgIGlmIChleGlzdGluZ0luZGV4ICE9PSAtMSkge1xyXG4gICAgICAgICAgICAgICAgICAgIC8vIE9iamVjdCB3aXRoIHRoZSBzYW1lIGNvbXBvbmVudElkIGV4aXN0cywgcmVwbGFjZSByZXNvdXJjZVVybFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdFtleGlzdGluZ0luZGV4XS5yZXNvdXJjZVVybCA9IHNlbGVjdE9wdGlvbnNSZXNvdXJjZVVSTDtcclxuICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAvLyBPYmplY3Qgd2l0aCBjb21wb25lbnRJZCBkb2Vzbid0IGV4aXN0LCBwdXNoIGEgbmV3IG9iamVjdFxyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICAgIHJlc291cmNlVXJsOiBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwsXHJcbiAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnRJZDogYXJncy5lbGVtZW50cy5pZFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICAgIC8vI2VuZHJlZ2lvblxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICApLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgLy8genVkZiBDb21tb24gTWFzdGVyIGRyb3Bkb3duXHJcbiAgICAgICAgICBlbHNlIGlmIChmaWVsZEVsZW1lbnREYXRhLnp1ZGZEYXRhU291cmNlVHlwZSAmJiBmaWVsZEVsZW1lbnREYXRhLnp1ZGZEYXRhU291cmNlVHlwZSA9PT0gXCJyZXNvdXJjZVwiKSB7XHJcblxyXG4gICAgICAgICAgICAvLyBleHRyYWN0IHp1ZGZfZHJvcGRvd24gZnJvbSBzZXNzaW9uIHN0b3JhZ2VcclxuICAgICAgICAgICAgY29uc3QgenVkZl9kcm9wZG93biA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJ6dWRmX2Ryb3Bkb3duXCIpID8gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwienVkZl9kcm9wZG93blwiKSkgOiBudWxsO1xyXG4gICAgICAgICAgICBpZiAoenVkZl9kcm9wZG93bikge1xyXG4gICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3QgPSBbXTtcclxuXHJcbiAgICAgICAgICAgICAgenVkZl9kcm9wZG93bi5mb3JFYWNoKHJlcyA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBuYW1lID0gcmVzLnRleHQuc3BsaXQoXCJPcHRpb25zXCIpWzBdO1xyXG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkRWxlbWVudERhdGEuTGFiZWwgPT09IG5hbWUpIHtcclxuICAgICAgICAgICAgICAgICAgcmVzLnZhbHVlLmZvckVhY2godmFsID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgICAgICAgdGV4dDogdmFsWydOYW1lJ10sXHJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZTogdmFsWydJZCddXHJcbiAgICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uQ29tcG9uZW50ID0gdGhpcy5nZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzLCBvcHRpb25MaXN0KTtcclxuICAgICAgICAgICAgICBzZWxlY3Rpb25Db21wb25lbnQuYXBwZW5kVG8oJyMnICsgYXJncy5lbGVtZW50cy5pZCk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAvLyBVc2VyIExpc3QgZHJvcGRvd25cclxuICAgICAgICAgIGVsc2UgaWYgKGZpZWxkRWxlbWVudERhdGEuenVkZkRhdGFTb3VyY2VUeXBlICYmIGZpZWxkRWxlbWVudERhdGEuenVkZkRhdGFTb3VyY2VUeXBlID09PSBcInVzZXJcIikge1xyXG4gICAgICAgICAgICBjb25zdCBvcHRpb25MaXN0ID0gW107XHJcbiAgICAgICAgICAgIGNvbnN0IHVzZXJMaXN0ID0gSlNPTi5wYXJzZShzZXNzaW9uU3RvcmFnZT8uZ2V0SXRlbShcInVzZXJMaXN0XCIpID8/ICdudWxsJyk7XHJcblxyXG4gICAgICAgICAgICAvL2NvbnN0IGFycmF5VGVzdCA9IHVzZXJMaXN0Lm1hcCgoeyBTZWxlY3Rpb25OYW1lLCBJZCB9KSA9PiAoeyB0ZXh0OiBTZWxlY3Rpb25OYW1lLCB2YWx1ZTogSWQgfSkpO1xyXG4gICAgICAgICAgICB1c2VyTGlzdC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICBvcHRpb25MaXN0LnB1c2goe1xyXG4gICAgICAgICAgICAgICAgdGV4dDogaXRlbVsnU2VsZWN0aW9uTmFtZSddLFxyXG4gICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bJ0lkJ11cclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgfSlcclxuXHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGlvbkNvbXBvbmVudCA9IHRoaXMuZ2VuZXJhdGVTZWxlY3Rpb25Db21wb25lbnQoYXJncywgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgICAgIHNlbGVjdGlvbkNvbXBvbmVudC5hcHBlbmRUbygnIycgKyBhcmdzLmVsZW1lbnRzLmlkKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0vL2VuZCB3cml0ZVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHVibGljIHVwZGF0ZVNlbGVjdGlvbk9wdGlvbihyZXNvdXJjZVVybDogc3RyaW5nLCBkYXRhOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VsZWN0aW9uQ29tcG9uZW50TGlzdC5mb3JFYWNoKHNlbGVjdGlvbkNvbXBvbmVudCA9PiB7XHJcbiAgICAgIGxldCBtdWx0aVNlbGVjdDogTXVsdGlTZWxlY3QgPSAoZ2V0Q29tcG9uZW50KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKHNlbGVjdGlvbkNvbXBvbmVudC5jb21wb25lbnRJZCksICdtdWx0aXNlbGVjdCcpIGFzIE11bHRpU2VsZWN0KTtcclxuICAgICAgaWYgKG11bHRpU2VsZWN0KSB7XHJcbiAgICAgICAgbXVsdGlTZWxlY3QudmFsdWUgPSBkYXRhO1xyXG4gICAgICB9XHJcbiAgICAgIGxldCBkcm9wZG93bjogRHJvcERvd25MaXN0ID0gKGdldENvbXBvbmVudChkb2N1bWVudC5nZXRFbGVtZW50QnlJZChzZWxlY3Rpb25Db21wb25lbnQuY29tcG9uZW50SWQpLCAnZHJvcGRvd25saXN0JykgYXMgRHJvcERvd25MaXN0KTtcclxuICAgICAgaWYgKGRyb3Bkb3duKSB7XHJcbiAgICAgICAgdGhpcy5maWVsZFNlcnZpY2UuZGF0YUZvcm1GaWVsZHNbdGhpcy5kYXRhLlZhbHVlXS5mb3JFYWNoKGFzeW5jIChmaWVsZDogYW55KSA9PiB7XHJcbiAgICAgICAgICBpZiAoZmllbGQuU2VsZWN0T3B0aW9ucy5SZXNvdXJjZVVSTCA9PT0gc2VsZWN0aW9uQ29tcG9uZW50LnJlc291cmNlVXJsKSB7XHJcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdE9wdGlvbnMgPSBmaWVsZFsnU2VsZWN0T3B0aW9ucyddO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwgPSBzZWxlY3RPcHRpb25zWydSZXNvdXJjZVVSTCddO1xyXG4gICAgICAgICAgICBjb25zdCBwYXJhbSA9IE9iamVjdC5hc3NpZ24oe30sIERlZmF1bHRQYWdlU2V0dGluZ1BhcmFtcyk7XHJcblxyXG4gICAgICAgICAgICBpZiAodGhpcy5kYXRhWydGaWx0ZXJzJ10pIHtcclxuICAgICAgICAgICAgICB0aGlzLmZpbHRlcnMgPSBaQ29tcG9uZW50SGVscGVyLmdldEdyb3VwRXZhbFZhbHVlLmNhbGwoXHJcbiAgICAgICAgICAgICAgICB0aGlzLFxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhWydGaWx0ZXJzJ10sXHJcbiAgICAgICAgICAgICAgICB0aGlzLmdyb3VwXHJcbiAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgaWYgKHRoaXMuZmlsdGVycykge1xyXG4gICAgICAgICAgICAgIHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXSA9IHRoaXMuZmlsdGVycztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgcGFyYW0ucGFnZVNpemUgPSBzZWxlY3RPcHRpb25zWydQYWdlU2l6ZSddO1xyXG4gICAgICAgICAgICBwYXJhbS5jb2x1bW5zID0gc2VsZWN0T3B0aW9uc1snQ29sdW1ucyddO1xyXG4gICAgICAgICAgICBwYXJhbS5maWx0ZXJzICs9IHNlbGVjdE9wdGlvbnNbJ0ZpbHRlcnMnXTtcclxuICAgICAgICAgICAgcGFyYW0uc29ydENvbHVtbk5hbWUgPSBzZWxlY3RPcHRpb25zWydTb3J0Q29sdW1uTmFtZSddO1xyXG4gICAgICAgICAgICBwYXJhbS5zb3J0T3JkZXIgPSBzZWxlY3RPcHRpb25zWydTb3J0T3JkZXInXTtcclxuXHJcbiAgICAgICAgICAgIHRoaXMud2ViQXBpU2VydmljZS5odHRwUG9zdCQodGhpcy5yZXNvdXJjZUFwaVNlcnZpY2UuZ2V0UGFnZVVybChzZWxlY3RPcHRpb25zUmVzb3VyY2VVUkwpLCBwYXJhbSkucGlwZShcclxuICAgICAgICAgICAgICBtYXAoKHJlc3ApID0+IHtcclxuICAgICAgICAgICAgICAgIGNvbnN0IG9wdGlvbkxpc3QgPSBbXTtcclxuICAgICAgICAgICAgICAgIHJlc3AuZGF0YVNldC5mb3JFYWNoKChpdGVtOiBhbnkpID0+IHtcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGlzdC5wdXNoKHtcclxuICAgICAgICAgICAgICAgICAgICB0ZXh0OiBpdGVtW3NlbGVjdE9wdGlvbnNbJ05hbWUnXV0sXHJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU6IGl0ZW1bc2VsZWN0T3B0aW9uc1snVmFsdWUnXV1cclxuICAgICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG5cclxuICAgICAgICAgICAgICAgIGRyb3Bkb3duLmRhdGFTb3VyY2UgPSBvcHRpb25MaXN0O1xyXG4gICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICkuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHJlbW92ZUFycmF5SXRlbTxUPihhcnI6IEFycmF5PFQ+LCB2YWx1ZTogVCk6IEFycmF5PFQ+IHtcclxuICAgIGNvbnN0IGluZGV4ID0gYXJyLmluZGV4T2YodmFsdWUpO1xyXG4gICAgaWYgKGluZGV4ID4gLTEpIHtcclxuICAgICAgYXJyLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gYXJyO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZW5lcmF0ZVNlbGVjdGlvbkNvbXBvbmVudChhcmdzOiBhbnksIG9wdGlvbkxpc3Q6IGFueSk6IE11bHRpU2VsZWN0IHwgRHJvcERvd25MaXN0IHtcclxuICAgIGlmICh0aGlzLmluT3BlcmF0b3JzLmluZGV4T2YoYXJncy5vcGVyYXRvcikgPiAtMSkge1xyXG4gICAgICByZXR1cm4gbmV3IE11bHRpU2VsZWN0KHtcclxuICAgICAgICBkYXRhU291cmNlOiBvcHRpb25MaXN0LFxyXG4gICAgICAgIGZpZWxkczogeyB0ZXh0OiAndGV4dCcsIHZhbHVlOiAndmFsdWUnIH0sXHJcbiAgICAgICAgdmFsdWU6IGFyZ3MudmFsdWVzIGFzIHN0cmluZ1tdLFxyXG4gICAgICAgIG1vZGU6ICdDaGVja0JveCcsXHJcbiAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnFyeUJsZHJPYmoubm90aWZ5Q2hhbmdlKGUudmFsdWUsIGUuZWxlbWVudCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBzZXQgY29udGFpbnMgc2VhcmNoIGJ5IGRlZmF1bHRcclxuICAgICAgICBmaWx0ZXJpbmc6IChlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMub25GaWx0ZXJpbmcoZSwgb3B0aW9uTGlzdCk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICByZXR1cm4gbmV3IERyb3BEb3duTGlzdCh7XHJcbiAgICAgICAgYWxsb3dGaWx0ZXJpbmc6IHRydWUsIC8vIHNlYXJjaCBib3ggYXBwZWFyXHJcbiAgICAgICAgZGF0YVNvdXJjZTogb3B0aW9uTGlzdCxcclxuICAgICAgICBmaWVsZHM6IHsgdGV4dDogJ3RleHQnLCB2YWx1ZTogJ3ZhbHVlJyB9LFxyXG4gICAgICAgIHZhbHVlOiBhcmdzLnZhbHVlcyBhcyBzdHJpbmcsXHJcbiAgICAgICAgY2hhbmdlOiAoZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBlLnZhbHVlICE9PSBudWxsID8gdGhpcy5xcnlCbGRyT2JqLm5vdGlmeUNoYW5nZShlLml0ZW1EYXRhLnZhbHVlLCBlLmVsZW1lbnQpIDogaWdub3JlRWxlbWVudHM7XHJcbiAgICAgICAgfSxcclxuICAgICAgICAvLyBzZXQgZGVmYXVsdCBzZWFyY2ggYnkgJ2NvbnRhaW5zJ1xyXG4gICAgICAgIGZpbHRlcmluZzogKGU6IGFueSkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5vbkZpbHRlcmluZyhlLCBvcHRpb25MaXN0KTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICAvLyNlbmRyZWdpb25cclxuXHJcbiAgcHVibGljIG9uRmlsdGVyaW5nKGU6IGFueSwgb3B0aW9uTGlzdDogYW55KTogdm9pZCB7XHJcbiAgICAvLyBsb2FkIG92ZXJhbGwgZGF0YSB3aGVuIHNlYXJjaCBrZXkgZW1wdHkuXHJcbiAgICBpZiAoZS50ZXh0ID09PSAnJykge1xyXG4gICAgICBlLnVwZGF0ZURhdGEodGhpcy5kYXRhKTtcclxuICAgIH1cclxuICAgIGVsc2Uge1xyXG4gICAgICAvLyBEZWZpbmUgYXJyYXkgZGF0YVxyXG4gICAgICBsZXQgc2VhcmNoRGF0YSA9IG9wdGlvbkxpc3Q7XHJcblxyXG4gICAgICAvL0JpbmQgdGhlIGZpbHRlciBldmVudFxyXG4gICAgICBsZXQgcXVlcnkgPSBuZXcgUXVlcnkoKTtcclxuXHJcbiAgICAgIC8vZnJhbWUgdGhlIHF1ZXJ5IGJhc2VkIG9uIHNlYXJjaCBzdHJpbmcgd2l0aCBmaWx0ZXIgdHlwZS5cclxuICAgICAgcXVlcnkgPSAoZS50ZXh0ICE9IFwiXCIpID8gcXVlcnkud2hlcmUoXCJ0ZXh0XCIsIFwiY29udGFpbnNcIiwgZS50ZXh0LCB0cnVlKSA6IHF1ZXJ5O1xyXG5cclxuICAgICAgLy9wYXNzIHRoZSBmaWx0ZXIgZGF0YSBzb3VyY2UsIGZpbHRlciBxdWVyeSB0byB1cGRhdGVEYXRhIG1ldGhvZC5cclxuICAgICAgZS51cGRhdGVEYXRhKHNlYXJjaERhdGEsIHF1ZXJ5KTtcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBwdWJsaWMgc2V0UXVlcnlWYWx1ZShzYXZlZERhdGE6IGFueSk6dm9pZCB7XHJcbiAgICBpZiAoc2F2ZWREYXRhKSB7XHJcbiAgICAgIHRoaXMucXJ5Qmxkck9iai5zZXRSdWxlcyhzYXZlZERhdGEpO1xyXG4gICAgICB0aGlzLnVwZGF0ZVJ1bGUoeyBydWxlOiBzYXZlZERhdGEgfSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0UmVzdWx0KCk6IFJ1bGVNb2RlbCB7XHJcbiAgICByZXR1cm4gdGhpcy5xcnlCbGRyT2JqLmdldFJ1bGVzKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgdXBkYXRlUnVsZShhcmdzOiBSdWxlQ2hhbmdlRXZlbnRBcmdzKTogdm9pZCB7XHJcbiAgICB0aGlzLmRpc3BsYXlSdWxlID0gSlNPTi5zdHJpbmdpZnkoYXJncy5ydWxlLCBudWxsLCAxMik7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgb25DaGFuZ2UoKTogdm9pZCB7XHJcbiAgICB0aGlzLnVwZGF0ZVJ1bGUoeyBydWxlOiB0aGlzLnFyeUJsZHJPYmouZ2V0VmFsaWRSdWxlcyh0aGlzLnFyeUJsZHJPYmoucnVsZSkgfSk7XHJcbiAgfVxyXG59XHJcblxyXG4iLCI8aW9uLWl0ZW0gKm5nSWY9XCIoISFjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZUZpZWxkID8gZ3JvdXBbY29tcG9uZW50UHJvcGVydGllcy5pc1Zpc2libGVGaWVsZF0gOiBjb21wb25lbnRQcm9wZXJ0aWVzLmlzVmlzaWJsZSlcIj5cclxuICA8ZGl2IGNsYXNzPVwicWJjb250YWluZXJcIj5cclxuICAgIDxlanMtcXVlcnlidWlsZGVyICpuZ0lmPVwiaXNzZkxvYWRlZFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAjcXVlcnlidWlsZGVyXHJcbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgW2RhdGFTb3VyY2VdPVwic2ZEYXRhXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cInNkRmlsdGVyXCJcclxuICAgICAgICAgICAgICAgICAgICAgIFtydWxlXT1cImltcG9ydFJ1bGVzXCJcclxuICAgICAgICAgICAgICAgICAgICAgIChydWxlQ2hhbmdlKT1cInVwZGF0ZVJ1bGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAoY3JlYXRlZCk9XCJvbkNoYW5nZSgpXCI+XHJcbiAgICA8L2Vqcy1xdWVyeWJ1aWxkZXI+XHJcblxyXG4gICAgPGRpdiAqbmdJZj1cIiFkYXRhLkhpZGVTaG93UmVzdWx0UGFuZWxcIj5cclxuICAgICAgPGJyPlxyXG4gICAgICA8aW9uLWxhYmVsPlJlc3VsdDwvaW9uLWxhYmVsPlxyXG4gICAgICA8dGV4dGFyZWEgY2xhc3M9XCJvdXRwdXRcIlxyXG4gICAgICAgICAgICAgICAgcmVzaXphYmxlPVwibm9uZVwiXHJcbiAgICAgICAgICAgICAgICBbcm93c109XCIxMFwiXHJcbiAgICAgICAgICAgICAgICBzdHlsZT1cImJvcmRlcjogMXB4IHNvbGlkICNkM2QzZDM7IHdpZHRoOiAxMDAlO1wiPnt7ZGlzcGxheVJ1bGV9fTwvdGV4dGFyZWE+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9pb24taXRlbT5cclxuIl19
@@ -56,7 +56,6 @@ export * from './lib/zgrid/zgrid.component';
56
56
  export * from './lib/zgrid/container/zgrid-container.component';
57
57
  export * from './lib/zgrid/zgrid.popup.anchor-target.directive';
58
58
  export * from './lib/zimg/zimg.component';
59
- export * from './lib/zkcard/zkcard.component';
60
59
  export * from './lib/zlabel/zlabel.component';
61
60
  export * from './lib/zmfb/zmfb.component';
62
61
  export * from './lib/zmodal/zmodal.component';
@@ -94,4 +93,4 @@ export * from './lib/zselectmultiple/zselectmultiple.pipe';
94
93
  export * from './lib/sfquerybuilder/sfquerybuilder.component';
95
94
  export * from './lib/zloop/zloop.component';
96
95
  export * from './lib/ksplitter/ksplitter.component';
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILCtCQUErQjtBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLDhDQUE4QztBQUM5QyxxREFBcUQ7QUFDckQsMkRBQTJEO0FBRzNELGlDQUFpQztBQUNqQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsOEJBQThCO0FBQzlCLGNBQWMsb0NBQW9DLENBQUM7QUFHbkQsNkJBQTZCO0FBQzdCLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFFekQsK0NBQStDO0FBQy9DLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQ0FBK0MsQ0FBQztBQUc5RCxrQ0FBa0M7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHdFQUF3RSxDQUFBO0FBQ3RGLGNBQWMsMERBQTBELENBQUE7QUFDeEUsY0FBYyxvRkFBb0YsQ0FBQTtBQUNsRyxjQUFjLDRDQUE0QyxDQUFBO0FBQzFELGNBQWMsK0NBQStDLENBQUE7QUFDN0QsY0FBYyw2QkFBNkIsQ0FBQTtBQUMzQyxjQUFjLHFDQUFxQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGR5bmFtaWMtZm9ybVxyXG4gKi9cclxuXHJcbi8qKioqKioqKioqIFNlcnZpY2UgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvbWFpbi5zZXJ2aWNlJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvem1vZGFsL21vZGFsLnNlcnZpY2UnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy96Y29tcG9uZW50LnNlcnZpY2UnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy96Y29tcG9uZW50LmRlYnVnLnNlcnZpY2UnO1xyXG5cclxuXHJcbi8qKioqKioqKioqIERpcmVjdGl2ZSAqKioqKioqKioqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL3Njcm9sbGJhci50aGVtZS5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9kaXJlY3RpdmVzL2ZpZWxkZWxlbWVudC5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC96Z3JpZC5iaW5kaW5nLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzZWxlY3RtdWx0aXBsZS96c2VsZWN0bXVsdGlwbGUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9lbGVtZW50Y29udGFpbmVyLmRpcmVjdGl2ZSc7XHJcblxyXG4vKioqKioqKioqKiBNb2R1bGUgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW1oZ2xvYmFsLWR5bmFtaWNmb3JtLm1vZHVsZSc7XHJcblxyXG5cclxuLyoqKioqKioqKiogQWRkb24gKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL2RhdGVQYXJzZXIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjb2RlZWRpdG9yL3pjb2RlZWRpdG9yLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGl2L3pkaXYucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0YWIvenRhYi5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemlucHV0LWNvbnRhaW5lci96aW5wdXQtY29udGFpbmVyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9waXBlL2h0bWxTYW5pdGl6ZS5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem51bWVyaWMvem51bWVyaWMuY29tcG9uZW50LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUlvbmljRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUtlbmRvRm9ybWF0UGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvZGF0ZUlvbmljTWluTWF4RGF0ZS5waXBlJztcclxuXHJcbi8vIGV4cG9ydCAqIGZyb20gICcuL2xpYi96bW9kYWwvem1vZGFsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pncmlkL2RhdGUtcmFuZ2UtY2VsbC1maWx0ZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenNjaGVkdWxlci96c2NoZWR1bGVyLnRvb2xiYXIuY29tcG9uZW50JztcclxuXHJcblxyXG4vKioqKioqKioqKiB6Q29tcG9uZW50ICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpY29udGFpbmVyL3VpY29udGFpbmVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpY29udGVudC91aWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWloZWFkZXIvdWloZWFkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlwYWdlL3VpcGFnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aW1lbnVjb250ZW50L3VpbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWltZW51YnV0dG9uL3VpbWVudWJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWFwcG1lbnVjb250ZW50L3VpYXBwbWVudWNvbnRlbnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlidWxsZXRpbi91aWJ1bGxldGluLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpYWN0aW9uYnV0dG9uL3VpYWN0aW9uYnV0dG9uLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpdmFsaWRhdGlvbm1lc3NhZ2UvdWl2YWxpZGF0aW9ubWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96YnVsbGV0L3pidWxsZXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemJ1dHRvbnMvemJ1dHRvbnMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNhcmQvemNhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNoYXJ0L3pjaGFydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y2hlY2tib3gvemNoZWNrYm94LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjaGlwL3pjaGlwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjb2RlZWRpdG9yL3pjb2RlZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRlcmFuZ2UvemRhdGVyYW5nZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXRpbWUvemRhdGV0aW1lLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkaXYvemRpdi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Zm9ybS96Zm9ybS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Zm9ybWNvbnRyb2wvemZvcm1jb250cm9sLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pnYXVnZS96Z2F1Z2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvemdyaWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvY29udGFpbmVyL3pncmlkLWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC96Z3JpZC5wb3B1cC5hbmNob3ItdGFyZ2V0LmRpcmVjdGl2ZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemltZy96aW1nLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3prY2FyZC96a2NhcmQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemxhYmVsL3psYWJlbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bWZiL3ptZmIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvem1vZGFsL3ptb2RhbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bW9kYWwvem1vZGFsLW1vYmlsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bnVtZXJpYy96bnVtZXJpYy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96cG9zdHNlbGVjdGlucHV0L3pwb3N0c2VsZWN0aW5wdXQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenF1ZXJ5YnVpbGRlci96cXVlcnlidWlsZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pyZXBvcnQvenJlcG9ydC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2NoZWR1bGVyL3pzY2hlZHVsZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenNlbGVjdG11bHRpcGxlL3pzZWxlY3RtdWx0aXBsZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGFiL3p0YWIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRleHQvenRleHQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRleHRhcmVhL3p0ZXh0YXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dGVkaXRvci96dGV4dGVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dHJlZS96dHJlZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dHJlZWxpc3QvenRyZWVsaXN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVuZGNhcmQvenRyZW5kY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dWRmL3p1ZGYuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenVua25vd24venVua25vd24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenVwbG9hZC96dXBsb2FkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p3b3JrZmxvd2J1dHRvbnMvendvcmtmbG93YnV0dG9ucy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rY2FyZC9rY2FyZC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96aW5wdXQtY29udGFpbmVyL3ppbnB1dC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenByb2dyZXNzYmFyL3pwcm9ncmVzc2Jhci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2J1dHRvbmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NvbnRhaW5lcmZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2RhdGFsaXN0aW5nZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvaW5wdXRmaWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXQtZXJyb3ItbWVzc2FnZS9pbnB1dC1lcnJvci1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvaW5wdXQtZmllbGQtYWRkb25zL2lucHV0LWZpZWxkLWFkZG9ucy5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvcGFnZS1sb2FkZXIvcGFnZS1sb2FkZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbWJlZC1jb21wb25lbnRzL3Byb2Nlc3NpbmctcmVjb3JkLWxvYWRlci9wcm9jZXNzaW5nLXJlY29yZC1sb2FkZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLnBpcGUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NmcXVlcnlidWlsZGVyL3NmcXVlcnlidWlsZGVyLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemxvb3Avemxvb3AuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9rc3BsaXR0ZXIva3NwbGl0dGVyLmNvbXBvbmVudCc7XHJcbiJdfQ==
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL21taGdsb2JhbC1keW5hbWljZm9ybS9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILCtCQUErQjtBQUMvQixjQUFjLDZCQUE2QixDQUFDO0FBQzVDLDhDQUE4QztBQUM5QyxxREFBcUQ7QUFDckQsMkRBQTJEO0FBRzNELGlDQUFpQztBQUNqQyxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsOEJBQThCO0FBQzlCLGNBQWMsb0NBQW9DLENBQUM7QUFHbkQsNkJBQTZCO0FBQzdCLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLDhCQUE4QixDQUFDO0FBQzdDLGNBQWMsd0NBQXdDLENBQUM7QUFDdkQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsMENBQTBDLENBQUM7QUFFekQsK0NBQStDO0FBQy9DLGNBQWMsOENBQThDLENBQUM7QUFDN0QsY0FBYywrQ0FBK0MsQ0FBQztBQUc5RCxrQ0FBa0M7QUFDbEMsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyxtREFBbUQsQ0FBQztBQUNsRSxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbUNBQW1DLENBQUM7QUFDbEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLGlEQUFpRCxDQUFBO0FBQy9ELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLG1DQUFtQyxDQUFDO0FBQ2xELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw2Q0FBNkMsQ0FBQztBQUM1RCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLHVDQUF1QyxDQUFDO0FBQ3RELGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLG1EQUFtRCxDQUFDO0FBQ2xFLGNBQWMsMkNBQTJDLENBQUM7QUFDMUQsY0FBYyw0Q0FBNEMsQ0FBQztBQUMzRCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyxzQ0FBc0MsQ0FBQztBQUNyRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseURBQXlELENBQUM7QUFDeEUsY0FBYyx3RUFBd0UsQ0FBQTtBQUN0RixjQUFjLDBEQUEwRCxDQUFBO0FBQ3hFLGNBQWMsb0ZBQW9GLENBQUE7QUFDbEcsY0FBYyw0Q0FBNEMsQ0FBQTtBQUMxRCxjQUFjLCtDQUErQyxDQUFBO0FBQzdELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxxQ0FBcUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBkeW5hbWljLWZvcm1cclxuICovXHJcblxyXG4vKioqKioqKioqKiBTZXJ2aWNlICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL21haW4uc2VydmljZSc7XHJcbi8vIGV4cG9ydCAqIGZyb20gJy4vbGliL3ptb2RhbC9tb2RhbC5zZXJ2aWNlJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvemNvbXBvbmVudC5zZXJ2aWNlJztcclxuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvemNvbXBvbmVudC5kZWJ1Zy5zZXJ2aWNlJztcclxuXHJcblxyXG4vKioqKioqKioqKiBEaXJlY3RpdmUgKioqKioqKioqKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9zY3JvbGxiYXIudGhlbWUuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGlyZWN0aXZlcy9maWVsZGVsZW1lbnQuZGlyZWN0aXZlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvemdyaWQuYmluZGluZy5kaXJlY3RpdmUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2RpcmVjdGl2ZXMvZWxlbWVudGNvbnRhaW5lci5kaXJlY3RpdmUnO1xyXG5cclxuLyoqKioqKioqKiogTW9kdWxlICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21taGdsb2JhbC1keW5hbWljZm9ybS5tb2R1bGUnO1xyXG5cclxuXHJcbi8qKioqKioqKioqIEFkZG9uICoqKioqKioqKiovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pkYXRldGltZS9kYXRlUGFyc2VyLnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y29kZWVkaXRvci96Y29kZWVkaXRvci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRpdi96ZGl2LnBpcGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGFiL3p0YWIucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ppbnB1dC1jb250YWluZXIvemlucHV0LWNvbnRhaW5lci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGlwZS9odG1sU2FuaXRpemUucGlwZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pudW1lcmljL3pudW1lcmljLmNvbXBvbmVudC5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL2RhdGVJb25pY0Zvcm1hdFBhcnNlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL2RhdGVLZW5kb0Zvcm1hdFBhcnNlci5waXBlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL2RhdGVJb25pY01pbk1heERhdGUucGlwZSc7XHJcblxyXG4vLyBleHBvcnQgKiBmcm9tICAnLi9saWIvem1vZGFsL3ptb2RhbC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z3JpZC9kYXRlLXJhbmdlLWNlbGwtZmlsdGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzY2hlZHVsZXIvenNjaGVkdWxlci50b29sYmFyLmNvbXBvbmVudCc7XHJcblxyXG5cclxuLyoqKioqKioqKiogekNvbXBvbmVudCAqKioqKioqKioqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWNvbnRhaW5lci91aWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWNvbnRlbnQvdWljb250ZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpaGVhZGVyL3VpaGVhZGVyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpcGFnZS91aXBhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWltZW51Y29udGVudC91aW1lbnVjb250ZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpbWVudWJ1dHRvbi91aW1lbnVidXR0b24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdWlhcHBtZW51Y29udGVudC91aWFwcG1lbnVjb250ZW50LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3VpYnVsbGV0aW4vdWlidWxsZXRpbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aWFjdGlvbmJ1dHRvbi91aWFjdGlvbmJ1dHRvbi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi91aXZhbGlkYXRpb25tZXNzYWdlL3VpdmFsaWRhdGlvbm1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemJ1bGxldC96YnVsbGV0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pidXR0b25zL3pidXR0b25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjYXJkL3pjYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pjaGFydC96Y2hhcnQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemNoZWNrYm94L3pjaGVja2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y2hpcC96Y2hpcC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Y29kZWVkaXRvci96Y29kZWVkaXRvci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGF0ZXJhbmdlL3pkYXRlcmFuZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemRhdGV0aW1lL3pkYXRldGltZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96ZGl2L3pkaXYuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemZvcm0vemZvcm0uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemZvcm1jb250cm9sL3pmb3JtY29udHJvbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96Z2F1Z2UvemdhdWdlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pncmlkL3pncmlkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pncmlkL2NvbnRhaW5lci96Z3JpZC1jb250YWluZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvemdyaWQvemdyaWQucG9wdXAuYW5jaG9yLXRhcmdldC5kaXJlY3RpdmUnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ppbWcvemltZy5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bGFiZWwvemxhYmVsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ptZmIvem1mYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bW9kYWwvem1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ptb2RhbC96bW9kYWwtbW9iaWxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pudW1lcmljL3pudW1lcmljLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pwb3N0c2VsZWN0aW5wdXQvenBvc3RzZWxlY3RpbnB1dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96cXVlcnlidWlsZGVyL3pxdWVyeWJ1aWxkZXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenJlcG9ydC96cmVwb3J0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzY2hlZHVsZXIvenNjaGVkdWxlci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96c2VsZWN0bXVsdGlwbGUvenNlbGVjdG11bHRpcGxlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0YWIvenRhYi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dC96dGV4dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dGV4dGFyZWEvenRleHRhcmVhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0ZXh0ZWRpdG9yL3p0ZXh0ZWRpdG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVlL3p0cmVlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p0cmVlbGlzdC96dHJlZWxpc3QuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvenRyZW5kY2FyZC96dHJlbmRjYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3p1ZGYvenVkZi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dW5rbm93bi96dW5rbm93bi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96dXBsb2FkL3p1cGxvYWQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvendvcmtmbG93YnV0dG9ucy96d29ya2Zsb3didXR0b25zLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tjYXJkL2tjYXJkLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3ppbnB1dC1jb250YWluZXIvemlucHV0LWNvbnRhaW5lci5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96cHJvZ3Jlc3NiYXIvenByb2dyZXNzYmFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvYnV0dG9uZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvY29udGFpbmVyZmllbGRiYXNlLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvZGF0YWxpc3RpbmdmaWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9maWVsZGJhc2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9pbnB1dGZpZWxkYmFzZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1lcnJvci1tZXNzYWdlL2lucHV0LWVycm9yLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWQtY29tcG9uZW50cy9pbnB1dC1maWVsZC1hZGRvbnMvaW5wdXQtZmllbGQtYWRkb25zLmNvbXBvbmVudCdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZW1iZWQtY29tcG9uZW50cy9wYWdlLWxvYWRlci9wYWdlLWxvYWRlci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2VtYmVkLWNvbXBvbmVudHMvcHJvY2Vzc2luZy1yZWNvcmQtbG9hZGVyL3Byb2Nlc3NpbmctcmVjb3JkLWxvYWRlci5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3pzZWxlY3RtdWx0aXBsZS96c2VsZWN0bXVsdGlwbGUucGlwZSdcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2ZxdWVyeWJ1aWxkZXIvc2ZxdWVyeWJ1aWxkZXIuY29tcG9uZW50J1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi96bG9vcC96bG9vcC5jb21wb25lbnQnXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2tzcGxpdHRlci9rc3BsaXR0ZXIuY29tcG9uZW50JztcclxuIl19