igniteui-angular 18.0.4 → 18.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/esm2022/lib/buttonGroup/buttonGroup.component.mjs +3 -6
  2. package/esm2022/lib/data-operations/filtering-expressions-tree.mjs +3 -3
  3. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +5 -1
  4. package/esm2022/lib/directives/for-of/for_of.directive.mjs +3 -3
  5. package/esm2022/lib/drop-down/drop-down-item.base.mjs +3 -3
  6. package/esm2022/lib/drop-down/drop-down.base.mjs +2 -2
  7. package/esm2022/lib/drop-down/drop-down.common.mjs +1 -1
  8. package/esm2022/lib/drop-down/drop-down.component.mjs +26 -11
  9. package/esm2022/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.mjs +17 -4
  10. package/esm2022/lib/grids/filtering/excel-style/excel-style-custom-dialog.component.mjs +14 -9
  11. package/esm2022/lib/grids/headers/grid-header-group.component.mjs +6 -3
  12. package/esm2022/lib/grids/headers/grid-header.component.mjs +8 -2
  13. package/esm2022/lib/grids/pivot-grid/pivot-grid.interface.mjs +1 -1
  14. package/esm2022/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.mjs +27 -3
  15. package/esm2022/lib/services/excel/excel-strings.mjs +2 -2
  16. package/fesm2022/igniteui-angular.mjs +103 -38
  17. package/fesm2022/igniteui-angular.mjs.map +1 -1
  18. package/lib/core/styles/components/grid/_excel-filtering-component.scss +5 -0
  19. package/lib/core/styles/components/grid/_excel-filtering-theme.scss +5 -0
  20. package/lib/core/styles/components/grid-toolbar/_grid-toolbar-component.scss +0 -4
  21. package/lib/core/styles/components/grid-toolbar/_grid-toolbar-theme.scss +0 -15
  22. package/lib/drop-down/drop-down-item.base.d.ts +1 -1
  23. package/lib/drop-down/drop-down.base.d.ts +1 -1
  24. package/lib/drop-down/drop-down.common.d.ts +1 -1
  25. package/lib/drop-down/drop-down.component.d.ts +13 -8
  26. package/lib/grids/filtering/excel-style/excel-style-conditional-filter.component.d.ts +5 -0
  27. package/lib/grids/headers/grid-header.component.d.ts +1 -0
  28. package/lib/grids/pivot-grid/pivot-grid.interface.d.ts +1 -1
  29. package/lib/grids/toolbar/grid-toolbar-advanced-filtering.component.d.ts +12 -1
  30. package/package.json +1 -1
  31. package/styles/igniteui-angular-dark.css +1 -1
  32. package/styles/igniteui-angular.css +1 -1
  33. package/styles/igniteui-bootstrap-dark.css +1 -1
  34. package/styles/igniteui-bootstrap-light.css +1 -1
  35. package/styles/igniteui-dark-green.css +1 -1
  36. package/styles/igniteui-fluent-dark-excel.css +1 -1
  37. package/styles/igniteui-fluent-dark-word.css +1 -1
  38. package/styles/igniteui-fluent-dark.css +1 -1
  39. package/styles/igniteui-fluent-light-excel.css +1 -1
  40. package/styles/igniteui-fluent-light-word.css +1 -1
  41. package/styles/igniteui-fluent-light.css +1 -1
  42. package/styles/igniteui-indigo-dark.css +1 -1
  43. package/styles/igniteui-indigo-light.css +1 -1
  44. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  45. package/styles/maps/igniteui-angular.css.map +1 -1
  46. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  47. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  48. package/styles/maps/igniteui-dark-green.css.map +1 -1
  49. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  50. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  51. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  52. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  53. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  54. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  55. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  56. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -89,7 +89,7 @@ export class IgxGridHeaderComponent {
89
89
  return this.sortDirection !== SortingDirection.None;
90
90
  }
91
91
  get filterIconClassName() {
92
- return this.column.filteringExpressionsTree ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';
92
+ return this.column.filteringExpressionsTree || this.isAdvancedFilterApplied() ? 'igx-excel-filter__icon--filtered' : 'igx-excel-filter__icon';
93
93
  }
94
94
  get selectable() {
95
95
  return this.grid.columnSelection !== GridSelectionMode.none &&
@@ -191,6 +191,12 @@ export class IgxGridHeaderComponent {
191
191
  const expr = this.grid.sortingExpressions.find((x) => x.fieldName === this.column.field);
192
192
  this.sortDirection = expr ? expr.dir : SortingDirection.None;
193
193
  }
194
+ isAdvancedFilterApplied() {
195
+ if (!this.grid.advancedFilteringExpressionsTree) {
196
+ return false;
197
+ }
198
+ return !!this.grid.advancedFilteringExpressionsTree.find(this.column.field);
199
+ }
194
200
  triggerSort() {
195
201
  const groupingExpr = this.grid.groupingExpressions ?
196
202
  this.grid.groupingExpressions.find((expr) => expr.fieldName === this.column.field) :
@@ -267,4 +273,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImpor
267
273
  type: HostListener,
268
274
  args: ['pointerleave']
269
275
  }] } });
270
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2hlYWRlcnMvZ3JpZC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2hlYWRlcnMvZ3JpZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUF3QixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRTdEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNCQUFzQjtJQXVCL0I7O09BRUc7SUFDSCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lB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QUFXO3VCQUFDLGtCQUFrQjtnQkFnRnhCLE9BQU87c0JBRGIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBZ0MxQixhQUFhO3NCQURuQixZQUFZO3VCQUFDLGNBQWM7Z0JBU3JCLGNBQWM7c0JBRHBCLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgQ29tcG9uZW50LFxuICAgIERvQ2hlY2ssXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5qZWN0LFxuICAgIElucHV0LFxuICAgIE9uRGVzdHJveSxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElneENvbHVtblJlc2l6aW5nU2VydmljZSB9IGZyb20gJy4uL3Jlc2l6aW5nL3Jlc2l6aW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29sdW1uVHlwZSwgR3JpZFR5cGUsIElHWF9HUklEX0JBU0UgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgR3JpZFNlbGVjdGlvbk1vZGUgfSBmcm9tICcuLi9jb21tb24vZW51bXMnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IFNvcnRpbmdJbmRleFBpcGUgfSBmcm9tICcuL3BpcGVzJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuXG4vKipcbiAqIEBoaWRkZW5cbiAqL1xuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1oZWFkZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnZ3JpZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneEljb25Db21wb25lbnQsIE5nVGVtcGxhdGVPdXRsZXQsIE5nSWYsIE5nQ2xhc3MsIFNvcnRpbmdJbmRleFBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRIZWFkZXJDb21wb25lbnQgaW1wbGVtZW50cyBEb0NoZWNrLCBPbkRlc3Ryb3kge1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sdW1uOiBDb2x1bW5UeXBlO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBWaWV3Q2hpbGQoJ2RlZmF1bHRFU0ZIZWFkZXJJY29uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdEVTRkhlYWRlckljb25UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0U29ydEhlYWRlckljb25UZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0U29ydEhlYWRlckljb25UZW1wbGF0ZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdzb3J0SWNvbkNvbnRhaW5lcicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBzb3J0SWNvbkNvbnRhaW5lcjogRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGBhcmlhLXNlbGVjdGVkYCBvZiB0aGUgaGVhZGVyLlxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXNlbGVjdGVkJylcbiAgICBwdWJsaWMgZ2V0IGFyaWFTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLnNlbGVjdGVkO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtdGgnKVxuICAgIHB1YmxpYyBnZXQgY29sdW1uR3JvdXBTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuICF0aGlzLmNvbHVtbi5jb2x1bW5Hcm91cDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFzYycpXG4gICAgcHVibGljIGdldCBzb3J0QXNjZW5kaW5nU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gPT09IFNvcnRpbmdEaXJlY3Rpb24uQXNjO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuZGVzYycpXG4gICAgcHVibGljIGdldCBzb3J0RGVzY2VuZGluZ1N0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLkRlc2M7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC10aC0tbnVtYmVyJylcbiAgICBwdWJsaWMgZ2V0IG51bWJlclN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZGF0YVR5cGUgPT09IEdyaWRDb2x1bW5EYXRhVHlwZS5OdW1iZXI7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC10aC0tc29ydGFibGUnKVxuICAgIHB1YmxpYyBnZXQgc29ydGFibGVTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLnNvcnRhYmxlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtdGgtLXNlbGVjdGFibGUnKVxuICAgIHB1YmxpYyBnZXQgc2VsZWN0YWJsZVN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RhYmxlO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtdGgtLWZpbHRyYWJsZScpXG4gICAgcHVibGljIGdldCBmaWx0ZXJhYmxlU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJhYmxlICYmIHRoaXMuZ3JpZC5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyUm93VmlzaWJsZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoLS1zb3J0ZWQnKVxuICAgIHB1YmxpYyBnZXQgc29ydGVkU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnRlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoLS1zZWxlY3RlZCcpXG4gICAgcHVibGljIGdldCBzZWxlY3RlZFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ3N0eWxlLmhlaWdodC5yZW0nKVxuICAgIHB1YmxpYyBnZXQgaGVpZ2h0KCkge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5oYXNDb2x1bW5Hcm91cHMgfHwgdGhpcy5ncmlkLmlzUGl2b3QpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICh0aGlzLmdyaWQubWF4TGV2ZWxIZWFkZXJEZXB0aCArIDEgLSB0aGlzLmNvbHVtbi5sZXZlbCkgKiB0aGlzLmdyaWQuZGVmYXVsdFJvd0hlaWdodCAvIHRoaXMuZ3JpZC5fYmFzZUZvbnRTaXplO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGVzZkljb25UZW1wbGF0ZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5leGNlbFN0eWxlSGVhZGVySWNvblRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEVTRkhlYWRlckljb25UZW1wbGF0ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBzb3J0SWNvblRlbXBsYXRlKCkge1xuICAgICAgICBpZiAodGhpcy5zb3J0RGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLk5vbmUgJiYgdGhpcy5ncmlkLnNvcnRIZWFkZXJJY29uVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmdyaWQuc29ydEhlYWRlckljb25UZW1wbGF0ZTtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnNvcnREaXJlY3Rpb24gPT09IFNvcnRpbmdEaXJlY3Rpb24uQXNjICYmIHRoaXMuZ3JpZC5zb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnNvcnRBc2NlbmRpbmdIZWFkZXJJY29uVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0RGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLkRlc2MgJiYgdGhpcy5ncmlkLnNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnNvcnREZXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdFNvcnRIZWFkZXJJY29uVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICB9XG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgZGlzYWJsZWQoKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwQXJlYSA9IHRoaXMuZ3JpZC5ncm91cEFyZWEgfHwgdGhpcy5ncmlkLnRyZWVHcm91cEFyZWE7XG4gICAgICAgIGlmIChncm91cEFyZWE/LmV4cHJlc3Npb25zICYmIGdyb3VwQXJlYS5leHByZXNzaW9ucy5sZW5ndGggJiYgZ3JvdXBBcmVhLmV4cHJlc3Npb25zLm1hcChnID0+IGcuZmllbGROYW1lKS5pbmNsdWRlcyh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNvcnRlZCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiAhPT0gU29ydGluZ0RpcmVjdGlvbi5Ob25lO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgZmlsdGVySWNvbkNsYXNzTmFtZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSA/ICdpZ3gtZXhjZWwtZmlsdGVyX19pY29uLS1maWx0ZXJlZCcgOiAnaWd4LWV4Y2VsLWZpbHRlcl9faWNvbic7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzZWxlY3RhYmxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmNvbHVtblNlbGVjdGlvbiAhPT0gR3JpZFNlbGVjdGlvbk1vZGUubm9uZSAmJlxuICAgICAgICAgICAgdGhpcy5jb2x1bW4uYXBwbHlTZWxlY3RhYmxlQ2xhc3MgJiZcbiAgICAgICAgICAgICF0aGlzLmNvbHVtbi5zZWxlY3RlZCAmJlxuICAgICAgICAgICAgIXRoaXMuZ3JpZC5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyUm93VmlzaWJsZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uc2VsZWN0ZWRcbiAgICAgICAgICAgICYmICghdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuaXNGaWx0ZXJSb3dWaXNpYmxlIHx8IHRoaXMuZ3JpZC5maWx0ZXJpbmdTZXJ2aWNlLmZpbHRlcmVkQ29sdW1uICE9PSB0aGlzLmNvbHVtbik7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCB0aXRsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLnRpdGxlIHx8IHRoaXMuY29sdW1uLmhlYWRlciB8fCB0aGlzLmNvbHVtbi5maWVsZDtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5hdGl2ZUVsZW1lbnQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0RGlyZWN0aW9uID0gU29ydGluZ0RpcmVjdGlvbi5Ob25lO1xuICAgIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIEBJbmplY3QoSUdYX0dSSURfQkFTRSkgcHVibGljIGdyaWQ6IEdyaWRUeXBlLFxuICAgICAgICBwdWJsaWMgY29sUmVzaXppbmdTZXJ2aWNlOiBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UsXG4gICAgICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxuICAgICAgICBwcml2YXRlIHJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD5cbiAgICApIHsgfVxuXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuICAgIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBNb3VzZUV2ZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5jb2xSZXNpemluZ1NlcnZpY2UuaXNDb2x1bW5SZXNpemluZykge1xuXG4gICAgICAgICAgICBpZiAodGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuaXNGaWx0ZXJSb3dWaXNpYmxlKSB7XG4gICAgICAgICAgICAgICAgaWYgKHRoaXMuY29sdW1uLmZpbHRlckNlbGxUZW1wbGF0ZSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuZmlsdGVyaW5nUm93LmNsb3NlKCk7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyYWJsZSAmJiAhdGhpcy5jb2x1bW4uY29sdW1uR3JvdXAgJiZcbiAgICAgICAgICAgICAgICAgICAgIXRoaXMuZ3JpZC5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyQ29tcGxleCh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVyZWRDb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZ3JpZC5jb2x1bW5TZWxlY3Rpb24gIT09IEdyaWRTZWxlY3Rpb25Nb2RlLm5vbmUgJiYgdGhpcy5jb2x1bW4uc2VsZWN0YWJsZSkge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNsZWFyU2VsZWN0aW9uID0gdGhpcy5ncmlkLmNvbHVtblNlbGVjdGlvbiA9PT0gR3JpZFNlbGVjdGlvbk1vZGUuc2luZ2xlIHx8ICFldmVudC5jdHJsS2V5O1xuICAgICAgICAgICAgICAgIGNvbnN0IHJhbmdlU2VsZWN0aW9uID0gdGhpcy5ncmlkLmNvbHVtblNlbGVjdGlvbiA9PT0gR3JpZFNlbGVjdGlvbk1vZGUubXVsdGlwbGUgJiYgZXZlbnQuc2hpZnRLZXk7XG5cbiAgICAgICAgICAgICAgICBpZiAoIXRoaXMuY29sdW1uLnNlbGVjdGVkIHx8ICh0aGlzLmdyaWQuc2VsZWN0aW9uU2VydmljZS5nZXRTZWxlY3RlZENvbHVtbnMoKS5sZW5ndGggPiAxICYmIGNsZWFyU2VsZWN0aW9uKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuc2VsZWN0aW9uU2VydmljZS5zZWxlY3RDb2x1bW4odGhpcy5jb2x1bW4uZmllbGQsIGNsZWFyU2VsZWN0aW9uLCByYW5nZVNlbGVjdGlvbiwgZXZlbnQpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlLmRlc2VsZWN0Q29sdW1uKHRoaXMuY29sdW1uLmZpZWxkLCBldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JpZC50aGVhZFJvdy5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ3BvaW50ZXJlbnRlcicpXG4gICAgcHVibGljIG9uUGludGVyRW50ZXIoKSB7XG4gICAgICAgIHRoaXMuY29sdW1uLmFwcGx5U2VsZWN0YWJsZUNsYXNzID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmxlYXZlJylcbiAgICBwdWJsaWMgb25Qb2ludGVyTGVhdmUoKSB7XG4gICAgICAgIHRoaXMuY29sdW1uLmFwcGx5U2VsZWN0YWJsZUNsYXNzID0gZmFsc2U7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdEb0NoZWNrKCkge1xuICAgICAgICB0aGlzLmdldFNvcnREaXJlY3Rpb24oKTtcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQodHJ1ZSk7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLmNvbXBsZXRlKCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Qb2ludGVyRG93bkluZGljYXRvcihldmVudCkge1xuICAgICAgICAvLyBTdG9wIHByb3BhZ2F0aW9uIG9mIHBvaW50ZXIgZXZlbnRzIHRvIG5vdyBhbGxvdyBjb2x1bW4gZHJhZ2dpbmcgdXNpbmcgdGhlIGhlYWRlciBpbmRpY2F0b3JzLlxuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkZpbHRlcmluZ0ljb25DbGljayhldmVudCkge1xuICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UudG9nZ2xlRmlsdGVyRHJvcGRvd24odGhpcy5uYXRpdmVFbGVtZW50LCB0aGlzLmNvbHVtbik7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgb25Tb3J0aW5nSWNvbkNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnRyaWdnZXJTb3J0KCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldFNvcnREaXJlY3Rpb24oKSB7XG4gICAgICAgIGNvbnN0IGV4cHIgPSB0aGlzLmdyaWQuc29ydGluZ0V4cHJlc3Npb25zLmZpbmQoKHgpID0+IHguZmllbGROYW1lID09PSB0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgICAgIHRoaXMuc29ydERpcmVjdGlvbiA9IGV4cHIgPyBleHByLmRpciA6IFNvcnRpbmdEaXJlY3Rpb24uTm9uZTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJTb3J0KCkge1xuICAgICAgICBjb25zdCBncm91cGluZ0V4cHIgPSB0aGlzLmdyaWQuZ3JvdXBpbmdFeHByZXNzaW9ucyA/XG4gICAgICAgICAgICB0aGlzLmdyaWQuZ3JvdXBpbmdFeHByZXNzaW9ucy5maW5kKChleHByKSA9PiBleHByLmZpZWxkTmFtZSA9PT0gdGhpcy5jb2x1bW4uZmllbGQpIDpcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5ncm91cEFyZWE/LmV4cHJlc3Npb25zID8gdGhpcy5ncmlkLmdyb3VwQXJlYT8uZXhwcmVzc2lvbnMuZmluZCgoZXhwcikgPT4gZXhwci5maWVsZE5hbWUgPT09IHRoaXMuY29sdW1uLmZpZWxkKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IHNvcnREaXIgPSBncm91cGluZ0V4cHIgP1xuICAgICAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uICsgMSA+IFNvcnRpbmdEaXJlY3Rpb24uRGVzYyA/IFNvcnRpbmdEaXJlY3Rpb24uQXNjIDogU29ydGluZ0RpcmVjdGlvbi5EZXNjXG4gICAgICAgICAgICA6IHRoaXMuc29ydERpcmVjdGlvbiArIDEgPiBTb3J0aW5nRGlyZWN0aW9uLkRlc2MgPyBTb3J0aW5nRGlyZWN0aW9uLk5vbmUgOiB0aGlzLnNvcnREaXJlY3Rpb24gKyAxO1xuICAgICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBzb3J0RGlyO1xuICAgICAgICB0aGlzLmdyaWQuc29ydCh7XG4gICAgICAgICAgICBmaWVsZE5hbWU6IHRoaXMuY29sdW1uLmZpZWxkLCBkaXI6IHRoaXMuc29ydERpcmVjdGlvbiwgaWdub3JlQ2FzZTogdGhpcy5jb2x1bW4uc29ydGluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzdHJhdGVneTogdGhpcy5jb2x1bW4uc29ydFN0cmF0ZWd5XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbHVtbj5cbiAgICA8c3BhbiBbdGl0bGVdPVwidGl0bGVcIj57eyBjb2x1bW4uaGVhZGVyIHx8IGNvbHVtbi5maWVsZCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVTRkhlYWRlckljb25UZW1wbGF0ZT5cbiAgICA8aWd4LWljb24+bW9yZV92ZXJ0PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNvcnRIZWFkZXJJY29uVGVtcGxhdGU+XG4gICAgPGlneC1pY29uPnt7IHNvcnREaXJlY3Rpb24gPCAyID8gJ2Fycm93X3Vwd2FyZCcgOiAnYXJyb3dfZG93bndhcmQnIH19PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxzcGFuIGNsYXNzPVwiaWd4LWdyaWQtdGhfX3RpdGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA/IGNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA6IGRlZmF1bHRDb2x1bW47IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1ufVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9zcGFuPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uY29sdW1uR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhfX2ljb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGUgJiYgIWRpc2FibGVkXCI+XG4gICAgICAgICAgICA8ZGl2ICNzb3J0SWNvbkNvbnRhaW5lciBjbGFzcz1cInNvcnQtaWNvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1zb3J0SW5kZXhdPVwiKGdyaWQuc29ydGluZ09wdGlvbnMubW9kZSA9PT0gJ3NpbmdsZScgJiYgZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMubGVuZ3RoIDw9MSkgPyBudWxsIDogY29sdW1uLmZpZWxkIHwgc29ydGluZ0luZGV4OmdyaWQuc29ydGluZ0V4cHJlc3Npb25zXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bkluZGljYXRvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9uU29ydGluZ0ljb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRJY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAgdGhpcyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkLmFsbG93RmlsdGVyaW5nICYmIGNvbHVtbi5maWx0ZXJhYmxlICYmIGdyaWQuZmlsdGVyTW9kZSA9PT0gJ2V4Y2VsU3R5bGVGaWx0ZXInXCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImZpbHRlckljb25DbGFzc05hbWVcIiAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bkluZGljYXRvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9uRmlsdGVyaW5nSWNvbkNsaWNrKCRldmVudClcIiA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVzZkljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6ICB0aGlzIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
276
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1oZWFkZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2hlYWRlcnMvZ3JpZC1oZWFkZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2hlYWRlcnMvZ3JpZC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRXJFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUF3QixhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMvRSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFDM0MsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7O0FBRTdEOztHQUVHO0FBUUgsTUFBTSxPQUFPLHNCQUFzQjtJQXVCL0I7O09BRUc7SUFDSCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQUNoQyxDQUFDO0lB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VztzQkFEckIsV0FBVzt1QkFBQywyQkFBMkI7Z0JBTTdCLGFBQWE7c0JBRHZCLFdBQVc7dUJBQUMsNkJBQTZCO2dCQU0vQixlQUFlO3NCQUR6QixXQUFXO3VCQUFDLCtCQUErQjtnQkFNakMsZUFBZTtzQkFEekIsV0FBVzt1QkFBQyw4QkFBOEI7Z0JBTWhDLFdBQVc7c0JBRHJCLFdBQVc7dUJBQUMsMkJBQTJCO2dCQU03QixhQUFhO3NCQUR2QixXQUFXO3VCQUFDLDZCQUE2QjtnQkFNL0IsTUFBTTtzQkFEaEIsV0FBVzt1QkFBQyxrQkFBa0I7Z0JBZ0Z4QixPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQWdDMUIsYUFBYTtzQkFEbkIsWUFBWTt1QkFBQyxjQUFjO2dCQVNyQixjQUFjO3NCQURwQixZQUFZO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENoYW5nZURldGVjdG9yUmVmLFxuICAgIENvbXBvbmVudCxcbiAgICBEb0NoZWNrLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSG9zdEJpbmRpbmcsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIEluamVjdCxcbiAgICBJbnB1dCxcbiAgICBPbkRlc3Ryb3ksXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2RhdGEtdXRpbCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5SZXNpemluZ1NlcnZpY2UgfSBmcm9tICcuLi9yZXNpemluZy9yZXNpemluZy5zZXJ2aWNlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IENvbHVtblR5cGUsIEdyaWRUeXBlLCBJR1hfR1JJRF9CQVNFIH0gZnJvbSAnLi4vY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRTZWxlY3Rpb25Nb2RlIH0gZnJvbSAnLi4vY29tbW9uL2VudW1zJztcbmltcG9ydCB7IFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneSc7XG5pbXBvcnQgeyBTb3J0aW5nSW5kZXhQaXBlIH0gZnJvbSAnLi9waXBlcyc7XG5pbXBvcnQgeyBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBOZ0NsYXNzIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IElneEljb25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uL2ljb24uY29tcG9uZW50JztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtaGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2dyaWQtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtJZ3hJY29uQ29tcG9uZW50LCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0lmLCBOZ0NsYXNzLCBTb3J0aW5nSW5kZXhQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgRG9DaGVjaywgT25EZXN0cm95IHtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0RVNGSGVhZGVySWNvblRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRFU0ZIZWFkZXJJY29uVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdFNvcnRIZWFkZXJJY29uVGVtcGxhdGUnLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBwcm90ZWN0ZWQgZGVmYXVsdFNvcnRIZWFkZXJJY29uVGVtcGxhdGU7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnc29ydEljb25Db250YWluZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgICBwcm90ZWN0ZWQgc29ydEljb25Db250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBgYXJpYS1zZWxlY3RlZGAgb2YgdGhlIGhlYWRlci5cbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1zZWxlY3RlZCcpXG4gICAgcHVibGljIGdldCBhcmlhU2VsZWN0ZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5zZWxlY3RlZDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoJylcbiAgICBwdWJsaWMgZ2V0IGNvbHVtbkdyb3VwU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiAhdGhpcy5jb2x1bW4uY29sdW1uR3JvdXA7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hc2MnKVxuICAgIHB1YmxpYyBnZXQgc29ydEFzY2VuZGluZ1N0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0RGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLkFzYztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRlc2MnKVxuICAgIHB1YmxpYyBnZXQgc29ydERlc2NlbmRpbmdTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc29ydERpcmVjdGlvbiA9PT0gU29ydGluZ0RpcmVjdGlvbi5EZXNjO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtdGgtLW51bWJlcicpXG4gICAgcHVibGljIGdldCBudW1iZXJTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uLmRhdGFUeXBlID09PSBHcmlkQ29sdW1uRGF0YVR5cGUuTnVtYmVyO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWdyaWQtdGgtLXNvcnRhYmxlJylcbiAgICBwdWJsaWMgZ2V0IHNvcnRhYmxlU3R5bGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5zb3J0YWJsZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoLS1zZWxlY3RhYmxlJylcbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGFibGVTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0YWJsZTtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1ncmlkLXRoLS1maWx0cmFibGUnKVxuICAgIHB1YmxpYyBnZXQgZmlsdGVyYWJsZVN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4uZmlsdGVyYWJsZSAmJiB0aGlzLmdyaWQuZmlsdGVyaW5nU2VydmljZS5pc0ZpbHRlclJvd1Zpc2libGU7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC10aC0tc29ydGVkJylcbiAgICBwdWJsaWMgZ2V0IHNvcnRlZFN0eWxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zb3J0ZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtZ3JpZC10aC0tc2VsZWN0ZWQnKVxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRTdHlsZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQ7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdzdHlsZS5oZWlnaHQucmVtJylcbiAgICBwdWJsaWMgZ2V0IGhlaWdodCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmdyaWQuaGFzQ29sdW1uR3JvdXBzIHx8IHRoaXMuZ3JpZC5pc1Bpdm90KSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiAodGhpcy5ncmlkLm1heExldmVsSGVhZGVyRGVwdGggKyAxIC0gdGhpcy5jb2x1bW4ubGV2ZWwpICogdGhpcy5ncmlkLmRlZmF1bHRSb3dIZWlnaHQgLyB0aGlzLmdyaWQuX2Jhc2VGb250U2l6ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIGdldCBlc2ZJY29uVGVtcGxhdGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQuZXhjZWxTdHlsZUhlYWRlckljb25UZW1wbGF0ZSB8fCB0aGlzLmRlZmF1bHRFU0ZIZWFkZXJJY29uVGVtcGxhdGU7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc29ydEljb25UZW1wbGF0ZSgpIHtcbiAgICAgICAgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PT0gU29ydGluZ0RpcmVjdGlvbi5Ob25lICYmIHRoaXMuZ3JpZC5zb3J0SGVhZGVySWNvblRlbXBsYXRlKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnNvcnRIZWFkZXJJY29uVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5zb3J0RGlyZWN0aW9uID09PSBTb3J0aW5nRGlyZWN0aW9uLkFzYyAmJiB0aGlzLmdyaWQuc29ydEFzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5zb3J0QXNjZW5kaW5nSGVhZGVySWNvblRlbXBsYXRlO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuc29ydERpcmVjdGlvbiA9PT0gU29ydGluZ0RpcmVjdGlvbi5EZXNjICYmIHRoaXMuZ3JpZC5zb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZSkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMuZ3JpZC5zb3J0RGVzY2VuZGluZ0hlYWRlckljb25UZW1wbGF0ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmRlZmF1bHRTb3J0SGVhZGVySWNvblRlbXBsYXRlO1xuICAgICAgICB9XG4gICAgfVxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRpc2FibGVkKCkge1xuICAgICAgICBjb25zdCBncm91cEFyZWEgPSB0aGlzLmdyaWQuZ3JvdXBBcmVhIHx8IHRoaXMuZ3JpZC50cmVlR3JvdXBBcmVhO1xuICAgICAgICBpZiAoZ3JvdXBBcmVhPy5leHByZXNzaW9ucyAmJiBncm91cEFyZWEuZXhwcmVzc2lvbnMubGVuZ3RoICYmIGdyb3VwQXJlYS5leHByZXNzaW9ucy5tYXAoZyA9PiBnLmZpZWxkTmFtZSkuaW5jbHVkZXModGhpcy5jb2x1bW4uZmllbGQpKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzb3J0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnNvcnREaXJlY3Rpb24gIT09IFNvcnRpbmdEaXJlY3Rpb24uTm9uZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGZpbHRlckljb25DbGFzc05hbWUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfHwgdGhpcy5pc0FkdmFuY2VkRmlsdGVyQXBwbGllZCgpID8gJ2lneC1leGNlbC1maWx0ZXJfX2ljb24tLWZpbHRlcmVkJyA6ICdpZ3gtZXhjZWwtZmlsdGVyX19pY29uJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdGFibGUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQuY29sdW1uU2VsZWN0aW9uICE9PSBHcmlkU2VsZWN0aW9uTW9kZS5ub25lICYmXG4gICAgICAgICAgICB0aGlzLmNvbHVtbi5hcHBseVNlbGVjdGFibGVDbGFzcyAmJlxuICAgICAgICAgICAgIXRoaXMuY29sdW1uLnNlbGVjdGVkICYmXG4gICAgICAgICAgICAhdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuaXNGaWx0ZXJSb3dWaXNpYmxlO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5zZWxlY3RlZFxuICAgICAgICAgICAgJiYgKCF0aGlzLmdyaWQuZmlsdGVyaW5nU2VydmljZS5pc0ZpbHRlclJvd1Zpc2libGUgfHwgdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVyZWRDb2x1bW4gIT09IHRoaXMuY29sdW1uKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRpdGxlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb2x1bW4udGl0bGUgfHwgdGhpcy5jb2x1bW4uaGVhZGVyIHx8IHRoaXMuY29sdW1uLmZpZWxkO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucmVmLm5hdGl2ZUVsZW1lbnQ7XG4gICAgfVxuXG4gICAgcHVibGljIHNvcnREaXJlY3Rpb24gPSBTb3J0aW5nRGlyZWN0aW9uLk5vbmU7XG4gICAgcHJvdGVjdGVkIF9kZXN0cm95JCA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgQEluamVjdChJR1hfR1JJRF9CQVNFKSBwdWJsaWMgZ3JpZDogR3JpZFR5cGUsXG4gICAgICAgIHB1YmxpYyBjb2xSZXNpemluZ1NlcnZpY2U6IElneENvbHVtblJlc2l6aW5nU2VydmljZSxcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHByaXZhdGUgcmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuICAgICkgeyB9XG5cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gICAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmNvbFJlc2l6aW5nU2VydmljZS5pc0NvbHVtblJlc2l6aW5nKSB7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLmdyaWQuZmlsdGVyaW5nU2VydmljZS5pc0ZpbHRlclJvd1Zpc2libGUpIHtcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5jb2x1bW4uZmlsdGVyQ2VsbFRlbXBsYXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5maWx0ZXJpbmdSb3cuY2xvc2UoKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJhYmxlICYmICF0aGlzLmNvbHVtbi5jb2x1bW5Hcm91cCAmJlxuICAgICAgICAgICAgICAgICAgICAhdGhpcy5ncmlkLmZpbHRlcmluZ1NlcnZpY2UuaXNGaWx0ZXJDb21wbGV4KHRoaXMuY29sdW1uLmZpZWxkKSkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmdyaWQuZmlsdGVyaW5nU2VydmljZS5maWx0ZXJlZENvbHVtbiA9IHRoaXMuY29sdW1uO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5ncmlkLmNvbHVtblNlbGVjdGlvbiAhPT0gR3JpZFNlbGVjdGlvbk1vZGUubm9uZSAmJiB0aGlzLmNvbHVtbi5zZWxlY3RhYmxlKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgY2xlYXJTZWxlY3Rpb24gPSB0aGlzLmdyaWQuY29sdW1uU2VsZWN0aW9uID09PSBHcmlkU2VsZWN0aW9uTW9kZS5zaW5nbGUgfHwgIWV2ZW50LmN0cmxLZXk7XG4gICAgICAgICAgICAgICAgY29uc3QgcmFuZ2VTZWxlY3Rpb24gPSB0aGlzLmdyaWQuY29sdW1uU2VsZWN0aW9uID09PSBHcmlkU2VsZWN0aW9uTW9kZS5tdWx0aXBsZSAmJiBldmVudC5zaGlmdEtleTtcblxuICAgICAgICAgICAgICAgIGlmICghdGhpcy5jb2x1bW4uc2VsZWN0ZWQgfHwgKHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlLmdldFNlbGVjdGVkQ29sdW1ucygpLmxlbmd0aCA+IDEgJiYgY2xlYXJTZWxlY3Rpb24pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZ3JpZC5zZWxlY3Rpb25TZXJ2aWNlLnNlbGVjdENvbHVtbih0aGlzLmNvbHVtbi5maWVsZCwgY2xlYXJTZWxlY3Rpb24sIHJhbmdlU2VsZWN0aW9uLCBldmVudCk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5ncmlkLnNlbGVjdGlvblNlcnZpY2UuZGVzZWxlY3RDb2x1bW4odGhpcy5jb2x1bW4uZmllbGQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5ncmlkLnRoZWFkUm93Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcigncG9pbnRlcmVudGVyJylcbiAgICBwdWJsaWMgb25QaW50ZXJFbnRlcigpIHtcbiAgICAgICAgdGhpcy5jb2x1bW4uYXBwbHlTZWxlY3RhYmxlQ2xhc3MgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVybGVhdmUnKVxuICAgIHB1YmxpYyBvblBvaW50ZXJMZWF2ZSgpIHtcbiAgICAgICAgdGhpcy5jb2x1bW4uYXBwbHlTZWxlY3RhYmxlQ2xhc3MgPSBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ0RvQ2hlY2soKSB7XG4gICAgICAgIHRoaXMuZ2V0U29ydERpcmVjdGlvbigpO1xuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCh0cnVlKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblBvaW50ZXJEb3duSW5kaWNhdG9yKGV2ZW50KSB7XG4gICAgICAgIC8vIFN0b3AgcHJvcGFnYXRpb24gb2YgcG9pbnRlciBldmVudHMgdG8gbm93IGFsbG93IGNvbHVtbiBkcmFnZ2luZyB1c2luZyB0aGUgaGVhZGVyIGluZGljYXRvcnMuXG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG9uRmlsdGVyaW5nSWNvbkNsaWNrKGV2ZW50KSB7XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLmdyaWQuZmlsdGVyaW5nU2VydmljZS50b2dnbGVGaWx0ZXJEcm9wZG93bih0aGlzLm5hdGl2ZUVsZW1lbnQsIHRoaXMuY29sdW1uKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvblNvcnRpbmdJY29uQ2xpY2soZXZlbnQpIHtcbiAgICAgICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMudHJpZ2dlclNvcnQoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0U29ydERpcmVjdGlvbigpIHtcbiAgICAgICAgY29uc3QgZXhwciA9IHRoaXMuZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMuZmluZCgoeCkgPT4geC5maWVsZE5hbWUgPT09IHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uID0gZXhwciA/IGV4cHIuZGlyIDogU29ydGluZ0RpcmVjdGlvbi5Ob25lO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc0FkdmFuY2VkRmlsdGVyQXBwbGllZCgpIHtcbiAgICAgICAgaWYoIXRoaXMuZ3JpZC5hZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSkge1xuICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiAhIXRoaXMuZ3JpZC5hZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZS5maW5kKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHRyaWdnZXJTb3J0KCkge1xuICAgICAgICBjb25zdCBncm91cGluZ0V4cHIgPSB0aGlzLmdyaWQuZ3JvdXBpbmdFeHByZXNzaW9ucyA/XG4gICAgICAgICAgICB0aGlzLmdyaWQuZ3JvdXBpbmdFeHByZXNzaW9ucy5maW5kKChleHByKSA9PiBleHByLmZpZWxkTmFtZSA9PT0gdGhpcy5jb2x1bW4uZmllbGQpIDpcbiAgICAgICAgICAgIHRoaXMuZ3JpZC5ncm91cEFyZWE/LmV4cHJlc3Npb25zID8gdGhpcy5ncmlkLmdyb3VwQXJlYT8uZXhwcmVzc2lvbnMuZmluZCgoZXhwcikgPT4gZXhwci5maWVsZE5hbWUgPT09IHRoaXMuY29sdW1uLmZpZWxkKSA6IG51bGw7XG4gICAgICAgIGNvbnN0IHNvcnREaXIgPSBncm91cGluZ0V4cHIgP1xuICAgICAgICAgICAgdGhpcy5zb3J0RGlyZWN0aW9uICsgMSA+IFNvcnRpbmdEaXJlY3Rpb24uRGVzYyA/IFNvcnRpbmdEaXJlY3Rpb24uQXNjIDogU29ydGluZ0RpcmVjdGlvbi5EZXNjXG4gICAgICAgICAgICA6IHRoaXMuc29ydERpcmVjdGlvbiArIDEgPiBTb3J0aW5nRGlyZWN0aW9uLkRlc2MgPyBTb3J0aW5nRGlyZWN0aW9uLk5vbmUgOiB0aGlzLnNvcnREaXJlY3Rpb24gKyAxO1xuICAgICAgICB0aGlzLnNvcnREaXJlY3Rpb24gPSBzb3J0RGlyO1xuICAgICAgICB0aGlzLmdyaWQuc29ydCh7XG4gICAgICAgICAgICBmaWVsZE5hbWU6IHRoaXMuY29sdW1uLmZpZWxkLCBkaXI6IHRoaXMuc29ydERpcmVjdGlvbiwgaWdub3JlQ2FzZTogdGhpcy5jb2x1bW4uc29ydGluZ0lnbm9yZUNhc2UsXG4gICAgICAgICAgICBzdHJhdGVneTogdGhpcy5jb2x1bW4uc29ydFN0cmF0ZWd5XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZGVmYXVsdENvbHVtbj5cbiAgICA8c3BhbiBbdGl0bGVdPVwidGl0bGVcIj57eyBjb2x1bW4uaGVhZGVyIHx8IGNvbHVtbi5maWVsZCB9fTwvc3Bhbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVTRkhlYWRlckljb25UZW1wbGF0ZT5cbiAgICA8aWd4LWljb24+bW9yZV92ZXJ0PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdFNvcnRIZWFkZXJJY29uVGVtcGxhdGU+XG4gICAgPGlneC1pY29uPnt7IHNvcnREaXJlY3Rpb24gPCAyID8gJ2Fycm93X3Vwd2FyZCcgOiAnYXJyb3dfZG93bndhcmQnIH19PC9pZ3gtaWNvbj5cbjwvbmctdGVtcGxhdGU+XG5cbjxzcGFuIGNsYXNzPVwiaWd4LWdyaWQtdGhfX3RpdGxlXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA/IGNvbHVtbi5oZWFkZXJUZW1wbGF0ZSA6IGRlZmF1bHRDb2x1bW47IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBjb2x1bW4sIGNvbHVtbjogY29sdW1ufVwiPlxuICAgIDwvbmctY29udGFpbmVyPlxuPC9zcGFuPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFjb2x1bW4uY29sdW1uR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWQtdGhfX2ljb25zXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb2x1bW4uc29ydGFibGUgJiYgIWRpc2FibGVkXCI+XG4gICAgICAgICAgICA8ZGl2ICNzb3J0SWNvbkNvbnRhaW5lciBjbGFzcz1cInNvcnQtaWNvblwiXG4gICAgICAgICAgICAgICAgW2F0dHIuZGF0YS1zb3J0SW5kZXhdPVwiKGdyaWQuc29ydGluZ09wdGlvbnMubW9kZSA9PT0gJ3NpbmdsZScgJiYgZ3JpZC5zb3J0aW5nRXhwcmVzc2lvbnMubGVuZ3RoIDw9MSkgPyBudWxsIDogY29sdW1uLmZpZWxkIHwgc29ydGluZ0luZGV4OmdyaWQuc29ydGluZ0V4cHJlc3Npb25zXCJcbiAgICAgICAgICAgICAgICAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bkluZGljYXRvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9uU29ydGluZ0ljb25DbGljaygkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNvcnRJY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiAgdGhpcyB9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJncmlkLmFsbG93RmlsdGVyaW5nICYmIGNvbHVtbi5maWx0ZXJhYmxlICYmIGdyaWQuZmlsdGVyTW9kZSA9PT0gJ2V4Y2VsU3R5bGVGaWx0ZXInXCI+XG4gICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImZpbHRlckljb25DbGFzc05hbWVcIiAocG9pbnRlcmRvd24pPVwib25Qb2ludGVyRG93bkluZGljYXRvcigkZXZlbnQpXCIgKGNsaWNrKT1cIm9uRmlsdGVyaW5nSWNvbkNsaWNrKCRldmVudClcIiA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVzZkljb25UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6ICB0aGlzIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
@@ -12,4 +12,4 @@ export var PivotDimensionType;
12
12
  PivotDimensionType[PivotDimensionType["Column"] = 1] = "Column";
13
13
  PivotDimensionType[PivotDimensionType["Filter"] = 2] = "Filter";
14
14
  })(PivotDimensionType || (PivotDimensionType = {}));
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7RUFFRTtBQUNGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLFlBQVksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPO0lBQ3RGLHFCQUFxQixFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxHQUFHO0NBQzVELENBQUM7QUFrTEYsbURBQW1EO0FBQ25ELE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDMUIseURBQUcsQ0FBQTtJQUNILCtEQUFNLENBQUE7SUFDTiwrREFBTSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5cbi8qKlxuKiBEZWZhdWx0IHBpdm90IGtleXMgdXNlZCBmb3IgZGF0YSBwcm9jZXNzaW5nIGluIHRoZSBwaXZvdCBwaXBlcy5cbiovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QSVZPVF9LRVlTID0ge1xuICAgIGFnZ3JlZ2F0aW9uczogJ2FnZ3JlZ2F0aW9ucycsIHJlY29yZHM6ICdyZWNvcmRzJywgY2hpbGRyZW46ICdjaGlsZHJlbicsIGxldmVsOiAnbGV2ZWwnLFxuICAgIHJvd0RpbWVuc2lvblNlcGFyYXRvcjogJ18nLCBjb2x1bW5EaW1lbnNpb25TZXBhcmF0b3I6ICctJ1xufTtcblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gZGltZW5zaW9uIGNvbGxlY3Rpb24gZm9yIHJvd3MsIGNvbHVtbnMgb2YgZmlsdGVycyBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaW1lbnNpb25zQ2hhbmdlIHtcbiAgICAvKiogVGhlIG5ldyBsaXN0IG9mIGRpbWVuc2lvbnMuICovXG4gICAgZGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgLyoqIFRoZSBkaW1lbnNpb24gbGlzdCB0eXBlIC0gUm93LCBDb2x1bW4gb3IgRmlsdGVyLiAqL1xuICAgIGRpbWVuc2lvbkNvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGVcbn1cblxuLyoqXG4qIEV2ZW50IGVtaXR0ZWQgd2hlbiB2YWx1ZXMgbGlzdCBpcyBjaGFuZ2VkLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbHVlc0NoYW5nZSB7XG4gICAgLyoqIFRoZSBuZXcgbGlzdCBvZiB2YWx1ZXMuICovXG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdXG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIHBpdm90IGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RDb25maWd1cmF0aW9uQ2hhbmdlZEV2ZW50QXJncyB7XG4gICAgLyoqIFRoZSBuZXcgY29uZmlndXJhdGlvbi4gKi9cbiAgICBwaXZvdENvbmZpZ3VyYXRpb246IElQaXZvdENvbmZpZ3VyYXRpb25cbn1cblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIFBpdm90IGRhdGEgcHJvY2Vzc2luZyBmb3IgZGltZW5zaW9ucy5cbiogU2hvdWxkIGNvbnRhaW4gYSBwcm9jZXNzIG1ldGhvZCBhbmQgcmV0dXJuIHJlY29yZHMgaGllcmFyY2h5IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kge1xuICAgIHByb2Nlc3MoY29sbGVjdGlvbjogYW55LFxuICAgICAgICBkaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICAgICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdLFxuICAgICAgICBjbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3ksXG4gICAgICAgIHBpdm90S2V5cz86IElQaXZvdEtleXMpOiBhbnlbXTtcbn1cblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIGEgUGl2b3RBZ2dyZWdhdGlvbiBmdW5jdGlvbi5cbiogQWNjZXB0cyBhbiBhcnJheSBvZiBleHRyYWN0ZWQgZGF0YSBtZW1iZXJzIGFuZCBhIGFycmF5IG9mIHRoZSBvcmlnaW5hbCBkYXRhIHJlY29yZHMuXG4qL1xuZXhwb3J0IHR5cGUgUGl2b3RBZ2dyZWdhdGlvbiA9IChtZW1iZXJzOiBhbnlbXSwgZGF0YTogYW55W10pID0+IGFueTtcblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIGEgSVBpdm90QWdncmVnYXRvciBjbGFzcy5cbiogVXNlZCBmb3Igc3BlY2lmeWluZyBjdXN0b20gYWdncmVnYXRvciBsaXN0cy5cbiovXG5leHBvcnQgaW50ZXJmYWNlIElQaXZvdEFnZ3JlZ2F0b3Ige1xuICAgIC8qKiBBZ2dyZWdhdGlvbiB1bmlxdWUga2V5LiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIC8qKiBBZ2dyZWdhdGlvbiBsYWJlbCB0byBzaG93IGluIHRoZSBVSS4gKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFnZ3JlZ2F0aW9uIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZnJvbSBhIGxpc3Qgb2YgcHJlZGVmaW5lZCBhZ2dyZWdhdGlvbnMuXG4gICAgICogSWYgbm90IHNldCB3aWxsIHVzZSB0aGUgc3BlY2lmaWVkIGFnZ3JlZ2F0b3IgZnVuY3Rpb24uXG4gICAgICovXG4gICAgYWdncmVnYXRvck5hbWU/OiBQaXZvdEFnZ3JlZ2F0aW9uVHlwZTtcbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdG9yIGZ1bmN0aW9uIGNhbiBiZSBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBgUGl2b3RBZ2dyZWdhdGlvbmAsIG9yXG4gICAgICogdXNlIHByZWRlZmluZWQgb25lcyBmcm9tIGBJZ3hQaXZvdEFnZ3JlZ2F0ZWAgYW5kIGl0cyB2YXJpYW50cy5cbiAgICAgKi9cbiAgICBhZ2dyZWdhdG9yPzogKG1lbWJlcnM6IGFueVtdLCBkYXRhPzogYW55W10pID0+IGFueTtcbn1cblxuLyoqXG4qIENvbmZpZ3VyYXRpb24gb2YgdGhlIHBpdm90IGdyaWQuXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RDb25maWd1cmF0aW9uIHtcbiAgICAvKiogQSBzdHJhdGVneSB0byB0cmFuc2Zvcm0gdGhlIHJvd3MuICovXG4gICAgcm93U3RyYXRlZ3k/OiBJUGl2b3REaW1lbnNpb25TdHJhdGVneSB8IG51bGw7XG4gICAgLyoqIEEgc3RyYXRlZ3kgdG8gdHJhbnNmb3JtIHRoZSBjb2x1bW5zLiAqL1xuICAgIGNvbHVtblN0cmF0ZWd5PzogSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kgfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIHJvd3MuICovXG4gICAgcm93czogSVBpdm90RGltZW5zaW9uW10gfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIGNvbHVtbnMuICovXG4gICAgY29sdW1uczogSVBpdm90RGltZW5zaW9uW10gfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIHZhbHVlcy4gKi9cbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW10gfCBudWxsO1xuICAgIC8qKiBEaW1lbnNpb25zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZmlsdGVyIGFyZWEuICovXG4gICAgZmlsdGVycz86IElQaXZvdERpbWVuc2lvbltdIHwgbnVsbDtcbiAgICAvKiogUGl2b3QgZGF0YSBrZXlzIHVzZWQgZm9yIGRhdGEgZ2VuZXJhdGlvbi4gQ2FuIGJlIHVzZWQgZm9yIGN1c3RvbSByZW1vdGUgc2NlbmFyaW9zIHdoZXJlIHRoZSBkYXRhIGlzIHByZS1wb3B1bGF0ZWQuICovXG4gICAgcGl2b3RLZXlzPzogSVBpdm90S2V5cztcbn1cblxuLyoqXG4qIENvbmZpZ3VyYXRpb24gb2YgYSBwaXZvdCBkaW1lbnNpb24uXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3REaW1lbnNpb24ge1xuICAgIC8qKiBBbGxvd3MgZGVmaW5pbmcgYSBoaWVyYXJjaHkgd2hlbiBtdWx0aXBsZSBzdWIgZ3JvdXBzIG5lZWQgdG8gYmUgZXh0cmFjdGVkIGZyb20gc2luZ2xlIG1lbWJlci4gKi9cbiAgICBjaGlsZExldmVsPzogSVBpdm90RGltZW5zaW9uO1xuICAgIC8qKiBGaWVsZCBuYW1lIHRvIHVzZSBpbiBvcmRlciB0byBleHRyYWN0IHZhbHVlLiAqL1xuICAgIG1lbWJlck5hbWU6IHN0cmluZztcbiAgICAvKiogRnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgdmFsdWUgKi9cbiAgICBtZW1iZXJGdW5jdGlvbj86IChkYXRhOiBhbnkpID0+IGFueTtcbiAgICAvKiogRGlzcGxheSBuYW1lIHRvIHNob3cgaW5zdGVhZCBvZiB0aGUgZmllbGQgbmFtZSBvZiB0aGlzIHZhbHVlLiAqKi9cbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICAvKiogRW5hYmxlcy9EaXNhYmxlcyBhIHBhcnRpY3VsYXIgZGltZW5zaW9uIGZyb20gcGl2b3Qgc3RydWN0dXJlLiAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQSBwcmVkZWZpbmVkIG9yIGRlZmluZWQgdmlhIHRoZSBgaWd4UGl2b3RTZWxlY3RvcmAgZmlsdGVyIGV4cHJlc3Npb24gdHJlZSBmb3IgdGhlIGN1cnJlbnQgZGltZW5zaW9uIHRvIGJlIGFwcGxpZWQgaW4gdGhlIGZpbHRlciBwaXBlLlxuICAgICAqICovXG4gICAgZmlsdGVyPzogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB8IG51bGw7XG4gICAgLyoqIEVuYWJsZS9kaXNhYmxlIHNvcnRpbmcgZm9yIGEgcGFydGljdWxhciBkaW1lbnNpb24uIFRydWUgYnkgZGVmYXVsdC4gKi9cbiAgICBzb3J0YWJsZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHNvcnRpbmcgZGlyZWN0aW9uIG9mIHRoZSBjdXJyZW50IGRpbWVuc2lvbi4gRGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHZhbHVlcyB3aWxsIGFwcGVhciBpbiB0aGUgcmVsYXRlZCBkaW1lbnNpb24uXG4gICAgICovXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnRpbmdEaXJlY3Rpb247XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGFUeXBlIG9mIHRoZSByZWxhdGVkIGRhdGEgZmllbGQuXG4gICAgICovXG4gICAgZGF0YVR5cGU/OiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgZGltZW5zaW9uIGNlbGxzIHRvIGJlIHJlbmRlcmVkLkNhbiBiZSBwaXhlbCwgJSBvciBcImF1dG9cIi4gKi9cbiAgICB3aWR0aD86IHN0cmluZztcbiAgICAvKiogTGV2ZWwgb2YgdGhlIGRpbWVuc2lvbi4gKi9cbiAgICBsZXZlbD86IG51bWJlcjtcbiAgICAvKiogaGlkZGVuICovXG4gICAgYXV0b1dpZHRoPzogbnVtYmVyO1xufVxuLyoqXG4qIENvbmZpZ3VyYXRpb24gb2YgYSBwaXZvdCB2YWx1ZSBhZ2dyZWdhdGlvbi5cbiovXG5leHBvcnQgaW50ZXJmYWNlIElQaXZvdFZhbHVlIHtcbiAgICAvKiogRmllbGQgbmFtZSB0byB1c2UgaW4gb3JkZXIgdG8gZXh0cmFjdCB2YWx1ZS4gKi9cbiAgICBtZW1iZXI6IHN0cmluZztcbiAgICAvKiogRGlzcGxheSBuYW1lIHRvIHNob3cgaW5zdGVhZCBvZiBtZW1iZXIgZm9yIHRoZSBjb2x1bW4gaGVhZGVyIG9mIHRoaXMgdmFsdWUuICoqL1xuICAgIGRpc3BsYXlOYW1lPzogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFjdGl2ZSBhZ2dyZWdhdG9yIGRlZmluaXRpb24gd2l0aCBrZXksIGxhYmVsIGFuZCBhZ2dyZWdhdG9yLlxuICAgICAqL1xuICAgIGFnZ3JlZ2F0ZTogSVBpdm90QWdncmVnYXRvcjtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGFnZ3JlZ2F0ZXMgdG8gc2hvdyBpbiBhZ2dyZWdhdGUgZHJvcC1kb3duLlxuICAgICAqL1xuICAgIGFnZ3JlZ2F0ZUxpc3Q/OiBJUGl2b3RBZ2dyZWdhdG9yW107XG4gICAgLyoqIEVuYWJsZXMvRGlzYWJsZXMgYSBwYXJ0aWN1bGFyIHZhbHVlIGZyb20gcGl2b3QgYWdncmVnYXRpb24uICovXG4gICAgZW5hYmxlZDogYm9vbGVhbjtcbiAgICAvKiogIEFsbG93IGNvbmRpdGlvbmFsbHkgc3R5bGluZyBvZiB0aGUgSWd4UGl2b3RHcmlkIGNlbGxzLiAqL1xuICAgIHN0eWxlcz86IGFueTtcbiAgICAvKiogRW5hYmxlcyBhIGRhdGEgdHlwZSBzcGVjaWZpYyB0ZW1wbGF0ZSBvZiB0aGUgY2VsbHMgKi9cbiAgICBkYXRhVHlwZT86IEdyaWRDb2x1bW5EYXRhVHlwZTtcbiAgICAvKiogQXBwbGllcyBkaXNwbGF5IGZvcm1hdCB0byBjZWxsIHZhbHVlcy4gKi9cbiAgICBmb3JtYXR0ZXI/OiAodmFsdWU6IGFueSwgcm93RGF0YT86IElQaXZvdEdyaWRSZWNvcmQsIGNvbHVtbkRhdGE/OiBJUGl2b3RHcmlkQ29sdW1uKSA9PiBhbnk7XG59XG5cbi8qKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgUGl2b3QgY29sdW1uIGRhdGEuXG4qICBDb250YWlucyBpbmZvcm1hdGlvbiBvbiB0aGUgcmVsYXRlZCBjb2x1bW4gZGltZW5zaW9ucyBhbmQgdGhlaXIgdmFsdWVzLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90R3JpZENvbHVtbiB7XG4gICAgICAgIGZpZWxkOiBzdHJpbmcsXG4gICAgICAgIC8qKiBHZXRzL1NldHMgdGhlIGdyb3VwIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVsYXRlZCBjb2x1bW4gZGltZW5zaW9uIGJ5IGl0cyBtZW1iZXJOYW1lLiAqKi9cbiAgICAgICAgZGltZW5zaW9uVmFsdWVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgICAgICAvKiogTGlzdCBvZiBkaW1lbnNpb25zIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1uLioqL1xuICAgICAgICBkaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbiAgICAgICAgdmFsdWU6IElQaXZvdFZhbHVlXG59XG5cbi8qKiBJbnRlcmZhY2UgZGVzY3JpYmluZyB0aGUgUGl2b3QgZGF0YSBrZXlzIHVzZWQgZm9yIGRhdGEgZ2VuZXJhdGlvbi5cbiogIENhbiBiZSB1c2VkIGZvciBjdXN0b20gcmVtb3RlIHNjZW5hcmlvcyB3aGVyZSB0aGUgZGF0YSBpcyBwcmUtcG9wdWxhdGVkLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90S2V5cyB7XG4gICAgLyoqIEZpZWxkIHRoYXQgc3RvcmVzIGNoaWxkcmVuIGZvciBoaWVyYXJjaHkgYnVpbGRpbmcuICovXG4gICAgY2hpbGRyZW46IHN0cmluZztcbiAgICAvKiogRmllbGQgdGhhdCBzdG9yZXMgcmVmZXJlbmNlIHRvIHRoZSBvcmlnaW5hbCBkYXRhIHJlY29yZHMuICovXG4gICAgcmVjb3Jkczogc3RyaW5nO1xuICAgIC8qKiBGaWVsZCB0aGF0IHN0b3JlcyBhZ2dyZWdhdGlvbiB2YWx1ZXMuICovXG4gICAgYWdncmVnYXRpb25zOiBzdHJpbmc7XG4gICAgLyoqIEZpZWxkIHRoYXQgc3RvcmVzIGRpbWVuc2lvbiBsZXZlbCBiYXNlZCBvbiBpdHMgaGllcmFyY2h5LiAqL1xuICAgIGxldmVsOiBzdHJpbmc7XG4gICAgLyoqIFNlcGFyYXRvciB1c2VkIHdoZW4gZ2VuZXJhdGluZyB0aGUgdW5pcXVlIGNvbHVtbiBmaWVsZCB2YWx1ZXMuICovXG4gICAgY29sdW1uRGltZW5zaW9uU2VwYXJhdG9yOiBzdHJpbmc7XG4gICAgLyoqIFNlcGFyYXRvciB1c2VkIHdoZW4gZ2VuZXJhdGluZyB0aGUgdW5pcXVlIHJvdyBmaWVsZCB2YWx1ZXMuICovXG4gICAgcm93RGltZW5zaW9uU2VwYXJhdG9yOiBzdHJpbmc7XG59XG5cbi8qKiBUaGUgZGltZW5zaW9uIHR5cGVzIC0gUm93LCBDb2x1bW4gb3IgRmlsdGVyLiAqL1xuZXhwb3J0IGVudW0gUGl2b3REaW1lbnNpb25UeXBlIHtcbiAgICBSb3csXG4gICAgQ29sdW1uLFxuICAgIEZpbHRlclxufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQaXZvdFVJU2V0dGluZ3Mge1xuICAgIHNob3dDb25maWd1cmF0aW9uPzogYm9vbGVhbjtcbiAgICBzaG93Um93SGVhZGVycz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCB0eXBlIFBpdm90QWdncmVnYXRpb25UeXBlID0gJ1NVTScgfCAnQVZHJyB8ICdNSU4nIHwgJ01BWCcgfCAnQ09VTlQnIHwgJ0xBVEVTVCcgfCAnRUFSTElFU1QnIDtcblxuLyoqIEludGVyZmFjZSBkZXNjcmliaW5nIHRoZSBwaXZvdCBkaW1lbnNpb24gZGF0YS5cbiogQ29udGFpbnMgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiBuZWVkZWQgdG8gcmVuZGVyIGRpbWVuc2lvbiBoZWFkZXJzLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90RGltZW5zaW9uRGF0YSB7XG4gICAgLyoqIEFzc29jaWF0ZWQgY29sdW1uIGRlZmluaXRpb24uICovXG4gICAgY29sdW1uOiBDb2x1bW5UeXBlO1xuICAgIC8qKiBBc3NvY2lhdGVkIGRpbWVuc2lvbiBkZWZpbml0aW9uLiAqL1xuICAgIGRpbWVuc2lvbjogSVBpdm90RGltZW5zaW9uO1xuICAgIC8qKiBMaXN0IG9mIHByZXZpb3VzIGRpbWVuc2lvbiBncm91cHMuICovXG4gICAgcHJldkRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgIC8qKiBXaGV0aGVyIHRoaXMgYSBjaGlsZCBkaW1lbnNpb24uICovXG4gICAgaXNDaGlsZD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGl2b3RSb3dIZWFkZXJHcm91cFR5cGUge1xuICAgIHJvd0luZGV4OiBudW1iZXI7XG4gICAgcGFyZW50OiBhbnk7XG4gICAgaGVhZGVyOiBhbnk7XG4gICAgaGVhZGVySUQ6IHN0cmluZztcbiAgICBncmlkOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90R3JpZFJlY29yZCB7XG4gICAgLyoqIEdldHMvU2V0cyB0aGUgZ3JvdXAgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWxhdGVkIHJvdyBkaW1lbnNpb24gYnkgaXRzIG1lbWJlck5hbWUuICoqL1xuICAgIGRpbWVuc2lvblZhbHVlczogTWFwPHN0cmluZywgc3RyaW5nPjtcbiAgICAvKiogR2V0cy9TZXRzIHRoZSBhZ2dyZWdhdGlvbiB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHZhbHVlIHBhdGguIFZhbHVlIHBhdGggZGVwZW5kcyBvbiBjb25maWd1cmVkIGNvbHVtbiBkaW1lbnNpb24gaGllcmFyY2h5IGFuZCB2YWx1ZXMuKiovXG4gICAgYWdncmVnYXRpb25WYWx1ZXM6IE1hcDxzdHJpbmcsIGFueT47XG4gICAgLyoqIExpc3Qgb2YgY2hpbGRyZW4gcmVjb3JkcyBpbiBjYXNlIGFueSByb3cgZGltZW5zaW9uIG1lbWJlciBjb250YWluIGEgaGllcmFyY2h5LiBFYWNoIGRpbWVuc2lvbiBtZW1iZXIgY29udGFpbnMgaXRzIG93biBoaWVyYXJjaHksIHdoaWNoIHlvdSBjYW4gZ2V0IGJ5IGl0cyBtZW1iZXJOYW1lLiAqKi9cbiAgICBjaGlsZHJlbj86IE1hcDxzdHJpbmcsIElQaXZvdEdyaWRSZWNvcmRbXT47XG4gICAgLyoqIExpc3Qgb2Ygb3JpZ2luYWwgZGF0YSByZWNvcmRzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY3VycmVudCBwaXZvdGVkIGRhdGEuICoqL1xuICAgIHJlY29yZHM/OiBhbnlbXTtcbiAgICAgLyoqIFJlY29yZCBsZXZlbCoqL1xuICAgIGxldmVsPzogbnVtYmVyO1xuICAgIC8qKiBMaXN0IG9mIGRpbWVuc2lvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWNvcmQuKiovXG4gICAgZGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90R3JpZEdyb3VwUmVjb3JkIGV4dGVuZHMgSVBpdm90R3JpZFJlY29yZCB7XG4gICAgaGVpZ2h0PzogbnVtYmVyO1xuICAgIHJvd1NwYW4/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSWd4UGl2b3RHcmlkVmFsdWVUZW1wbGF0ZUNvbnRleHQge1xuICAgICRpbXBsaWNpdDogSVBpdm90VmFsdWU7XG59XG4iXX0=
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3QtZ3JpZC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQTs7RUFFRTtBQUNGLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHO0lBQzlCLFlBQVksRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxPQUFPO0lBQ3RGLHFCQUFxQixFQUFFLEdBQUcsRUFBRSx3QkFBd0IsRUFBRSxHQUFHO0NBQzVELENBQUM7QUFrTEYsbURBQW1EO0FBQ25ELE1BQU0sQ0FBTixJQUFZLGtCQUlYO0FBSkQsV0FBWSxrQkFBa0I7SUFDMUIseURBQUcsQ0FBQTtJQUNILCtEQUFNLENBQUE7SUFDTiwrREFBTSxDQUFBO0FBQ1YsQ0FBQyxFQUpXLGtCQUFrQixLQUFsQixrQkFBa0IsUUFJN0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRGF0YUNsb25lU3RyYXRlZ3kgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS1jbG9uZS1zdHJhdGVneSc7XG5pbXBvcnQgeyBHcmlkQ29sdW1uRGF0YVR5cGUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZGF0YS11dGlsJztcbmltcG9ydCB7IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuaW1wb3J0IHsgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9zb3J0aW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5cbi8qKlxuKiBEZWZhdWx0IHBpdm90IGtleXMgdXNlZCBmb3IgZGF0YSBwcm9jZXNzaW5nIGluIHRoZSBwaXZvdCBwaXBlcy5cbiovXG5leHBvcnQgY29uc3QgREVGQVVMVF9QSVZPVF9LRVlTID0ge1xuICAgIGFnZ3JlZ2F0aW9uczogJ2FnZ3JlZ2F0aW9ucycsIHJlY29yZHM6ICdyZWNvcmRzJywgY2hpbGRyZW46ICdjaGlsZHJlbicsIGxldmVsOiAnbGV2ZWwnLFxuICAgIHJvd0RpbWVuc2lvblNlcGFyYXRvcjogJ18nLCBjb2x1bW5EaW1lbnNpb25TZXBhcmF0b3I6ICctJ1xufTtcblxuLyoqXG4gKiBFdmVudCBlbWl0dGVkIHdoZW4gZGltZW5zaW9uIGNvbGxlY3Rpb24gZm9yIHJvd3MsIGNvbHVtbnMgb2YgZmlsdGVycyBpcyBjaGFuZ2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElEaW1lbnNpb25zQ2hhbmdlIHtcbiAgICAvKiogVGhlIG5ldyBsaXN0IG9mIGRpbWVuc2lvbnMuICovXG4gICAgZGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgLyoqIFRoZSBkaW1lbnNpb24gbGlzdCB0eXBlIC0gUm93LCBDb2x1bW4gb3IgRmlsdGVyLiAqL1xuICAgIGRpbWVuc2lvbkNvbGxlY3Rpb25UeXBlOiBQaXZvdERpbWVuc2lvblR5cGVcbn1cblxuLyoqXG4qIEV2ZW50IGVtaXR0ZWQgd2hlbiB2YWx1ZXMgbGlzdCBpcyBjaGFuZ2VkLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVZhbHVlc0NoYW5nZSB7XG4gICAgLyoqIFRoZSBuZXcgbGlzdCBvZiB2YWx1ZXMuICovXG4gICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdXG59XG5cbi8qKlxuICogRXZlbnQgZW1pdHRlZCB3aGVuIHBpdm90IGNvbmZpZ3VyYXRpb24gaXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RDb25maWd1cmF0aW9uQ2hhbmdlZEV2ZW50QXJncyB7XG4gICAgLyoqIFRoZSBuZXcgY29uZmlndXJhdGlvbi4gKi9cbiAgICBwaXZvdENvbmZpZ3VyYXRpb246IElQaXZvdENvbmZpZ3VyYXRpb25cbn1cblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIFBpdm90IGRhdGEgcHJvY2Vzc2luZyBmb3IgZGltZW5zaW9ucy5cbiogU2hvdWxkIGNvbnRhaW4gYSBwcm9jZXNzIG1ldGhvZCBhbmQgcmV0dXJuIHJlY29yZHMgaGllcmFyY2h5IGJhc2VkIG9uIHRoZSBwcm92aWRlZCBkaW1lbnNpb25zLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kge1xuICAgIHByb2Nlc3MoY29sbGVjdGlvbjogYW55LFxuICAgICAgICBkaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICAgICAgdmFsdWVzOiBJUGl2b3RWYWx1ZVtdLFxuICAgICAgICBjbG9uZVN0cmF0ZWd5OiBJRGF0YUNsb25lU3RyYXRlZ3ksXG4gICAgICAgIHBpdm90S2V5cz86IElQaXZvdEtleXMpOiBhbnlbXTtcbn1cblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIGEgUGl2b3RBZ2dyZWdhdGlvbiBmdW5jdGlvbi5cbiogQWNjZXB0cyBhbiBhcnJheSBvZiBleHRyYWN0ZWQgZGF0YSBtZW1iZXJzIGFuZCBhIGFycmF5IG9mIHRoZSBvcmlnaW5hbCBkYXRhIHJlY29yZHMuXG4qL1xuZXhwb3J0IHR5cGUgUGl2b3RBZ2dyZWdhdGlvbiA9IChtZW1iZXJzOiBhbnlbXSwgZGF0YTogYW55W10pID0+IGFueTtcblxuLyoqXG4qIEludGVyZmFjZSBkZXNjcmliaW5nIGEgSVBpdm90QWdncmVnYXRvciBjbGFzcy5cbiogVXNlZCBmb3Igc3BlY2lmeWluZyBjdXN0b20gYWdncmVnYXRvciBsaXN0cy5cbiovXG5leHBvcnQgaW50ZXJmYWNlIElQaXZvdEFnZ3JlZ2F0b3Ige1xuICAgIC8qKiBBZ2dyZWdhdGlvbiB1bmlxdWUga2V5LiAqL1xuICAgIGtleTogc3RyaW5nO1xuICAgIC8qKiBBZ2dyZWdhdGlvbiBsYWJlbCB0byBzaG93IGluIHRoZSBVSS4gKi9cbiAgICBsYWJlbDogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIEFnZ3JlZ2F0aW9uIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZnJvbSBhIGxpc3Qgb2YgcHJlZGVmaW5lZCBhZ2dyZWdhdGlvbnMuXG4gICAgICogSWYgbm90IHNldCB3aWxsIHVzZSB0aGUgc3BlY2lmaWVkIGFnZ3JlZ2F0b3IgZnVuY3Rpb24uXG4gICAgICovXG4gICAgYWdncmVnYXRvck5hbWU/OiBQaXZvdEFnZ3JlZ2F0aW9uVHlwZTtcbiAgICAvKipcbiAgICAgKiBBZ2dyZWdhdG9yIGZ1bmN0aW9uIGNhbiBiZSBhIGN1c3RvbSBpbXBsZW1lbnRhdGlvbiBvZiBgUGl2b3RBZ2dyZWdhdGlvbmAsIG9yXG4gICAgICogdXNlIHByZWRlZmluZWQgb25lcyBmcm9tIGBJZ3hQaXZvdEFnZ3JlZ2F0ZWAgYW5kIGl0cyB2YXJpYW50cy5cbiAgICAgKi9cbiAgICBhZ2dyZWdhdG9yPzogKG1lbWJlcnM6IGFueVtdLCBkYXRhPzogYW55W10pID0+IGFueTtcbn1cblxuLyoqXG4qIENvbmZpZ3VyYXRpb24gb2YgdGhlIHBpdm90IGdyaWQuXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RDb25maWd1cmF0aW9uIHtcbiAgICAvKiogQSBzdHJhdGVneSB0byB0cmFuc2Zvcm0gdGhlIHJvd3MuICovXG4gICAgcm93U3RyYXRlZ3k/OiBJUGl2b3REaW1lbnNpb25TdHJhdGVneSB8IG51bGw7XG4gICAgLyoqIEEgc3RyYXRlZ3kgdG8gdHJhbnNmb3JtIHRoZSBjb2x1bW5zLiAqL1xuICAgIGNvbHVtblN0cmF0ZWd5PzogSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kgfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIHJvd3MuICovXG4gICAgcm93czogSVBpdm90RGltZW5zaW9uW10gfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIGNvbHVtbnMuICovXG4gICAgY29sdW1uczogSVBpdm90RGltZW5zaW9uW10gfCBudWxsO1xuICAgIC8qKiBBIGxpc3Qgb2YgdGhlIHZhbHVlcy4gKi9cbiAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW10gfCBudWxsO1xuICAgIC8qKiBEaW1lbnNpb25zIHRvIGJlIGRpc3BsYXllZCBpbiB0aGUgZmlsdGVyIGFyZWEuICovXG4gICAgZmlsdGVycz86IElQaXZvdERpbWVuc2lvbltdIHwgbnVsbDtcbiAgICAvKiogUGl2b3QgZGF0YSBrZXlzIHVzZWQgZm9yIGRhdGEgZ2VuZXJhdGlvbi4gQ2FuIGJlIHVzZWQgZm9yIGN1c3RvbSByZW1vdGUgc2NlbmFyaW9zIHdoZXJlIHRoZSBkYXRhIGlzIHByZS1wb3B1bGF0ZWQuICovXG4gICAgcGl2b3RLZXlzPzogSVBpdm90S2V5cztcbn1cblxuLyoqXG4qIENvbmZpZ3VyYXRpb24gb2YgYSBwaXZvdCBkaW1lbnNpb24uXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3REaW1lbnNpb24ge1xuICAgIC8qKiBBbGxvd3MgZGVmaW5pbmcgYSBoaWVyYXJjaHkgd2hlbiBtdWx0aXBsZSBzdWIgZ3JvdXBzIG5lZWQgdG8gYmUgZXh0cmFjdGVkIGZyb20gc2luZ2xlIG1lbWJlci4gKi9cbiAgICBjaGlsZExldmVsPzogSVBpdm90RGltZW5zaW9uO1xuICAgIC8qKiBGaWVsZCBuYW1lIHRvIHVzZSBpbiBvcmRlciB0byBleHRyYWN0IHZhbHVlLiAqL1xuICAgIG1lbWJlck5hbWU6IHN0cmluZztcbiAgICAvKiogRnVuY3Rpb24gdGhhdCBleHRyYWN0cyB0aGUgdmFsdWUgKi9cbiAgICBtZW1iZXJGdW5jdGlvbj86IChkYXRhOiBhbnkpID0+IGFueTtcbiAgICAvKiogRGlzcGxheSBuYW1lIHRvIHNob3cgaW5zdGVhZCBvZiB0aGUgZmllbGQgbmFtZSBvZiB0aGlzIHZhbHVlLiAqKi9cbiAgICBkaXNwbGF5TmFtZT86IHN0cmluZztcbiAgICAvKiogRW5hYmxlcy9EaXNhYmxlcyBhIHBhcnRpY3VsYXIgZGltZW5zaW9uIGZyb20gcGl2b3Qgc3RydWN0dXJlLiAqL1xuICAgIGVuYWJsZWQ6IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQSBwcmVkZWZpbmVkIG9yIGRlZmluZWQgdmlhIHRoZSBgaWd4UGl2b3RTZWxlY3RvcmAgZmlsdGVyIGV4cHJlc3Npb24gdHJlZSBmb3IgdGhlIGN1cnJlbnQgZGltZW5zaW9uIHRvIGJlIGFwcGxpZWQgaW4gdGhlIGZpbHRlciBwaXBlLlxuICAgICAqICovXG4gICAgZmlsdGVyPzogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB8IG51bGw7XG4gICAgLyoqIEVuYWJsZS9kaXNhYmxlIHNvcnRpbmcgZm9yIGEgcGFydGljdWxhciBkaW1lbnNpb24uIFRydWUgYnkgZGVmYXVsdC4gKi9cbiAgICBzb3J0YWJsZT86IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogVGhlIHNvcnRpbmcgZGlyZWN0aW9uIG9mIHRoZSBjdXJyZW50IGRpbWVuc2lvbi4gRGV0ZXJtaW5lcyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHZhbHVlcyB3aWxsIGFwcGVhciBpbiB0aGUgcmVsYXRlZCBkaW1lbnNpb24uXG4gICAgICovXG4gICAgc29ydERpcmVjdGlvbj86IFNvcnRpbmdEaXJlY3Rpb247XG4gICAgLyoqXG4gICAgICogVGhlIGRhdGFUeXBlIG9mIHRoZSByZWxhdGVkIGRhdGEgZmllbGQuXG4gICAgICovXG4gICAgZGF0YVR5cGU/OiBHcmlkQ29sdW1uRGF0YVR5cGU7XG4gICAgLyoqIFRoZSB3aWR0aCBvZiB0aGUgZGltZW5zaW9uIGNlbGxzIHRvIGJlIHJlbmRlcmVkLkNhbiBiZSBwaXhlbCwgJSBvciBcImF1dG9cIi4gKi9cbiAgICB3aWR0aD86IHN0cmluZztcbiAgICAvKiogTGV2ZWwgb2YgdGhlIGRpbWVuc2lvbi4gKi9cbiAgICBsZXZlbD86IG51bWJlcjtcbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBhdXRvV2lkdGg/OiBudW1iZXI7XG59XG4vKipcbiogQ29uZmlndXJhdGlvbiBvZiBhIHBpdm90IHZhbHVlIGFnZ3JlZ2F0aW9uLlxuKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90VmFsdWUge1xuICAgIC8qKiBGaWVsZCBuYW1lIHRvIHVzZSBpbiBvcmRlciB0byBleHRyYWN0IHZhbHVlLiAqL1xuICAgIG1lbWJlcjogc3RyaW5nO1xuICAgIC8qKiBEaXNwbGF5IG5hbWUgdG8gc2hvdyBpbnN0ZWFkIG9mIG1lbWJlciBmb3IgdGhlIGNvbHVtbiBoZWFkZXIgb2YgdGhpcyB2YWx1ZS4gKiovXG4gICAgZGlzcGxheU5hbWU/OiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogQWN0aXZlIGFnZ3JlZ2F0b3IgZGVmaW5pdGlvbiB3aXRoIGtleSwgbGFiZWwgYW5kIGFnZ3JlZ2F0b3IuXG4gICAgICovXG4gICAgYWdncmVnYXRlOiBJUGl2b3RBZ2dyZWdhdG9yO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgYWdncmVnYXRlcyB0byBzaG93IGluIGFnZ3JlZ2F0ZSBkcm9wLWRvd24uXG4gICAgICovXG4gICAgYWdncmVnYXRlTGlzdD86IElQaXZvdEFnZ3JlZ2F0b3JbXTtcbiAgICAvKiogRW5hYmxlcy9EaXNhYmxlcyBhIHBhcnRpY3VsYXIgdmFsdWUgZnJvbSBwaXZvdCBhZ2dyZWdhdGlvbi4gKi9cbiAgICBlbmFibGVkOiBib29sZWFuO1xuICAgIC8qKiAgQWxsb3cgY29uZGl0aW9uYWxseSBzdHlsaW5nIG9mIHRoZSBJZ3hQaXZvdEdyaWQgY2VsbHMuICovXG4gICAgc3R5bGVzPzogYW55O1xuICAgIC8qKiBFbmFibGVzIGEgZGF0YSB0eXBlIHNwZWNpZmljIHRlbXBsYXRlIG9mIHRoZSBjZWxscyAqL1xuICAgIGRhdGFUeXBlPzogR3JpZENvbHVtbkRhdGFUeXBlO1xuICAgIC8qKiBBcHBsaWVzIGRpc3BsYXkgZm9ybWF0IHRvIGNlbGwgdmFsdWVzLiAqL1xuICAgIGZvcm1hdHRlcj86ICh2YWx1ZTogYW55LCByb3dEYXRhPzogSVBpdm90R3JpZFJlY29yZCwgY29sdW1uRGF0YT86IElQaXZvdEdyaWRDb2x1bW4pID0+IGFueTtcbn1cblxuLyoqIEludGVyZmFjZSBkZXNjcmliaW5nIHRoZSBQaXZvdCBjb2x1bW4gZGF0YS5cbiogIENvbnRhaW5zIGluZm9ybWF0aW9uIG9uIHRoZSByZWxhdGVkIGNvbHVtbiBkaW1lbnNpb25zIGFuZCB0aGVpciB2YWx1ZXMuXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RHcmlkQ29sdW1uIHtcbiAgICAgICAgZmllbGQ6IHN0cmluZyxcbiAgICAgICAgLyoqIEdldHMvU2V0cyB0aGUgZ3JvdXAgdmFsdWUgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWxhdGVkIGNvbHVtbiBkaW1lbnNpb24gYnkgaXRzIG1lbWJlck5hbWUuICoqL1xuICAgICAgICBkaW1lbnNpb25WYWx1ZXM6IE1hcDxzdHJpbmcsIHN0cmluZz47XG4gICAgICAgIC8qKiBMaXN0IG9mIGRpbWVuc2lvbnMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2x1bW4uKiovXG4gICAgICAgIGRpbWVuc2lvbnM6IElQaXZvdERpbWVuc2lvbltdO1xuICAgICAgICB2YWx1ZTogSVBpdm90VmFsdWVcbn1cblxuLyoqIEludGVyZmFjZSBkZXNjcmliaW5nIHRoZSBQaXZvdCBkYXRhIGtleXMgdXNlZCBmb3IgZGF0YSBnZW5lcmF0aW9uLlxuKiAgQ2FuIGJlIHVzZWQgZm9yIGN1c3RvbSByZW1vdGUgc2NlbmFyaW9zIHdoZXJlIHRoZSBkYXRhIGlzIHByZS1wb3B1bGF0ZWQuXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RLZXlzIHtcbiAgICAvKiogRmllbGQgdGhhdCBzdG9yZXMgY2hpbGRyZW4gZm9yIGhpZXJhcmNoeSBidWlsZGluZy4gKi9cbiAgICBjaGlsZHJlbjogc3RyaW5nO1xuICAgIC8qKiBGaWVsZCB0aGF0IHN0b3JlcyByZWZlcmVuY2UgdG8gdGhlIG9yaWdpbmFsIGRhdGEgcmVjb3Jkcy4gKi9cbiAgICByZWNvcmRzOiBzdHJpbmc7XG4gICAgLyoqIEZpZWxkIHRoYXQgc3RvcmVzIGFnZ3JlZ2F0aW9uIHZhbHVlcy4gKi9cbiAgICBhZ2dyZWdhdGlvbnM6IHN0cmluZztcbiAgICAvKiogRmllbGQgdGhhdCBzdG9yZXMgZGltZW5zaW9uIGxldmVsIGJhc2VkIG9uIGl0cyBoaWVyYXJjaHkuICovXG4gICAgbGV2ZWw6IHN0cmluZztcbiAgICAvKiogU2VwYXJhdG9yIHVzZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSB1bmlxdWUgY29sdW1uIGZpZWxkIHZhbHVlcy4gKi9cbiAgICBjb2x1bW5EaW1lbnNpb25TZXBhcmF0b3I6IHN0cmluZztcbiAgICAvKiogU2VwYXJhdG9yIHVzZWQgd2hlbiBnZW5lcmF0aW5nIHRoZSB1bmlxdWUgcm93IGZpZWxkIHZhbHVlcy4gKi9cbiAgICByb3dEaW1lbnNpb25TZXBhcmF0b3I6IHN0cmluZztcbn1cblxuLyoqIFRoZSBkaW1lbnNpb24gdHlwZXMgLSBSb3csIENvbHVtbiBvciBGaWx0ZXIuICovXG5leHBvcnQgZW51bSBQaXZvdERpbWVuc2lvblR5cGUge1xuICAgIFJvdyxcbiAgICBDb2x1bW4sXG4gICAgRmlsdGVyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBpdm90VUlTZXR0aW5ncyB7XG4gICAgc2hvd0NvbmZpZ3VyYXRpb24/OiBib29sZWFuO1xuICAgIHNob3dSb3dIZWFkZXJzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IHR5cGUgUGl2b3RBZ2dyZWdhdGlvblR5cGUgPSAnU1VNJyB8ICdBVkcnIHwgJ01JTicgfCAnTUFYJyB8ICdDT1VOVCcgfCAnTEFURVNUJyB8ICdFQVJMSUVTVCcgO1xuXG4vKiogSW50ZXJmYWNlIGRlc2NyaWJpbmcgdGhlIHBpdm90IGRpbWVuc2lvbiBkYXRhLlxuKiBDb250YWlucyBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIG5lZWRlZCB0byByZW5kZXIgZGltZW5zaW9uIGhlYWRlcnMuXG4qL1xuZXhwb3J0IGludGVyZmFjZSBJUGl2b3REaW1lbnNpb25EYXRhIHtcbiAgICAvKiogQXNzb2NpYXRlZCBjb2x1bW4gZGVmaW5pdGlvbi4gKi9cbiAgICBjb2x1bW46IENvbHVtblR5cGU7XG4gICAgLyoqIEFzc29jaWF0ZWQgZGltZW5zaW9uIGRlZmluaXRpb24uICovXG4gICAgZGltZW5zaW9uOiBJUGl2b3REaW1lbnNpb247XG4gICAgLyoqIExpc3Qgb2YgcHJldmlvdXMgZGltZW5zaW9uIGdyb3Vwcy4gKi9cbiAgICBwcmV2RGltZW5zaW9uczogSVBpdm90RGltZW5zaW9uW107XG4gICAgLyoqIFdoZXRoZXIgdGhpcyBhIGNoaWxkIGRpbWVuc2lvbi4gKi9cbiAgICBpc0NoaWxkPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXZvdFJvd0hlYWRlckdyb3VwVHlwZSB7XG4gICAgcm93SW5kZXg6IG51bWJlcjtcbiAgICBwYXJlbnQ6IGFueTtcbiAgICBoZWFkZXI6IGFueTtcbiAgICBoZWFkZXJJRDogc3RyaW5nO1xuICAgIGdyaWQ6IGFueTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RHcmlkUmVjb3JkIHtcbiAgICAvKiogR2V0cy9TZXRzIHRoZSBncm91cCB2YWx1ZSBhc3NvY2lhdGVkIHdpdGggdGhlIHJlbGF0ZWQgcm93IGRpbWVuc2lvbiBieSBpdHMgbWVtYmVyTmFtZS4gKiovXG4gICAgZGltZW5zaW9uVmFsdWVzOiBNYXA8c3RyaW5nLCBzdHJpbmc+O1xuICAgIC8qKiBHZXRzL1NldHMgdGhlIGFnZ3JlZ2F0aW9uIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCB0aGUgdmFsdWUgcGF0aC4gVmFsdWUgcGF0aCBkZXBlbmRzIG9uIGNvbmZpZ3VyZWQgY29sdW1uIGRpbWVuc2lvbiBoaWVyYXJjaHkgYW5kIHZhbHVlcy4qKi9cbiAgICBhZ2dyZWdhdGlvblZhbHVlczogTWFwPHN0cmluZywgYW55PjtcbiAgICAvKiogTGlzdCBvZiBjaGlsZHJlbiByZWNvcmRzIGluIGNhc2UgYW55IHJvdyBkaW1lbnNpb24gbWVtYmVyIGNvbnRhaW4gYSBoaWVyYXJjaHkuIEVhY2ggZGltZW5zaW9uIG1lbWJlciBjb250YWlucyBpdHMgb3duIGhpZXJhcmNoeSwgd2hpY2ggeW91IGNhbiBnZXQgYnkgaXRzIG1lbWJlck5hbWUuICoqL1xuICAgIGNoaWxkcmVuPzogTWFwPHN0cmluZywgSVBpdm90R3JpZFJlY29yZFtdPjtcbiAgICAvKiogTGlzdCBvZiBvcmlnaW5hbCBkYXRhIHJlY29yZHMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjdXJyZW50IHBpdm90ZWQgZGF0YS4gKiovXG4gICAgcmVjb3Jkcz86IGFueVtdO1xuICAgICAvKiogUmVjb3JkIGxldmVsKiovXG4gICAgbGV2ZWw/OiBudW1iZXI7XG4gICAgLyoqIExpc3Qgb2YgZGltZW5zaW9ucyBhc3NvY2lhdGVkIHdpdGggdGhlIHJlY29yZC4qKi9cbiAgICBkaW1lbnNpb25zOiBJUGl2b3REaW1lbnNpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGl2b3RHcmlkR3JvdXBSZWNvcmQgZXh0ZW5kcyBJUGl2b3RHcmlkUmVjb3JkIHtcbiAgICBoZWlnaHQ/OiBudW1iZXI7XG4gICAgcm93U3Bhbj86IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJZ3hQaXZvdEdyaWRWYWx1ZVRlbXBsYXRlQ29udGV4dCB7XG4gICAgJGltcGxpY2l0OiBJUGl2b3RWYWx1ZTtcbn1cbiJdfQ==
@@ -4,6 +4,7 @@ import { IgxIconComponent } from '../../icon/icon.component';
4
4
  import { NgClass, NgIf } from '@angular/common';
5
5
  import { IgxRippleDirective } from '../../directives/ripple/ripple.directive';
6
6
  import { IgxButtonDirective } from '../../directives/button/button.directive';
7
+ import { FilteringExpressionsTree } from '../../data-operations/filtering-expressions-tree';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "./token";
9
10
  /**
@@ -28,17 +29,40 @@ export class IgxGridToolbarAdvancedFilteringComponent {
28
29
  }
29
30
  constructor(toolbar) {
30
31
  this.toolbar = toolbar;
32
+ this.grid?.advancedFilteringExpressionsTreeChange.subscribe(filteringTree => {
33
+ this.numberOfColumns = this.extractUniqueFieldNamesFromFilterTree(filteringTree).length;
34
+ });
35
+ }
36
+ /**
37
+ * @hidden
38
+ */
39
+ ngAfterViewInit() {
40
+ this.numberOfColumns = this.grid?.advancedFilteringExpressionsTree ? this.extractUniqueFieldNamesFromFilterTree(this.grid?.advancedFilteringExpressionsTree).length : 0;
41
+ }
42
+ extractUniqueFieldNamesFromFilterTree(filteringTree) {
43
+ const columnNames = [];
44
+ if (!filteringTree)
45
+ return columnNames;
46
+ filteringTree.filteringOperands.forEach((expr) => {
47
+ if (expr instanceof FilteringExpressionsTree) {
48
+ columnNames.push(...this.extractUniqueFieldNamesFromFilterTree(expr));
49
+ }
50
+ else {
51
+ columnNames.push(expr.fieldName);
52
+ }
53
+ });
54
+ return [...new Set(columnNames)];
31
55
  }
32
56
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, deps: [{ token: IgxToolbarToken }], target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.1", type: IgxGridToolbarAdvancedFilteringComponent, isStandalone: true, selector: "igx-grid-toolbar-advanced-filtering", inputs: { overlaySettings: "overlaySettings" }, ngImport: i0, template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n", dependencies: [{ kind: "directive", type: IgxButtonDirective, selector: "[igxButton]", inputs: ["selected", "igxButton", "igxLabel"], outputs: ["buttonSelected"] }, { kind: "directive", type: IgxRippleDirective, selector: "[igxRipple]", inputs: ["igxRippleTarget", "igxRipple", "igxRippleDuration", "igxRippleCentered", "igxRippleDisabled"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "active", "name"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
34
58
  }
35
59
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.1", ngImport: i0, type: IgxGridToolbarAdvancedFilteringComponent, decorators: [{
36
60
  type: Component,
37
- args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n [ngClass]=\"grid.advancedFilteringExpressionsTree ? 'igx-grid-toolbar__adv-filter--filtered' : 'igx-grid-toolbar__adv-filter'\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n</button>\n" }]
61
+ args: [{ selector: 'igx-grid-toolbar-advanced-filtering', standalone: true, imports: [IgxButtonDirective, IgxRippleDirective, NgClass, IgxIconComponent, NgIf], template: "<button igxButton=\"outlined\" type=\"button\" name=\"btnAdvancedFiltering\" igxRipple\n [title]=\"grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_tooltip\"\n (click)=\"grid.openAdvancedFilteringDialog(overlaySettings)\"\n class=\"igx-grid-toolbar__adv-filter\">\n <igx-icon>filter_list</igx-icon>\n <span #ref>\n <ng-content></ng-content>\n </span>\n <span *ngIf=\"!ref.childNodes.length\">{{ grid?.resourceStrings.igx_grid_toolbar_advanced_filtering_button_label }}</span>\n <span class=\"igx-adv-filter--column-number\" *ngIf=\"grid?.advancedFilteringExpressionsTree\"> ({{ numberOfColumns }}) </span>\n</button>\n" }]
38
62
  }], ctorParameters: () => [{ type: i1.IgxToolbarToken, decorators: [{
39
63
  type: Inject,
40
64
  args: [IgxToolbarToken]
41
65
  }] }], propDecorators: { overlaySettings: [{
42
66
  type: Input
43
67
  }] } });
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvdG9vbGJhci9ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90b29sYmFyL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxTQUFTLENBQUM7QUFFMUMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNoRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQzs7O0FBRzlFOzs7Ozs7Ozs7Ozs7R0FZRztBQU9ILE1BQU0sT0FBTyx3Q0FBd0M7SUFFakQ7O09BRUc7SUFDSCxJQUFXLElBQUk7UUFDWCxPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDO0lBQzdCLENBQUM7SUFLRCxZQUE4QyxPQUF3QjtRQUF4QixZQUFPLEdBQVAsT0FBTyxDQUFpQjtJQUFJLENBQUM7OEdBWmxFLHdDQUF3QyxrQkFZNUIsZUFBZTtrR0FaM0Isd0NBQXdDLCtJQzVCckQsK21CQVVBLDRDRGdCYyxrQkFBa0Isb0lBQUUsa0JBQWtCLGlLQUFFLE9BQU8sb0ZBQUUsZ0JBQWdCLDJGQUFFLElBQUk7OzJGQUV4RSx3Q0FBd0M7a0JBTnBELFNBQVM7K0JBQ0kscUNBQXFDLGNBRW5DLElBQUksV0FDUCxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLENBQUM7OzBCQWNwRSxNQUFNOzJCQUFDLGVBQWU7eUNBRjdCLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRvb2xiYXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuXG5cbi8qKlxuICogUHJvdmlkZXMgYSBwcmUtY29uZmlndXJlZCBidXR0b24gdG8gb3BlbiB0aGUgYWR2YW5jZWQgZmlsdGVyaW5nIGRpYWxvZyBvZiB0aGUgZ3JpZC5cbiAqXG4gKlxuICogQGlneE1vZHVsZSBJZ3hHcmlkVG9vbGJhck1vZHVsZVxuICogQGlneFBhcmVudCBJZ3hHcmlkVG9vbGJhckNvbXBvbmVudFxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+PC9pZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5cbiAqIDxpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5DdXN0b20gdGV4dDwvaWd4LWdyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmc+XG4gKiBgYGBcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW0lneEJ1dHRvbkRpcmVjdGl2ZSwgSWd4UmlwcGxlRGlyZWN0aXZlLCBOZ0NsYXNzLCBJZ3hJY29uQ29tcG9uZW50LCBOZ0lmXVxufSlcbmV4cG9ydCBjbGFzcyBJZ3hHcmlkVG9vbGJhckFkdmFuY2VkRmlsdGVyaW5nQ29tcG9uZW50IHtcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGdyaWQgY29udGFpbmluZyB0aGlzIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGdyaWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnRvb2xiYXIuZ3JpZDtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdmVybGF5U2V0dGluZ3M6IE92ZXJsYXlTZXR0aW5ncztcblxuICAgIGNvbnN0cnVjdG9yKCBASW5qZWN0KElneFRvb2xiYXJUb2tlbikgcHJpdmF0ZSB0b29sYmFyOiBJZ3hUb29sYmFyVG9rZW4pIHsgfVxufVxuIiwiPGJ1dHRvbiBpZ3hCdXR0b249XCJvdXRsaW5lZFwiIHR5cGU9XCJidXR0b25cIiBuYW1lPVwiYnRuQWR2YW5jZWRGaWx0ZXJpbmdcIiBpZ3hSaXBwbGVcbiAgICBbdGl0bGVdPVwiZ3JpZD8ucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl90b29sdGlwXCJcbiAgICAoY2xpY2spPVwiZ3JpZC5vcGVuQWR2YW5jZWRGaWx0ZXJpbmdEaWFsb2cob3ZlcmxheVNldHRpbmdzKVwiXG4gICAgW25nQ2xhc3NdPVwiZ3JpZC5hZHZhbmNlZEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSA/ICdpZ3gtZ3JpZC10b29sYmFyX19hZHYtZmlsdGVyLS1maWx0ZXJlZCcgOiAnaWd4LWdyaWQtdG9vbGJhcl9fYWR2LWZpbHRlcidcIj5cbiAgICA8aWd4LWljb24+ZmlsdGVyX2xpc3Q8L2lneC1pY29uPlxuICAgIDxzcGFuICNyZWY+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICA8L3NwYW4+XG4gICAgPHNwYW4gKm5nSWY9XCIhcmVmLmNoaWxkTm9kZXMubGVuZ3RoXCI+e3sgZ3JpZD8ucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX3Rvb2xiYXJfYWR2YW5jZWRfZmlsdGVyaW5nX2J1dHRvbl9sYWJlbCB9fTwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvdG9vbGJhci9ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9ncmlkcy90b29sYmFyL2dyaWQtdG9vbGJhci1hZHZhbmNlZC1maWx0ZXJpbmcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRTFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDaEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDOUUsT0FBTyxFQUFFLHdCQUF3QixFQUE2QixNQUFNLGtEQUFrRCxDQUFDOzs7QUFJdkg7Ozs7Ozs7Ozs7OztHQVlHO0FBT0gsTUFBTSxPQUFPLHdDQUF3QztJQUtqRDs7T0FFRztJQUNILElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7SUFDN0IsQ0FBQztJQUtELFlBQThDLE9BQXdCO1FBQXhCLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ2xFLElBQUksQ0FBQyxJQUFJLEVBQUUsc0NBQXNDLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxFQUFFO1lBQ3hFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLHFDQUFxQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUM1RixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRDs7T0FFRztJQUNJLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsSUFBSSxFQUFFLGdDQUFnQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMscUNBQXFDLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxnQ0FBZ0MsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzVLLENBQUM7SUFFUyxxQ0FBcUMsQ0FBQyxhQUF5QztRQUNyRixNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWE7WUFBRSxPQUFPLFdBQVcsQ0FBQztRQUN2QyxhQUFhLENBQUMsaUJBQWlCLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDN0MsSUFBSSxJQUFJLFlBQVksd0JBQXdCLEVBQUUsQ0FBQztnQkFDM0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxxQ0FBcUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQzFFLENBQUM7aUJBQU0sQ0FBQztnQkFDSixXQUFXLENBQUMsSUFBSSxDQUFFLElBQTZCLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDL0QsQ0FBQztRQUNMLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxDQUFDLEdBQUcsSUFBSSxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUNyQyxDQUFDOzhHQXZDUSx3Q0FBd0Msa0JBZTVCLGVBQWU7a0dBZjNCLHdDQUF3QywrSUM5QnJELDJwQkFXQSw0Q0RpQmMsa0JBQWtCLG9JQUFFLGtCQUFrQixpS0FBVyxnQkFBZ0IsMkZBQUUsSUFBSTs7MkZBRXhFLHdDQUF3QztrQkFOcEQsU0FBUzsrQkFDSSxxQ0FBcUMsY0FFbkMsSUFBSSxXQUNQLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLElBQUksQ0FBQzs7MEJBaUJwRSxNQUFNOzJCQUFDLGVBQWU7eUNBRjdCLGVBQWU7c0JBRHJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDb21wb25lbnQsIEluamVjdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IElneFRvb2xiYXJUb2tlbiB9IGZyb20gJy4vdG9rZW4nO1xuaW1wb3J0IHsgT3ZlcmxheVNldHRpbmdzIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvb3ZlcmxheS91dGlsaXRpZXMnO1xuaW1wb3J0IHsgSWd4SWNvbkNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2ljb24vaWNvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBJZ3hSaXBwbGVEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL3JpcHBsZS9yaXBwbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IElneEJ1dHRvbkRpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvYnV0dG9uL2J1dHRvbi5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlLCBJRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcbmltcG9ydCB7IElGaWx0ZXJpbmdFeHByZXNzaW9uIH0gZnJvbSAnLi4vLi4vZGF0YS1vcGVyYXRpb25zL2ZpbHRlcmluZy1leHByZXNzaW9uLmludGVyZmFjZSc7XG5cblxuLyoqXG4gKiBQcm92aWRlcyBhIHByZS1jb25maWd1cmVkIGJ1dHRvbiB0byBvcGVuIHRoZSBhZHZhbmNlZCBmaWx0ZXJpbmcgZGlhbG9nIG9mIHRoZSBncmlkLlxuICpcbiAqXG4gKiBAaWd4TW9kdWxlIElneEdyaWRUb29sYmFyTW9kdWxlXG4gKiBAaWd4UGFyZW50IElneEdyaWRUb29sYmFyQ29tcG9uZW50XG4gKlxuICogQGV4YW1wbGVcbiAqIGBgYGh0bWxcbiAqIDxpZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz48L2lneC1ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nPlxuICogPGlneC1ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nPkN1c3RvbSB0ZXh0PC9pZ3gtZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZz5cbiAqIGBgYFxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1ncmlkLXRvb2xiYXItYWR2YW5jZWQtZmlsdGVyaW5nJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZ3JpZC10b29sYmFyLWFkdmFuY2VkLWZpbHRlcmluZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbSWd4QnV0dG9uRGlyZWN0aXZlLCBJZ3hSaXBwbGVEaXJlY3RpdmUsIE5nQ2xhc3MsIElneEljb25Db21wb25lbnQsIE5nSWZdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRUb29sYmFyQWR2YW5jZWRGaWx0ZXJpbmdDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHByb3RlY3RlZCBudW1iZXJPZkNvbHVtbnM6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBncmlkIGNvbnRhaW5pbmcgdGhpcyBjb21wb25lbnQuXG4gICAgICovXG4gICAgcHVibGljIGdldCBncmlkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50b29sYmFyLmdyaWQ7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3M7XG5cbiAgICBjb25zdHJ1Y3RvciggQEluamVjdChJZ3hUb29sYmFyVG9rZW4pIHByaXZhdGUgdG9vbGJhcjogSWd4VG9vbGJhclRva2VuKSB7XG4gICAgICAgIHRoaXMuZ3JpZD8uYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWVDaGFuZ2Uuc3Vic2NyaWJlKGZpbHRlcmluZ1RyZWUgPT4ge1xuICAgICAgICAgICAgdGhpcy5udW1iZXJPZkNvbHVtbnMgPSB0aGlzLmV4dHJhY3RVbmlxdWVGaWVsZE5hbWVzRnJvbUZpbHRlclRyZWUoZmlsdGVyaW5nVHJlZSkubGVuZ3RoO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5udW1iZXJPZkNvbHVtbnMgPSB0aGlzLmdyaWQ/LmFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlID8gdGhpcy5leHRyYWN0VW5pcXVlRmllbGROYW1lc0Zyb21GaWx0ZXJUcmVlKHRoaXMuZ3JpZD8uYWR2YW5jZWRGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpLmxlbmd0aCA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGV4dHJhY3RVbmlxdWVGaWVsZE5hbWVzRnJvbUZpbHRlclRyZWUoZmlsdGVyaW5nVHJlZT86IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpIDogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCBjb2x1bW5OYW1lcyA9IFtdO1xuICAgICAgICBpZiAoIWZpbHRlcmluZ1RyZWUpIHJldHVybiBjb2x1bW5OYW1lcztcbiAgICAgICAgZmlsdGVyaW5nVHJlZS5maWx0ZXJpbmdPcGVyYW5kcy5mb3JFYWNoKChleHByKSA9PiB7XG4gICAgICAgICAgICBpZiAoZXhwciBpbnN0YW5jZW9mIEZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSkge1xuICAgICAgICAgICAgICAgIGNvbHVtbk5hbWVzLnB1c2goLi4udGhpcy5leHRyYWN0VW5pcXVlRmllbGROYW1lc0Zyb21GaWx0ZXJUcmVlKGV4cHIpKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgY29sdW1uTmFtZXMucHVzaCgoZXhwciBhcyBJRmlsdGVyaW5nRXhwcmVzc2lvbikuZmllbGROYW1lKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICAgIHJldHVybiBbLi4ubmV3IFNldChjb2x1bW5OYW1lcyldO1xuICAgIH1cbn1cbiIsIjxidXR0b24gaWd4QnV0dG9uPVwib3V0bGluZWRcIiB0eXBlPVwiYnV0dG9uXCIgbmFtZT1cImJ0bkFkdmFuY2VkRmlsdGVyaW5nXCIgaWd4UmlwcGxlXG4gICAgW3RpdGxlXT1cImdyaWQ/LnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF90b29sYmFyX2FkdmFuY2VkX2ZpbHRlcmluZ19idXR0b25fdG9vbHRpcFwiXG4gICAgKGNsaWNrKT1cImdyaWQub3BlbkFkdmFuY2VkRmlsdGVyaW5nRGlhbG9nKG92ZXJsYXlTZXR0aW5ncylcIlxuICAgIGNsYXNzPVwiaWd4LWdyaWQtdG9vbGJhcl9fYWR2LWZpbHRlclwiPlxuICAgIDxpZ3gtaWNvbj5maWx0ZXJfbGlzdDwvaWd4LWljb24+XG4gICAgPHNwYW4gI3JlZj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvc3Bhbj5cbiAgICA8c3BhbiAqbmdJZj1cIiFyZWYuY2hpbGROb2Rlcy5sZW5ndGhcIj57eyBncmlkPy5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfdG9vbGJhcl9hZHZhbmNlZF9maWx0ZXJpbmdfYnV0dG9uX2xhYmVsIH19PC9zcGFuPlxuICAgIDxzcGFuIGNsYXNzPVwiaWd4LWFkdi1maWx0ZXItLWNvbHVtbi1udW1iZXJcIiAqbmdJZj1cImdyaWQ/LmFkdmFuY2VkRmlsdGVyaW5nRXhwcmVzc2lvbnNUcmVlXCI+ICh7eyBudW1iZXJPZkNvbHVtbnMgfX0pIDwvc3Bhbj5cbjwvYnV0dG9uPlxuIl19
@@ -17,7 +17,7 @@ export class ExcelStrings {
17
17
  }
18
18
  static getStyles() {
19
19
  return ExcelStrings.XML_STRING +
20
- '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><numFmts count="5"><numFmt numFmtId="164" formatCode="&quot;$&quot;#,##0.00"/><numFmt numFmtId="165" formatCode="[$£-809]#,##0.00"/><numFmt numFmtId="166" formatCode="[$¥-804]#,##0.00"/><numFmt numFmtId="167" formatCode="#,##0.00\ [$€-1]"/><numFmt numFmtId="168" formatCode="[$¥-411]#,##0.00"/></numFmts><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><sz val="11"/><color rgb="FFB7B7B7"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts><fills count="3"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill><fill><patternFill patternType="solid"><fgColor rgb="FF0D1822"/><bgColor indexed="64"/></patternFill></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="13"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"><alignment horizontal="center" vertical="center"/></xf><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="21" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="22" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="10" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>';
20
+ '<styleSheet xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x14ac x16r2" xmlns:x14ac="http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac" xmlns:x16r2="http://schemas.microsoft.com/office/spreadsheetml/2015/02/main"><numFmts count="5"><numFmt numFmtId="164" formatCode="&quot;$&quot;#,##0.00"/><numFmt numFmtId="165" formatCode="[$£-809]#,##0.00"/><numFmt numFmtId="166" formatCode="[$¥-804]#,##0.00"/><numFmt numFmtId="167" formatCode="#,##0.00\ [$€-1]"/><numFmt numFmtId="168" formatCode="[$¥-411]#,##0.00"/></numFmts><fonts count="2" x14ac:knownFonts="1"><font><sz val="11"/><color theme="1"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font><font><b/><sz val="11"/><color theme="0"/><name val="Calibri"/><family val="2"/><scheme val="minor"/></font></fonts><fills count="3"><fill><patternFill patternType="none"/></fill><fill><patternFill patternType="gray125"/></fill><fill><patternFill patternType="solid"><fgColor theme="4"/><bgColor indexed="64"/></patternFill></fill></fills><borders count="1"><border><left/><right/><top/><bottom/><diagonal/></border></borders><cellStyleXfs count="1"><xf numFmtId="0" fontId="0" fillId="0" borderId="0"/></cellStyleXfs><cellXfs count="13"><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="14" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="0" fontId="1" fillId="2" borderId="0" xfId="0"/><xf numFmtId="0" fontId="0" fillId="0" borderId="0" xfId="0" applyAlignment="1"><alignment horizontal="center" vertical="center"/></xf><xf numFmtId="164" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="165" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="166" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="167" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="168" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="21" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="22" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/><xf numFmtId="10" fontId="0" fillId="0" borderId="0" xfId="0" applyNumberFormat="1"/></cellXfs><cellStyles count="1"><cellStyle name="Normal" xfId="0" builtinId="0"/></cellStyles><dxfs count="0"/><tableStyles count="0" defaultTableStyle="TableStyleMedium2" defaultPivotStyle="PivotStyleLight16"/><extLst><ext uri="{EB79DEF2-80B8-43e5-95BD-54CBDDF9020C}" xmlns:x14="http://schemas.microsoft.com/office/spreadsheetml/2009/9/main"><x14:slicerStyles defaultSlicerStyle="SlicerStyleLight1"/></ext><ext uri="{9260A510-F301-46a8-8635-F512D64BE5F5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:timelineStyles defaultTimelineStyle="TimeSlicerStyleLight1"/></ext></extLst></styleSheet>';
21
21
  }
22
22
  static getWorkbook(worksheetName) {
23
23
  return ExcelStrings.XML_STRING + `<workbook xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main" xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" mc:Ignorable="x15" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><fileVersion appName="xl" lastEdited="6" lowestEdited="6" rupBuild="14420"/><workbookPr filterPrivacy="1" defaultThemeVersion="164011"/><bookViews><workbookView xWindow="0" yWindow="0" windowWidth="22260" windowHeight="12645"/></bookViews><sheets><sheet name="${worksheetName}" sheetId="1" r:id="rId1"/></sheets><calcPr calcId="162913"/><extLst><ext uri="{140A7094-0E35-4892-8432-C4D2E57EDEB5}" xmlns:x15="http://schemas.microsoft.com/office/spreadsheetml/2010/11/main"><x15:workbookPr chartTrackingRefBase="1"/></ext></extLst></workbook>`;
@@ -91,4 +91,4 @@ ${tableParts}</worksheet>`;
91
91
  return returnString;
92
92
  }
93
93
  }
94
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC9leGNlbC1zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLE9BQU8sWUFBWTtJQUNyQiw2QkFBNkI7YUFDZCxlQUFVLEdBQUcsNENBQTRDLENBQUM7YUFDMUQsK0JBQTBCLEdBQUcsZ0pBQWdKLENBQUM7SUFFdEwsTUFBTSxDQUFDLE9BQU87UUFDakIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHFoQkFBcWhCLENBQUM7SUFDM2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQXFCO1FBQ3RDLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxrZ0JBQWtnQixhQUFhLHFOQUFxTixDQUFDO0lBQzF3QixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDakIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLDBoQkFBMGhCLENBQUM7SUFDaGtCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcseWhOQUF5aE4sQ0FBQztJQUMvak4sQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTO1FBQ25CLE9BQU8sWUFBWSxDQUFDLFVBQVU7WUFDOUIsay9GQUFrL0YsQ0FBQztJQUN2L0YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBcUI7UUFDM0MsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHNrQkFBc2tCLGFBQWEsd1FBQXdRLENBQUM7SUFDajRCLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCO1FBQzFCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyw4T0FBOE8sQ0FBQztJQUNwUixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0I7UUFDMUMs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QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAaGlkZGVuICovXG5leHBvcnQgY2xhc3MgRXhjZWxTdHJpbmdzIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAgbWF4LWxlbiAqL1xuICAgIHByaXZhdGUgc3RhdGljIFhNTF9TVFJJTkcgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XFxyXFxuJztcbiAgICBwcml2YXRlIHN0YXRpYyBTSEFSRURfU1RSSU5HX1JFTEFUSU9OU0hJUCA9ICc8UmVsYXRpb25zaGlwIElkPVwicklkNFwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3NcIiBUYXJnZXQ9XCJzaGFyZWRTdHJpbmdzLnhtbFwiIC8+JztcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVscygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkM1wiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2V4dGVuZGVkLXByb3BlcnRpZXNcIiBUYXJnZXQ9XCJkb2NQcm9wcy9hcHAueG1sXCIvPjxSZWxhdGlvbnNoaXAgSWQ9XCJySWQyXCIgVHlwZT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXNcIiBUYXJnZXQ9XCJkb2NQcm9wcy9jb3JlLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50XCIgVGFyZ2V0PVwieGwvd29ya2Jvb2sueG1sXCIvPjwvUmVsYXRpb25zaGlwcz4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXBwKHdvcmtzaGVldE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8UHJvcGVydGllcyB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXNcIiB4bWxuczp2dD1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzXCI+PEFwcGxpY2F0aW9uPk1pY3Jvc29mdCBFeGNlbDwvQXBwbGljYXRpb24+PERvY1NlY3VyaXR5PjA8L0RvY1NlY3VyaXR5PjxTY2FsZUNyb3A+ZmFsc2U8L1NjYWxlQ3JvcD48SGVhZGluZ1BhaXJzPjx2dDp2ZWN0b3Igc2l6ZT1cIjJcIiBiYXNlVHlwZT1cInZhcmlhbnRcIj48dnQ6dmFyaWFudD48dnQ6bHBzdHI+V29ya3NoZWV0czwvdnQ6bHBzdHI+PC92dDp2YXJpYW50Pjx2dDp2YXJpYW50Pjx2dDppND4xPC92dDppND48L3Z0OnZhcmlhbnQ+PC92dDp2ZWN0b3I+PC9IZWFkaW5nUGFpcnM+PFRpdGxlc09mUGFydHM+PHZ0OnZlY3RvciBzaXplPVwiMVwiIGJhc2VUeXBlPVwibHBzdHJcIj48dnQ6bHBzdHI+JHt3b3Jrc2hlZXROYW1lfTwvdnQ6bHBzdHI+PC92dDp2ZWN0b3I+PC9UaXRsZXNPZlBhcnRzPjxDb21wYW55PjwvQ29tcGFueT48TGlua3NVcFRvRGF0ZT5mYWxzZTwvTGlua3NVcFRvRGF0ZT48U2hhcmVkRG9jPmZhbHNlPC9TaGFyZWREb2M+PEh5cGVybGlua3NDaGFuZ2VkPmZhbHNlPC9IeXBlcmxpbmtzQ2hhbmdlZD48QXBwVmVyc2lvbj4xNi4wMzAwPC9BcHBWZXJzaW9uPjwvUHJvcGVydGllcz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29yZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPGNwOmNvcmVQcm9wZXJ0aWVzIHhtbG5zOmNwPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXNcIiB4bWxuczpkYz1cImh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvXCIgeG1sbnM6ZGN0ZXJtcz1cImh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9cIiB4bWxuczpkY21pdHlwZT1cImh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiPjxkYzpjcmVhdG9yPjwvZGM6Y3JlYXRvcj48Y3A6bGFzdE1vZGlmaWVkQnk+PC9jcDpsYXN0TW9kaWZpZWRCeT48ZGN0ZXJtczpjcmVhdGVkIHhzaTp0eXBlPVwiZGN0ZXJtczpXM0NEVEZcIj4yMDE1LTA2LTA1VDE4OjE3OjIwWjwvZGN0ZXJtczpjcmVhdGVkPjxkY3Rlcm1zOm1vZGlmaWVkIHhzaTp0eXBlPVwiZGN0ZXJtczpXM0NEVEZcIj4yMDE1LTA2LTA1VDE4OjE3OjI2WjwvZGN0ZXJtczptb2RpZmllZD48L2NwOmNvcmVQcm9wZXJ0aWVzPic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPGE6dGhlbWUgeG1sbnM6YT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluXCIgbmFtZT1cIk9mZmljZSBUaGVtZVwiPjxhOnRoZW1lRWxlbWVudHM+PGE6Y2xyU2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTpkazE+PGE6c3lzQ2xyIHZhbD1cIndpbmRvd1RleHRcIiBsYXN0Q2xyPVwiMDAwMDAwXCIvPjwvYTpkazE+PGE6bHQxPjxhOnN5c0NsciB2YWw9XCJ3aW5kb3dcIiBsYXN0Q2xyPVwiRkZGRkZGXCIvPjwvYTpsdDE+PGE6ZGsyPjxhOnNyZ2JDbHIgdmFsPVwiNDQ1NDZBXCIvPjwvYTpkazI+PGE6bHQyPjxhOnNyZ2JDbHIgdmFsPVwiRTdFNkU2XCIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD1cIjVCOUJENVwiLz48L2E6YWNjZW50MT48YTphY2NlbnQyPjxhOnNyZ2JDbHIgdmFsPVwiRUQ3RDMxXCIvPjwvYTphY2NlbnQyPjxhOmFjY2VudDM+PGE6c3JnYkNsciB2YWw9XCJBNUE1QTVcIi8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD1cIkZGQzAwMFwiLz48L2E6YWNjZW50ND48YTphY2NlbnQ1PjxhOnNyZ2JDbHIgdmFsPVwiNDQ3MkM0XCIvPjwvYTphY2NlbnQ1PjxhOmFjY2VudDY+PGE6c3JnYkNsciB2YWw9XCI3MEFENDdcIi8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9XCIwNTYzQzFcIi8+PC9hOmhsaW5rPjxhOmZvbEhsaW5rPjxhOnNyZ2JDbHIgdmFsPVwiOTU0RjcyXCIvPjwvYTpmb2xIbGluaz48L2E6Y2xyU2NoZW1lPjxhOmZvbnRTY2hlbWUgbmFtZT1cIk9mZmljZVwiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT1cIkNhbGlicmkgTGlnaHRcIiBwYW5vc2U9XCIwMjBGMDMwMjAyMDIwNDAzMDIwNFwiLz48YTplYSB0eXBlZmFjZT1cIlwiLz48YTpjcyB0eXBlZmFjZT1cIlwiLz48YTpmb250IHNjcmlwdD1cIkpwYW5cIiB0eXBlZmFjZT1cIua4uOOCtOOCt+ODg+OCryBMaWdodFwiLz48YTpmb250IHNjcmlwdD1cIkhhbmdcIiB0eXBlZmFjZT1cIuunkeydgCDqs6DrlJVcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5zXCIgdHlwZWZhY2U9XCLnrYnnur8gTGlnaHRcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW50XCIgdHlwZWZhY2U9XCLmlrDntLDmmI7pq5RcIi8+PGE6Zm9udCBzY3JpcHQ9XCJBcmFiXCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIZWJyXCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJUaGFpXCIgdHlwZWZhY2U9XCJUYWhvbWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJFdGhpXCIgdHlwZWZhY2U9XCJOeWFsYVwiLz48YTpmb250IHNjcmlwdD1cIkJlbmdcIiB0eXBlZmFjZT1cIlZyaW5kYVwiLz48YTpmb250IHNjcmlwdD1cIkd1anJcIiB0eXBlZmFjZT1cIlNocnV0aVwiLz48YTpmb250IHNjcmlwdD1cIktobXJcIiB0eXBlZmFjZT1cIk1vb2xCb3JhblwiLz48YTpmb250IHNjcmlwdD1cIktuZGFcIiB0eXBlZmFjZT1cIlR1bmdhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VydVwiIHR5cGVmYWNlPVwiUmFhdmlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDYW5zXCIgdHlwZWZhY2U9XCJFdXBoZW1pYVwiLz48YTpmb250IHNjcmlwdD1cIkNoZXJcIiB0eXBlZmFjZT1cIlBsYW50YWdlbmV0IENoZXJva2VlXCIvPjxhOmZvbnQgc2NyaXB0PVwiWWlpaVwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFlpIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGlidFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IEhpbWFsYXlhXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhYVwiIHR5cGVmYWNlPVwiTVYgQm9saVwiLz48YTpmb250IHNjcmlwdD1cIkRldmFcIiB0eXBlZmFjZT1cIk1hbmdhbFwiLz48YTpmb250IHNjcmlwdD1cIlRlbHVcIiB0eXBlZmFjZT1cIkdhdXRhbWlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUYW1sXCIgdHlwZWZhY2U9XCJMYXRoYVwiLz48YTpmb250IHNjcmlwdD1cIlN5cmNcIiB0eXBlZmFjZT1cIkVzdHJhbmdlbG8gRWRlc3NhXCIvPjxhOmZvbnQgc2NyaXB0PVwiT3J5YVwiIHR5cGVmYWNlPVwiS2FsaW5nYVwiLz48YTpmb250IHNjcmlwdD1cIk1seW1cIiB0eXBlZmFjZT1cIkthcnRpa2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJMYW9vXCIgdHlwZWZhY2U9XCJEb2tDaGFtcGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTaW5oXCIgdHlwZWZhY2U9XCJJc2tvb2xhIFBvdGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNb25nXCIgdHlwZWZhY2U9XCJNb25nb2xpYW4gQmFpdGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJWaWV0XCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJVaWdoXCIgdHlwZWZhY2U9XCJNaWNyb3NvZnQgVWlnaHVyXCIvPjxhOmZvbnQgc2NyaXB0PVwiR2VvclwiIHR5cGVmYWNlPVwiU3lsZmFlblwiLz48L2E6bWFqb3JGb250PjxhOm1pbm9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT1cIkNhbGlicmlcIiBwYW5vc2U9XCIwMjBGMDUwMjAyMDIwNDAzMDIwNFwiLz48YTplYSB0eXBlZmFjZT1cIlwiLz48YTpjcyB0eXBlZmFjZT1cIlwiLz48YTpmb250IHNjcmlwdD1cIkpwYW5cIiB0eXBlZmFjZT1cIua4uOOCtOOCt+ODg+OCr1wiLz48YTpmb250IHNjcmlwdD1cIkhhbmdcIiB0eXBlZmFjZT1cIuunkeydgCDqs6DrlJVcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5zXCIgdHlwZWZhY2U9XCLnrYnnur9cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW50XCIgdHlwZWZhY2U9XCLmlrDntLDmmI7pq5RcIi8+PGE6Zm9udCBzY3JpcHQ9XCJBcmFiXCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIkhlYnJcIiB0eXBlZmFjZT1cIkFyaWFsXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhaVwiIHR5cGVmYWNlPVwiVGFob21hXCIvPjxhOmZvbnQgc2NyaXB0PVwiRXRoaVwiIHR5cGVmYWNlPVwiTnlhbGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJCZW5nXCIgdHlwZWZhY2U9XCJWcmluZGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHdWpyXCIgdHlwZWZhY2U9XCJTaHJ1dGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLaG1yXCIgdHlwZWZhY2U9XCJEYXVuUGVuaFwiLz48YTpmb250IHNjcmlwdD1cIktuZGFcIiB0eXBlZmFjZT1cIlR1bmdhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VydVwiIHR5cGVmYWNlPVwiUmFhdmlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDYW5zXCIgdHlwZWZhY2U9XCJFdXBoZW1pYVwiLz48YTpmb250IHNjcmlwdD1cIkNoZXJcIiB0eXBlZmFjZT1cIlBsYW50YWdlbmV0IENoZXJva2VlXCIvPjxhOmZvbnQgc2NyaXB0PVwiWWlpaVwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFlpIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGlidFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IEhpbWFsYXlhXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhYVwiIHR5cGVmYWNlPVwiTVYgQm9saVwiLz48YTpmb250IHNjcmlwdD1cIkRldmFcIiB0eXBlZmFjZT1cIk1hbmdhbFwiLz48YTpmb250IHNjcmlwdD1cIlRlbHVcIiB0eXBlZmFjZT1cIkdhdXRhbWlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUYW1sXCIgdHlwZWZhY2U9XCJMYXRoYVwiLz48YTpmb250IHNjcmlwdD1cIlN5cmNcIiB0eXBlZmFjZT1cIkVzdHJhbmdlbG8gRWRlc3NhXCIvPjxhOmZvbnQgc2NyaXB0PVwiT3J5YVwiIHR5cGVmYWNlPVwiS2FsaW5nYVwiLz48YTpmb250IHNjcmlwdD1cIk1seW1cIiB0eXBlZmFjZT1cIkthcnRpa2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJMYW9vXCIgdHlwZWZhY2U9XCJEb2tDaGFtcGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTaW5oXCIgdHlwZWZhY2U9XCJJc2tvb2xhIFBvdGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNb25nXCIgdHlwZWZhY2U9XCJNb25nb2xpYW4gQmFpdGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJWaWV0XCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIlVpZ2hcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBVaWdodXJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHZW9yXCIgdHlwZWZhY2U9XCJTeWxmYWVuXCIvPjwvYTptaW5vckZvbnQ+PC9hOmZvbnRTY2hlbWU+PGE6Zm10U2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTpmaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT1cIjFcIj48YTpnc0xzdD48YTpncyBwb3M9XCIwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjExMDAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnRpbnQgdmFsPVwiNjcwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiNTAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMDMwMDBcIi8+PGE6dGludCB2YWw9XCI3MzAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMDkwMDBcIi8+PGE6dGludCB2YWw9XCI4MTAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnNhdE1vZCB2YWw9XCIxMDMwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMjAwMFwiLz48YTp0aW50IHZhbD1cIjk0MDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6c2F0TW9kIHZhbD1cIjExMDAwMFwiLz48YTpsdW1Nb2QgdmFsPVwiMTAwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjEwMDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiOTkwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEyMDAwMFwiLz48YTpzaGFkZSB2YWw9XCI3ODAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48L2E6ZmlsbFN0eWxlTHN0PjxhOmxuU3R5bGVMc3Q+PGE6bG4gdz1cIjYzNTBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48YTpsbiB3PVwiMTI3MDBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48YTpsbiB3PVwiMTkwNTBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48L2E6bG5TdHlsZUxzdD48YTplZmZlY3RTdHlsZUxzdD48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3QvPjwvYTplZmZlY3RTdHlsZT48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3QvPjwvYTplZmZlY3RTdHlsZT48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3Q+PGE6b3V0ZXJTaGR3IGJsdXJSYWQ9XCI1NzE1MFwiIGRpc3Q9XCIxOTA1MFwiIGRpcj1cIjU0MDAwMDBcIiBhbGduPVwiY3RyXCIgcm90V2l0aFNoYXBlPVwiMFwiPjxhOnNyZ2JDbHIgdmFsPVwiMDAwMDAwXCI+PGE6YWxwaGEgdmFsPVwiNjMwMDBcIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48L2E6ZWZmZWN0U3R5bGVMc3Q+PGE6YmdGaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTp0aW50IHZhbD1cIjk1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxNzAwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT1cIjFcIj48YTpnc0xzdD48YTpncyBwb3M9XCIwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5MzAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTUwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjk4MDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDIwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiNTAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTp0aW50IHZhbD1cIjk4MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMzAwMDBcIi8+PGE6c2hhZGUgdmFsPVwiOTAwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMzAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpzaGFkZSB2YWw9XCI2MzAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTIwMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpsaW4gYW5nPVwiNTQwMDAwMFwiIHNjYWxlZD1cIjBcIi8+PC9hOmdyYWRGaWxsPjwvYTpiZ0ZpbGxTdHlsZUxzdD48L2E6Zm10U2NoZW1lPjwvYTp0aGVtZUVsZW1lbnRzPjxhOm9iamVjdERlZmF1bHRzLz48YTpleHRyYUNsclNjaGVtZUxzdC8+PGE6ZXh0THN0PjxhOmV4dCB1cmk9XCJ7MDVBNEMyNUMtMDg1RS00MzQwLTg1QTMtQTU1MzFFNTEwREIyfVwiPjx0aG0xNTp0aGVtZUZhbWlseSB4bWxuczp0aG0xNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3RoZW1lbWwvMjAxMi9tYWluXCIgbmFtZT1cIk9mZmljZSBUaGVtZVwiIGlkPVwiezYyRjkzOUI2LTkzQUYtNERCOC05QzZCLUQ2QzdERkRDNTg5Rn1cIiB2aWQ9XCJ7NEEzQzQ2RTgtNjFDQy00NjAzLUE1ODktNzQyMkE0N0E4RTRBfVwiLz48L2E6ZXh0PjwvYTpleHRMc3Q+PC9hOnRoZW1lPic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICtcbiAgICAgICAgJzxzdHlsZVNoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNGFjIHgxNnIyXCIgeG1sbnM6eDE0YWM9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hY1wiIHhtbG5zOngxNnIyPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE1LzAyL21haW5cIj48bnVtRm10cyBjb3VudD1cIjVcIj48bnVtRm10IG51bUZtdElkPVwiMTY0XCIgZm9ybWF0Q29kZT1cIiZxdW90OyQmcXVvdDsjLCMjMC4wMFwiLz48bnVtRm10IG51bUZtdElkPVwiMTY1XCIgZm9ybWF0Q29kZT1cIlskwqMtODA5XSMsIyMwLjAwXCIvPjxudW1GbXQgbnVtRm10SWQ9XCIxNjZcIiBmb3JtYXRDb2RlPVwiWyTCpS04MDRdIywjIzAuMDBcIi8+PG51bUZtdCBudW1GbXRJZD1cIjE2N1wiIGZvcm1hdENvZGU9XCIjLCMjMC4wMFxcIFsk4oKsLTFdXCIvPjxudW1GbXQgbnVtRm10SWQ9XCIxNjhcIiBmb3JtYXRDb2RlPVwiWyTCpS00MTFdIywjIzAuMDBcIi8+PC9udW1GbXRzPjxmb250cyBjb3VudD1cIjJcIiB4MTRhYzprbm93bkZvbnRzPVwiMVwiPjxmb250PjxzeiB2YWw9XCIxMVwiLz48Y29sb3IgdGhlbWU9XCIxXCIvPjxuYW1lIHZhbD1cIkNhbGlicmlcIi8+PGZhbWlseSB2YWw9XCIyXCIvPjxzY2hlbWUgdmFsPVwibWlub3JcIi8+PC9mb250Pjxmb250PjxzeiB2YWw9XCIxMVwiLz48Y29sb3IgcmdiPVwiRkZCN0I3QjdcIi8+PG5hbWUgdmFsPVwiQ2FsaWJyaVwiLz48ZmFtaWx5IHZhbD1cIjJcIi8+PHNjaGVtZSB2YWw9XCJtaW5vclwiLz48L2ZvbnQ+PC9mb250cz48ZmlsbHMgY291bnQ9XCIzXCI+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPVwibm9uZVwiLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPVwiZ3JheTEyNVwiLz48L2ZpbGw+PGZpbGw+PHBhdHRlcm5GaWxsIHBhdHRlcm5UeXBlPVwic29saWRcIj48ZmdDb2xvciByZ2I9XCJGRjBEMTgyMlwiLz48YmdDb2xvciBpbmRleGVkPVwiNjRcIi8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PC9maWxscz48Ym9yZGVycyBjb3VudD1cIjFcIj48Ym9yZGVyPjxsZWZ0Lz48cmlnaHQvPjx0b3AvPjxib3R0b20vPjxkaWFnb25hbC8+PC9ib3JkZXI+PC9ib3JkZXJzPjxjZWxsU3R5bGVYZnMgY291bnQ9XCIxXCI+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIvPjwvY2VsbFN0eWxlWGZzPjxjZWxsWGZzIGNvdW50PVwiMTNcIj48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiLz48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIxNFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjFcIiBmaWxsSWQ9XCIyXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseUFsaWdubWVudD1cIjFcIj48YWxpZ25tZW50IGhvcml6b250YWw9XCJjZW50ZXJcIiB2ZXJ0aWNhbD1cImNlbnRlclwiLz48L3hmPjx4ZiBudW1GbXRJZD1cIjE2NFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMTY1XCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIxNjZcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlOdW1iZXJGb3JtYXQ9XCIxXCIvPjx4ZiBudW1GbXRJZD1cIjE2N1wiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMTY4XCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIyMVwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMjJcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlOdW1iZXJGb3JtYXQ9XCIxXCIvPjx4ZiBudW1GbXRJZD1cIjEwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9XCIxXCI+PGNlbGxTdHlsZSBuYW1lPVwiTm9ybWFsXCIgeGZJZD1cIjBcIiBidWlsdGluSWQ9XCIwXCIvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD1cIjBcIi8+PHRhYmxlU3R5bGVzIGNvdW50PVwiMFwiIGRlZmF1bHRUYWJsZVN0eWxlPVwiVGFibGVTdHlsZU1lZGl1bTJcIiBkZWZhdWx0UGl2b3RTdHlsZT1cIlBpdm90U3R5bGVMaWdodDE2XCIvPjxleHRMc3Q+PGV4dCB1cmk9XCJ7RUI3OURFRjItODBCOC00M2U1LTk1QkQtNTRDQkRERjkwMjBDfVwiIHhtbG5zOngxND1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L21haW5cIj48eDE0OnNsaWNlclN0eWxlcyBkZWZhdWx0U2xpY2VyU3R5bGU9XCJTbGljZXJTdHlsZUxpZ2h0MVwiLz48L2V4dD48ZXh0IHVyaT1cIns5MjYwQTUxMC1GMzAxLTQ2YTgtODYzNS1GNTEyRDY0QkU1RjV9XCIgeG1sbnM6eDE1PVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDEwLzExL21haW5cIj48eDE1OnRpbWVsaW5lU3R5bGVzIGRlZmF1bHRUaW1lbGluZVN0eWxlPVwiVGltZVNsaWNlclN0eWxlTGlnaHQxXCIvPjwvZXh0PjwvZXh0THN0Pjwvc3R5bGVTaGVldD4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya2Jvb2sod29ya3NoZWV0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgYDx3b3JrYm9vayB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOnI9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNVwiIHhtbG5zOngxNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxMC8xMS9tYWluXCI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9XCJ4bFwiIGxhc3RFZGl0ZWQ9XCI2XCIgbG93ZXN0RWRpdGVkPVwiNlwiIHJ1cEJ1aWxkPVwiMTQ0MjBcIi8+PHdvcmtib29rUHIgZmlsdGVyUHJpdmFjeT1cIjFcIiBkZWZhdWx0VGhlbWVWZXJzaW9uPVwiMTY0MDExXCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PVwiMFwiIHlXaW5kb3c9XCIwXCIgd2luZG93V2lkdGg9XCIyMjI2MFwiIHdpbmRvd0hlaWdodD1cIjEyNjQ1XCIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9XCIke3dvcmtzaGVldE5hbWV9XCIgc2hlZXRJZD1cIjFcIiByOmlkPVwicklkMVwiLz48L3NoZWV0cz48Y2FsY1ByIGNhbGNJZD1cIjE2MjkxM1wiLz48ZXh0THN0PjxleHQgdXJpPVwiezE0MEE3MDk0LTBFMzUtNDg5Mi04NDMyLUM0RDJFNTdFREVCNX1cIiB4bWxuczp4MTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpblwiPjx4MTU6d29ya2Jvb2tQciBjaGFydFRyYWNraW5nUmVmQmFzZT1cIjFcIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya3NoZWV0UmVscygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RhYmxlXCIgVGFyZ2V0PVwiLi4vdGFibGVzL3RhYmxlMS54bWxcIi8+PC9SZWxhdGlvbnNoaXBzPmA7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRXb3JrYm9va1JlbHMoaGFzU2hhcmVkU3RyaW5ncyk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXRWYWwgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8UmVsYXRpb25zaGlwcyB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwc1wiPjxSZWxhdGlvbnNoaXAgSWQ9XCJySWQzXCIgVHlwZT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzXCIgVGFyZ2V0PVwic3R5bGVzLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMlwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lXCIgVGFyZ2V0PVwidGhlbWUvdGhlbWUxLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldFwiIFRhcmdldD1cIndvcmtzaGVldHMvc2hlZXQxLnhtbFwiLz5gO1xuXG4gICAgICAgIGlmIChoYXNTaGFyZWRTdHJpbmdzKSB7XG4gICAgICAgICAgICByZXRWYWwgKz0gRXhjZWxTdHJpbmdzLlNIQVJFRF9TVFJJTkdfUkVMQVRJT05TSElQO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0VmFsICs9ICc8L1JlbGF0aW9uc2hpcHM+JztcblxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2hlZXRYTUwoZGltZW5zaW9uOiBzdHJpbmcsIGZyZWV6ZVBhbmU6IHN0cmluZywgY29sczogc3RyaW5nLCBzaGVldERhdGE6IHN0cmluZywgaGFzVGFibGU6IGJvb2xlYW4sIG91dGxpbmVMZXZlbCA9IDAsIGlzSGllcmFyY2hpY2FsOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGFzT3V0bGluZSA9IG91dGxpbmVMZXZlbCA+IDA7XG4gICAgICAgIGNvbnN0IHRhYmxlUGFydHMgPSBoYXNUYWJsZSA/ICc8dGFibGVQYXJ0cyBjb3VudD1cIjFcIj48dGFibGVQYXJ0IHI6aWQ9XCJySWQxXCIvPjwvdGFibGVQYXJ0cz4nIDogJyc7XG4gICAgICAgIGNvbnN0IHNoZWV0T3V0bGluZVByb3AgPSBoYXNPdXRsaW5lID8gJzxzaGVldFByPjxvdXRsaW5lUHIgc3VtbWFyeUJlbG93PVwiMFwiLz48L3NoZWV0UHI+JyA6ICcnO1xuICAgICAgICBjb25zdCBzT3V0bGluZUxldmVsID0gIGhhc091dGxpbmUgPyBgb3V0bGluZUxldmVsUm93PVwiJHtvdXRsaW5lTGV2ZWx9XCJgIDogJyc7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBpc0hpZXJhcmNoaWNhbCA/ICcnIDogYDxkaW1lbnNpb24gcmVmPVwiJHtkaW1lbnNpb259XCIvPmA7XG5cbiAgICAgICAgLy8gcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICtcbiAgICAgICAgLy8gICAgICc8d29ya3NoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6cj1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHNcIiB4bWxuczptYz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2XCIgbWM6SWdub3JhYmxlPVwieDE0YWNcIiB4bWxuczp4MTRhYz1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjXCI+PGRpbWVuc2lvbiByZWY9XCInICsgZGltZW5zaW9uICsgJ1wiLz48c2hlZXRWaWV3cz48c2hlZXRWaWV3IHRhYlNlbGVjdGVkPVwiMVwiIHdvcmtib29rVmlld0lkPVwiMFwiPicgKyBmcmVlemVQYW5lICsgJzwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz48c2hlZXRGb3JtYXRQciBkZWZhdWx0Um93SGVpZ2h0PVwiMTVcIiB4MTRhYzpkeURlc2NlbnQ9XCIwLjI1XCIvPicgKyBjb2xzICsgc2hlZXREYXRhICsgJzxwYWdlTWFyZ2lucyBsZWZ0PVwiMC43XCIgcmlnaHQ9XCIwLjdcIiB0b3A9XCIwLjc1XCIgYm90dG9tPVwiMC43NVwiIGhlYWRlcj1cIjAuM1wiIGZvb3Rlcj1cIjAuM1wiLz4nICsgdGFibGVQYXJ0cyArICc8L3dvcmtzaGVldD4nO1xuXG4gICAgICAgIHJldHVybiBgJHtFeGNlbFN0cmluZ3MuWE1MX1NUUklOR31cbjx3b3Jrc2hlZXQgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiB4bWxuczpyPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwc1wiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTRhY1wiIHhtbG5zOngxNGFjPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWNcIj5cbiR7c2hlZXRPdXRsaW5lUHJvcH1cbiR7ZGltZW5zaW9uc31cbjxzaGVldFZpZXdzPjxzaGVldFZpZXcgdGFiU2VsZWN0ZWQ9XCIxXCIgd29ya2Jvb2tWaWV3SWQ9XCIwXCI+JHtmcmVlemVQYW5lfTwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz5cbjxzaGVldEZvcm1hdFByIGRlZmF1bHRSb3dIZWlnaHQ9XCIxNVwiICR7c091dGxpbmVMZXZlbH0geDE0YWM6ZHlEZXNjZW50PVwiMC4yNVwiLz5cbiR7Y29sc31cbiR7c2hlZXREYXRhfVxuPHBhZ2VNYXJnaW5zIGxlZnQ9XCIwLjdcIiByaWdodD1cIjAuN1wiIHRvcD1cIjAuNzVcIiBib3R0b209XCIwLjc1XCIgaGVhZGVyPVwiMC4zXCIgZm9vdGVyPVwiMC4zXCIvPlxuJHt0YWJsZVBhcnRzfTwvd29ya3NoZWV0PmA7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFNoYXJlZFN0cmluZ1hNTChjb3VudDogbnVtYmVyLCB1bmlxdWVDb3VudDogbnVtYmVyLCB0YWJsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxzc3QgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiBjb3VudD1cIicgKyBjb3VudCArICdcIiB1bmlxdWVDb3VudD1cIicgKyB1bmlxdWVDb3VudCArICdcIj4nICsgdGFibGUgKyAnPC9zc3Q+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlc1hNTChoYXNTaGFyZWRTdHJpbmdzOiBib29sZWFuLCBoYXNUYWJsZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGxldCBjb250ZW50VHlwZXMgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgIGA8VHlwZXMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXNcXFwiPlxuICAgICAgICAgICAgPERlZmF1bHQgRXh0ZW5zaW9uPVwicmVsc1wiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIi8+XG4gICAgICAgICAgICA8RGVmYXVsdCBFeHRlbnNpb249XCJ4bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC93b3JrYm9vay54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90aGVtZS90aGVtZTEueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3N0eWxlcy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvY29yZS54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvYXBwLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCIvPmA7XG5cbiAgICAgICAgY29udGVudFR5cGVzICs9IGhhc1NoYXJlZFN0cmluZ3MgP1xuICAgICAgICBgXHQ8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvc2hhcmVkU3RyaW5ncy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sXCIvPmAgOiAnJztcblxuICAgICAgICBjb250ZW50VHlwZXMgKz0gaGFzVGFibGUgP1xuICAgICAgICAgICAgYDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90YWJsZXMvdGFibGUxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCIvPmAgOiAnJztcbiAgICAgICAgY29udGVudFR5cGVzICs9IGA8L1R5cGVzPmA7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFRhYmxlc1hNTChhdXRvRmlsdGVyRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlQ29sdW1uczogc3RyaW5nLCBzb3J0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7RXhjZWxTdHJpbmdzLlhNTF9TVFJJTkd9PHRhYmxlIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgaWQ9XCIxXCIgbmFtZT1cIlRhYmxlMVwiIGRpc3BsYXlOYW1lPVwiVGFibGUxXCIgcmVmPVwiJHt0YWJsZURpbWVuc2lvbn1cIiB0b3RhbHNSb3dTaG93bj1cIjBcIj5cbiAgICA8YXV0b0ZpbHRlciByZWY9XCIke2F1dG9GaWx0ZXJEaW1lbnNpb259XCIvPiR7c29ydH0ke3RhYmxlQ29sdW1uc308dGFibGVTdHlsZUluZm8gbmFtZT1cIlRhYmxlU3R5bGVNZWRpdW0yXCIgc2hvd0ZpcnN0Q29sdW1uPVwiMFwiIHNob3dMYXN0Q29sdW1uPVwiMFwiIHNob3dSb3dTdHJpcGVzPVwiMVwiIHNob3dDb2x1bW5TdHJpcGVzPVwiMFwiLz5cbjwvdGFibGU+YDtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSAgbWF4LWxlbiAqL1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFeGNlbENvbHVtbihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgLy8gUmV0dXJucyB0aGUgZXhjZWwgY29sdW1uIG5hbWUgZm9yIGdpdmVuIDAtYmFzZWQgaW5kZXhcbiAgICAgICAgLy8gRm9yIGV4YW1wbGUgMjcgc2hvdWxkIHJldHVybiBcIkFCXCJcbiAgICAgICAgbGV0IHJldHVyblN0cmluZyA9ICcnO1xuICAgICAgICB3aGlsZSAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IGluZGV4ICUgMjY7XG4gICAgICAgICAgICByZXR1cm5TdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgY2hhcikgKyByZXR1cm5TdHJpbmc7XG4gICAgICAgICAgICBpbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAyNikgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmc7XG4gICAgfVxufVxuIl19
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhjZWwtc3RyaW5ncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9leGNlbC9leGNlbC1zdHJpbmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWM7QUFDZCxNQUFNLE9BQU8sWUFBWTtJQUNyQiw2QkFBNkI7YUFDZCxlQUFVLEdBQUcsNENBQTRDLENBQUM7YUFDMUQsK0JBQTBCLEdBQUcsZ0pBQWdKLENBQUM7SUFFdEwsTUFBTSxDQUFDLE9BQU87UUFDakIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHFoQkFBcWhCLENBQUM7SUFDM2pCLENBQUM7SUFFTSxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQXFCO1FBQ3RDLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyxrZ0JBQWtnQixhQUFhLHFOQUFxTixDQUFDO0lBQzF3QixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU87UUFDakIsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLDBoQkFBMGhCLENBQUM7SUFDaGtCLENBQUM7SUFFTSxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLFlBQVksQ0FBQyxVQUFVLEdBQUcseWhOQUF5aE4sQ0FBQztJQUMvak4sQ0FBQztJQUVNLE1BQU0sQ0FBQyxTQUFTO1FBQ25CLE9BQU8sWUFBWSxDQUFDLFVBQVU7WUFDOUIsNCtGQUE0K0YsQ0FBQztJQUNqL0YsQ0FBQztJQUVNLE1BQU0sQ0FBQyxXQUFXLENBQUMsYUFBcUI7UUFDM0MsT0FBTyxZQUFZLENBQUMsVUFBVSxHQUFHLHNrQkFBc2tCLGFBQWEsd1FBQXdRLENBQUM7SUFDajRCLENBQUM7SUFFTSxNQUFNLENBQUMsZ0JBQWdCO1FBQzFCLE9BQU8sWUFBWSxDQUFDLFVBQVUsR0FBRyw4T0FBOE8sQ0FBQztJQUNwUixDQUFDO0lBRU0sTUFBTSxDQUFDLGVBQWUsQ0FBQyxnQkFBZ0I7UUFDMUMs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QyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAaGlkZGVuICovXG5leHBvcnQgY2xhc3MgRXhjZWxTdHJpbmdzIHtcbiAgICAvKiBlc2xpbnQtZGlzYWJsZSAgbWF4LWxlbiAqL1xuICAgIHByaXZhdGUgc3RhdGljIFhNTF9TVFJJTkcgPSAnPD94bWwgdmVyc2lvbj1cIjEuMFwiIGVuY29kaW5nPVwiVVRGLThcIj8+XFxyXFxuJztcbiAgICBwcml2YXRlIHN0YXRpYyBTSEFSRURfU1RSSU5HX1JFTEFUSU9OU0hJUCA9ICc8UmVsYXRpb25zaGlwIElkPVwicklkNFwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3NoYXJlZFN0cmluZ3NcIiBUYXJnZXQ9XCJzaGFyZWRTdHJpbmdzLnhtbFwiIC8+JztcblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0UmVscygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkM1wiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL2V4dGVuZGVkLXByb3BlcnRpZXNcIiBUYXJnZXQ9XCJkb2NQcm9wcy9hcHAueG1sXCIvPjxSZWxhdGlvbnNoaXAgSWQ9XCJySWQyXCIgVHlwZT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwcy9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXNcIiBUYXJnZXQ9XCJkb2NQcm9wcy9jb3JlLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL29mZmljZURvY3VtZW50XCIgVGFyZ2V0PVwieGwvd29ya2Jvb2sueG1sXCIvPjwvUmVsYXRpb25zaGlwcz4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0QXBwKHdvcmtzaGVldE5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8UHJvcGVydGllcyB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2V4dGVuZGVkLXByb3BlcnRpZXNcIiB4bWxuczp2dD1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L2RvY1Byb3BzVlR5cGVzXCI+PEFwcGxpY2F0aW9uPk1pY3Jvc29mdCBFeGNlbDwvQXBwbGljYXRpb24+PERvY1NlY3VyaXR5PjA8L0RvY1NlY3VyaXR5PjxTY2FsZUNyb3A+ZmFsc2U8L1NjYWxlQ3JvcD48SGVhZGluZ1BhaXJzPjx2dDp2ZWN0b3Igc2l6ZT1cIjJcIiBiYXNlVHlwZT1cInZhcmlhbnRcIj48dnQ6dmFyaWFudD48dnQ6bHBzdHI+V29ya3NoZWV0czwvdnQ6bHBzdHI+PC92dDp2YXJpYW50Pjx2dDp2YXJpYW50Pjx2dDppND4xPC92dDppND48L3Z0OnZhcmlhbnQ+PC92dDp2ZWN0b3I+PC9IZWFkaW5nUGFpcnM+PFRpdGxlc09mUGFydHM+PHZ0OnZlY3RvciBzaXplPVwiMVwiIGJhc2VUeXBlPVwibHBzdHJcIj48dnQ6bHBzdHI+JHt3b3Jrc2hlZXROYW1lfTwvdnQ6bHBzdHI+PC92dDp2ZWN0b3I+PC9UaXRsZXNPZlBhcnRzPjxDb21wYW55PjwvQ29tcGFueT48TGlua3NVcFRvRGF0ZT5mYWxzZTwvTGlua3NVcFRvRGF0ZT48U2hhcmVkRG9jPmZhbHNlPC9TaGFyZWREb2M+PEh5cGVybGlua3NDaGFuZ2VkPmZhbHNlPC9IeXBlcmxpbmtzQ2hhbmdlZD48QXBwVmVyc2lvbj4xNi4wMzAwPC9BcHBWZXJzaW9uPjwvUHJvcGVydGllcz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0Q29yZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPGNwOmNvcmVQcm9wZXJ0aWVzIHhtbG5zOmNwPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3BhY2thZ2UvMjAwNi9tZXRhZGF0YS9jb3JlLXByb3BlcnRpZXNcIiB4bWxuczpkYz1cImh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvXCIgeG1sbnM6ZGN0ZXJtcz1cImh0dHA6Ly9wdXJsLm9yZy9kYy90ZXJtcy9cIiB4bWxuczpkY21pdHlwZT1cImh0dHA6Ly9wdXJsLm9yZy9kYy9kY21pdHlwZS9cIiB4bWxuczp4c2k9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZVwiPjxkYzpjcmVhdG9yPjwvZGM6Y3JlYXRvcj48Y3A6bGFzdE1vZGlmaWVkQnk+PC9jcDpsYXN0TW9kaWZpZWRCeT48ZGN0ZXJtczpjcmVhdGVkIHhzaTp0eXBlPVwiZGN0ZXJtczpXM0NEVEZcIj4yMDE1LTA2LTA1VDE4OjE3OjIwWjwvZGN0ZXJtczpjcmVhdGVkPjxkY3Rlcm1zOm1vZGlmaWVkIHhzaTp0eXBlPVwiZGN0ZXJtczpXM0NEVEZcIj4yMDE1LTA2LTA1VDE4OjE3OjI2WjwvZGN0ZXJtczptb2RpZmllZD48L2NwOmNvcmVQcm9wZXJ0aWVzPic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRUaGVtZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyAnPGE6dGhlbWUgeG1sbnM6YT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9kcmF3aW5nbWwvMjAwNi9tYWluXCIgbmFtZT1cIk9mZmljZSBUaGVtZVwiPjxhOnRoZW1lRWxlbWVudHM+PGE6Y2xyU2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTpkazE+PGE6c3lzQ2xyIHZhbD1cIndpbmRvd1RleHRcIiBsYXN0Q2xyPVwiMDAwMDAwXCIvPjwvYTpkazE+PGE6bHQxPjxhOnN5c0NsciB2YWw9XCJ3aW5kb3dcIiBsYXN0Q2xyPVwiRkZGRkZGXCIvPjwvYTpsdDE+PGE6ZGsyPjxhOnNyZ2JDbHIgdmFsPVwiNDQ1NDZBXCIvPjwvYTpkazI+PGE6bHQyPjxhOnNyZ2JDbHIgdmFsPVwiRTdFNkU2XCIvPjwvYTpsdDI+PGE6YWNjZW50MT48YTpzcmdiQ2xyIHZhbD1cIjVCOUJENVwiLz48L2E6YWNjZW50MT48YTphY2NlbnQyPjxhOnNyZ2JDbHIgdmFsPVwiRUQ3RDMxXCIvPjwvYTphY2NlbnQyPjxhOmFjY2VudDM+PGE6c3JnYkNsciB2YWw9XCJBNUE1QTVcIi8+PC9hOmFjY2VudDM+PGE6YWNjZW50ND48YTpzcmdiQ2xyIHZhbD1cIkZGQzAwMFwiLz48L2E6YWNjZW50ND48YTphY2NlbnQ1PjxhOnNyZ2JDbHIgdmFsPVwiNDQ3MkM0XCIvPjwvYTphY2NlbnQ1PjxhOmFjY2VudDY+PGE6c3JnYkNsciB2YWw9XCI3MEFENDdcIi8+PC9hOmFjY2VudDY+PGE6aGxpbms+PGE6c3JnYkNsciB2YWw9XCIwNTYzQzFcIi8+PC9hOmhsaW5rPjxhOmZvbEhsaW5rPjxhOnNyZ2JDbHIgdmFsPVwiOTU0RjcyXCIvPjwvYTpmb2xIbGluaz48L2E6Y2xyU2NoZW1lPjxhOmZvbnRTY2hlbWUgbmFtZT1cIk9mZmljZVwiPjxhOm1ham9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT1cIkNhbGlicmkgTGlnaHRcIiBwYW5vc2U9XCIwMjBGMDMwMjAyMDIwNDAzMDIwNFwiLz48YTplYSB0eXBlZmFjZT1cIlwiLz48YTpjcyB0eXBlZmFjZT1cIlwiLz48YTpmb250IHNjcmlwdD1cIkpwYW5cIiB0eXBlZmFjZT1cIua4uOOCtOOCt+ODg+OCryBMaWdodFwiLz48YTpmb250IHNjcmlwdD1cIkhhbmdcIiB0eXBlZmFjZT1cIuunkeydgCDqs6DrlJVcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5zXCIgdHlwZWZhY2U9XCLnrYnnur8gTGlnaHRcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW50XCIgdHlwZWZhY2U9XCLmlrDntLDmmI7pq5RcIi8+PGE6Zm9udCBzY3JpcHQ9XCJBcmFiXCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIZWJyXCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJUaGFpXCIgdHlwZWZhY2U9XCJUYWhvbWFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJFdGhpXCIgdHlwZWZhY2U9XCJOeWFsYVwiLz48YTpmb250IHNjcmlwdD1cIkJlbmdcIiB0eXBlZmFjZT1cIlZyaW5kYVwiLz48YTpmb250IHNjcmlwdD1cIkd1anJcIiB0eXBlZmFjZT1cIlNocnV0aVwiLz48YTpmb250IHNjcmlwdD1cIktobXJcIiB0eXBlZmFjZT1cIk1vb2xCb3JhblwiLz48YTpmb250IHNjcmlwdD1cIktuZGFcIiB0eXBlZmFjZT1cIlR1bmdhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VydVwiIHR5cGVmYWNlPVwiUmFhdmlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDYW5zXCIgdHlwZWZhY2U9XCJFdXBoZW1pYVwiLz48YTpmb250IHNjcmlwdD1cIkNoZXJcIiB0eXBlZmFjZT1cIlBsYW50YWdlbmV0IENoZXJva2VlXCIvPjxhOmZvbnQgc2NyaXB0PVwiWWlpaVwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFlpIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGlidFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IEhpbWFsYXlhXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhYVwiIHR5cGVmYWNlPVwiTVYgQm9saVwiLz48YTpmb250IHNjcmlwdD1cIkRldmFcIiB0eXBlZmFjZT1cIk1hbmdhbFwiLz48YTpmb250IHNjcmlwdD1cIlRlbHVcIiB0eXBlZmFjZT1cIkdhdXRhbWlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUYW1sXCIgdHlwZWZhY2U9XCJMYXRoYVwiLz48YTpmb250IHNjcmlwdD1cIlN5cmNcIiB0eXBlZmFjZT1cIkVzdHJhbmdlbG8gRWRlc3NhXCIvPjxhOmZvbnQgc2NyaXB0PVwiT3J5YVwiIHR5cGVmYWNlPVwiS2FsaW5nYVwiLz48YTpmb250IHNjcmlwdD1cIk1seW1cIiB0eXBlZmFjZT1cIkthcnRpa2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJMYW9vXCIgdHlwZWZhY2U9XCJEb2tDaGFtcGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTaW5oXCIgdHlwZWZhY2U9XCJJc2tvb2xhIFBvdGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNb25nXCIgdHlwZWZhY2U9XCJNb25nb2xpYW4gQmFpdGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJWaWV0XCIgdHlwZWZhY2U9XCJUaW1lcyBOZXcgUm9tYW5cIi8+PGE6Zm9udCBzY3JpcHQ9XCJVaWdoXCIgdHlwZWZhY2U9XCJNaWNyb3NvZnQgVWlnaHVyXCIvPjxhOmZvbnQgc2NyaXB0PVwiR2VvclwiIHR5cGVmYWNlPVwiU3lsZmFlblwiLz48L2E6bWFqb3JGb250PjxhOm1pbm9yRm9udD48YTpsYXRpbiB0eXBlZmFjZT1cIkNhbGlicmlcIiBwYW5vc2U9XCIwMjBGMDUwMjAyMDIwNDAzMDIwNFwiLz48YTplYSB0eXBlZmFjZT1cIlwiLz48YTpjcyB0eXBlZmFjZT1cIlwiLz48YTpmb250IHNjcmlwdD1cIkpwYW5cIiB0eXBlZmFjZT1cIua4uOOCtOOCt+ODg+OCr1wiLz48YTpmb250IHNjcmlwdD1cIkhhbmdcIiB0eXBlZmFjZT1cIuunkeydgCDqs6DrlJVcIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW5zXCIgdHlwZWZhY2U9XCLnrYnnur9cIi8+PGE6Zm9udCBzY3JpcHQ9XCJIYW50XCIgdHlwZWZhY2U9XCLmlrDntLDmmI7pq5RcIi8+PGE6Zm9udCBzY3JpcHQ9XCJBcmFiXCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIkhlYnJcIiB0eXBlZmFjZT1cIkFyaWFsXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhaVwiIHR5cGVmYWNlPVwiVGFob21hXCIvPjxhOmZvbnQgc2NyaXB0PVwiRXRoaVwiIHR5cGVmYWNlPVwiTnlhbGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJCZW5nXCIgdHlwZWZhY2U9XCJWcmluZGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHdWpyXCIgdHlwZWZhY2U9XCJTaHJ1dGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJLaG1yXCIgdHlwZWZhY2U9XCJEYXVuUGVuaFwiLz48YTpmb250IHNjcmlwdD1cIktuZGFcIiB0eXBlZmFjZT1cIlR1bmdhXCIvPjxhOmZvbnQgc2NyaXB0PVwiR3VydVwiIHR5cGVmYWNlPVwiUmFhdmlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJDYW5zXCIgdHlwZWZhY2U9XCJFdXBoZW1pYVwiLz48YTpmb250IHNjcmlwdD1cIkNoZXJcIiB0eXBlZmFjZT1cIlBsYW50YWdlbmV0IENoZXJva2VlXCIvPjxhOmZvbnQgc2NyaXB0PVwiWWlpaVwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IFlpIEJhaXRpXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGlidFwiIHR5cGVmYWNlPVwiTWljcm9zb2Z0IEhpbWFsYXlhXCIvPjxhOmZvbnQgc2NyaXB0PVwiVGhhYVwiIHR5cGVmYWNlPVwiTVYgQm9saVwiLz48YTpmb250IHNjcmlwdD1cIkRldmFcIiB0eXBlZmFjZT1cIk1hbmdhbFwiLz48YTpmb250IHNjcmlwdD1cIlRlbHVcIiB0eXBlZmFjZT1cIkdhdXRhbWlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJUYW1sXCIgdHlwZWZhY2U9XCJMYXRoYVwiLz48YTpmb250IHNjcmlwdD1cIlN5cmNcIiB0eXBlZmFjZT1cIkVzdHJhbmdlbG8gRWRlc3NhXCIvPjxhOmZvbnQgc2NyaXB0PVwiT3J5YVwiIHR5cGVmYWNlPVwiS2FsaW5nYVwiLz48YTpmb250IHNjcmlwdD1cIk1seW1cIiB0eXBlZmFjZT1cIkthcnRpa2FcIi8+PGE6Zm9udCBzY3JpcHQ9XCJMYW9vXCIgdHlwZWZhY2U9XCJEb2tDaGFtcGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJTaW5oXCIgdHlwZWZhY2U9XCJJc2tvb2xhIFBvdGFcIi8+PGE6Zm9udCBzY3JpcHQ9XCJNb25nXCIgdHlwZWZhY2U9XCJNb25nb2xpYW4gQmFpdGlcIi8+PGE6Zm9udCBzY3JpcHQ9XCJWaWV0XCIgdHlwZWZhY2U9XCJBcmlhbFwiLz48YTpmb250IHNjcmlwdD1cIlVpZ2hcIiB0eXBlZmFjZT1cIk1pY3Jvc29mdCBVaWdodXJcIi8+PGE6Zm9udCBzY3JpcHQ9XCJHZW9yXCIgdHlwZWZhY2U9XCJTeWxmYWVuXCIvPjwvYTptaW5vckZvbnQ+PC9hOmZvbnRTY2hlbWU+PGE6Zm10U2NoZW1lIG5hbWU9XCJPZmZpY2VcIj48YTpmaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT1cIjFcIj48YTpnc0xzdD48YTpncyBwb3M9XCIwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6bHVtTW9kIHZhbD1cIjExMDAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnRpbnQgdmFsPVwiNjcwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiNTAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMDMwMDBcIi8+PGE6dGludCB2YWw9XCI3MzAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiMTA1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMDkwMDBcIi8+PGE6dGludCB2YWw9XCI4MTAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48YTpncmFkRmlsbCByb3RXaXRoU2hhcGU9XCIxXCI+PGE6Z3NMc3Q+PGE6Z3MgcG9zPVwiMFwiPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiPjxhOnNhdE1vZCB2YWw9XCIxMDMwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMjAwMFwiLz48YTp0aW50IHZhbD1cIjk0MDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjxhOmdzIHBvcz1cIjUwMDAwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6c2F0TW9kIHZhbD1cIjExMDAwMFwiLz48YTpsdW1Nb2QgdmFsPVwiMTAwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjEwMDAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpsdW1Nb2QgdmFsPVwiOTkwMDBcIi8+PGE6c2F0TW9kIHZhbD1cIjEyMDAwMFwiLz48YTpzaGFkZSB2YWw9XCI3ODAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48L2E6Z3NMc3Q+PGE6bGluIGFuZz1cIjU0MDAwMDBcIiBzY2FsZWQ9XCIwXCIvPjwvYTpncmFkRmlsbD48L2E6ZmlsbFN0eWxlTHN0PjxhOmxuU3R5bGVMc3Q+PGE6bG4gdz1cIjYzNTBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48YTpsbiB3PVwiMTI3MDBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48YTpsbiB3PVwiMTkwNTBcIiBjYXA9XCJmbGF0XCIgY21wZD1cInNuZ1wiIGFsZ249XCJjdHJcIj48YTpzb2xpZEZpbGw+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCIvPjwvYTpzb2xpZEZpbGw+PGE6cHJzdERhc2ggdmFsPVwic29saWRcIi8+PGE6bWl0ZXIgbGltPVwiODAwMDAwXCIvPjwvYTpsbj48L2E6bG5TdHlsZUxzdD48YTplZmZlY3RTdHlsZUxzdD48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3QvPjwvYTplZmZlY3RTdHlsZT48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3QvPjwvYTplZmZlY3RTdHlsZT48YTplZmZlY3RTdHlsZT48YTplZmZlY3RMc3Q+PGE6b3V0ZXJTaGR3IGJsdXJSYWQ9XCI1NzE1MFwiIGRpc3Q9XCIxOTA1MFwiIGRpcj1cIjU0MDAwMDBcIiBhbGduPVwiY3RyXCIgcm90V2l0aFNoYXBlPVwiMFwiPjxhOnNyZ2JDbHIgdmFsPVwiMDAwMDAwXCI+PGE6YWxwaGEgdmFsPVwiNjMwMDBcIi8+PC9hOnNyZ2JDbHI+PC9hOm91dGVyU2hkdz48L2E6ZWZmZWN0THN0PjwvYTplZmZlY3RTdHlsZT48L2E6ZWZmZWN0U3R5bGVMc3Q+PGE6YmdGaWxsU3R5bGVMc3Q+PGE6c29saWRGaWxsPjxhOnNjaGVtZUNsciB2YWw9XCJwaENsclwiLz48L2E6c29saWRGaWxsPjxhOnNvbGlkRmlsbD48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTp0aW50IHZhbD1cIjk1MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxNzAwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6c29saWRGaWxsPjxhOmdyYWRGaWxsIHJvdFdpdGhTaGFwZT1cIjFcIj48YTpnc0xzdD48YTpncyBwb3M9XCIwXCI+PGE6c2NoZW1lQ2xyIHZhbD1cInBoQ2xyXCI+PGE6dGludCB2YWw9XCI5MzAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTUwMDAwXCIvPjxhOnNoYWRlIHZhbD1cIjk4MDAwXCIvPjxhOmx1bU1vZCB2YWw9XCIxMDIwMDBcIi8+PC9hOnNjaGVtZUNscj48L2E6Z3M+PGE6Z3MgcG9zPVwiNTAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTp0aW50IHZhbD1cIjk4MDAwXCIvPjxhOnNhdE1vZCB2YWw9XCIxMzAwMDBcIi8+PGE6c2hhZGUgdmFsPVwiOTAwMDBcIi8+PGE6bHVtTW9kIHZhbD1cIjEwMzAwMFwiLz48L2E6c2NoZW1lQ2xyPjwvYTpncz48YTpncyBwb3M9XCIxMDAwMDBcIj48YTpzY2hlbWVDbHIgdmFsPVwicGhDbHJcIj48YTpzaGFkZSB2YWw9XCI2MzAwMFwiLz48YTpzYXRNb2QgdmFsPVwiMTIwMDAwXCIvPjwvYTpzY2hlbWVDbHI+PC9hOmdzPjwvYTpnc0xzdD48YTpsaW4gYW5nPVwiNTQwMDAwMFwiIHNjYWxlZD1cIjBcIi8+PC9hOmdyYWRGaWxsPjwvYTpiZ0ZpbGxTdHlsZUxzdD48L2E6Zm10U2NoZW1lPjwvYTp0aGVtZUVsZW1lbnRzPjxhOm9iamVjdERlZmF1bHRzLz48YTpleHRyYUNsclNjaGVtZUxzdC8+PGE6ZXh0THN0PjxhOmV4dCB1cmk9XCJ7MDVBNEMyNUMtMDg1RS00MzQwLTg1QTMtQTU1MzFFNTEwREIyfVwiPjx0aG0xNTp0aGVtZUZhbWlseSB4bWxuczp0aG0xNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3RoZW1lbWwvMjAxMi9tYWluXCIgbmFtZT1cIk9mZmljZSBUaGVtZVwiIGlkPVwiezYyRjkzOUI2LTkzQUYtNERCOC05QzZCLUQ2QzdERkRDNTg5Rn1cIiB2aWQ9XCJ7NEEzQzQ2RTgtNjFDQy00NjAzLUE1ODktNzQyMkE0N0E4RTRBfVwiLz48L2E6ZXh0PjwvYTpleHRMc3Q+PC9hOnRoZW1lPic7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRTdHlsZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICtcbiAgICAgICAgJzxzdHlsZVNoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNGFjIHgxNnIyXCIgeG1sbnM6eDE0YWM9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMDkvOS9hY1wiIHhtbG5zOngxNnIyPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDE1LzAyL21haW5cIj48bnVtRm10cyBjb3VudD1cIjVcIj48bnVtRm10IG51bUZtdElkPVwiMTY0XCIgZm9ybWF0Q29kZT1cIiZxdW90OyQmcXVvdDsjLCMjMC4wMFwiLz48bnVtRm10IG51bUZtdElkPVwiMTY1XCIgZm9ybWF0Q29kZT1cIlskwqMtODA5XSMsIyMwLjAwXCIvPjxudW1GbXQgbnVtRm10SWQ9XCIxNjZcIiBmb3JtYXRDb2RlPVwiWyTCpS04MDRdIywjIzAuMDBcIi8+PG51bUZtdCBudW1GbXRJZD1cIjE2N1wiIGZvcm1hdENvZGU9XCIjLCMjMC4wMFxcIFsk4oKsLTFdXCIvPjxudW1GbXQgbnVtRm10SWQ9XCIxNjhcIiBmb3JtYXRDb2RlPVwiWyTCpS00MTFdIywjIzAuMDBcIi8+PC9udW1GbXRzPjxmb250cyBjb3VudD1cIjJcIiB4MTRhYzprbm93bkZvbnRzPVwiMVwiPjxmb250PjxzeiB2YWw9XCIxMVwiLz48Y29sb3IgdGhlbWU9XCIxXCIvPjxuYW1lIHZhbD1cIkNhbGlicmlcIi8+PGZhbWlseSB2YWw9XCIyXCIvPjxzY2hlbWUgdmFsPVwibWlub3JcIi8+PC9mb250Pjxmb250PjxiLz48c3ogdmFsPVwiMTFcIi8+PGNvbG9yIHRoZW1lPVwiMFwiLz48bmFtZSB2YWw9XCJDYWxpYnJpXCIvPjxmYW1pbHkgdmFsPVwiMlwiLz48c2NoZW1lIHZhbD1cIm1pbm9yXCIvPjwvZm9udD48L2ZvbnRzPjxmaWxscyBjb3VudD1cIjNcIj48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJub25lXCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJncmF5MTI1XCIvPjwvZmlsbD48ZmlsbD48cGF0dGVybkZpbGwgcGF0dGVyblR5cGU9XCJzb2xpZFwiPjxmZ0NvbG9yIHRoZW1lPVwiNFwiLz48YmdDb2xvciBpbmRleGVkPVwiNjRcIi8+PC9wYXR0ZXJuRmlsbD48L2ZpbGw+PC9maWxscz48Ym9yZGVycyBjb3VudD1cIjFcIj48Ym9yZGVyPjxsZWZ0Lz48cmlnaHQvPjx0b3AvPjxib3R0b20vPjxkaWFnb25hbC8+PC9ib3JkZXI+PC9ib3JkZXJzPjxjZWxsU3R5bGVYZnMgY291bnQ9XCIxXCI+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIvPjwvY2VsbFN0eWxlWGZzPjxjZWxsWGZzIGNvdW50PVwiMTNcIj48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiLz48eGYgbnVtRm10SWQ9XCIwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIxNFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjFcIiBmaWxsSWQ9XCIyXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIi8+PHhmIG51bUZtdElkPVwiMFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseUFsaWdubWVudD1cIjFcIj48YWxpZ25tZW50IGhvcml6b250YWw9XCJjZW50ZXJcIiB2ZXJ0aWNhbD1cImNlbnRlclwiLz48L3hmPjx4ZiBudW1GbXRJZD1cIjE2NFwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMTY1XCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIxNjZcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlOdW1iZXJGb3JtYXQ9XCIxXCIvPjx4ZiBudW1GbXRJZD1cIjE2N1wiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMTY4XCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48eGYgbnVtRm10SWQ9XCIyMVwiIGZvbnRJZD1cIjBcIiBmaWxsSWQ9XCIwXCIgYm9yZGVySWQ9XCIwXCIgeGZJZD1cIjBcIiBhcHBseU51bWJlckZvcm1hdD1cIjFcIi8+PHhmIG51bUZtdElkPVwiMjJcIiBmb250SWQ9XCIwXCIgZmlsbElkPVwiMFwiIGJvcmRlcklkPVwiMFwiIHhmSWQ9XCIwXCIgYXBwbHlOdW1iZXJGb3JtYXQ9XCIxXCIvPjx4ZiBudW1GbXRJZD1cIjEwXCIgZm9udElkPVwiMFwiIGZpbGxJZD1cIjBcIiBib3JkZXJJZD1cIjBcIiB4ZklkPVwiMFwiIGFwcGx5TnVtYmVyRm9ybWF0PVwiMVwiLz48L2NlbGxYZnM+PGNlbGxTdHlsZXMgY291bnQ9XCIxXCI+PGNlbGxTdHlsZSBuYW1lPVwiTm9ybWFsXCIgeGZJZD1cIjBcIiBidWlsdGluSWQ9XCIwXCIvPjwvY2VsbFN0eWxlcz48ZHhmcyBjb3VudD1cIjBcIi8+PHRhYmxlU3R5bGVzIGNvdW50PVwiMFwiIGRlZmF1bHRUYWJsZVN0eWxlPVwiVGFibGVTdHlsZU1lZGl1bTJcIiBkZWZhdWx0UGl2b3RTdHlsZT1cIlBpdm90U3R5bGVMaWdodDE2XCIvPjxleHRMc3Q+PGV4dCB1cmk9XCJ7RUI3OURFRjItODBCOC00M2U1LTk1QkQtNTRDQkRERjkwMjBDfVwiIHhtbG5zOngxND1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L21haW5cIj48eDE0OnNsaWNlclN0eWxlcyBkZWZhdWx0U2xpY2VyU3R5bGU9XCJTbGljZXJTdHlsZUxpZ2h0MVwiLz48L2V4dD48ZXh0IHVyaT1cIns5MjYwQTUxMC1GMzAxLTQ2YTgtODYzNS1GNTEyRDY0QkU1RjV9XCIgeG1sbnM6eDE1PVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDEwLzExL21haW5cIj48eDE1OnRpbWVsaW5lU3R5bGVzIGRlZmF1bHRUaW1lbGluZVN0eWxlPVwiVGltZVNsaWNlclN0eWxlTGlnaHQxXCIvPjwvZXh0PjwvZXh0THN0Pjwvc3R5bGVTaGVldD4nO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya2Jvb2sod29ya3NoZWV0TmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgYDx3b3JrYm9vayB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9zcHJlYWRzaGVldG1sLzIwMDYvbWFpblwiIHhtbG5zOnI9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzXCIgeG1sbnM6bWM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvbWFya3VwLWNvbXBhdGliaWxpdHkvMjAwNlwiIG1jOklnbm9yYWJsZT1cIngxNVwiIHhtbG5zOngxNT1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAxMC8xMS9tYWluXCI+PGZpbGVWZXJzaW9uIGFwcE5hbWU9XCJ4bFwiIGxhc3RFZGl0ZWQ9XCI2XCIgbG93ZXN0RWRpdGVkPVwiNlwiIHJ1cEJ1aWxkPVwiMTQ0MjBcIi8+PHdvcmtib29rUHIgZmlsdGVyUHJpdmFjeT1cIjFcIiBkZWZhdWx0VGhlbWVWZXJzaW9uPVwiMTY0MDExXCIvPjxib29rVmlld3M+PHdvcmtib29rVmlldyB4V2luZG93PVwiMFwiIHlXaW5kb3c9XCIwXCIgd2luZG93V2lkdGg9XCIyMjI2MFwiIHdpbmRvd0hlaWdodD1cIjEyNjQ1XCIvPjwvYm9va1ZpZXdzPjxzaGVldHM+PHNoZWV0IG5hbWU9XCIke3dvcmtzaGVldE5hbWV9XCIgc2hlZXRJZD1cIjFcIiByOmlkPVwicklkMVwiLz48L3NoZWV0cz48Y2FsY1ByIGNhbGNJZD1cIjE2MjkxM1wiLz48ZXh0THN0PjxleHQgdXJpPVwiezE0MEE3MDk0LTBFMzUtNDg5Mi04NDMyLUM0RDJFNTdFREVCNX1cIiB4bWxuczp4MTU9XCJodHRwOi8vc2NoZW1hcy5taWNyb3NvZnQuY29tL29mZmljZS9zcHJlYWRzaGVldG1sLzIwMTAvMTEvbWFpblwiPjx4MTU6d29ya2Jvb2tQciBjaGFydFRyYWNraW5nUmVmQmFzZT1cIjFcIi8+PC9leHQ+PC9leHRMc3Q+PC93b3JrYm9vaz5gO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0V29ya3NoZWV0UmVscygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gRXhjZWxTdHJpbmdzLlhNTF9TVFJJTkcgKyBgPFJlbGF0aW9uc2hpcHMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L3JlbGF0aW9uc2hpcHNcIj48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RhYmxlXCIgVGFyZ2V0PVwiLi4vdGFibGVzL3RhYmxlMS54bWxcIi8+PC9SZWxhdGlvbnNoaXBzPmA7XG4gICAgfVxuXG4gICAgcHVibGljIHN0YXRpYyBnZXRXb3JrYm9va1JlbHMoaGFzU2hhcmVkU3RyaW5ncyk6IHN0cmluZyB7XG4gICAgICAgIGxldCByZXRWYWwgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArIGA8UmVsYXRpb25zaGlwcyB4bWxucz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9wYWNrYWdlLzIwMDYvcmVsYXRpb25zaGlwc1wiPjxSZWxhdGlvbnNoaXAgSWQ9XCJySWQzXCIgVHlwZT1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHMvc3R5bGVzXCIgVGFyZ2V0PVwic3R5bGVzLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMlwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3RoZW1lXCIgVGFyZ2V0PVwidGhlbWUvdGhlbWUxLnhtbFwiLz48UmVsYXRpb25zaGlwIElkPVwicklkMVwiIFR5cGU9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvb2ZmaWNlRG9jdW1lbnQvMjAwNi9yZWxhdGlvbnNoaXBzL3dvcmtzaGVldFwiIFRhcmdldD1cIndvcmtzaGVldHMvc2hlZXQxLnhtbFwiLz5gO1xuXG4gICAgICAgIGlmIChoYXNTaGFyZWRTdHJpbmdzKSB7XG4gICAgICAgICAgICByZXRWYWwgKz0gRXhjZWxTdHJpbmdzLlNIQVJFRF9TVFJJTkdfUkVMQVRJT05TSElQO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0VmFsICs9ICc8L1JlbGF0aW9uc2hpcHM+JztcblxuICAgICAgICByZXR1cm4gcmV0VmFsO1xuICAgIH1cblxuICAgIHB1YmxpYyBzdGF0aWMgZ2V0U2hlZXRYTUwoZGltZW5zaW9uOiBzdHJpbmcsIGZyZWV6ZVBhbmU6IHN0cmluZywgY29sczogc3RyaW5nLCBzaGVldERhdGE6IHN0cmluZywgaGFzVGFibGU6IGJvb2xlYW4sIG91dGxpbmVMZXZlbCA9IDAsIGlzSGllcmFyY2hpY2FsOiBib29sZWFuKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgaGFzT3V0bGluZSA9IG91dGxpbmVMZXZlbCA+IDA7XG4gICAgICAgIGNvbnN0IHRhYmxlUGFydHMgPSBoYXNUYWJsZSA/ICc8dGFibGVQYXJ0cyBjb3VudD1cIjFcIj48dGFibGVQYXJ0IHI6aWQ9XCJySWQxXCIvPjwvdGFibGVQYXJ0cz4nIDogJyc7XG4gICAgICAgIGNvbnN0IHNoZWV0T3V0bGluZVByb3AgPSBoYXNPdXRsaW5lID8gJzxzaGVldFByPjxvdXRsaW5lUHIgc3VtbWFyeUJlbG93PVwiMFwiLz48L3NoZWV0UHI+JyA6ICcnO1xuICAgICAgICBjb25zdCBzT3V0bGluZUxldmVsID0gIGhhc091dGxpbmUgPyBgb3V0bGluZUxldmVsUm93PVwiJHtvdXRsaW5lTGV2ZWx9XCJgIDogJyc7XG4gICAgICAgIGNvbnN0IGRpbWVuc2lvbnMgPSBpc0hpZXJhcmNoaWNhbCA/ICcnIDogYDxkaW1lbnNpb24gcmVmPVwiJHtkaW1lbnNpb259XCIvPmA7XG5cbiAgICAgICAgLy8gcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICtcbiAgICAgICAgLy8gICAgICc8d29ya3NoZWV0IHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgeG1sbnM6cj1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9vZmZpY2VEb2N1bWVudC8yMDA2L3JlbGF0aW9uc2hpcHNcIiB4bWxuczptYz1cImh0dHA6Ly9zY2hlbWFzLm9wZW54bWxmb3JtYXRzLm9yZy9tYXJrdXAtY29tcGF0aWJpbGl0eS8yMDA2XCIgbWM6SWdub3JhYmxlPVwieDE0YWNcIiB4bWxuczp4MTRhYz1cImh0dHA6Ly9zY2hlbWFzLm1pY3Jvc29mdC5jb20vb2ZmaWNlL3NwcmVhZHNoZWV0bWwvMjAwOS85L2FjXCI+PGRpbWVuc2lvbiByZWY9XCInICsgZGltZW5zaW9uICsgJ1wiLz48c2hlZXRWaWV3cz48c2hlZXRWaWV3IHRhYlNlbGVjdGVkPVwiMVwiIHdvcmtib29rVmlld0lkPVwiMFwiPicgKyBmcmVlemVQYW5lICsgJzwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz48c2hlZXRGb3JtYXRQciBkZWZhdWx0Um93SGVpZ2h0PVwiMTVcIiB4MTRhYzpkeURlc2NlbnQ9XCIwLjI1XCIvPicgKyBjb2xzICsgc2hlZXREYXRhICsgJzxwYWdlTWFyZ2lucyBsZWZ0PVwiMC43XCIgcmlnaHQ9XCIwLjdcIiB0b3A9XCIwLjc1XCIgYm90dG9tPVwiMC43NVwiIGhlYWRlcj1cIjAuM1wiIGZvb3Rlcj1cIjAuM1wiLz4nICsgdGFibGVQYXJ0cyArICc8L3dvcmtzaGVldD4nO1xuXG4gICAgICAgIHJldHVybiBgJHtFeGNlbFN0cmluZ3MuWE1MX1NUUklOR31cbjx3b3Jrc2hlZXQgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiB4bWxuczpyPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL29mZmljZURvY3VtZW50LzIwMDYvcmVsYXRpb25zaGlwc1wiIHhtbG5zOm1jPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL21hcmt1cC1jb21wYXRpYmlsaXR5LzIwMDZcIiBtYzpJZ25vcmFibGU9XCJ4MTRhY1wiIHhtbG5zOngxNGFjPVwiaHR0cDovL3NjaGVtYXMubWljcm9zb2Z0LmNvbS9vZmZpY2Uvc3ByZWFkc2hlZXRtbC8yMDA5LzkvYWNcIj5cbiR7c2hlZXRPdXRsaW5lUHJvcH1cbiR7ZGltZW5zaW9uc31cbjxzaGVldFZpZXdzPjxzaGVldFZpZXcgdGFiU2VsZWN0ZWQ9XCIxXCIgd29ya2Jvb2tWaWV3SWQ9XCIwXCI+JHtmcmVlemVQYW5lfTwvc2hlZXRWaWV3Pjwvc2hlZXRWaWV3cz5cbjxzaGVldEZvcm1hdFByIGRlZmF1bHRSb3dIZWlnaHQ9XCIxNVwiICR7c091dGxpbmVMZXZlbH0geDE0YWM6ZHlEZXNjZW50PVwiMC4yNVwiLz5cbiR7Y29sc31cbiR7c2hlZXREYXRhfVxuPHBhZ2VNYXJnaW5zIGxlZnQ9XCIwLjdcIiByaWdodD1cIjAuN1wiIHRvcD1cIjAuNzVcIiBib3R0b209XCIwLjc1XCIgaGVhZGVyPVwiMC4zXCIgZm9vdGVyPVwiMC4zXCIvPlxuJHt0YWJsZVBhcnRzfTwvd29ya3NoZWV0PmA7XG5cbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFNoYXJlZFN0cmluZ1hNTChjb3VudDogbnVtYmVyLCB1bmlxdWVDb3VudDogbnVtYmVyLCB0YWJsZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIEV4Y2VsU3RyaW5ncy5YTUxfU1RSSU5HICsgJzxzc3QgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvc3ByZWFkc2hlZXRtbC8yMDA2L21haW5cIiBjb3VudD1cIicgKyBjb3VudCArICdcIiB1bmlxdWVDb3VudD1cIicgKyB1bmlxdWVDb3VudCArICdcIj4nICsgdGFibGUgKyAnPC9zc3Q+JztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldENvbnRlbnRUeXBlc1hNTChoYXNTaGFyZWRTdHJpbmdzOiBib29sZWFuLCBoYXNUYWJsZTogYm9vbGVhbik6IHN0cmluZyB7XG4gICAgICAgIGxldCBjb250ZW50VHlwZXMgPSBFeGNlbFN0cmluZ3MuWE1MX1NUUklORyArXG4gICAgICAgIGA8VHlwZXMgeG1sbnM9XCJodHRwOi8vc2NoZW1hcy5vcGVueG1sZm9ybWF0cy5vcmcvcGFja2FnZS8yMDA2L2NvbnRlbnQtdHlwZXNcXFwiPlxuICAgICAgICAgICAgPERlZmF1bHQgRXh0ZW5zaW9uPVwicmVsc1wiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLXBhY2thZ2UucmVsYXRpb25zaGlwcyt4bWxcIi8+XG4gICAgICAgICAgICA8RGVmYXVsdCBFeHRlbnNpb249XCJ4bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC93b3JrYm9vay54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0Lm1haW4reG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3dvcmtzaGVldHMvc2hlZXQxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwud29ya3NoZWV0K3htbFwiLz5cbiAgICAgICAgICAgIDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90aGVtZS90aGVtZTEueG1sXCIgQ29udGVudFR5cGU9XCJhcHBsaWNhdGlvbi92bmQub3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQudGhlbWUreG1sXCIvPlxuICAgICAgICAgICAgPE92ZXJyaWRlIFBhcnROYW1lPVwiL3hsL3N0eWxlcy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnN0eWxlcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvY29yZS54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1wYWNrYWdlLmNvcmUtcHJvcGVydGllcyt4bWxcIi8+XG4gICAgICAgICAgICA8T3ZlcnJpZGUgUGFydE5hbWU9XCIvZG9jUHJvcHMvYXBwLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LmV4dGVuZGVkLXByb3BlcnRpZXMreG1sXCIvPmA7XG5cbiAgICAgICAgY29udGVudFR5cGVzICs9IGhhc1NoYXJlZFN0cmluZ3MgP1xuICAgICAgICBgXHQ8T3ZlcnJpZGUgUGFydE5hbWU9XCIveGwvc2hhcmVkU3RyaW5ncy54bWxcIiBDb250ZW50VHlwZT1cImFwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoYXJlZFN0cmluZ3MreG1sXCIvPmAgOiAnJztcblxuICAgICAgICBjb250ZW50VHlwZXMgKz0gaGFzVGFibGUgP1xuICAgICAgICAgICAgYDxPdmVycmlkZSBQYXJ0TmFtZT1cIi94bC90YWJsZXMvdGFibGUxLnhtbFwiIENvbnRlbnRUeXBlPVwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwudGFibGUreG1sXCIvPmAgOiAnJztcbiAgICAgICAgY29udGVudFR5cGVzICs9IGA8L1R5cGVzPmA7XG5cbiAgICAgICAgcmV0dXJuIGNvbnRlbnRUeXBlcztcbiAgICB9XG5cbiAgICBwdWJsaWMgc3RhdGljIGdldFRhYmxlc1hNTChhdXRvRmlsdGVyRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlRGltZW5zaW9uOiBzdHJpbmcsIHRhYmxlQ29sdW1uczogc3RyaW5nLCBzb3J0OiBzdHJpbmcpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7RXhjZWxTdHJpbmdzLlhNTF9TVFJJTkd9PHRhYmxlIHhtbG5zPVwiaHR0cDovL3NjaGVtYXMub3BlbnhtbGZvcm1hdHMub3JnL3NwcmVhZHNoZWV0bWwvMjAwNi9tYWluXCIgaWQ9XCIxXCIgbmFtZT1cIlRhYmxlMVwiIGRpc3BsYXlOYW1lPVwiVGFibGUxXCIgcmVmPVwiJHt0YWJsZURpbWVuc2lvbn1cIiB0b3RhbHNSb3dTaG93bj1cIjBcIj5cbiAgICA8YXV0b0ZpbHRlciByZWY9XCIke2F1dG9GaWx0ZXJEaW1lbnNpb259XCIvPiR7c29ydH0ke3RhYmxlQ29sdW1uc308dGFibGVTdHlsZUluZm8gbmFtZT1cIlRhYmxlU3R5bGVNZWRpdW0yXCIgc2hvd0ZpcnN0Q29sdW1uPVwiMFwiIHNob3dMYXN0Q29sdW1uPVwiMFwiIHNob3dSb3dTdHJpcGVzPVwiMVwiIHNob3dDb2x1bW5TdHJpcGVzPVwiMFwiLz5cbjwvdGFibGU+YDtcbiAgICB9XG4gICAgLyogZXNsaW50LWVuYWJsZSAgbWF4LWxlbiAqL1xuXG4gICAgcHVibGljIHN0YXRpYyBnZXRFeGNlbENvbHVtbihpbmRleDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICAgICAgLy8gUmV0dXJucyB0aGUgZXhjZWwgY29sdW1uIG5hbWUgZm9yIGdpdmVuIDAtYmFzZWQgaW5kZXhcbiAgICAgICAgLy8gRm9yIGV4YW1wbGUgMjcgc2hvdWxkIHJldHVybiBcIkFCXCJcbiAgICAgICAgbGV0IHJldHVyblN0cmluZyA9ICcnO1xuICAgICAgICB3aGlsZSAoaW5kZXggPj0gMCkge1xuICAgICAgICAgICAgY29uc3QgY2hhciA9IGluZGV4ICUgMjY7XG4gICAgICAgICAgICByZXR1cm5TdHJpbmcgPSBTdHJpbmcuZnJvbUNoYXJDb2RlKDY1ICsgY2hhcikgKyByZXR1cm5TdHJpbmc7XG4gICAgICAgICAgICBpbmRleCA9IE1hdGguZmxvb3IoaW5kZXggLyAyNikgLSAxO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXR1cm5TdHJpbmc7XG4gICAgfVxufVxuIl19