igniteui-angular 18.2.0-beta.0 → 18.2.0-beta.1

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 (67) hide show
  1. package/esm2022/lib/badge/badge.component.mjs +19 -3
  2. package/esm2022/lib/core/i18n/query-builder-resources.mjs +4 -3
  3. package/esm2022/lib/data-operations/filtering-expression.interface.mjs +1 -1
  4. package/esm2022/lib/grids/filtering/base/grid-filtering-cell.component.mjs +2 -2
  5. package/esm2022/lib/grids/grid/groupby-row.component.mjs +2 -2
  6. package/esm2022/lib/grids/grouping/grid-group-by-area.component.mjs +3 -3
  7. package/esm2022/lib/grids/grouping/tree-grid-group-by-area.component.mjs +3 -3
  8. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +2 -2
  9. package/esm2022/lib/grids/selection/selection.service.mjs +9 -9
  10. package/esm2022/lib/icon/icon.references.mjs +6 -10
  11. package/esm2022/lib/query-builder/query-builder-header.component.mjs +3 -3
  12. package/esm2022/lib/query-builder/query-builder-tree.component.mjs +3 -3
  13. package/esm2022/lib/tabs/tabs/tabs.component.mjs +4 -3
  14. package/fesm2022/igniteui-angular.mjs +46 -33
  15. package/fesm2022/igniteui-angular.mjs.map +1 -1
  16. package/lib/badge/badge.component.d.ts +12 -1
  17. package/lib/core/i18n/query-builder-resources.d.ts +1 -0
  18. package/lib/core/styles/components/badge/_badge-component.scss +4 -0
  19. package/lib/core/styles/components/badge/_badge-theme.scss +6 -12
  20. package/lib/core/styles/components/banner/_banner-theme.scss +5 -1
  21. package/lib/core/styles/components/card/_card-theme.scss +18 -1
  22. package/lib/core/styles/components/chip/_chip-theme.scss +180 -154
  23. package/lib/core/styles/components/drop-down/_drop-down-theme.scss +5 -1
  24. package/lib/core/styles/components/navdrawer/_navdrawer-theme.scss +9 -7
  25. package/lib/core/styles/components/query-builder/_query-builder-component.scss +4 -0
  26. package/lib/core/styles/components/query-builder/_query-builder-theme.scss +34 -27
  27. package/lib/core/styles/components/tabs/_tabs-theme.scss +72 -18
  28. package/lib/core/styles/components/tree/_tree-theme.scss +1 -3
  29. package/lib/core/styles/typography/_indigo.scss +3 -1
  30. package/lib/data-operations/filtering-expression.interface.d.ts +2 -4
  31. package/migrations/common/ServerHost.d.ts +3 -1
  32. package/migrations/common/ServerHost.js +4 -1
  33. package/migrations/common/UpdateChanges.d.ts +7 -2
  34. package/migrations/common/UpdateChanges.js +39 -29
  35. package/migrations/common/project-service-container.d.ts +11 -0
  36. package/migrations/common/project-service-container.js +25 -0
  37. package/migrations/update-13_0_0/changes/members.json +1 -1
  38. package/migrations/update-18_2_0/changes/inputs.json +14 -0
  39. package/migrations/update-18_2_0/changes/theme-changes.json +6 -0
  40. package/migrations/update-18_2_0/index.js +4 -0
  41. package/package.json +2 -2
  42. package/styles/igniteui-angular-dark.css +1 -1
  43. package/styles/igniteui-angular.css +1 -1
  44. package/styles/igniteui-bootstrap-dark.css +1 -1
  45. package/styles/igniteui-bootstrap-light.css +1 -1
  46. package/styles/igniteui-dark-green.css +1 -1
  47. package/styles/igniteui-fluent-dark-excel.css +1 -1
  48. package/styles/igniteui-fluent-dark-word.css +1 -1
  49. package/styles/igniteui-fluent-dark.css +1 -1
  50. package/styles/igniteui-fluent-light-excel.css +1 -1
  51. package/styles/igniteui-fluent-light-word.css +1 -1
  52. package/styles/igniteui-fluent-light.css +1 -1
  53. package/styles/igniteui-indigo-dark.css +1 -1
  54. package/styles/igniteui-indigo-light.css +1 -1
  55. package/styles/maps/igniteui-angular-dark.css.map +1 -1
  56. package/styles/maps/igniteui-angular.css.map +1 -1
  57. package/styles/maps/igniteui-bootstrap-dark.css.map +1 -1
  58. package/styles/maps/igniteui-bootstrap-light.css.map +1 -1
  59. package/styles/maps/igniteui-dark-green.css.map +1 -1
  60. package/styles/maps/igniteui-fluent-dark-excel.css.map +1 -1
  61. package/styles/maps/igniteui-fluent-dark-word.css.map +1 -1
  62. package/styles/maps/igniteui-fluent-dark.css.map +1 -1
  63. package/styles/maps/igniteui-fluent-light-excel.css.map +1 -1
  64. package/styles/maps/igniteui-fluent-light-word.css.map +1 -1
  65. package/styles/maps/igniteui-fluent-light.css.map +1 -1
  66. package/styles/maps/igniteui-indigo-dark.css.map +1 -1
  67. package/styles/maps/igniteui-indigo-light.css.map +1 -1
@@ -1,5 +1,5 @@
1
1
  import { NgIf } from '@angular/common';
2
- import { Component, HostBinding, Input } from '@angular/core';
2
+ import { booleanAttribute, Component, HostBinding, Input } from '@angular/core';
3
3
  import { mkenum } from '../core/utils';
4
4
  import { IgxIconComponent } from '../icon/icon.component';
5
5
  import * as i0 from "@angular/core";
@@ -122,6 +122,16 @@ export class IgxBadgeComponent {
122
122
  * ```
123
123
  */
124
124
  this.label = 'badge';
125
+ /**
126
+ * Sets/gets whether the badge is outlined.
127
+ * Default value is `false`.
128
+ *
129
+ * @example
130
+ * ```html
131
+ * <igx-badge outlined></igx-badge>
132
+ * ```
133
+ */
134
+ this.outlined = false;
125
135
  }
126
136
  /** @hidden @internal */
127
137
  get _squareShape() {
@@ -156,7 +166,7 @@ export class IgxBadgeComponent {
156
166
  return this.type === IgxBadgeType.ERROR;
157
167
  }
158
168
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxBadgeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
159
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxBadgeComponent, isStandalone: true, selector: "igx-badge", inputs: { id: "id", type: "type", value: "value", icon: "icon", iconSet: "iconSet", shape: "shape" }, host: { properties: { "attr.id": "this.id", "attr.role": "this.role", "class.igx-badge": "this.cssClass", "class.igx-badge--square": "this._squareShape", "attr.aria-label": "this.label", "attr.aria-roledescription": "this.roleDescription", "class.igx-badge--info": "this.infoClass", "class.igx-badge--success": "this.successClass", "class.igx-badge--warning": "this.warningClass", "class.igx-badge--error": "this.errorClass" } }, ngImport: i0, template: "<span *ngIf=\"value || value === 0 && !icon\" class=\"igx-badge__value\">{{value}}</span>\n<igx-icon *ngIf=\"icon && !iconSet\">{{icon}}</igx-icon>\n<igx-icon *ngIf=\"icon && iconSet\" [family]=\"iconSet\" [name]=\"icon\">{{icon}}</igx-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }] }); }
169
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.2.4", type: IgxBadgeComponent, isStandalone: true, selector: "igx-badge", inputs: { id: "id", type: "type", value: "value", icon: "icon", iconSet: "iconSet", shape: "shape", outlined: ["outlined", "outlined", booleanAttribute] }, host: { properties: { "attr.id": "this.id", "attr.role": "this.role", "class.igx-badge": "this.cssClass", "class.igx-badge--square": "this._squareShape", "attr.aria-label": "this.label", "class.igx-badge--outlined": "this.outlined", "attr.aria-roledescription": "this.roleDescription", "class.igx-badge--info": "this.infoClass", "class.igx-badge--success": "this.successClass", "class.igx-badge--warning": "this.warningClass", "class.igx-badge--error": "this.errorClass" } }, ngImport: i0, template: "<span *ngIf=\"value || value === 0 && !icon\" class=\"igx-badge__value\">{{value}}</span>\n<igx-icon *ngIf=\"icon && !iconSet\">{{icon}}</igx-icon>\n<igx-icon *ngIf=\"icon && iconSet\" [family]=\"iconSet\" [name]=\"icon\">{{icon}}</igx-icon>\n<ng-content></ng-content>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }] }); }
160
170
  }
161
171
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxBadgeComponent, decorators: [{
162
172
  type: Component,
@@ -188,6 +198,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
188
198
  }], label: [{
189
199
  type: HostBinding,
190
200
  args: ['attr.aria-label']
201
+ }], outlined: [{
202
+ type: Input,
203
+ args: [{ transform: booleanAttribute }]
204
+ }, {
205
+ type: HostBinding,
206
+ args: ['class.igx-badge--outlined']
191
207
  }], roleDescription: [{
192
208
  type: HostBinding,
193
209
  args: ['attr.aria-roledescription']
@@ -204,4 +220,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
204
220
  type: HostBinding,
205
221
  args: ['class.igx-badge--error']
206
222
  }] } });
207
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzlELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUEsTUFBTSxDQUFDO0lBQzVDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7SUFDbEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFRRzs7Ozs7Ozs7OztXQVVHO1FBR0ssT0FBRSxHQUFHLGFBQWEsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUV0Qzs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFNBQUksR0FBMEIsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUUzRDs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBd0JuQzs7Ozs7Ozs7OztXQVVHO1FBRUksU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUV2Qjs7Ozs7Ozs7OztXQVVHO1FBRUksYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUU5Qjs7Ozs7Ozs7V0FRRztRQUVJLFVBQUssR0FBeUIsU0FBUyxDQUFDO1FBUS9DOzs7Ozs7Ozs7O1dBVUc7UUFFSSxVQUFLLEdBQUcsT0FBTyxDQUFDO0tBc0MxQjtJQXhERyx3QkFBd0I7SUFDeEIsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLEtBQUssS0FBSyxRQUFRLENBQUM7SUFDbkMsQ0FBQztJQWdCRDs7Ozs7O09BTUc7SUFDSCxJQUNXLGVBQWU7UUFDdEIsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDWixPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsNkJBQTZCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUNqRSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDeEMsT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLHlCQUF5QixHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDOUQsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRywyQkFBMkIsQ0FBQztJQUNuRCxDQUFDO0lBRUQsSUFDVyxTQUFTO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsSUFBSSxDQUFDO0lBQzNDLENBQUM7SUFFRCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUM5QyxDQUFDO0lBRUQsSUFDVyxVQUFVO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsS0FBSyxDQUFDO0lBQzVDLENBQUM7OEdBcEtRLGlCQUFpQjtrR0FBakIsaUJBQWlCLHlsQkM5QzlCLGdSQUlBLDRDRHdDYyxJQUFJLDZGQUFFLGdCQUFnQjs7MkZBRXZCLGlCQUFpQjtrQkFON0IsU0FBUzsrQkFDSSxXQUFXLGNBRVQsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGdCQUFnQixDQUFDOzhCQWlCMUIsRUFBRTtzQkFGUixXQUFXO3VCQUFDLFNBQVM7O3NCQUNyQixLQUFLO2dCQWdCQyxJQUFJO3NCQURWLEtBQUs7Z0JBZ0JDLEtBQUs7c0JBRFgsS0FBSztnQkFpQkMsSUFBSTtzQkFEVixLQUFLO2dCQU9DLE9BQU87c0JBRGIsS0FBSztnQkFlQyxJQUFJO3NCQURWLFdBQVc7dUJBQUMsV0FBVztnQkFlakIsUUFBUTtzQkFEZCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFhdkIsS0FBSztzQkFEWCxLQUFLO2dCQUtLLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMseUJBQXlCO2dCQWlCL0IsS0FBSztzQkFEWCxXQUFXO3VCQUFDLGlCQUFpQjtnQkFXbkIsZUFBZTtzQkFEekIsV0FBVzt1QkFBQywyQkFBMkI7Z0JBVzdCLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsdUJBQXVCO2dCQU16QixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDBCQUEwQjtnQkFNNUIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTTVCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmxldCBORVhUX0lEID0gMDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBpZ3hCYWRnZSB0eXBlXG4gKi9cbmV4cG9ydCBjb25zdCBJZ3hCYWRnZVR5cGUgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBQUklNQVJZOiAncHJpbWFyeScsXG4gICAgSU5GTzogJ2luZm8nLFxuICAgIFNVQ0NFU1M6ICdzdWNjZXNzJyxcbiAgICBXQVJOSU5HOiAnd2FybmluZycsXG4gICAgRVJST1I6ICdlcnJvcidcbn0pO1xuZXhwb3J0IHR5cGUgSWd4QmFkZ2VUeXBlID0gKHR5cGVvZiBJZ3hCYWRnZVR5cGUpW2tleW9mIHR5cGVvZiBJZ3hCYWRnZVR5cGVdO1xuLyoqXG4gKiBCYWRnZSBwcm92aWRlcyB2aXN1YWwgbm90aWZpY2F0aW9ucyB1c2VkIHRvIGRlY29yYXRlIGF2YXRhcnMsIG1lbnVzLCBldGMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hCYWRnZU1vZHVsZVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtYmFkZ2UtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYmFkZ2UsIGljb24sIG5vdGlmaWNhdGlvblxuICpcbiAqIEBpZ3hHcm91cCBEYXRhIEVudHJ5ICYgRGlzcGxheVxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIEJhZGdlIGlzIHVzZWQgdG8gZGVjb3JhdGUgYXZhdGFycywgbmF2aWdhdGlvbiBtZW51cywgb3Igb3RoZXIgY29tcG9uZW50cyBpbiB0aGVcbiAqIGFwcGxpY2F0aW9uIHdoZW4gdmlzdWFsIG5vdGlmaWNhdGlvbiBpcyBuZWVkZWQuIFRoZXkgYXJlIHVzdWFsbHkgZGVzaWduZWQgYXMgaWNvbnMgd2l0aCBhIHByZWRlZmluZWRcbiAqIHN0eWxlIHRvIGNvbW11bmljYXRlIGluZm9ybWF0aW9uLCBzdWNjZXNzLCB3YXJuaW5ncywgb3IgZXJyb3JzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWF2YXRhcj5cbiAqICAgPGlneC1iYWRnZSBpY29uPVwiY2hlY2tcIiB0eXBlPVwic3VjY2Vzc1wiPjwvaWd4LWJhZGdlPlxuICogPC9pZ3gtYXZhdGFyPlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1iYWRnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdiYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4QmFkZ2VDb21wb25lbnQge1xuXG4gICAvKipcbiAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgYmFkZ2UuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIElmIG5vdCBzZXQsIHRoZSBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtYmFkZ2UtMFwiYC5cbiAgICAqXG4gICAgKiBAZXhhbXBsZVxuICAgICogYGBgaHRtbFxuICAgICogPGlneC1iYWRnZSBpZD1cImlneC1iYWRnZS0yXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWJhZGdlLSR7TkVYVF9JRCsrfWA7XG5cbiAgIC8qKlxuICAgICogU2V0cy9nZXRzIHRoZSB0eXBlIG9mIHRoZSBiYWRnZS5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBwcmltYXJ5YCwgYGluZm9gLCBgc3VjY2Vzc2AsIGB3YXJuaW5nYCwgYGVycm9yYC5cbiAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYSBiYWRnZS5cbiAgICAqXG4gICAgKiBAZXhhbXBsZVxuICAgICogYGBgaHRtbFxuICAgICogPGlneC1iYWRnZSB0eXBlPVwic3VjY2Vzc1wiPjwvaWd4LWJhZGdlPlxuICAgICogYGBgXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcgfCBJZ3hCYWRnZVR5cGUgPSBJZ3hCYWRnZVR5cGUuUFJJTUFSWTtcblxuICAgLyoqXG4gICAgKiBTZXRzL2dldHMgdGhlIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbnNpZGUgdGhlIGJhZGdlLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBJZiBhbiBgaWNvbmAgcHJvcGVydHkgaXMgYWxyZWFkeSBzZXQgdGhlIGBpY29uYCB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBgYGBodG1sXG4gICAgKiA8aWd4LWJhZGdlIHZhbHVlPVwiMTFcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IG51bWJlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIGFuIGljb24gZm9yIHRoZSBiYWRnZSBmcm9tIHRoZSBtYXRlcmlhbCBpY29ucyBzZXQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEhhcyBwcmlvcml0eSBvdmVyIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYW55dGhpbmcuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhZGdlIGljb249XCJjaGVja1wiPjwvaWd4LWJhZGdlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBpY29uIHNldC4gVXNlZCBpbiBjYXNlIHRoZSBpY29uIGlzIGZyb20gYSBkaWZmZXJlbnQgaWNvbiBzZXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvblNldDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSByb2xlIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKiBwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqXG4gICAgICogYmFkZ2Uucm9sZSA9ICdzdGF0dXMnO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICdzdGF0dXMnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBjc3MgY2xhc3MgdG8gdXNlIG9uIHRoZSBiYWRnZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKiBwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqXG4gICAgICogYmFkZ2UuY3NzQ2xhc3MgPSAnbXktYmFkZ2UtY2xhc3MnO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWJhZGdlJztcblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBzcXVhcmUgc2hhcGUgdG8gdGhlIGJhZGdlLCBpZiBgc2hhcGVgIGlzIHNldCB0byBgc3F1YXJlYC5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBzaGFwZSBvZiB0aGUgYmFkZ2UgaXMgcm91bmRlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFkZ2Ugc2hhcGU9XCJzcXVhcmVcIj48L2lneC1iYWRnZT5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaGFwZTogJ3JvdW5kZWQnIHwgJ3NxdWFyZScgPSAncm91bmRlZCc7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tc3F1YXJlJylcbiAgICBwdWJsaWMgZ2V0IF9zcXVhcmVTaGFwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09ICdzcXVhcmUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlCYWRnZVwiLCB7IHJlYWQ6IElneEJhZGdlQ29tcG9uZW50IH0pXG4gICAgICogcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKlxuICAgICAqIGJhZGdlLmxhYmVsID0gJ2JhZGdlJztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgcHVibGljIGxhYmVsID0gJ2JhZGdlJztcblxuICAgIC8qKlxuICAgICAqIERlZmluZXMgYSBodW1hbi1yZWFkYWJsZSwgYWNjZXNzb3IsIGF1dGhvci1sb2NhbGl6ZWQgZGVzY3JpcHRpb24gZm9yXG4gICAgICogdGhlIGB0eXBlYCBhbmQgdGhlIGBpY29uYCBvciBgdmFsdWVgIG9mIHRoZSBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGhpZGRlblxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLXJvbGVkZXNjcmlwdGlvbicpXG4gICAgcHVibGljIGdldCByb2xlRGVzY3JpcHRpb24oKSB7XG4gICAgICAgIGlmICh0aGlzLmljb24pIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAnIHR5cGUgYmFkZ2Ugd2l0aCBpY29uIHR5cGUgJyArIHRoaXMuaWNvbjtcbiAgICAgICAgfSBlbHNlIGlmICh0aGlzLnZhbHVlIHx8IHRoaXMudmFsdWUgPT09IDApIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAnIGJhZGdlIHR5cGUgd2l0aCB2YWx1ZSAnICsgdGhpcy52YWx1ZTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy50eXBlICsgJyBiYWRnZSB0eXBlIHdpdGhvdXQgdmFsdWUnO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS1pbmZvJylcbiAgICBwdWJsaWMgZ2V0IGluZm9DbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QmFkZ2VUeXBlLklORk87XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLXN1Y2Nlc3MnKVxuICAgIHB1YmxpYyBnZXQgc3VjY2Vzc0NsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hCYWRnZVR5cGUuU1VDQ0VTUztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0td2FybmluZycpXG4gICAgcHVibGljIGdldCB3YXJuaW5nQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5XQVJOSU5HO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS1lcnJvcicpXG4gICAgcHVibGljIGdldCBlcnJvckNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hCYWRnZVR5cGUuRVJST1I7XG4gICAgfVxufVxuIiwiPHNwYW4gKm5nSWY9XCJ2YWx1ZSB8fCB2YWx1ZSA9PT0gMCAmJiAhaWNvblwiIGNsYXNzPVwiaWd4LWJhZGdlX192YWx1ZVwiPnt7dmFsdWV9fTwvc3Bhbj5cbjxpZ3gtaWNvbiAqbmdJZj1cImljb24gJiYgIWljb25TZXRcIj57e2ljb259fTwvaWd4LWljb24+XG48aWd4LWljb24gKm5nSWY9XCJpY29uICYmIGljb25TZXRcIiBbZmFtaWx5XT1cImljb25TZXRcIiBbbmFtZV09XCJpY29uXCI+e3tpY29ufX08L2lneC1pY29uPlxuPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
223
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2JhZGdlL2JhZGdlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9iYWRnZS9iYWRnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2hGLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdkMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7O0FBRTFELElBQUksT0FBTyxHQUFHLENBQUMsQ0FBQztBQUVoQjs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxhQUFhLENBQUEsTUFBTSxDQUFDO0lBQzVDLE9BQU8sRUFBRSxTQUFTO0lBQ2xCLElBQUksRUFBRSxNQUFNO0lBQ1osT0FBTyxFQUFFLFNBQVM7SUFDbEIsT0FBTyxFQUFFLFNBQVM7SUFDbEIsS0FBSyxFQUFFLE9BQU87Q0FDakIsQ0FBQyxDQUFDO0FBRUg7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXFCRztBQU9ILE1BQU0sT0FBTyxpQkFBaUI7SUFOOUI7UUFRRzs7Ozs7Ozs7OztXQVVHO1FBR0ssT0FBRSxHQUFHLGFBQWEsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUV0Qzs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFNBQUksR0FBMEIsWUFBWSxDQUFDLE9BQU8sQ0FBQztRQUUzRDs7Ozs7Ozs7Ozs7V0FXRztRQUVLLFVBQUssR0FBb0IsRUFBRSxDQUFDO1FBd0JuQzs7Ozs7Ozs7OztXQVVHO1FBRUksU0FBSSxHQUFHLFFBQVEsQ0FBQztRQUV2Qjs7Ozs7Ozs7OztXQVVHO1FBRUksYUFBUSxHQUFHLFdBQVcsQ0FBQztRQUU5Qjs7Ozs7Ozs7V0FRRztRQUVJLFVBQUssR0FBeUIsU0FBUyxDQUFDO1FBUS9DOzs7Ozs7Ozs7O1dBVUc7UUFFSSxVQUFLLEdBQUcsT0FBTyxDQUFDO1FBRXZCOzs7Ozs7OztXQVFHO1FBR0ksYUFBUSxHQUFHLEtBQUssQ0FBQztLQXNDM0I7SUFyRUcsd0JBQXdCO0lBQ3hCLElBQ1csWUFBWTtRQUNuQixPQUFPLElBQUksQ0FBQyxLQUFLLEtBQUssUUFBUSxDQUFDO0lBQ25DLENBQUM7SUE2QkQ7Ozs7OztPQU1HO0lBQ0gsSUFDVyxlQUFlO1FBQ3RCLElBQUksSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1osT0FBTyxJQUFJLENBQUMsSUFBSSxHQUFHLDZCQUE2QixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDakUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQ3hDLE9BQU8sSUFBSSxDQUFDLElBQUksR0FBRyx5QkFBeUIsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzlELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxJQUFJLEdBQUcsMkJBQTJCLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQ1csU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLElBQUksQ0FBQztJQUMzQyxDQUFDO0lBRUQsSUFDVyxZQUFZO1FBQ25CLE9BQU8sSUFBSSxDQUFDLElBQUksS0FBSyxZQUFZLENBQUMsT0FBTyxDQUFDO0lBQzlDLENBQUM7SUFFRCxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDOUMsQ0FBQztJQUVELElBQ1csVUFBVTtRQUNqQixPQUFPLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxDQUFDLEtBQUssQ0FBQztJQUM1QyxDQUFDOzhHQWpMUSxpQkFBaUI7a0dBQWpCLGlCQUFpQixvTEEwSVAsZ0JBQWdCLHlmQ3hMdkMsZ1JBSUEsNENEd0NjLElBQUksNkZBQUUsZ0JBQWdCOzsyRkFFdkIsaUJBQWlCO2tCQU43QixTQUFTOytCQUNJLFdBQVcsY0FFVCxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLENBQUM7OEJBaUIxQixFQUFFO3NCQUZSLFdBQVc7dUJBQUMsU0FBUzs7c0JBQ3JCLEtBQUs7Z0JBZ0JDLElBQUk7c0JBRFYsS0FBSztnQkFnQkMsS0FBSztzQkFEWCxLQUFLO2dCQWlCQyxJQUFJO3NCQURWLEtBQUs7Z0JBT0MsT0FBTztzQkFEYixLQUFLO2dCQWVDLElBQUk7c0JBRFYsV0FBVzt1QkFBQyxXQUFXO2dCQWVqQixRQUFRO3NCQURkLFdBQVc7dUJBQUMsaUJBQWlCO2dCQWF2QixLQUFLO3NCQURYLEtBQUs7Z0JBS0ssWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyx5QkFBeUI7Z0JBaUIvQixLQUFLO3NCQURYLFdBQVc7dUJBQUMsaUJBQWlCO2dCQWN2QixRQUFRO3NCQUZkLEtBQUs7dUJBQUMsRUFBQyxTQUFTLEVBQUUsZ0JBQWdCLEVBQUM7O3NCQUNuQyxXQUFXO3VCQUFDLDJCQUEyQjtnQkFXN0IsZUFBZTtzQkFEekIsV0FBVzt1QkFBQywyQkFBMkI7Z0JBVzdCLFNBQVM7c0JBRG5CLFdBQVc7dUJBQUMsdUJBQXVCO2dCQU16QixZQUFZO3NCQUR0QixXQUFXO3VCQUFDLDBCQUEwQjtnQkFNNUIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQywwQkFBMEI7Z0JBTTVCLFVBQVU7c0JBRHBCLFdBQVc7dUJBQUMsd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBib29sZWFuQXR0cmlidXRlLCBDb21wb25lbnQsIEhvc3RCaW5kaW5nLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWtlbnVtIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5cbmxldCBORVhUX0lEID0gMDtcblxuLyoqXG4gKiBEZXRlcm1pbmVzIHRoZSBpZ3hCYWRnZSB0eXBlXG4gKi9cbmV4cG9ydCBjb25zdCBJZ3hCYWRnZVR5cGUgPSAvKkBfX1BVUkVfXyovbWtlbnVtKHtcbiAgICBQUklNQVJZOiAncHJpbWFyeScsXG4gICAgSU5GTzogJ2luZm8nLFxuICAgIFNVQ0NFU1M6ICdzdWNjZXNzJyxcbiAgICBXQVJOSU5HOiAnd2FybmluZycsXG4gICAgRVJST1I6ICdlcnJvcidcbn0pO1xuZXhwb3J0IHR5cGUgSWd4QmFkZ2VUeXBlID0gKHR5cGVvZiBJZ3hCYWRnZVR5cGUpW2tleW9mIHR5cGVvZiBJZ3hCYWRnZVR5cGVdO1xuLyoqXG4gKiBCYWRnZSBwcm92aWRlcyB2aXN1YWwgbm90aWZpY2F0aW9ucyB1c2VkIHRvIGRlY29yYXRlIGF2YXRhcnMsIG1lbnVzLCBldGMuXG4gKlxuICogQGlneE1vZHVsZSBJZ3hCYWRnZU1vZHVsZVxuICpcbiAqIEBpZ3hUaGVtZSBpZ3gtYmFkZ2UtdGhlbWVcbiAqXG4gKiBAaWd4S2V5d29yZHMgYmFkZ2UsIGljb24sIG5vdGlmaWNhdGlvblxuICpcbiAqIEBpZ3hHcm91cCBEYXRhIEVudHJ5ICYgRGlzcGxheVxuICpcbiAqIEByZW1hcmtzXG4gKiBUaGUgSWduaXRlIFVJIEJhZGdlIGlzIHVzZWQgdG8gZGVjb3JhdGUgYXZhdGFycywgbmF2aWdhdGlvbiBtZW51cywgb3Igb3RoZXIgY29tcG9uZW50cyBpbiB0aGVcbiAqIGFwcGxpY2F0aW9uIHdoZW4gdmlzdWFsIG5vdGlmaWNhdGlvbiBpcyBuZWVkZWQuIFRoZXkgYXJlIHVzdWFsbHkgZGVzaWduZWQgYXMgaWNvbnMgd2l0aCBhIHByZWRlZmluZWRcbiAqIHN0eWxlIHRvIGNvbW11bmljYXRlIGluZm9ybWF0aW9uLCBzdWNjZXNzLCB3YXJuaW5ncywgb3IgZXJyb3JzLlxuICpcbiAqIEBleGFtcGxlXG4gKiBgYGBodG1sXG4gKiA8aWd4LWF2YXRhcj5cbiAqICAgPGlneC1iYWRnZSBpY29uPVwiY2hlY2tcIiB0eXBlPVwic3VjY2Vzc1wiPjwvaWd4LWJhZGdlPlxuICogPC9pZ3gtYXZhdGFyPlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2lneC1iYWRnZScsXG4gICAgdGVtcGxhdGVVcmw6ICdiYWRnZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBpbXBvcnRzOiBbTmdJZiwgSWd4SWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4QmFkZ2VDb21wb25lbnQge1xuXG4gICAvKipcbiAgICAqIFNldHMvZ2V0cyB0aGUgYGlkYCBvZiB0aGUgYmFkZ2UuXG4gICAgKlxuICAgICogQHJlbWFya3NcbiAgICAqIElmIG5vdCBzZXQsIHRoZSBgaWRgIHdpbGwgaGF2ZSB2YWx1ZSBgXCJpZ3gtYmFkZ2UtMFwiYC5cbiAgICAqXG4gICAgKiBAZXhhbXBsZVxuICAgICogYGBgaHRtbFxuICAgICogPGlneC1iYWRnZSBpZD1cImlneC1iYWRnZS0yXCI+PC9pZ3gtYmFkZ2U+XG4gICAgKiBgYGBcbiAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5pZCcpXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgaWd4LWJhZGdlLSR7TkVYVF9JRCsrfWA7XG5cbiAgIC8qKlxuICAgICogU2V0cy9nZXRzIHRoZSB0eXBlIG9mIHRoZSBiYWRnZS5cbiAgICAqXG4gICAgKiBAcmVtYXJrc1xuICAgICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBwcmltYXJ5YCwgYGluZm9gLCBgc3VjY2Vzc2AsIGB3YXJuaW5nYCwgYGVycm9yYC5cbiAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYSBiYWRnZS5cbiAgICAqXG4gICAgKiBAZXhhbXBsZVxuICAgICogYGBgaHRtbFxuICAgICogPGlneC1iYWRnZSB0eXBlPVwic3VjY2Vzc1wiPjwvaWd4LWJhZGdlPlxuICAgICogYGBgXG4gICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0eXBlOiBzdHJpbmcgfCBJZ3hCYWRnZVR5cGUgPSBJZ3hCYWRnZVR5cGUuUFJJTUFSWTtcblxuICAgLyoqXG4gICAgKiBTZXRzL2dldHMgdGhlIHZhbHVlIHRvIGJlIGRpc3BsYXllZCBpbnNpZGUgdGhlIGJhZGdlLlxuICAgICpcbiAgICAqIEByZW1hcmtzXG4gICAgKiBJZiBhbiBgaWNvbmAgcHJvcGVydHkgaXMgYWxyZWFkeSBzZXQgdGhlIGBpY29uYCB3aWxsIGJlIGRpc3BsYXllZC5cbiAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICpcbiAgICAqIEBleGFtcGxlXG4gICAgKiBgYGBodG1sXG4gICAgKiA8aWd4LWJhZGdlIHZhbHVlPVwiMTFcIj48L2lneC1iYWRnZT5cbiAgICAqIGBgYFxuICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdmFsdWU6IHN0cmluZyB8IG51bWJlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIGFuIGljb24gZm9yIHRoZSBiYWRnZSBmcm9tIHRoZSBtYXRlcmlhbCBpY29ucyBzZXQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEhhcyBwcmlvcml0eSBvdmVyIHRoZSBgdmFsdWVgIHByb3BlcnR5LlxuICAgICAqIElmIG5laXRoZXIgYSBgdmFsdWVgIG5vciBhbiBgaWNvbmAgaXMgc2V0IHRoZSBjb250ZW50IG9mIHRoZSBiYWRnZSB3aWxsIGJlIGVtcHR5LlxuICAgICAqIFByb3ZpZGluZyBhbiBpbnZhbGlkIHZhbHVlIHdvbid0IGRpc3BsYXkgYW55dGhpbmcuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhZGdlIGljb249XCJjaGVja1wiPjwvaWd4LWJhZGdlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGljb246IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBuYW1lIG9mIHRoZSBpY29uIHNldC4gVXNlZCBpbiBjYXNlIHRoZSBpY29uIGlzIGZyb20gYSBkaWZmZXJlbnQgaWNvbiBzZXQuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWNvblNldDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSByb2xlIGF0dHJpYnV0ZSB2YWx1ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKiBwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqXG4gICAgICogYmFkZ2Uucm9sZSA9ICdzdGF0dXMnO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5yb2xlJylcbiAgICBwdWJsaWMgcm9sZSA9ICdzdGF0dXMnO1xuXG4gICAgLyoqXG4gICAgICogU2V0cy9nZXRzIHRoZSBjc3MgY2xhc3MgdG8gdXNlIG9uIHRoZSBiYWRnZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIEBWaWV3Q2hpbGQoXCJNeUJhZGdlXCIsIHsgcmVhZDogSWd4QmFkZ2VDb21wb25lbnQgfSlcbiAgICAgKiBwdWJsaWMgYmFkZ2U6IElneEJhZGdlQ29tcG9uZW50O1xuICAgICAqXG4gICAgICogYmFkZ2UuY3NzQ2xhc3MgPSAnbXktYmFkZ2UtY2xhc3MnO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlJylcbiAgICBwdWJsaWMgY3NzQ2xhc3MgPSAnaWd4LWJhZGdlJztcblxuICAgIC8qKlxuICAgICAqIFNldHMgYSBzcXVhcmUgc2hhcGUgdG8gdGhlIGJhZGdlLCBpZiBgc2hhcGVgIGlzIHNldCB0byBgc3F1YXJlYC5cbiAgICAgKiBCeSBkZWZhdWx0IHRoZSBzaGFwZSBvZiB0aGUgYmFkZ2UgaXMgcm91bmRlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtYmFkZ2Ugc2hhcGU9XCJzcXVhcmVcIj48L2lneC1iYWRnZT5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzaGFwZTogJ3JvdW5kZWQnIHwgJ3NxdWFyZScgPSAncm91bmRlZCc7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tc3F1YXJlJylcbiAgICBwdWJsaWMgZ2V0IF9zcXVhcmVTaGFwZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc2hhcGUgPT09ICdzcXVhcmUnO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB0aGUgYXJpYS1sYWJlbCBhdHRyaWJ1dGUgdmFsdWUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBAVmlld0NoaWxkKFwiTXlCYWRnZVwiLCB7IHJlYWQ6IElneEJhZGdlQ29tcG9uZW50IH0pXG4gICAgICogcHVibGljIGJhZGdlOiBJZ3hCYWRnZUNvbXBvbmVudDtcbiAgICAgKlxuICAgICAqIGJhZGdlLmxhYmVsID0gJ2JhZGdlJztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1sYWJlbCcpXG4gICAgcHVibGljIGxhYmVsID0gJ2JhZGdlJztcblxuICAgIC8qKlxuICAgICAqIFNldHMvZ2V0cyB3aGV0aGVyIHRoZSBiYWRnZSBpcyBvdXRsaW5lZC5cbiAgICAgKiBEZWZhdWx0IHZhbHVlIGlzIGBmYWxzZWAuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWJhZGdlIG91dGxpbmVkPjwvaWd4LWJhZGdlPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCh7dHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlfSlcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tb3V0bGluZWQnKVxuICAgIHB1YmxpYyBvdXRsaW5lZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lcyBhIGh1bWFuLXJlYWRhYmxlLCBhY2Nlc3NvciwgYXV0aG9yLWxvY2FsaXplZCBkZXNjcmlwdGlvbiBmb3JcbiAgICAgKiB0aGUgYHR5cGVgIGFuZCB0aGUgYGljb25gIG9yIGB2YWx1ZWAgb2YgdGhlIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtcm9sZWRlc2NyaXB0aW9uJylcbiAgICBwdWJsaWMgZ2V0IHJvbGVEZXNjcmlwdGlvbigpIHtcbiAgICAgICAgaWYgKHRoaXMuaWNvbikge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICcgdHlwZSBiYWRnZSB3aXRoIGljb24gdHlwZSAnICsgdGhpcy5pY29uO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMudmFsdWUgfHwgdGhpcy52YWx1ZSA9PT0gMCkge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMudHlwZSArICcgYmFkZ2UgdHlwZSB3aXRoIHZhbHVlICcgKyB0aGlzLnZhbHVlO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgKyAnIGJhZGdlIHR5cGUgd2l0aG91dCB2YWx1ZSc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLWluZm8nKVxuICAgIHB1YmxpYyBnZXQgaW5mb0NsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy50eXBlID09PSBJZ3hCYWRnZVR5cGUuSU5GTztcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzLmlneC1iYWRnZS0tc3VjY2VzcycpXG4gICAgcHVibGljIGdldCBzdWNjZXNzQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5TVUNDRVNTO1xuICAgIH1cblxuICAgIEBIb3N0QmluZGluZygnY2xhc3MuaWd4LWJhZGdlLS13YXJuaW5nJylcbiAgICBwdWJsaWMgZ2V0IHdhcm5pbmdDbGFzcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudHlwZSA9PT0gSWd4QmFkZ2VUeXBlLldBUk5JTkc7XG4gICAgfVxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcy5pZ3gtYmFkZ2UtLWVycm9yJylcbiAgICBwdWJsaWMgZ2V0IGVycm9yQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnR5cGUgPT09IElneEJhZGdlVHlwZS5FUlJPUjtcbiAgICB9XG59XG4iLCI8c3BhbiAqbmdJZj1cInZhbHVlIHx8IHZhbHVlID09PSAwICYmICFpY29uXCIgY2xhc3M9XCJpZ3gtYmFkZ2VfX3ZhbHVlXCI+e3t2YWx1ZX19PC9zcGFuPlxuPGlneC1pY29uICpuZ0lmPVwiaWNvbiAmJiAhaWNvblNldFwiPnt7aWNvbn19PC9pZ3gtaWNvbj5cbjxpZ3gtaWNvbiAqbmdJZj1cImljb24gJiYgaWNvblNldFwiIFtmYW1pbHldPVwiaWNvblNldFwiIFtuYW1lXT1cImljb25cIj57e2ljb259fTwvaWd4LWljb24+XG48bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4iXX0=
@@ -1,6 +1,7 @@
1
1
  export const QueryBuilderResourceStringsEN = {
2
- igx_query_builder_date_placeholder: 'Pick up date',
3
- igx_query_builder_time_placeholder: 'Pick up time',
2
+ igx_query_builder_date_placeholder: 'Select date',
3
+ igx_query_builder_time_placeholder: 'Select time',
4
+ igx_query_builder_datetime_placeholder: 'Select date & time',
4
5
  igx_query_builder_filter_operator_and: 'And',
5
6
  igx_query_builder_filter_operator_or: 'Or',
6
7
  igx_query_builder_filter_contains: 'Contains',
@@ -64,4 +65,4 @@ export const QueryBuilderResourceStringsEN = {
64
65
  igx_query_builder_dialog_cancel: 'Cancel',
65
66
  igx_query_builder_dialog_confirm: 'Confirm',
66
67
  };
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1yZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY29yZS9pMThuL3F1ZXJ5LWJ1aWxkZXItcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW1FQSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBaUM7SUFDdkUsa0NBQWtDLEVBQUUsY0FBYztJQUNsRCxrQ0FBa0MsRUFBRSxjQUFjO0lBQ2xELHFDQUFxQyxFQUFFLEtBQUs7SUFDNUMsb0NBQW9DLEVBQUUsSUFBSTtJQUMxQyxpQ0FBaUMsRUFBRSxVQUFVO0lBQzdDLHVDQUF1QyxFQUFFLGtCQUFrQjtJQUMzRCxtQ0FBbUMsRUFBRSxhQUFhO0lBQ2xELGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsK0JBQStCLEVBQUUsUUFBUTtJQUN6QyxxQ0FBcUMsRUFBRSxnQkFBZ0I7SUFDdkQsOEJBQThCLEVBQUUsT0FBTztJQUN2QyxpQ0FBaUMsRUFBRSxXQUFXO0lBQzlDLDZCQUE2QixFQUFFLE1BQU07SUFDckMsZ0NBQWdDLEVBQUUsVUFBVTtJQUM1QywyQkFBMkIsRUFBRSxJQUFJO0lBQ2pDLDhCQUE4QixFQUFFLFFBQVE7SUFDeEMsK0JBQStCLEVBQUUsUUFBUTtJQUN6Qyw4QkFBOEIsRUFBRSxPQUFPO0lBQ3ZDLDJCQUEyQixFQUFFLElBQUk7SUFDakMsK0JBQStCLEVBQUUsUUFBUTtJQUN6QyxrQ0FBa0MsRUFBRSxjQUFjO0lBQ2xELGlDQUFpQyxFQUFFLGFBQWE7SUFDaEQsOEJBQThCLEVBQUUsT0FBTztJQUN2QyxrQ0FBa0MsRUFBRSxXQUFXO0lBQy9DLGtDQUFrQyxFQUFFLFlBQVk7SUFDaEQsa0NBQWtDLEVBQUUsWUFBWTtJQUNoRCxrQ0FBa0MsRUFBRSxZQUFZO0lBQ2hELGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsaUNBQWlDLEVBQUUsV0FBVztJQUM5QyxpQ0FBaUMsRUFBRSxXQUFXO0lBQzlDLG9DQUFvQyxFQUFFLGNBQWM7SUFDcEQsaUNBQWlDLEVBQUUsV0FBVztJQUM5Qyw2Q0FBNkMsRUFBRSwwQkFBMEI7SUFDekUsMENBQTBDLEVBQUUsdUJBQXVCO0lBQ25FLDZCQUE2QixFQUFFLE1BQU07SUFDckMsOEJBQThCLEVBQUUsT0FBTztJQUN2Qyw0QkFBNEIsRUFBRSxLQUFLO0lBQ25DLHVCQUF1QixFQUFFLGVBQWU7SUFDeEMsMkJBQTJCLEVBQUUsYUFBYTtJQUMxQywwQkFBMEIsRUFBRSxZQUFZO0lBQ3hDLDJCQUEyQixFQUFFLFdBQVc7SUFDeEMsMkJBQTJCLEVBQUUsS0FBSztJQUNsQywwQkFBMEIsRUFBRSxJQUFJO0lBQ2hDLCtCQUErQixFQUFFLFdBQVc7SUFDNUMsa0NBQWtDLEVBQUUsb0JBQW9CO0lBQ3hELGlDQUFpQyxFQUFFLG1CQUFtQjtJQUN0RCx5QkFBeUIsRUFBRSxTQUFTO0lBQ3BDLHdCQUF3QixFQUFFLFFBQVE7SUFDbEMsZ0NBQWdDLEVBQUUsZ0JBQWdCO0lBQ2xELDhCQUE4QixFQUFFLHFFQUFxRTtJQUNyRyxvQ0FBb0MsRUFBRSxlQUFlO0lBQ3JELHVDQUF1QyxFQUFFLGVBQWU7SUFDeEQsbUNBQW1DLEVBQUUsT0FBTztJQUM1Qyw0QkFBNEIsRUFBRSxZQUFZO0lBQzFDLHlCQUF5QixFQUFFLFNBQVM7SUFDcEMsd0JBQXdCLEVBQUUsUUFBUTtJQUNsQyw0QkFBNEIsRUFBRSxZQUFZO0lBQzFDLCtCQUErQixFQUFFLGVBQWU7SUFDaEQsc0NBQXNDLEVBQUUsc0JBQXNCO0lBQzlELDhCQUE4QixFQUFFLGNBQWM7SUFDOUMsZ0NBQWdDLEVBQUUsZ0dBQWdHO0lBQ2xJLHNDQUFzQyxFQUFFLCtCQUErQjtJQUN2RSwrQkFBK0IsRUFBRSxRQUFRO0lBQ3pDLGdDQUFnQyxFQUFFLFNBQVM7Q0FDOUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgSVF1ZXJ5QnVpbGRlclJlc291cmNlU3RyaW5ncyB7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGF0ZV9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl90aW1lX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9vcGVyYXRvcl9hbmQ/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX29wZXJhdG9yX29yPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9jb250YWlucz86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZG9lc05vdENvbnRhaW4/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3N0YXJ0c1dpdGg/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2VuZHNXaXRoPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9lcXVhbHM/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2RvZXNOb3RFcXVhbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZW1wdHk/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX25vdEVtcHR5Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9udWxsPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3ROdWxsPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9pbj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbm90SW4/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2JlZm9yZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWZ0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2F0Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RfYXQ/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2F0X2JlZm9yZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYXRfYWZ0ZXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RvZGF5Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl95ZXN0ZXJkYXk/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNNb250aD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGFzdE1vbnRoPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9uZXh0TW9udGg/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNZZWFyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9sYXN0WWVhcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbmV4dFllYXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2dyZWF0ZXJUaGFuPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9sZXNzVGhhbj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZ3JlYXRlclRoYW5PckVxdWFsVG8/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2xlc3NUaGFuT3JFcXVhbFRvPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl90cnVlPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9mYWxzZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWxsPzogc3RyaW5nOyAgICBcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl90aXRsZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfb3JfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZW5kX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2FuZF9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9vcl9sYWJlbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hZGRfY29uZGl0aW9uPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2NyZWF0ZV9hbmRfZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX29yX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX3VuZ3JvdXA/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGVsZXRlPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RlbGV0ZV9maWx0ZXJzPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2luaXRpYWxfdGV4dD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9jb2x1bW5fcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfY29uZGl0aW9uX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX3ZhbHVlX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2FsbF9maWVsZHM/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGV0YWlscz86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9zZWFyY2g/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VsZWN0X2FsbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9zZWxlY3RfZW50aXR5Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX3NlbGVjdF9yZXR1cm5fZmllbGRzPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RpYWxvZ190aXRsZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfbWVzc2FnZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2hlY2tib3hfdGV4dD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2FuY2VsPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RpYWxvZ19jb25maXJtPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY29uc3QgUXVlcnlCdWlsZGVyUmVzb3VyY2VTdHJpbmdzRU46IElRdWVyeUJ1aWxkZXJSZXNvdXJjZVN0cmluZ3MgPSB7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGF0ZV9wbGFjZWhvbGRlcjogJ1BpY2sgdXAgZGF0ZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGltZV9wbGFjZWhvbGRlcjogJ1BpY2sgdXAgdGltZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX29wZXJhdG9yX2FuZDogJ0FuZCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX29wZXJhdG9yX29yOiAnT3InLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9jb250YWluczogJ0NvbnRhaW5zJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZG9lc05vdENvbnRhaW46ICdEb2VzIE5vdCBDb250YWluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfc3RhcnRzV2l0aDogJ1N0YXJ0cyBXaXRoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZW5kc1dpdGg6ICdFbmRzIFdpdGgnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9lcXVhbHM6ICdFcXVhbHMnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9kb2VzTm90RXF1YWw6ICdEb2VzIE5vdCBFcXVhbCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2VtcHR5OiAnRW1wdHknLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RFbXB0eTogJ05vdCBFbXB0eScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX251bGw6ICdOdWxsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbm90TnVsbDogJ05vdCBOdWxsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfaW46ICdJbicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX25vdEluOiAnTm90IEluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYmVmb3JlOiAnQmVmb3JlJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWZ0ZXI6ICdBZnRlcicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2F0OiAnQXQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RfYXQ6ICdOb3QgQXQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdF9iZWZvcmU6ICdBdCBvciBCZWZvcmUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdF9hZnRlcjogJ0F0IG9yIEFmdGVyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfdG9kYXk6ICdUb2RheScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3llc3RlcmRheTogJ1llc3RlcmRheScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNNb250aDogJ1RoaXMgTW9udGgnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9sYXN0TW9udGg6ICdMYXN0IE1vbnRoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNZZWFyOiAnVGhpcyBZZWFyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGFzdFllYXI6ICdMYXN0IFllYXInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9uZXh0WWVhcjogJ05leHQgWWVhcicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2dyZWF0ZXJUaGFuOiAnR3JlYXRlciBUaGFuJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGVzc1RoYW46ICdMZXNzIFRoYW4nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ncmVhdGVyVGhhbk9yRXF1YWxUbzogJ0dyZWF0ZXIgVGhhbiBPciBFcXVhbCBUbycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2xlc3NUaGFuT3JFcXVhbFRvOiAnTGVzcyBUaGFuIE9yIEVxdWFsIFRvJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfdHJ1ZTogJ1RydWUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9mYWxzZTogJ0ZhbHNlJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWxsOiAnQWxsJywgICAgXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGl0bGU6ICdRdWVyeSBCdWlsZGVyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfZ3JvdXA6ICdcIkFuZFwiIEdyb3VwJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9vcl9ncm91cDogJ1wiT3JcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZW5kX2dyb3VwOiAnRW5kIEdyb3VwJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfbGFiZWw6ICdhbmQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX29yX2xhYmVsOiAnb3InLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2FkZF9jb25kaXRpb246ICdDb25kaXRpb24nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NyZWF0ZV9hbmRfZ3JvdXA6ICdDcmVhdGUgXCJBbmRcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX29yX2dyb3VwOiAnQ3JlYXRlIFwiT3JcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdW5ncm91cDogJ1VuZ3JvdXAnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2RlbGV0ZTogJ0RlbGV0ZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGVsZXRlX2ZpbHRlcnM6ICdEZWxldGUgZmlsdGVycycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfaW5pdGlhbF90ZXh0OiAnU3RhcnQgd2l0aCBjcmVhdGluZyBhIGdyb3VwIG9mIGNvbmRpdGlvbnMgbGlua2VkIHdpdGggXCJBbmRcIiBvciBcIk9yXCInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NvbHVtbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBjb2x1bW4nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NvbmRpdGlvbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBmaWx0ZXInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX3ZhbHVlX3BsYWNlaG9sZGVyOiAnVmFsdWUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2FsbF9maWVsZHM6ICdBbGwgZmllbGRzJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kZXRhaWxzOiAnRGV0YWlscycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VhcmNoOiAnU2VhcmNoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9zZWxlY3RfYWxsOiAnU2VsZWN0IEFsbCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VsZWN0X2VudGl0eTogJ1NlbGVjdCBlbnRpdHknLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX3NlbGVjdF9yZXR1cm5fZmllbGRzOiAnU2VsZWN0IHJldHVybiBmaWVsZHMnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2RpYWxvZ190aXRsZTogJ0NvbmZpcm1hdGlvbicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGlhbG9nX21lc3NhZ2U6ICdCeSBjaGFuZ2luZyB0aGUgZW50aXR5LCB5b3Ugd2lsbCBsb3NlIHlvdXIgY3VycmVudCBzZXR0aW5ncy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRvIHRoYXQ/JyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2hlY2tib3hfdGV4dDogJ0RvIG5vdCBzaG93IHRoaXMgZGlhbG9nIGFnYWluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY29uZmlybTogJ0NvbmZpcm0nLFxufTsiXX0=
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlcnktYnVpbGRlci1yZXNvdXJjZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvY29yZS9pMThuL3F1ZXJ5LWJ1aWxkZXItcmVzb3VyY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQW9FQSxNQUFNLENBQUMsTUFBTSw2QkFBNkIsR0FBaUM7SUFDdkUsa0NBQWtDLEVBQUUsYUFBYTtJQUNqRCxrQ0FBa0MsRUFBRSxhQUFhO0lBQ2pELHNDQUFzQyxFQUFFLG9CQUFvQjtJQUM1RCxxQ0FBcUMsRUFBRSxLQUFLO0lBQzVDLG9DQUFvQyxFQUFFLElBQUk7SUFDMUMsaUNBQWlDLEVBQUUsVUFBVTtJQUM3Qyx1Q0FBdUMsRUFBRSxrQkFBa0I7SUFDM0QsbUNBQW1DLEVBQUUsYUFBYTtJQUNsRCxpQ0FBaUMsRUFBRSxXQUFXO0lBQzlDLCtCQUErQixFQUFFLFFBQVE7SUFDekMscUNBQXFDLEVBQUUsZ0JBQWdCO0lBQ3ZELDhCQUE4QixFQUFFLE9BQU87SUFDdkMsaUNBQWlDLEVBQUUsV0FBVztJQUM5Qyw2QkFBNkIsRUFBRSxNQUFNO0lBQ3JDLGdDQUFnQyxFQUFFLFVBQVU7SUFDNUMsMkJBQTJCLEVBQUUsSUFBSTtJQUNqQyw4QkFBOEIsRUFBRSxRQUFRO0lBQ3hDLCtCQUErQixFQUFFLFFBQVE7SUFDekMsOEJBQThCLEVBQUUsT0FBTztJQUN2QywyQkFBMkIsRUFBRSxJQUFJO0lBQ2pDLCtCQUErQixFQUFFLFFBQVE7SUFDekMsa0NBQWtDLEVBQUUsY0FBYztJQUNsRCxpQ0FBaUMsRUFBRSxhQUFhO0lBQ2hELDhCQUE4QixFQUFFLE9BQU87SUFDdkMsa0NBQWtDLEVBQUUsV0FBVztJQUMvQyxrQ0FBa0MsRUFBRSxZQUFZO0lBQ2hELGtDQUFrQyxFQUFFLFlBQVk7SUFDaEQsa0NBQWtDLEVBQUUsWUFBWTtJQUNoRCxpQ0FBaUMsRUFBRSxXQUFXO0lBQzlDLGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsaUNBQWlDLEVBQUUsV0FBVztJQUM5QyxvQ0FBb0MsRUFBRSxjQUFjO0lBQ3BELGlDQUFpQyxFQUFFLFdBQVc7SUFDOUMsNkNBQTZDLEVBQUUsMEJBQTBCO0lBQ3pFLDBDQUEwQyxFQUFFLHVCQUF1QjtJQUNuRSw2QkFBNkIsRUFBRSxNQUFNO0lBQ3JDLDhCQUE4QixFQUFFLE9BQU87SUFDdkMsNEJBQTRCLEVBQUUsS0FBSztJQUNuQyx1QkFBdUIsRUFBRSxlQUFlO0lBQ3hDLDJCQUEyQixFQUFFLGFBQWE7SUFDMUMsMEJBQTBCLEVBQUUsWUFBWTtJQUN4QywyQkFBMkIsRUFBRSxXQUFXO0lBQ3hDLDJCQUEyQixFQUFFLEtBQUs7SUFDbEMsMEJBQTBCLEVBQUUsSUFBSTtJQUNoQywrQkFBK0IsRUFBRSxXQUFXO0lBQzVDLGtDQUFrQyxFQUFFLG9CQUFvQjtJQUN4RCxpQ0FBaUMsRUFBRSxtQkFBbUI7SUFDdEQseUJBQXlCLEVBQUUsU0FBUztJQUNwQyx3QkFBd0IsRUFBRSxRQUFRO0lBQ2xDLGdDQUFnQyxFQUFFLGdCQUFnQjtJQUNsRCw4QkFBOEIsRUFBRSxxRUFBcUU7SUFDckcsb0NBQW9DLEVBQUUsZUFBZTtJQUNyRCx1Q0FBdUMsRUFBRSxlQUFlO0lBQ3hELG1DQUFtQyxFQUFFLE9BQU87SUFDNUMsNEJBQTRCLEVBQUUsWUFBWTtJQUMxQyx5QkFBeUIsRUFBRSxTQUFTO0lBQ3BDLHdCQUF3QixFQUFFLFFBQVE7SUFDbEMsNEJBQTRCLEVBQUUsWUFBWTtJQUMxQywrQkFBK0IsRUFBRSxlQUFlO0lBQ2hELHNDQUFzQyxFQUFFLHNCQUFzQjtJQUM5RCw4QkFBOEIsRUFBRSxjQUFjO0lBQzlDLGdDQUFnQyxFQUFFLGdHQUFnRztJQUNsSSxzQ0FBc0MsRUFBRSwrQkFBK0I7SUFDdkUsK0JBQStCLEVBQUUsUUFBUTtJQUN6QyxnQ0FBZ0MsRUFBRSxTQUFTO0NBQzlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElRdWVyeUJ1aWxkZXJSZXNvdXJjZVN0cmluZ3Mge1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RhdGVfcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGltZV9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kYXRldGltZV9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfb3BlcmF0b3JfYW5kPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9vcGVyYXRvcl9vcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfY29udGFpbnM/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2RvZXNOb3RDb250YWluPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9zdGFydHNXaXRoPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9lbmRzV2l0aD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZXF1YWxzPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9kb2VzTm90RXF1YWw/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2VtcHR5Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RFbXB0eT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbnVsbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbm90TnVsbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfaW4/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX25vdEluPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9iZWZvcmU/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2FmdGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbm90X2F0Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdF9iZWZvcmU/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2F0X2FmdGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl90b2RheT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfeWVzdGVyZGF5Pzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl90aGlzTW9udGg/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2xhc3RNb250aD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbmV4dE1vbnRoPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl90aGlzWWVhcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGFzdFllYXI/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX25leHRZZWFyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ncmVhdGVyVGhhbj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGVzc1RoYW4/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2dyZWF0ZXJUaGFuT3JFcXVhbFRvPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9sZXNzVGhhbk9yRXF1YWxUbz86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfdHJ1ZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZmFsc2U/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2FsbD86IHN0cmluZzsgICAgXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGl0bGU/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfYW5kX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX29yX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2VuZF9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfb3JfbGFiZWw/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfYWRkX2NvbmRpdGlvbj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9jcmVhdGVfYW5kX2dyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2NyZWF0ZV9vcl9ncm91cD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl91bmdyb3VwPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RlbGV0ZT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kZWxldGVfZmlsdGVycz86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9pbml0aWFsX3RleHQ/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfY29sdW1uX3BsYWNlaG9sZGVyPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2NvbmRpdGlvbl9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl92YWx1ZV9wbGFjZWhvbGRlcj86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbGxfZmllbGRzPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RldGFpbHM/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VhcmNoPzogc3RyaW5nO1xuICAgIGlneF9xdWVyeV9idWlsZGVyX3NlbGVjdF9hbGw/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VsZWN0X2VudGl0eT86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9zZWxlY3RfcmV0dXJuX2ZpZWxkcz86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfdGl0bGU/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGlhbG9nX21lc3NhZ2U/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGlhbG9nX2NoZWNrYm94X3RleHQ/OiBzdHJpbmc7XG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGlhbG9nX2NhbmNlbD86IHN0cmluZztcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY29uZmlybT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNvbnN0IFF1ZXJ5QnVpbGRlclJlc291cmNlU3RyaW5nc0VOOiBJUXVlcnlCdWlsZGVyUmVzb3VyY2VTdHJpbmdzID0ge1xuICAgIGlneF9xdWVyeV9idWlsZGVyX2RhdGVfcGxhY2Vob2xkZXI6ICdTZWxlY3QgZGF0ZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGltZV9wbGFjZWhvbGRlcjogJ1NlbGVjdCB0aW1lJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kYXRldGltZV9wbGFjZWhvbGRlcjogJ1NlbGVjdCBkYXRlICYgdGltZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX29wZXJhdG9yX2FuZDogJ0FuZCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX29wZXJhdG9yX29yOiAnT3InLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9jb250YWluczogJ0NvbnRhaW5zJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZG9lc05vdENvbnRhaW46ICdEb2VzIE5vdCBDb250YWluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfc3RhcnRzV2l0aDogJ1N0YXJ0cyBXaXRoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfZW5kc1dpdGg6ICdFbmRzIFdpdGgnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9lcXVhbHM6ICdFcXVhbHMnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9kb2VzTm90RXF1YWw6ICdEb2VzIE5vdCBFcXVhbCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2VtcHR5OiAnRW1wdHknLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RFbXB0eTogJ05vdCBFbXB0eScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX251bGw6ICdOdWxsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbm90TnVsbDogJ05vdCBOdWxsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfaW46ICdJbicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX25vdEluOiAnTm90IEluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYmVmb3JlOiAnQmVmb3JlJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWZ0ZXI6ICdBZnRlcicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2F0OiAnQXQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ub3RfYXQ6ICdOb3QgQXQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdF9iZWZvcmU6ICdBdCBvciBCZWZvcmUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9hdF9hZnRlcjogJ0F0IG9yIEFmdGVyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfdG9kYXk6ICdUb2RheScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3llc3RlcmRheTogJ1llc3RlcmRheScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNNb250aDogJ1RoaXMgTW9udGgnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9sYXN0TW9udGg6ICdMYXN0IE1vbnRoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbmV4dE1vbnRoOiAnTmV4dCBNb250aCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX3RoaXNZZWFyOiAnVGhpcyBZZWFyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGFzdFllYXI6ICdMYXN0IFllYXInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9uZXh0WWVhcjogJ05leHQgWWVhcicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2dyZWF0ZXJUaGFuOiAnR3JlYXRlciBUaGFuJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfbGVzc1RoYW46ICdMZXNzIFRoYW4nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9ncmVhdGVyVGhhbk9yRXF1YWxUbzogJ0dyZWF0ZXIgVGhhbiBPciBFcXVhbCBUbycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZmlsdGVyX2xlc3NUaGFuT3JFcXVhbFRvOiAnTGVzcyBUaGFuIE9yIEVxdWFsIFRvJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfdHJ1ZTogJ1RydWUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2ZpbHRlcl9mYWxzZTogJ0ZhbHNlJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9maWx0ZXJfYWxsOiAnQWxsJywgICAgXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdGl0bGU6ICdRdWVyeSBCdWlsZGVyJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfZ3JvdXA6ICdcIkFuZFwiIEdyb3VwJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9vcl9ncm91cDogJ1wiT3JcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZW5kX2dyb3VwOiAnRW5kIEdyb3VwJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9hbmRfbGFiZWw6ICdhbmQnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX29yX2xhYmVsOiAnb3InLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2FkZF9jb25kaXRpb246ICdDb25kaXRpb24nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NyZWF0ZV9hbmRfZ3JvdXA6ICdDcmVhdGUgXCJBbmRcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfY3JlYXRlX29yX2dyb3VwOiAnQ3JlYXRlIFwiT3JcIiBHcm91cCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfdW5ncm91cDogJ1VuZ3JvdXAnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2RlbGV0ZTogJ0RlbGV0ZScsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGVsZXRlX2ZpbHRlcnM6ICdEZWxldGUgZmlsdGVycycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfaW5pdGlhbF90ZXh0OiAnU3RhcnQgd2l0aCBjcmVhdGluZyBhIGdyb3VwIG9mIGNvbmRpdGlvbnMgbGlua2VkIHdpdGggXCJBbmRcIiBvciBcIk9yXCInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NvbHVtbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBjb2x1bW4nLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2NvbmRpdGlvbl9wbGFjZWhvbGRlcjogJ1NlbGVjdCBmaWx0ZXInLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX3ZhbHVlX3BsYWNlaG9sZGVyOiAnVmFsdWUnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2FsbF9maWVsZHM6ICdBbGwgZmllbGRzJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kZXRhaWxzOiAnRGV0YWlscycsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VhcmNoOiAnU2VhcmNoJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9zZWxlY3RfYWxsOiAnU2VsZWN0IEFsbCcsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfc2VsZWN0X2VudGl0eTogJ1NlbGVjdCBlbnRpdHknLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX3NlbGVjdF9yZXR1cm5fZmllbGRzOiAnU2VsZWN0IHJldHVybiBmaWVsZHMnLFxuICAgIGlneF9xdWVyeV9idWlsZGVyX2RpYWxvZ190aXRsZTogJ0NvbmZpcm1hdGlvbicsXG4gICAgaWd4X3F1ZXJ5X2J1aWxkZXJfZGlhbG9nX21lc3NhZ2U6ICdCeSBjaGFuZ2luZyB0aGUgZW50aXR5LCB5b3Ugd2lsbCBsb3NlIHlvdXIgY3VycmVudCBzZXR0aW5ncy4gQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRvIHRoYXQ/JyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2hlY2tib3hfdGV4dDogJ0RvIG5vdCBzaG93IHRoaXMgZGlhbG9nIGFnYWluJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY2FuY2VsOiAnQ2FuY2VsJyxcbiAgICBpZ3hfcXVlcnlfYnVpbGRlcl9kaWFsb2dfY29uZmlybTogJ0NvbmZpcm0nLFxufTsiXX0=
@@ -4,4 +4,4 @@ export var FilteringLogic;
4
4
  FilteringLogic[FilteringLogic["And"] = 0] = "And";
5
5
  FilteringLogic[FilteringLogic["Or"] = 1] = "Or";
6
6
  })(FilteringLogic || (FilteringLogic = {}));
7
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEscUJBQXFCO0FBQ3JCLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsaURBQUcsQ0FBQTtJQUNILCtDQUFFLENBQUE7QUFDTixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyaW5nT3BlcmF0aW9uIH0gZnJvbSAnLi9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IFNlcmlhbGl6YWJsZSB9IGZyb20gJ25vZGU6Y2hpbGRfcHJvY2Vzcyc7XG5pbXBvcnQgeyBJRXhwcmVzc2lvblRyZWUgfSBmcm9tICcuL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcblxuLyogbXVzdENvZXJjZVRvSW50ICovXG5leHBvcnQgZW51bSBGaWx0ZXJpbmdMb2dpYyB7XG4gICAgQW5kLFxuICAgIE9yXG59XG5cbi8qIHRzUGxhaW5JbnRlcmZhY2UgKi9cbi8qIG1hcnNoYWxCeVZhbHVlICovXG4vKipcbiAqIFJlcHJlc2VudHMgZmlsdGVyaW5nIGV4cHJlc3Npb25zLlxuICovXG5leHBvcnQgZGVjbGFyZSBpbnRlcmZhY2UgSUZpbHRlcmluZ0V4cHJlc3Npb24ge1xuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGNvbmRpdGlvbj86IElGaWx0ZXJpbmdPcGVyYXRpb247XG4gICAgY29uZGl0aW9uTmFtZTogc3RyaW5nO1xuICAgIHNlYXJjaFZhbD86IFNlcmlhbGl6YWJsZTtcbiAgICBzZWFyY2hUcmVlPzogSUV4cHJlc3Npb25UcmVlO1xuICAgIGlnbm9yZUNhc2U/OiBib29sZWFuO1xufVxuIl19
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyaW5nLWV4cHJlc3Npb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EscUJBQXFCO0FBQ3JCLE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDdEIsaURBQUcsQ0FBQTtJQUNILCtDQUFFLENBQUE7QUFDTixDQUFDLEVBSFcsY0FBYyxLQUFkLGNBQWMsUUFHekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJRmlsdGVyaW5nT3BlcmF0aW9uIH0gZnJvbSAnLi9maWx0ZXJpbmctY29uZGl0aW9uJztcbmltcG9ydCB7IElFeHByZXNzaW9uVHJlZSB9IGZyb20gJy4vZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuXG4vKiBtdXN0Q29lcmNlVG9JbnQgKi9cbmV4cG9ydCBlbnVtIEZpbHRlcmluZ0xvZ2ljIHtcbiAgICBBbmQsXG4gICAgT3Jcbn1cblxuLyogdHNQbGFpbkludGVyZmFjZSAqL1xuLyogbWFyc2hhbEJ5VmFsdWUgKi9cbi8qKlxuICogUmVwcmVzZW50cyBmaWx0ZXJpbmcgZXhwcmVzc2lvbnMuXG4gKi9cbmV4cG9ydCBkZWNsYXJlIGludGVyZmFjZSBJRmlsdGVyaW5nRXhwcmVzc2lvbiB7XG4gICAgZmllbGROYW1lOiBzdHJpbmc7XG4gICAgY29uZGl0aW9uPzogSUZpbHRlcmluZ09wZXJhdGlvbjtcbiAgICBjb25kaXRpb25OYW1lPzogc3RyaW5nO1xuICAgIHNlYXJjaFZhbD86IGFueTtcbiAgICBzZWFyY2hUcmVlPzogSUV4cHJlc3Npb25UcmVlO1xuICAgIGlnbm9yZUNhc2U/OiBib29sZWFuO1xufVxuIl19
@@ -173,7 +173,7 @@ export class IgxGridFilteringCellComponent {
173
173
  }
174
174
  }
175
175
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridFilteringCellComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.IgxFilteringService }], target: i0.ɵɵFactoryTarget.Component }); }
176
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridFilteringCellComponent, isStandalone: true, selector: "igx-grid-filtering-cell", inputs: { column: "column" }, host: { properties: { "class": "this.styleClasses" } }, viewQueries: [{ propertyName: "emptyFilter", first: true, predicate: ["emptyFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultFilter", first: true, predicate: ["defaultFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexFilter", first: true, predicate: ["complexFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent }, { propertyName: "moreIcon", first: true, predicate: ["moreIcon"], descendants: true, read: ElementRef }, { propertyName: "ghostChip", first: true, predicate: ["ghostChip"], descendants: true, read: IgxChipComponent }, { propertyName: "complexChip", first: true, predicate: ["complexChip"], descendants: true, read: IgxChipComponent }], ngImport: i0, template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <ng-container *ngFor=\"let item of expressionsList; let last = last; let index = index;\" >\n <igx-chip *ngIf=\"isChipVisible(index)\"\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n <span class=\"igx-filtering-chips__connector\" *ngIf=\"!last && isChipVisible(index + 1)\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n </ng-container>\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n", dependencies: [{ kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
176
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridFilteringCellComponent, isStandalone: true, selector: "igx-grid-filtering-cell", inputs: { column: "column" }, host: { properties: { "class": "this.styleClasses" } }, viewQueries: [{ propertyName: "emptyFilter", first: true, predicate: ["emptyFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultFilter", first: true, predicate: ["defaultFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "complexFilter", first: true, predicate: ["complexFilter"], descendants: true, read: TemplateRef, static: true }, { propertyName: "chipsArea", first: true, predicate: ["chipsArea"], descendants: true, read: IgxChipsAreaComponent }, { propertyName: "moreIcon", first: true, predicate: ["moreIcon"], descendants: true, read: ElementRef }, { propertyName: "ghostChip", first: true, predicate: ["ghostChip"], descendants: true, read: IgxChipComponent }, { propertyName: "complexChip", first: true, predicate: ["complexChip"], descendants: true, read: IgxChipComponent }], ngImport: i0, template: "<ng-template #emptyFilter>\n <igx-chips-area [attr.draggable]=\"false\" class=\"igx-filtering-chips\">\n <igx-chip #ghostChip [attr.draggable]=\"false\" (click)=\"onChipClicked()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon\n [attr.draggable]=\"false\"\n igxPrefix\n family=\"default\"\n name=\"filter_list\"\n ></igx-icon>\n <span [attr.draggable]=\"false\">{{filteringService.grid.resourceStrings.igx_grid_filter}}</span>\n </igx-chip>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #defaultFilter>\n <igx-chips-area #chipsArea class=\"igx-filtering-chips\">\n <ng-container *ngFor=\"let item of expressionsList; let last = last; let index = index;\" >\n <igx-chip *ngIf=\"isChipVisible(index)\"\n [removable]=\"true\"\n [tabIndex]=\"-1\"\n [style.--ig-size]=\"filteringElementsSize\"\n (click)=\"onChipClicked(item.expression)\"\n (remove)=\"onChipRemoved($event, item)\">\n <igx-icon igxPrefix\n family=\"default\"\n [name]=\"item.expression.condition.iconName\">\n </igx-icon>\n <span #label>\n {{filteringService.getChipLabel(item.expression)}}\n </span>\n </igx-chip>\n <span class=\"igx-filtering-chips__connector\" *ngIf=\"!last && isChipVisible(index + 1)\">{{filteringService.getOperatorAsString(item.afterOperator)}}</span>\n </ng-container>\n <div #moreIcon [ngClass]=\"filteringIndicatorClass()\" (click)=\"onChipClicked()\">\n <igx-icon family=\"default\" name=\"filter_list\"></igx-icon>\n <igx-badge [value]=\"moreFiltersCount\"></igx-badge>\n </div>\n </igx-chips-area>\n</ng-template>\n\n<ng-template #complexFilter>\n <igx-chip #complexChip [removable]=\"true\" (remove)=\"clearFiltering()\" [tabIndex]=\"-1\" [style.--ig-size]=\"filteringElementsSize\">\n <igx-icon igxPrefix family=\"default\" name=\"filter_list\"></igx-icon>\n <span>{{filteringService.grid.resourceStrings.igx_grid_complex_filter}}</span>\n </igx-chip>\n</ng-template>\n\n<ng-container *ngTemplateOutlet=\"template; context: context\"></ng-container>\n", dependencies: [{ kind: "component", type: IgxChipsAreaComponent, selector: "igx-chips-area", inputs: ["width", "height"], outputs: ["reorder", "selectionChange", "moveStart", "moveEnd"] }, { kind: "component", type: IgxChipComponent, selector: "igx-chip", inputs: ["variant", "id", "tabIndex", "data", "draggable", "animateOnRelease", "hideBaseOnDrag", "removable", "removeIcon", "selectable", "selectIcon", "class", "disabled", "selected", "color", "resourceStrings"], outputs: ["selectedChange", "moveStart", "moveEnd", "remove", "chipClick", "selectedChanging", "selectedChanged", "keyDown", "dragEnter", "dragLeave", "dragOver", "dragDrop"] }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "directive", type: IgxPrefixDirective, selector: "igx-prefix,[igxPrefix],[igxStart]" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
177
177
  }
178
178
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridFilteringCellComponent, decorators: [{
179
179
  type: Component,
@@ -215,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
215
215
  type: HostBinding,
216
216
  args: ['class']
217
217
  }] } });
218
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBc0IsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUxQzs7R0FFRztBQWtCSCxNQUFNLE9BQU8sNkJBQTZCO0lBMEJ0QyxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFD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RUFBRSxnQkFBZ0IsRUFBRTtnQkFJeEMsV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3pDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRmlsdGVyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nU2VydmljZSB9IGZyb20gJy4uL2dyaWQtZmlsdGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvblVJIH0gZnJvbSAnLi4vZXhjZWwtc3R5bGUvY29tbW9uJztcbmltcG9ydCB7IElneENoaXBzQXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2NoaXBzLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IElCYXNlQ2hpcEV2ZW50QXJncywgSWd4Q2hpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2NoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4QmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWd4UHJlZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9wcmVmaXgvcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtZmlsdGVyaW5nLWNlbGwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWZpbHRlcmluZy1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgSWd4Q2hpcHNBcmVhQ29tcG9uZW50LFxuICAgICAgICBJZ3hDaGlwQ29tcG9uZW50LFxuICAgICAgICBJZ3hJY29uQ29tcG9uZW50LFxuICAgICAgICBJZ3hQcmVmaXhEaXJlY3RpdmUsXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBJZ3hCYWRnZUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEZpbHRlcmluZ0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2VtcHR5RmlsdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGVtcHR5RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29tcGxleEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2hpcHNBcmVhJywgeyByZWFkOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgY2hpcHNBcmVhOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdtb3JlSWNvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBtb3JlSWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2dob3N0Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBnaG9zdENoaXA6IElneENoaXBDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb21wbGV4Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4Q2hpcDogSWd4Q2hpcENvbXBvbmVudDtcblxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBzdHlsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uICYmIHRoaXMuY29sdW1uLnNlbGVjdGVkID9cbiAgICAgICAgICAgICdpZ3gtZ3JpZF9fZmlsdGVyaW5nLWNlbGwtLXNlbGVjdGVkJyA6XG4gICAgICAgICAgICAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwcmVzc2lvbnNMaXN0OiBFeHByZXNzaW9uVUlbXTtcbiAgICBwdWJsaWMgbW9yZUZpbHRlcnNDb3VudCA9IDA7XG5cbiAgICBwcml2YXRlIGJhc2VDbGFzcyA9ICdpZ3gtZ3JpZF9fZmlsdGVyaW5nLWNlbGwtaW5kaWNhdG9yJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5zdWJzY3JpYmVUb0V2ZW50cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uc2V0KHRoaXMuY29sdW1uLmZpZWxkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlckNlbGxBcmVhKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJDZWxsQXJlYSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciBhIGNoaXAgd2l0aCBhIGdpdmVuIGluZGV4IGlzIHZpc2libGUgb3Igbm90LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0NoaXBWaXNpYmxlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4XTtcbiAgICAgICAgcmV0dXJuICEhKGV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi5pc1Zpc2libGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGZpbHRlcmluZyBjZWxsIGFyZWEuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUZpbHRlckNlbGxBcmVhKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IHRoaXMuZmlsdGVyaW5nU2VydmljZS5nZXRFeHByZXNzaW9ucyh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvblRyZWUgPSB0aGlzLmNvbHVtbi5maWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgICAgIGlmICghZXhwcmVzc2lvblRyZWUgfHwgZXhwcmVzc2lvblRyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eUZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyQ29tcGxleCh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXhGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb250ZXh0IHBhc3NlZCB0byB0aGUgZmlsdGVyIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRGaWx0ZXJpbmdDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IHRoaXMuY29sdW1uLCBjb2x1bW46IHRoaXMuY29sdW1ufTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGlwIGNsaWNrZWQgZXZlbnQgaGFuZGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25DaGlwQ2xpY2tlZChleHByZXNzaW9uPzogSUZpbHRlcmluZ0V4cHJlc3Npb24pIHtcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSAoaXRlbS5leHByZXNzaW9uID09PSBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMF0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQubmF2aWdhdGlvbi5wZXJmb3JtSG9yaXpvbnRhbFNjcm9sbFRvQ2VsbCh0aGlzLmNvbHVtbi52aXNpYmxlSW5kZXgpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVyZWRDb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyUm93VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5zZWxlY3RlZEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoaXAgcmVtb3ZlZCBldmVudCBoYW5kbGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNoaXBSZW1vdmVkKGV2ZW50QXJnczogSUJhc2VDaGlwRXZlbnRBcmdzLCBpdGVtOiBFeHByZXNzaW9uVUkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIHRoaXMucmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQudGhlYWRSb3cubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZmlsdGVyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckZpbHRlcmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNsZWFyRmlsdGVyKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpbHRlcmluZyBpbmRpY2F0b3IgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcmluZ0luZGljYXRvckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW3RoaXMuYmFzZUNsYXNzXTogIXRoaXMuaXNNb3JlSWNvbkhpZGRlbigpLFxuICAgICAgICAgICAgW2Ake3RoaXMuYmFzZUNsYXNzfS0taGlkZGVuYF06IHRoaXMuaXNNb3JlSWNvbkhpZGRlbigpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBmaWx0ZXJpbmdFbGVtZW50c1NpemUoKTogU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5ncmlkLmdyaWRTaXplID09PSBTaXplLkxhcmdlID8gU2l6ZS5NZWRpdW0gOiB0aGlzLmNvbHVtbi5ncmlkLmdyaWRTaXplO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4VG9SZW1vdmUgPT09IDAgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyaW5nKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UucmVtb3ZlRXhwcmVzc2lvbih0aGlzLmNvbHVtbi5maWVsZCwgaW5kZXhUb1JlbW92ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlRmlsdGVycygpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVySW50ZXJuYWwodGhpcy5jb2x1bW4uZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3JlSWNvbkhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyaW5nU2VydmljZS5jb2x1bW5Ub01vcmVJY29uSGlkZGVuLmdldCh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaXNpYmxlRmlsdGVycygpIHtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3QuZm9yRWFjaCgoZXgpID0+IGV4LmlzVmlzaWJsZSA9IHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLm1vcmVJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5jaGlwc0FyZWEgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgYXJlYVdpZHRoID0gdGhpcy5jaGlwc0FyZWEuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgbGV0IHZpZXdXaWR0aCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0FyZWFFbGVtZW50cyA9IHRoaXMuY2hpcHNBcmVhLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZHJlbjtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlQ2hpcHNDb3VudCA9IDA7XG4gICAgICAgICAgICBjb25zdCBtb3JlSWNvbldpZHRoID0gdGhpcy5tb3JlSWNvbi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC1cbiAgICAgICAgICAgICAgICBwYXJzZUludChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubW9yZUljb24ubmF0aXZlRWxlbWVudClbJ21hcmdpbi1sZWZ0J10sIDEwKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNoaXBzQXJlYUVsZW1lbnRzLmxlbmd0aCAtIDE7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBpZiAodmlld1dpZHRoICsgY2hpcHNBcmVhRWxlbWVudHNbaW5kZXhdLm9mZnNldFdpZHRoIDwgYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdXaWR0aCArPSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAlIDIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVDaGlwc0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tbGVmdCddLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tcmlnaHQnXSwgMTApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiAhPT0gMCAmJiB2aWV3V2lkdGggKyBtb3JlSWNvbldpZHRoID4gYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2hpcHNDb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpc2libGVDaGlwc0NvdW50ID4gMCAmJiB2aWV3V2lkdGggLSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleCAtIDFdLm9mZnNldFdpZHRoICsgbW9yZUljb25XaWR0aCA+IGFyZWFXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUNoaXBzQ291bnQtLTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vcmVGaWx0ZXJzQ291bnQgPSB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggLSB2aXNpYmxlQ2hpcHNDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uc2V0KHRoaXMuY29sdW1uLmZpZWxkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHZpc2libGVDaGlwc0NvdW50OyBpIDwgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdFtpXS5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZW1wdHlGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiaWd4LWZpbHRlcmluZy1jaGlwc1wiPlxuICAgICAgICA8aWd4LWNoaXAgI2dob3N0Q2hpcCBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIiAoY2xpY2spPVwib25DaGlwQ2xpY2tlZCgpXCIgW3RhYkluZGV4XT1cIi0xXCIgW3N0eWxlLi0taWctc2l6ZV09XCJmaWx0ZXJpbmdFbGVtZW50c1NpemVcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvblxuICAgICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgaWd4UHJlZml4XG4gICAgICAgICAgICAgICAgZmFtaWx5PVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpbHRlcl9saXN0XCJcbiAgICAgICAgICAgID48L2lneC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2ZpbHRlcn19PC9zcGFuPlxuICAgICAgICA8L2lneC1jaGlwPlxuICAgIDwvaWd4LWNoaXBzLWFyZWE+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhICNjaGlwc0FyZWEgY2xhc3M9XCJpZ3gtZmlsdGVyaW5nLWNoaXBzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZXhwcmVzc2lvbnNMaXN0OyBsZXQgbGFzdCA9IGxhc3Q7IGxldCBpbmRleCA9IGluZGV4O1wiID5cbiAgICAgICAgICAgIDxpZ3gtY2hpcCAqbmdJZj1cImlzQ2hpcFZpc2libGUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0taWctc2l6ZV09XCJmaWx0ZXJpbmdFbGVtZW50c1NpemVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGlja2VkKGl0ZW0uZXhwcmVzc2lvbilcIlxuICAgICAgICAgICAgICAgIChyZW1vdmUpPVwib25DaGlwUmVtb3ZlZCgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPGlneC1pY29uIGlneFByZWZpeFxuICAgICAgICAgICAgICAgICAgICBmYW1pbHk9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5leHByZXNzaW9uLmNvbmRpdGlvbi5pY29uTmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvaWd4LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gI2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlcmluZ1NlcnZpY2UuZ2V0Q2hpcExhYmVsKGl0ZW0uZXhwcmVzc2lvbil9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvaWd4LWNoaXA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1maWx0ZXJpbmctY2hpcHNfX2Nvbm5lY3RvclwiICpuZ0lmPVwiIWxhc3QgJiYgaXNDaGlwVmlzaWJsZShpbmRleCArIDEpXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdldE9wZXJhdG9yQXNTdHJpbmcoaXRlbS5hZnRlck9wZXJhdG9yKX19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAjbW9yZUljb24gW25nQ2xhc3NdPVwiZmlsdGVyaW5nSW5kaWNhdG9yQ2xhc3MoKVwiIChjbGljayk9XCJvbkNoaXBDbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImZpbHRlcl9saXN0XCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxpZ3gtYmFkZ2UgW3ZhbHVlXT1cIm1vcmVGaWx0ZXJzQ291bnRcIj48L2lneC1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9pZ3gtY2hpcHMtYXJlYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29tcGxleEZpbHRlcj5cbiAgICA8aWd4LWNoaXAgI2NvbXBsZXhDaGlwIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChyZW1vdmUpPVwiY2xlYXJGaWx0ZXJpbmcoKVwiIFt0YWJJbmRleF09XCItMVwiIFtzdHlsZS4tLWlnLXNpemVdPVwiZmlsdGVyaW5nRWxlbWVudHNTaXplXCI+XG4gICAgICAgIDxpZ3gtaWNvbiBpZ3hQcmVmaXggZmFtaWx5PVwiZGVmYXVsdFwiIG5hbWU9XCJmaWx0ZXJfbGlzdFwiPjwvaWd4LWljb24+XG4gICAgICAgIDxzcGFuPnt7ZmlsdGVyaW5nU2VydmljZS5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9jb21wbGV4X2ZpbHRlcn19PC9zcGFuPlxuICAgIDwvaWd4LWNoaXA+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZ3JpZHMvZmlsdGVyaW5nL2Jhc2UvZ3JpZC1maWx0ZXJpbmctY2VsbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBRXZCLFNBQVMsRUFFVCxVQUFVLEVBQ1YsV0FBVyxFQUNYLEtBQUssRUFFTCxXQUFXLEVBQ1gsU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzVFLE9BQU8sRUFBc0IsZ0JBQWdCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUVyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNqRixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sb0JBQW9CLENBQUM7OztBQUUxQzs7R0FFRztBQWtCSCxNQUFNLE9BQU8sNkJBQTZCO0lBMEJ0QyxJQUNXLFlBQVk7UUFDbkIsT0FBTyxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7WUFD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RUFBRSxnQkFBZ0IsRUFBRTtnQkFJeEMsV0FBVztzQkFEcEIsU0FBUzt1QkFBQyxhQUFhLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBS3pDLFlBQVk7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRG9DaGVjayxcbiAgICBFbGVtZW50UmVmLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIE9uSW5pdCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJRmlsdGVyaW5nRXhwcmVzc2lvbiB9IGZyb20gJy4uLy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9maWx0ZXJpbmctZXhwcmVzc2lvbi5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nU2VydmljZSB9IGZyb20gJy4uL2dyaWQtZmlsdGVyaW5nLnNlcnZpY2UnO1xuaW1wb3J0IHsgRXhwcmVzc2lvblVJIH0gZnJvbSAnLi4vZXhjZWwtc3R5bGUvY29tbW9uJztcbmltcG9ydCB7IElneENoaXBzQXJlYUNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2NoaXBzLWFyZWEuY29tcG9uZW50JztcbmltcG9ydCB7IElCYXNlQ2hpcEV2ZW50QXJncywgSWd4Q2hpcENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NoaXBzL2NoaXAuY29tcG9uZW50JztcbmltcG9ydCB7IENvbHVtblR5cGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4QmFkZ2VDb21wb25lbnQgfSBmcm9tICcuLi8uLi8uLi9iYWRnZS9iYWRnZS5jb21wb25lbnQnO1xuaW1wb3J0IHsgTmdGb3IsIE5nSWYsIE5nQ2xhc3MsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSWd4UHJlZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vZGlyZWN0aXZlcy9wcmVmaXgvcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTaXplIH0gZnJvbSAnLi4vLi4vY29tbW9uL2VudW1zJztcblxuLyoqXG4gKiBAaGlkZGVuXG4gKi9cbkBDb21wb25lbnQoe1xuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIHNlbGVjdG9yOiAnaWd4LWdyaWQtZmlsdGVyaW5nLWNlbGwnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncmlkLWZpbHRlcmluZy1jZWxsLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgSWd4Q2hpcHNBcmVhQ29tcG9uZW50LFxuICAgICAgICBJZ3hDaGlwQ29tcG9uZW50LFxuICAgICAgICBJZ3hJY29uQ29tcG9uZW50LFxuICAgICAgICBJZ3hQcmVmaXhEaXJlY3RpdmUsXG4gICAgICAgIE5nRm9yLFxuICAgICAgICBOZ0lmLFxuICAgICAgICBOZ0NsYXNzLFxuICAgICAgICBJZ3hCYWRnZUNvbXBvbmVudCxcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgSWd4R3JpZEZpbHRlcmluZ0NlbGxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkluaXQsIERvQ2hlY2sge1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbHVtbjogQ29sdW1uVHlwZTtcblxuICAgIEBWaWV3Q2hpbGQoJ2VtcHR5RmlsdGVyJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGVtcHR5RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBkZWZhdWx0RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY29tcGxleEZpbHRlcicsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4RmlsdGVyOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2hpcHNBcmVhJywgeyByZWFkOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQgfSlcbiAgICBwcm90ZWN0ZWQgY2hpcHNBcmVhOiBJZ3hDaGlwc0FyZWFDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdtb3JlSWNvbicsIHsgcmVhZDogRWxlbWVudFJlZiB9KVxuICAgIHByb3RlY3RlZCBtb3JlSWNvbjogRWxlbWVudFJlZjtcblxuICAgIEBWaWV3Q2hpbGQoJ2dob3N0Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBnaG9zdENoaXA6IElneENoaXBDb21wb25lbnQ7XG5cbiAgICBAVmlld0NoaWxkKCdjb21wbGV4Q2hpcCcsIHsgcmVhZDogSWd4Q2hpcENvbXBvbmVudCB9KVxuICAgIHByb3RlY3RlZCBjb21wbGV4Q2hpcDogSWd4Q2hpcENvbXBvbmVudDtcblxuXG4gICAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gICAgcHVibGljIGdldCBzdHlsZUNsYXNzZXMoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29sdW1uICYmIHRoaXMuY29sdW1uLnNlbGVjdGVkID9cbiAgICAgICAgICAgICdpZ3gtZ3JpZF9fZmlsdGVyaW5nLWNlbGwtLXNlbGVjdGVkJyA6XG4gICAgICAgICAgICAnaWd4LWdyaWRfX2ZpbHRlcmluZy1jZWxsJztcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwcmVzc2lvbnNMaXN0OiBFeHByZXNzaW9uVUlbXTtcbiAgICBwdWJsaWMgbW9yZUZpbHRlcnNDb3VudCA9IDA7XG5cbiAgICBwcml2YXRlIGJhc2VDbGFzcyA9ICdpZ3gtZ3JpZF9fZmlsdGVyaW5nLWNlbGwtaW5kaWNhdG9yJztcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHVibGljIGZpbHRlcmluZ1NlcnZpY2U6IElneEZpbHRlcmluZ1NlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5zdWJzY3JpYmVUb0V2ZW50cygpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uc2V0KHRoaXMuY29sdW1uLmZpZWxkLCB0cnVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZUZpbHRlckNlbGxBcmVhKCk7XG4gICAgfVxuXG4gICAgcHVibGljIG5nRG9DaGVjaygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVGaWx0ZXJDZWxsQXJlYSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciBhIGNoaXAgd2l0aCBhIGdpdmVuIGluZGV4IGlzIHZpc2libGUgb3Igbm90LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc0NoaXBWaXNpYmxlKGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZXhwcmVzc2lvbiA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0W2luZGV4XTtcbiAgICAgICAgcmV0dXJuICEhKGV4cHJlc3Npb24gJiYgZXhwcmVzc2lvbi5pc1Zpc2libGUpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIGZpbHRlcmluZyBjZWxsIGFyZWEuXG4gICAgICovXG4gICAgcHVibGljIHVwZGF0ZUZpbHRlckNlbGxBcmVhKCkge1xuICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdCA9IHRoaXMuZmlsdGVyaW5nU2VydmljZS5nZXRFeHByZXNzaW9ucyh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgICAgIHRoaXMudXBkYXRlVmlzaWJsZUZpbHRlcnMoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IHRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICBpZiAoIXRoaXMuY29sdW1uLmZpbHRlcmFibGUpIHtcbiAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGUpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5maWx0ZXJDZWxsVGVtcGxhdGU7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3QgZXhwcmVzc2lvblRyZWUgPSB0aGlzLmNvbHVtbi5maWx0ZXJpbmdFeHByZXNzaW9uc1RyZWU7XG4gICAgICAgIGlmICghZXhwcmVzc2lvblRyZWUgfHwgZXhwcmVzc2lvblRyZWUuZmlsdGVyaW5nT3BlcmFuZHMubGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5lbXB0eUZpbHRlcjtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyQ29tcGxleCh0aGlzLmNvbHVtbi5maWVsZCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBsZXhGaWx0ZXI7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRoaXMuZGVmYXVsdEZpbHRlcjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBjb250ZXh0IHBhc3NlZCB0byB0aGUgZmlsdGVyIHRlbXBsYXRlLlxuICAgICAqXG4gICAgICogQG1lbWJlcm9mIElneEdyaWRGaWx0ZXJpbmdDZWxsQ29tcG9uZW50XG4gICAgICovXG4gICAgcHVibGljIGdldCBjb250ZXh0KCkge1xuICAgICAgICByZXR1cm4geyAkaW1wbGljaXQ6IHRoaXMuY29sdW1uLCBjb2x1bW46IHRoaXMuY29sdW1ufTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBDaGlwIGNsaWNrZWQgZXZlbnQgaGFuZGxlci5cbiAgICAgKi9cbiAgICBwdWJsaWMgb25DaGlwQ2xpY2tlZChleHByZXNzaW9uPzogSUZpbHRlcmluZ0V4cHJlc3Npb24pIHtcbiAgICAgICAgaWYgKGV4cHJlc3Npb24pIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSAoaXRlbS5leHByZXNzaW9uID09PSBleHByZXNzaW9uKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMuZXhwcmVzc2lvbnNMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuZXhwcmVzc2lvbnNMaXN0LmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLmlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3RbMF0uaXNTZWxlY3RlZCA9IHRydWU7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQubmF2aWdhdGlvbi5wZXJmb3JtSG9yaXpvbnRhbFNjcm9sbFRvQ2VsbCh0aGlzLmNvbHVtbi52aXNpYmxlSW5kZXgpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVyZWRDb2x1bW4gPSB0aGlzLmNvbHVtbjtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmlzRmlsdGVyUm93VmlzaWJsZSA9IHRydWU7XG4gICAgICAgIHRoaXMuZmlsdGVyaW5nU2VydmljZS5zZWxlY3RlZEV4cHJlc3Npb24gPSBleHByZXNzaW9uO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENoaXAgcmVtb3ZlZCBldmVudCBoYW5kbGVyLlxuICAgICAqL1xuICAgIHB1YmxpYyBvbkNoaXBSZW1vdmVkKGV2ZW50QXJnczogSUJhc2VDaGlwRXZlbnRBcmdzLCBpdGVtOiBFeHByZXNzaW9uVUkpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaW5kZXhUb1JlbW92ZSA9IHRoaXMuZXhwcmVzc2lvbnNMaXN0LmluZGV4T2YoaXRlbSk7XG4gICAgICAgIHRoaXMucmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlKTtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmdyaWQudGhlYWRSb3cubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIENsZWFycyB0aGUgZmlsdGVyaW5nLlxuICAgICAqL1xuICAgIHB1YmxpYyBjbGVhckZpbHRlcmluZygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNsZWFyRmlsdGVyKHRoaXMuY29sdW1uLmZpZWxkKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgdGhlIGZpbHRlcmluZyBpbmRpY2F0b3IgY2xhc3MuXG4gICAgICovXG4gICAgcHVibGljIGZpbHRlcmluZ0luZGljYXRvckNsYXNzKCkge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW3RoaXMuYmFzZUNsYXNzXTogIXRoaXMuaXNNb3JlSWNvbkhpZGRlbigpLFxuICAgICAgICAgICAgW2Ake3RoaXMuYmFzZUNsYXNzfS0taGlkZGVuYF06IHRoaXMuaXNNb3JlSWNvbkhpZGRlbigpXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldCBmaWx0ZXJpbmdFbGVtZW50c1NpemUoKTogU2l6ZSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbHVtbi5ncmlkLmdyaWRTaXplID09PSBTaXplLkxhcmdlID8gU2l6ZS5NZWRpdW0gOiB0aGlzLmNvbHVtbi5ncmlkLmdyaWRTaXplO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVtb3ZlRXhwcmVzc2lvbihpbmRleFRvUmVtb3ZlOiBudW1iZXIpIHtcbiAgICAgICAgaWYgKGluZGV4VG9SZW1vdmUgPT09IDAgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmNsZWFyRmlsdGVyaW5nKCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UucmVtb3ZlRXhwcmVzc2lvbih0aGlzLmNvbHVtbi5maWVsZCwgaW5kZXhUb1JlbW92ZSk7XG5cbiAgICAgICAgdGhpcy51cGRhdGVWaXNpYmxlRmlsdGVycygpO1xuICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuZmlsdGVySW50ZXJuYWwodGhpcy5jb2x1bW4uZmllbGQpO1xuICAgIH1cblxuICAgIHByaXZhdGUgaXNNb3JlSWNvbkhpZGRlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZmlsdGVyaW5nU2VydmljZS5jb2x1bW5Ub01vcmVJY29uSGlkZGVuLmdldCh0aGlzLmNvbHVtbi5maWVsZCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVWaXNpYmxlRmlsdGVycygpIHtcbiAgICAgICAgdGhpcy5leHByZXNzaW9uc0xpc3QuZm9yRWFjaCgoZXgpID0+IGV4LmlzVmlzaWJsZSA9IHRydWUpO1xuXG4gICAgICAgIGlmICh0aGlzLm1vcmVJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmZpbHRlcmluZ1NlcnZpY2UuY29sdW1uVG9Nb3JlSWNvbkhpZGRlbi5zZXQodGhpcy5jb2x1bW4uZmllbGQsIHRydWUpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICBpZiAodGhpcy5jaGlwc0FyZWEgJiYgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgY29uc3QgYXJlYVdpZHRoID0gdGhpcy5jaGlwc0FyZWEuZWxlbWVudC5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgbGV0IHZpZXdXaWR0aCA9IDA7XG4gICAgICAgICAgICBjb25zdCBjaGlwc0FyZWFFbGVtZW50cyA9IHRoaXMuY2hpcHNBcmVhLmVsZW1lbnQubmF0aXZlRWxlbWVudC5jaGlsZHJlbjtcbiAgICAgICAgICAgIGxldCB2aXNpYmxlQ2hpcHNDb3VudCA9IDA7XG4gICAgICAgICAgICBjb25zdCBtb3JlSWNvbldpZHRoID0gdGhpcy5tb3JlSWNvbi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoIC1cbiAgICAgICAgICAgICAgICBwYXJzZUludChkb2N1bWVudC5kZWZhdWx0Vmlldy5nZXRDb21wdXRlZFN0eWxlKHRoaXMubW9yZUljb24ubmF0aXZlRWxlbWVudClbJ21hcmdpbi1sZWZ0J10sIDEwKTtcblxuICAgICAgICAgICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGNoaXBzQXJlYUVsZW1lbnRzLmxlbmd0aCAtIDE7IGluZGV4KyspIHtcbiAgICAgICAgICAgICAgICBpZiAodmlld1dpZHRoICsgY2hpcHNBcmVhRWxlbWVudHNbaW5kZXhdLm9mZnNldFdpZHRoIDwgYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgIHZpZXdXaWR0aCArPSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0ub2Zmc2V0V2lkdGg7XG4gICAgICAgICAgICAgICAgICAgIGlmIChpbmRleCAlIDIgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHZpc2libGVDaGlwc0NvdW50Kys7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tbGVmdCddLCAxMCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3V2lkdGggKz0gcGFyc2VJbnQoZG9jdW1lbnQuZGVmYXVsdFZpZXcuZ2V0Q29tcHV0ZWRTdHlsZShjaGlwc0FyZWFFbGVtZW50c1tpbmRleF0pWydtYXJnaW4tcmlnaHQnXSwgMTApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGluZGV4ICUgMiAhPT0gMCAmJiB2aWV3V2lkdGggKyBtb3JlSWNvbldpZHRoID4gYXJlYVdpZHRoKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB2aXNpYmxlQ2hpcHNDb3VudC0tO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHZpc2libGVDaGlwc0NvdW50ID4gMCAmJiB2aWV3V2lkdGggLSBjaGlwc0FyZWFFbGVtZW50c1tpbmRleCAtIDFdLm9mZnNldFdpZHRoICsgbW9yZUljb25XaWR0aCA+IGFyZWFXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdmlzaWJsZUNoaXBzQ291bnQtLTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB0aGlzLm1vcmVGaWx0ZXJzQ291bnQgPSB0aGlzLmV4cHJlc3Npb25zTGlzdC5sZW5ndGggLSB2aXNpYmxlQ2hpcHNDb3VudDtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWx0ZXJpbmdTZXJ2aWNlLmNvbHVtblRvTW9yZUljb25IaWRkZW4uc2V0KHRoaXMuY29sdW1uLmZpZWxkLCBmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZm9yIChsZXQgaSA9IHZpc2libGVDaGlwc0NvdW50OyBpIDwgdGhpcy5leHByZXNzaW9uc0xpc3QubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICB0aGlzLmV4cHJlc3Npb25zTGlzdFtpXS5pc1Zpc2libGUgPSBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxuZy10ZW1wbGF0ZSAjZW1wdHlGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiIGNsYXNzPVwiaWd4LWZpbHRlcmluZy1jaGlwc1wiPlxuICAgICAgICA8aWd4LWNoaXAgI2dob3N0Q2hpcCBbYXR0ci5kcmFnZ2FibGVdPVwiZmFsc2VcIiAoY2xpY2spPVwib25DaGlwQ2xpY2tlZCgpXCIgW3RhYkluZGV4XT1cIi0xXCIgW3N0eWxlLi0taWctc2l6ZV09XCJmaWx0ZXJpbmdFbGVtZW50c1NpemVcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvblxuICAgICAgICAgICAgICAgIFthdHRyLmRyYWdnYWJsZV09XCJmYWxzZVwiXG4gICAgICAgICAgICAgICAgaWd4UHJlZml4XG4gICAgICAgICAgICAgICAgZmFtaWx5PVwiZGVmYXVsdFwiXG4gICAgICAgICAgICAgICAgbmFtZT1cImZpbHRlcl9saXN0XCJcbiAgICAgICAgICAgID48L2lneC1pY29uPlxuICAgICAgICAgICAgPHNwYW4gW2F0dHIuZHJhZ2dhYmxlXT1cImZhbHNlXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdyaWQucmVzb3VyY2VTdHJpbmdzLmlneF9ncmlkX2ZpbHRlcn19PC9zcGFuPlxuICAgICAgICA8L2lneC1jaGlwPlxuICAgIDwvaWd4LWNoaXBzLWFyZWE+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2RlZmF1bHRGaWx0ZXI+XG4gICAgPGlneC1jaGlwcy1hcmVhICNjaGlwc0FyZWEgY2xhc3M9XCJpZ3gtZmlsdGVyaW5nLWNoaXBzXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZXhwcmVzc2lvbnNMaXN0OyBsZXQgbGFzdCA9IGxhc3Q7IGxldCBpbmRleCA9IGluZGV4O1wiID5cbiAgICAgICAgICAgIDxpZ3gtY2hpcCAqbmdJZj1cImlzQ2hpcFZpc2libGUoaW5kZXgpXCJcbiAgICAgICAgICAgICAgICBbcmVtb3ZhYmxlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgIFt0YWJJbmRleF09XCItMVwiXG4gICAgICAgICAgICAgICAgW3N0eWxlLi0taWctc2l6ZV09XCJmaWx0ZXJpbmdFbGVtZW50c1NpemVcIlxuICAgICAgICAgICAgICAgIChjbGljayk9XCJvbkNoaXBDbGlja2VkKGl0ZW0uZXhwcmVzc2lvbilcIlxuICAgICAgICAgICAgICAgIChyZW1vdmUpPVwib25DaGlwUmVtb3ZlZCgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgICAgICAgICAgPGlneC1pY29uIGlneFByZWZpeFxuICAgICAgICAgICAgICAgICAgICBmYW1pbHk9XCJkZWZhdWx0XCJcbiAgICAgICAgICAgICAgICAgICAgW25hbWVdPVwiaXRlbS5leHByZXNzaW9uLmNvbmRpdGlvbi5pY29uTmFtZVwiPlxuICAgICAgICAgICAgICAgIDwvaWd4LWljb24+XG4gICAgICAgICAgICAgICAgPHNwYW4gI2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlcmluZ1NlcnZpY2UuZ2V0Q2hpcExhYmVsKGl0ZW0uZXhwcmVzc2lvbil9fVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvaWd4LWNoaXA+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1maWx0ZXJpbmctY2hpcHNfX2Nvbm5lY3RvclwiICpuZ0lmPVwiIWxhc3QgJiYgaXNDaGlwVmlzaWJsZShpbmRleCArIDEpXCI+e3tmaWx0ZXJpbmdTZXJ2aWNlLmdldE9wZXJhdG9yQXNTdHJpbmcoaXRlbS5hZnRlck9wZXJhdG9yKX19PC9zcGFuPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPGRpdiAjbW9yZUljb24gW25nQ2xhc3NdPVwiZmlsdGVyaW5nSW5kaWNhdG9yQ2xhc3MoKVwiIChjbGljayk9XCJvbkNoaXBDbGlja2VkKClcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImZpbHRlcl9saXN0XCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgICAgIDxpZ3gtYmFkZ2UgW3ZhbHVlXT1cIm1vcmVGaWx0ZXJzQ291bnRcIj48L2lneC1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9pZ3gtY2hpcHMtYXJlYT5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjY29tcGxleEZpbHRlcj5cbiAgICA8aWd4LWNoaXAgI2NvbXBsZXhDaGlwIFtyZW1vdmFibGVdPVwidHJ1ZVwiIChyZW1vdmUpPVwiY2xlYXJGaWx0ZXJpbmcoKVwiIFt0YWJJbmRleF09XCItMVwiIFtzdHlsZS4tLWlnLXNpemVdPVwiZmlsdGVyaW5nRWxlbWVudHNTaXplXCI+XG4gICAgICAgIDxpZ3gtaWNvbiBpZ3hQcmVmaXggZmFtaWx5PVwiZGVmYXVsdFwiIG5hbWU9XCJmaWx0ZXJfbGlzdFwiPjwvaWd4LWljb24+XG4gICAgICAgIDxzcGFuPnt7ZmlsdGVyaW5nU2VydmljZS5ncmlkLnJlc291cmNlU3RyaW5ncy5pZ3hfZ3JpZF9jb21wbGV4X2ZpbHRlcn19PC9zcGFuPlxuICAgIDwvaWd4LWNoaXA+XG48L25nLXRlbXBsYXRlPlxuXG48bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGVtcGxhdGU7IGNvbnRleHQ6IGNvbnRleHRcIj48L25nLWNvbnRhaW5lcj5cbiJdfQ==
@@ -209,7 +209,7 @@ export class IgxGridGroupByRowComponent {
209
209
  return this.grid.rowSelection !== GridSelectionMode.none && !this.hideGroupRowSelectors;
210
210
  }
211
211
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridGroupByRowComponent, deps: [{ token: IGX_GRID_BASE }, { token: i1.IgxGridSelectionService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i2.IgxFilteringService }], target: i0.ɵɵFactoryTarget.Component }); }
212
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridGroupByRowComponent, isStandalone: true, selector: "igx-grid-groupby-row", inputs: { hideGroupRowSelectors: "hideGroupRowSelectors", rowDraggable: "rowDraggable", index: "index", gridID: "gridID", groupRow: "groupRow", isFocused: "isFocused" }, host: { listeners: { "pointerdown": "activate()", "click": "onClick($event)" }, properties: { "attr.aria-expanded": "this.expanded", "attr.aria-describedby": "this.describedBy", "attr.data-rowIndex": "this.dataRowIndex", "attr.id": "this.attrCellID", "class": "this.styleClasses" } }, viewQueries: [{ propertyName: "groupContent", first: true, predicate: ["groupContent"], descendants: true, static: true }, { propertyName: "defaultGroupByExpandedTemplate", first: true, predicate: ["defaultGroupByExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultGroupByCollapsedTemplate", first: true, predicate: ["defaultGroupByCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container #defaultGroupRow>\n\n <ng-container *ngIf=\"rowDraggable\">\n <div class=\"igx-grid__drag-indicator igx-grid__tr-action\">\n <igx-icon family=\"default\" name=\"drag_indicator\" [style.visibility]=\"'hidden'\"></igx-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\"\n (click)=\"onGroupSelectorClick($event)\">\n <ng-template #groupByRowSelector *ngTemplateOutlet=\"\n this.grid.groupByRowSelectorTemplate ? this.grid.groupByRowSelectorTemplate : groupByRowSelectorBaseTemplate;\n context: { $implicit: {\n selectedCount: selectedRowsInTheGroup.length,\n totalCount: this.groupRow.records.length,\n groupRow: this.groupRow }}\">\n </ng-template>\n </div>\n </ng-container>\n\n <div (click)=\"toggle()\" class=\"igx-grid__grouping-indicator\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\">\n </ng-container>\n </div>\n\n <div class=\"igx-grid__group-content\" #groupContent>\n <ng-container\n *ngTemplateOutlet=\"grid.groupRowTemplate ? grid.groupRowTemplate : defaultGroupByTemplate; context: { $implicit: groupRow }\">\n </ng-container>\n </div>\n\n <ng-template #defaultGroupByExpandedTemplate>\n <igx-icon family=\"default\" name=\"tree_collapse\"></igx-icon>\n </ng-template>\n\n <ng-template #defaultGroupByCollapsedTemplate>\n <igx-icon family=\"default\" name=\"tree_expand\"></igx-icon>\n </ng-template>\n\n\n <ng-template #defaultGroupByTemplate>\n <div class=\"igx-group-label\">\n <igx-icon family=\"default\" name=\"group_work\" class=\"igx-group-label__icon\"></igx-icon>\n <span class=\"igx-group-label__column-name\">\n {{ groupRow.column && groupRow.column.header ?\n groupRow.column.header :\n (groupRow.expression ? groupRow.expression.fieldName : '') }}:\n </span>\n\n <span class=\"igx-group-label__text\">{{\n formatter\n ? (groupRow.value | columnFormatter:formatter:groupRow.records[0]:null)\n : dataType === \"number\"\n ? (groupRow.value | number:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : (dataType === 'date' || dataType === 'time' || dataType === 'dateTime')\n ? (groupRow.value | date:groupRow.column.pipeArgs.format:groupRow.column.pipeArgs.timezone:grid.locale)\n : dataType === 'currency'\n ? (groupRow.value | currency:currencyCode:groupRow.column.pipeArgs.display:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : dataType === 'percent'\n ? (groupRow.value | percent:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : groupRow.value\n }}</span>\n\n <igx-badge [value]=\"groupRow.records ? groupRow.records.length : 0\" class='igx-group-label__count-badge'>\n </igx-badge>\n </div>\n </ng-template>\n <ng-template #groupByRowSelectorBaseTemplate let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox [tabindex]=\"-1\" [readonly]=\"true\" [checked]=\"areAllRowsInTheGroupSelected\"\n [disableRipple]=\"true\" [indeterminate]=\"groupByRowCheckboxIndeterminateState\"\n [disabled]=\"this.grid.rowSelection === 'single'\" [aria-label]=\"groupByRowSelectorBaseAriaLabel\"\n #groupByRowCheckbox>\n </igx-checkbox>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
212
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.4", type: IgxGridGroupByRowComponent, isStandalone: true, selector: "igx-grid-groupby-row", inputs: { hideGroupRowSelectors: "hideGroupRowSelectors", rowDraggable: "rowDraggable", index: "index", gridID: "gridID", groupRow: "groupRow", isFocused: "isFocused" }, host: { listeners: { "pointerdown": "activate()", "click": "onClick($event)" }, properties: { "attr.aria-expanded": "this.expanded", "attr.aria-describedby": "this.describedBy", "attr.data-rowIndex": "this.dataRowIndex", "attr.id": "this.attrCellID", "class": "this.styleClasses" } }, viewQueries: [{ propertyName: "groupContent", first: true, predicate: ["groupContent"], descendants: true, static: true }, { propertyName: "defaultGroupByExpandedTemplate", first: true, predicate: ["defaultGroupByExpandedTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "defaultGroupByCollapsedTemplate", first: true, predicate: ["defaultGroupByCollapsedTemplate"], descendants: true, read: TemplateRef, static: true }], ngImport: i0, template: "<ng-container #defaultGroupRow>\n\n <ng-container *ngIf=\"rowDraggable\">\n <div class=\"igx-grid__drag-indicator igx-grid__tr-action\">\n <igx-icon family=\"default\" name=\"drag_indicator\" [style.visibility]=\"'hidden'\"></igx-icon>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"showRowSelectors\">\n <div class=\"igx-grid__cbx-selection igx-grid__tr-action\" (pointerdown)=\"$event.preventDefault()\"\n (click)=\"onGroupSelectorClick($event)\">\n <ng-template #groupByRowSelector *ngTemplateOutlet=\"\n this.grid.groupByRowSelectorTemplate ? this.grid.groupByRowSelectorTemplate : groupByRowSelectorBaseTemplate;\n context: { $implicit: {\n selectedCount: selectedRowsInTheGroup.length,\n totalCount: this.groupRow.records.length,\n groupRow: this.groupRow }}\">\n </ng-template>\n </div>\n </ng-container>\n\n <div (click)=\"toggle()\" class=\"igx-grid__grouping-indicator\">\n <ng-container *ngTemplateOutlet=\"iconTemplate; context: { $implicit: this }\">\n </ng-container>\n </div>\n\n <div class=\"igx-grid__group-content\" #groupContent>\n <ng-container\n *ngTemplateOutlet=\"grid.groupRowTemplate ? grid.groupRowTemplate : defaultGroupByTemplate; context: { $implicit: groupRow }\">\n </ng-container>\n </div>\n\n <ng-template #defaultGroupByExpandedTemplate>\n <igx-icon family=\"default\" name=\"tree_collapse\"></igx-icon>\n </ng-template>\n\n <ng-template #defaultGroupByCollapsedTemplate>\n <igx-icon family=\"default\" name=\"tree_expand\"></igx-icon>\n </ng-template>\n\n\n <ng-template #defaultGroupByTemplate>\n <div class=\"igx-group-label\">\n <igx-icon family=\"default\" name=\"group_work\" class=\"igx-group-label__icon\"></igx-icon>\n <span class=\"igx-group-label__column-name\">\n {{ groupRow.column && groupRow.column.header ?\n groupRow.column.header :\n (groupRow.expression ? groupRow.expression.fieldName : '') }}:\n </span>\n\n <span class=\"igx-group-label__text\">{{\n formatter\n ? (groupRow.value | columnFormatter:formatter:groupRow.records[0]:null)\n : dataType === \"number\"\n ? (groupRow.value | number:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : (dataType === 'date' || dataType === 'time' || dataType === 'dateTime')\n ? (groupRow.value | date:groupRow.column.pipeArgs.format:groupRow.column.pipeArgs.timezone:grid.locale)\n : dataType === 'currency'\n ? (groupRow.value | currency:currencyCode:groupRow.column.pipeArgs.display:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : dataType === 'percent'\n ? (groupRow.value | percent:groupRow.column.pipeArgs.digitsInfo:grid.locale)\n : groupRow.value\n }}</span>\n\n <igx-badge [value]=\"groupRow.records ? groupRow.records.length : 0\" class='igx-group-label__count-badge'>\n </igx-badge>\n </div>\n </ng-template>\n <ng-template #groupByRowSelectorBaseTemplate let-context>\n <div class=\"igx-grid__cbx-padding\">\n <igx-checkbox [tabindex]=\"-1\" [readonly]=\"true\" [checked]=\"areAllRowsInTheGroupSelected\"\n [disableRipple]=\"true\" [indeterminate]=\"groupByRowCheckboxIndeterminateState\"\n [disabled]=\"this.grid.rowSelection === 'single'\" [aria-label]=\"groupByRowSelectorBaseAriaLabel\"\n #groupByRowCheckbox>\n </igx-checkbox>\n </div>\n </ng-template>\n</ng-container>\n", dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: DecimalPipe, name: "number" }, { kind: "pipe", type: DatePipe, name: "date" }, { kind: "pipe", type: PercentPipe, name: "percent" }, { kind: "pipe", type: CurrencyPipe, name: "currency" }, { kind: "component", type: IgxIconComponent, selector: "igx-icon", inputs: ["family", "name", "active"] }, { kind: "component", type: IgxBadgeComponent, selector: "igx-badge", inputs: ["id", "type", "value", "icon", "iconSet", "shape", "outlined"] }, { kind: "component", type: IgxCheckboxComponent, selector: "igx-checkbox", inputs: ["id", "labelId", "value", "name", "tabindex", "labelPosition", "disableRipple", "required", "aria-labelledby", "aria-label", "indeterminate", "checked", "disabled", "invalid", "readonly", "disableTransitions"], outputs: ["change"] }, { kind: "pipe", type: IgxColumnFormatterPipe, name: "columnFormatter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
213
213
  }
214
214
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImport: i0, type: IgxGridGroupByRowComponent, decorators: [{
215
215
  type: Component,
@@ -271,4 +271,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.4", ngImpor
271
271
  type: HostBinding,
272
272
  args: ['class']
273
273
  }] } });
274
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBieS1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JvdXBieS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JvdXBieS1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFFWCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVyRSxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7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OEJBQThCO3NCQUR2QyxTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU90RSwrQkFBK0I7c0JBRHhDLFNBQVM7dUJBQUMsaUNBQWlDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBK0MxRSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsYUFBYTtnQkFNcEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QnRCLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVN0QixXQUFXO3NCQURyQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFPekIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBZ0J0QixVQUFVO3NCQURwQixXQUFXO3VCQUFDLFNBQVM7Z0JBWVgsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBEZWNpbWFsUGlwZSwgRGF0ZVBpcGUsIGdldExvY2FsZUN1cnJlbmN5Q29kZSwgUGVyY2VudFBpcGUsIEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElHWF9HUklEX0JBU0UgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nU2VydmljZSB9IGZyb20gJy4uL2ZpbHRlcmluZy9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneEdyaWRSb3dDb21wb25lbnQgfSBmcm9tICcuL2dyaWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkU2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uL2NvbW1vbi9lbnVtcyc7XG5pbXBvcnQgeyBJU2VsZWN0aW9uTm9kZSB9IGZyb20gJy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgeyBJZ3hDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Gb3JtYXR0ZXJQaXBlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1ncm91cGJ5LXJvdycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwYnktcm93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgRGVjaW1hbFBpcGUsXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBQZXJjZW50UGlwZSxcbiAgICAgICAgQ3VycmVuY3lQaXBlLFxuICAgICAgICBJZ3hJY29uQ29tcG9uZW50LFxuICAgICAgICBJZ3hCYWRnZUNvbXBvbmVudCxcbiAgICAgICAgSWd4Q2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIElneENvbHVtbkZvcm1hdHRlclBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRHcm91cEJ5Um93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlkZUdyb3VwUm93U2VsZWN0b3JzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0RyYWdnYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGluZGV4IG9mIHRoZSByb3cuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZ3JpZC1ncm91cGJ5LXJvdyBbZ3JpZElEXT1cImlkXCIgW2luZGV4XT1cInJvd0luZGV4XCIgW2dyb3VwUm93XT1cInJvd0RhdGFcIiAjcm93PjwvaWd4LWdyaWQtZ3JvdXBieS1yb3c+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGlkIG9mIHRoZSBncmlkIHRoZSByb3cgYmVsb25ncyB0by5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1ncmlkLWdyb3VwYnktcm93IFtncmlkSURdPVwiaWRcIiBbaW5kZXhdPVwicm93SW5kZXhcIiBbZ3JvdXBSb3ddPVwicm93RGF0YVwiICNyb3c+PC9pZ3gtZ3JpZC1ncm91cGJ5LXJvdz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkSUQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBncm91cCByZWNvcmQgdGhlIGNvbXBvbmVudCByZW5kZXJzIGZvci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogPGlneC1ncmlkLWdyb3VwYnktcm93IFtncmlkSURdPVwiaWRcIiBbaW5kZXhdPVwicm93SW5kZXhcIiBbZ3JvdXBSb3ddPVwicm93RGF0YVwiICNyb3c+PC9pZ3gtZ3JpZC1ncm91cGJ5LXJvdz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIG9mIHRoZSBjb250ZW50IG9mIHRoZSBncm91cC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgZ3JvdXBSb3dDb250ZW50ID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0Lmdyb3VwQ29udGVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdncm91cENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBncm91cENvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcm90ZWN0ZWQgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEdyb3VwQnlFeHBhbmRlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRHcm91cEJ5RXhwYW5kZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0R3JvdXBCeUNvbGxhcHNlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRHcm91cEJ5Q29sbGFwc2VkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVmYXVsdENzc0NsYXNzID0gJ2lneC1ncmlkX19ncm91cC1yb3cnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwYWRkaW5nSW5kZW50YXRpb25Dc3NDbGFzcyA9ICdpZ3gtZ3JpZF9fZ3JvdXAtcm93LS1wYWRkaW5nLWxldmVsJztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcm93IGlzIGZvY3VzZWQuXG4gICAgICogYGBgXG4gICAgICogbGV0IGdyaWRSb3dGb2N1c2VkID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LmZvY3VzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwUm93LmNvbHVtbi5waXBlQXJncy5jdXJyZW5jeUNvZGUgP1xuICAgICAgICAgICAgdGhpcy5ncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuY3VycmVuY3lDb2RlIDogZ2V0TG9jYWxlQ3VycmVuY3lDb2RlKHRoaXMuZ3JpZC5sb2NhbGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX0JBU0UpIHB1YmxpYyBncmlkOiBHcmlkVHlwZSxcbiAgICAgICAgcHVibGljIGdyaWRTZWxlY3Rpb246IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZ3JpZFNlbGVjdGlvbi5zZWxlY3RlZFJvd3NDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXG4gICAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgICAgICB0aGlzLmdyaWQubmF2aWdhdGlvbi5zZXRBY3RpdmVOb2RlKHsgcm93OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmdyaWQucm93Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICByb3c6IHRoaXMuZ3JpZC5jcmVhdGVSb3codGhpcy5pbmRleCksXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgZ3JvdXAgcm93IGlzIGV4cGFuZGVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBncm91cFJvd0V4cGFuZGVkID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LmV4cGFuZGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmlzRXhwYW5kZWRHcm91cCh0aGlzLmdyb3VwUm93KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuICAgIHB1YmxpYyBnZXQgZGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZ3JSb3dFeHByID0gdGhpcy5ncm91cFJvdy5leHByZXNzaW9uICE9PSB1bmRlZmluZWQgPyB0aGlzLmdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lIDogJyc7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRJRCArICdfJyArIGdyUm93RXhwcjtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1yb3dJbmRleCcpXG4gICAgcHVibGljIGdldCBkYXRhUm93SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgSFRNTCBlbGVtZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBncm91cFJvd0VsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIHB1YmxpYyBnZXQgYXR0ckNlbGxJRCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3JpZElEfV8ke3RoaXMuaW5kZXh9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzdHlsZSBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGdyb3VwIHJvd3MuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGdyb3VwQ3NzU3R5bGVzID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LnN0eWxlQ2xhc3NlcztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IHN0eWxlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5kZWZhdWx0Q3NzQ2xhc3N9IGAgKyBgJHt0aGlzLnBhZGRpbmdJbmRlbnRhdGlvbkNzc0NsYXNzfS1gICsgdGhpcy5ncm91cFJvdy5sZXZlbCArXG4gICAgICAgICAgICAodGhpcy5pc0FjdGl2ZSgpID8gYCAke3RoaXMuZGVmYXVsdENzc0NsYXNzfS0tYWN0aXZlYCA6ICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBY3RpdmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlID8gdGhpcy5ncmlkLm5hdmlnYXRpb24uYWN0aXZlTm9kZS5yb3cgPT09IHRoaXMuaW5kZXggOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dJRChyb3dEYXRhKTogSWd4R3JpZFJvd0NvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucHJpbWFyeUtleSA/IHJvd0RhdGFbdGhpcy5ncmlkLnByaW1hcnlLZXldIDogcm93RGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkdyb3VwU2VsZWN0b3JDbGljayhldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5hcmVBbGxSb3dzSW5UaGVHcm91cFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3Rpb24uZGVzZWxlY3RSb3dzKHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5tYXAoeCA9PiB0aGlzLmdldFJvd0lEKHgpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3Rpb24uc2VsZWN0Um93cyh0aGlzLmdyb3VwUm93LnJlY29yZHMubWFwKHggPT4gdGhpcy5nZXRSb3dJRCh4KSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgZ3JvdXAgcm93LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQxLnJvd0xpc3QuZmlyc3QudG9nZ2xlKClcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmdyaWQudG9nZ2xlR3JvdXAodGhpcy5ncm91cFJvdyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpY29uVGVtcGxhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0R3JvdXBCeUV4cGFuZGVkVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEdyb3VwQnlDb2xsYXBzZWRUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2VsZWN0aW9uTm9kZSgpOiBJU2VsZWN0aW9uTm9kZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb3c6IHRoaXMuaW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46IHRoaXMuZ3JpZFNlbGVjdGlvbi5hY3RpdmVFbGVtZW50ID8gdGhpcy5ncmlkU2VsZWN0aW9uLmFjdGl2ZUVsZW1lbnQuY29sdW1uIDogMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZ3JvdXBSb3cuY29sdW1uO1xuICAgICAgICByZXR1cm4gKGNvbHVtbiAmJiBjb2x1bW4uZGF0YVR5cGUpIHx8IEdyaWRDb2x1bW5EYXRhVHlwZS5TdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlcigpOiBhbnkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmdyb3VwUm93LmNvbHVtbjtcbiAgICAgICAgcmV0dXJuIChjb2x1bW4gJiYgY29sdW1uLmZvcm1hdHRlcikgfHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYXJlQWxsUm93c0luVGhlR3JvdXBTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5ldmVyeSh4ID0+IHRoaXMuZ3JpZFNlbGVjdGlvbi5pc1Jvd1NlbGVjdGVkKHRoaXMuZ2V0Um93SUQoeCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRSb3dzSW5UaGVHcm91cCgpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gbmV3IFNldCh0aGlzLmdyaWRTZWxlY3Rpb24uZmlsdGVyZWRTZWxlY3RlZFJvd0lkcyk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwUm93LnJlY29yZHMuZmlsdGVyKHJvd0lEID0+IHNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lEKHJvd0lEKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cEJ5Um93Q2hlY2tib3hJbmRldGVybWluYXRlU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93c0luVGhlR3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmFyZUFsbFJvd3NJblRoZUdyb3VwU2VsZWN0ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cEJ5Um93U2VsZWN0b3JCYXNlQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5hcmVBbGxSb3dzSW5UaGVHcm91cFNlbGVjdGVkID9cbiAgICAgICAgICAgIHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZ3JvdXBCeUFyZWFfZGVzZWxlY3RfbWVzc2FnZSA6IHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZ3JvdXBCeUFyZWFfc2VsZWN0X21lc3NhZ2U7XG4gICAgICAgIHJldHVybiBhcmlhTGFiZWwucmVwbGFjZSgnezB9JywgdGhpcy5ncm91cFJvdy5leHByZXNzaW9uLmZpZWxkTmFtZSkucmVwbGFjZSgnezF9JywgdGhpcy5ncm91cFJvdy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHNob3dSb3dTZWxlY3RvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucm93U2VsZWN0aW9uICE9PSBHcmlkU2VsZWN0aW9uTW9kZS5ub25lICYmICF0aGlzLmhpZGVHcm91cFJvd1NlbGVjdG9ycztcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgI2RlZmF1bHRHcm91cFJvdz5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dEcmFnZ2FibGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19kcmFnLWluZGljYXRvciBpZ3gtZ3JpZF9fdHItYWN0aW9uXCI+XG4gICAgICAgICAgICA8aWd4LWljb24gZmFtaWx5PVwiZGVmYXVsdFwiIG5hbWU9XCJkcmFnX2luZGljYXRvclwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIidoaWRkZW4nXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Jvd1NlbGVjdG9yc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1zZWxlY3Rpb24gaWd4LWdyaWRfX3RyLWFjdGlvblwiIChwb2ludGVyZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Hcm91cFNlbGVjdG9yQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNncm91cEJ5Um93U2VsZWN0b3IgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQuZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGUgPyB0aGlzLmdyaWQuZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGUgOiBncm91cEJ5Um93U2VsZWN0b3JCYXNlVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb3VudDogc2VsZWN0ZWRSb3dzSW5UaGVHcm91cC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwUm93OiB0aGlzLmdyb3VwUm93IH19XCI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgpXCIgY2xhc3M9XCJpZ3gtZ3JpZF9fZ3JvdXBpbmctaW5kaWNhdG9yXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0aGlzIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2dyb3VwLWNvbnRlbnRcIiAjZ3JvdXBDb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImdyaWQuZ3JvdXBSb3dUZW1wbGF0ZSA/IGdyaWQuZ3JvdXBSb3dUZW1wbGF0ZSA6IGRlZmF1bHRHcm91cEJ5VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBncm91cFJvdyB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R3JvdXBCeUV4cGFuZGVkVGVtcGxhdGU+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cInRyZWVfY29sbGFwc2VcIj48L2lneC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHcm91cEJ5Q29sbGFwc2VkVGVtcGxhdGU+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cInRyZWVfZXhwYW5kXCI+PC9pZ3gtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHcm91cEJ5VGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JvdXAtbGFiZWxcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImdyb3VwX3dvcmtcIiBjbGFzcz1cImlneC1ncm91cC1sYWJlbF9faWNvblwiPjwvaWd4LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1ncm91cC1sYWJlbF9fY29sdW1uLW5hbWVcIj5cbiAgICAgICAgICAgICAgICB7eyBncm91cFJvdy5jb2x1bW4gJiYgZ3JvdXBSb3cuY29sdW1uLmhlYWRlciA/XG4gICAgICAgICAgICAgICAgZ3JvdXBSb3cuY29sdW1uLmhlYWRlciA6XG4gICAgICAgICAgICAgICAgKGdyb3VwUm93LmV4cHJlc3Npb24gPyBncm91cFJvdy5leHByZXNzaW9uLmZpZWxkTmFtZSA6ICcnKSB9fTpcbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ3gtZ3JvdXAtbGFiZWxfX3RleHRcIj57e1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlclxuICAgICAgICAgICAgICAgICAgICA/IChncm91cFJvdy52YWx1ZSB8IGNvbHVtbkZvcm1hdHRlcjpmb3JtYXR0ZXI6Z3JvdXBSb3cucmVjb3Jkc1swXTpudWxsKVxuICAgICAgICAgICAgICAgICAgICA6IGRhdGFUeXBlID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgbnVtYmVyOmdyb3VwUm93LmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgICAgICA6IChkYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGRhdGFUeXBlID09PSAndGltZScgfHwgZGF0YVR5cGUgPT09ICdkYXRlVGltZScpXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgZGF0ZTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZm9ybWF0Omdyb3VwUm93LmNvbHVtbi5waXBlQXJncy50aW1lem9uZTpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBkYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgICAgICA/IChncm91cFJvdy52YWx1ZSB8IGN1cnJlbmN5OmN1cnJlbmN5Q29kZTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlzcGxheTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBkYXRhVHlwZSA9PT0gJ3BlcmNlbnQnXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgcGVyY2VudDpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBncm91cFJvdy52YWx1ZVxuICAgICAgICAgICAgfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxpZ3gtYmFkZ2UgW3ZhbHVlXT1cImdyb3VwUm93LnJlY29yZHMgPyBncm91cFJvdy5yZWNvcmRzLmxlbmd0aCA6IDBcIiBjbGFzcz0naWd4LWdyb3VwLWxhYmVsX19jb3VudC1iYWRnZSc+XG4gICAgICAgICAgICA8L2lneC1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2dyb3VwQnlSb3dTZWxlY3RvckJhc2VUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19jYngtcGFkZGluZ1wiPlxuICAgICAgICAgICAgPGlneC1jaGVja2JveCBbdGFiaW5kZXhdPVwiLTFcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtjaGVja2VkXT1cImFyZUFsbFJvd3NJblRoZUdyb3VwU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIiBbaW5kZXRlcm1pbmF0ZV09XCJncm91cEJ5Um93Q2hlY2tib3hJbmRldGVybWluYXRlU3RhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmdyaWQucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJ1wiIFthcmlhLWxhYmVsXT1cImdyb3VwQnlSb3dTZWxlY3RvckJhc2VBcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICNncm91cEJ5Um93Q2hlY2tib3g+XG4gICAgICAgICAgICA8L2lneC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19
274
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXBieS1yb3cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JvdXBieS1yb3cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2dyaWRzL2dyaWQvZ3JvdXBieS1yb3cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNILHVCQUF1QixFQUV2QixTQUFTLEVBRVQsV0FBVyxFQUNYLFlBQVksRUFDWixLQUFLLEVBQ0wsU0FBUyxFQUNULFdBQVcsRUFFWCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxXQUFXLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUVsSSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUcvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUVyRSxPQUFPLEVBQVksYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFcEQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDekUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7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OEJBQThCO3NCQUR2QyxTQUFTO3VCQUFDLGdDQUFnQyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQU90RSwrQkFBK0I7c0JBRHhDLFNBQVM7dUJBQUMsaUNBQWlDLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBK0MxRSxRQUFRO3NCQURkLFlBQVk7dUJBQUMsYUFBYTtnQkFNcEIsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkF3QnRCLFFBQVE7c0JBRGxCLFdBQVc7dUJBQUMsb0JBQW9CO2dCQVN0QixXQUFXO3NCQURyQixXQUFXO3VCQUFDLHVCQUF1QjtnQkFPekIsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBZ0J0QixVQUFVO3NCQURwQixXQUFXO3VCQUFDLFNBQVM7Z0JBWVgsWUFBWTtzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBDb21wb25lbnQsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgVmlld0NoaWxkLFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIE9uRGVzdHJveSxcbiAgICBJbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBEZWNpbWFsUGlwZSwgRGF0ZVBpcGUsIGdldExvY2FsZUN1cnJlbmN5Q29kZSwgUGVyY2VudFBpcGUsIEN1cnJlbmN5UGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgSUdyb3VwQnlSZWNvcmQgfSBmcm9tICcuLi8uLi9kYXRhLW9wZXJhdGlvbnMvZ3JvdXBieS1yZWNvcmQuaW50ZXJmYWNlJztcbmltcG9ydCB7IEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4uLy4uL2RhdGEtb3BlcmF0aW9ucy9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgSWd4R3JpZFNlbGVjdGlvblNlcnZpY2UgfSBmcm9tICcuLi9zZWxlY3Rpb24vc2VsZWN0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgR3JpZFR5cGUsIElHWF9HUklEX0JBU0UgfSBmcm9tICcuLi9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSWd4RmlsdGVyaW5nU2VydmljZSB9IGZyb20gJy4uL2ZpbHRlcmluZy9ncmlkLWZpbHRlcmluZy5zZXJ2aWNlJztcbmltcG9ydCB7IElneEdyaWRSb3dDb21wb25lbnQgfSBmcm9tICcuL2dyaWQtcm93LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHcmlkU2VsZWN0aW9uTW9kZSB9IGZyb20gJy4uL2NvbW1vbi9lbnVtcyc7XG5pbXBvcnQgeyBJU2VsZWN0aW9uTm9kZSB9IGZyb20gJy4uL2NvbW1vbi90eXBlcyc7XG5pbXBvcnQgeyBJZ3hDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4uLy4uL2NoZWNrYm94L2NoZWNrYm94LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hCYWRnZUNvbXBvbmVudCB9IGZyb20gJy4uLy4uL2JhZGdlL2JhZGdlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJZ3hDb2x1bW5Gb3JtYXR0ZXJQaXBlIH0gZnJvbSAnLi4vY29tbW9uL3BpcGVzJztcblxuQENvbXBvbmVudCh7XG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgc2VsZWN0b3I6ICdpZ3gtZ3JpZC1ncm91cGJ5LXJvdycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2dyb3VwYnktcm93LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgTmdJZixcbiAgICAgICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICAgICAgRGVjaW1hbFBpcGUsXG4gICAgICAgIERhdGVQaXBlLFxuICAgICAgICBQZXJjZW50UGlwZSxcbiAgICAgICAgQ3VycmVuY3lQaXBlLFxuICAgICAgICBJZ3hJY29uQ29tcG9uZW50LFxuICAgICAgICBJZ3hCYWRnZUNvbXBvbmVudCxcbiAgICAgICAgSWd4Q2hlY2tib3hDb21wb25lbnQsXG4gICAgICAgIElneENvbHVtbkZvcm1hdHRlclBpcGVcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIElneEdyaWRHcm91cEJ5Um93Q29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaGlkZUdyb3VwUm93U2VsZWN0b3JzOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHJvd0RyYWdnYWJsZTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGluZGV4IG9mIHRoZSByb3cuXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZ3JpZC1ncm91cGJ5LXJvdyBbZ3JpZElEXT1cImlkXCIgW2luZGV4XT1cInJvd0luZGV4XCIgW2dyb3VwUm93XT1cInJvd0RhdGFcIiAjcm93PjwvaWd4LWdyaWQtZ3JvdXBieS1yb3c+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5kZXg6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGlkIG9mIHRoZSBncmlkIHRoZSByb3cgYmVsb25ncyB0by5cbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1ncmlkLWdyb3VwYnktcm93IFtncmlkSURdPVwiaWRcIiBbaW5kZXhdPVwicm93SW5kZXhcIiBbZ3JvdXBSb3ddPVwicm93RGF0YVwiICNyb3c+PC9pZ3gtZ3JpZC1ncm91cGJ5LXJvdz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncmlkSUQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBncm91cCByZWNvcmQgdGhlIGNvbXBvbmVudCByZW5kZXJzIGZvci5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogPGlneC1ncmlkLWdyb3VwYnktcm93IFtncmlkSURdPVwiaWRcIiBbaW5kZXhdPVwicm93SW5kZXhcIiBbZ3JvdXBSb3ddPVwicm93RGF0YVwiICNyb3c+PC9pZ3gtZ3JpZC1ncm91cGJ5LXJvdz5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBncm91cFJvdzogSUdyb3VwQnlSZWNvcmQ7XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGEgcmVmZXJlbmNlIG9mIHRoZSBjb250ZW50IG9mIHRoZSBncm91cC5cbiAgICAgKiBgYGB0eXBlc2NyaXB0XG4gICAgICogY29uc3QgZ3JvdXBSb3dDb250ZW50ID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0Lmdyb3VwQ29udGVudDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdncm91cENvbnRlbnQnLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBncm91cENvbnRlbnQ6IEVsZW1lbnRSZWY7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwcm90ZWN0ZWQgaXNGb2N1c2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQFZpZXdDaGlsZCgnZGVmYXVsdEdyb3VwQnlFeHBhbmRlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRHcm91cEJ5RXhwYW5kZWRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBAVmlld0NoaWxkKCdkZWZhdWx0R3JvdXBCeUNvbGxhcHNlZFRlbXBsYXRlJywgeyByZWFkOiBUZW1wbGF0ZVJlZiwgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIGRlZmF1bHRHcm91cEJ5Q29sbGFwc2VkVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgZGVmYXVsdENzc0NsYXNzID0gJ2lneC1ncmlkX19ncm91cC1yb3cnO1xuXG4gICAgLyoqXG4gICAgICogQGhpZGRlblxuICAgICAqL1xuICAgIHByb3RlY3RlZCBwYWRkaW5nSW5kZW50YXRpb25Dc3NDbGFzcyA9ICdpZ3gtZ3JpZF9fZ3JvdXAtcm93LS1wYWRkaW5nLWxldmVsJztcblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgcm93IGlzIGZvY3VzZWQuXG4gICAgICogYGBgXG4gICAgICogbGV0IGdyaWRSb3dGb2N1c2VkID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LmZvY3VzZWQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBmb2N1c2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FjdGl2ZSgpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgY3VycmVuY3lDb2RlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwUm93LmNvbHVtbi5waXBlQXJncy5jdXJyZW5jeUNvZGUgP1xuICAgICAgICAgICAgdGhpcy5ncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuY3VycmVuY3lDb2RlIDogZ2V0TG9jYWxlQ3VycmVuY3lDb2RlKHRoaXMuZ3JpZC5sb2NhbGUpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBASW5qZWN0KElHWF9HUklEX0JBU0UpIHB1YmxpYyBncmlkOiBHcmlkVHlwZSxcbiAgICAgICAgcHVibGljIGdyaWRTZWxlY3Rpb246IElneEdyaWRTZWxlY3Rpb25TZXJ2aWNlLFxuICAgICAgICBwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgICAgIHB1YmxpYyBmaWx0ZXJpbmdTZXJ2aWNlOiBJZ3hGaWx0ZXJpbmdTZXJ2aWNlKSB7XG4gICAgICAgIHRoaXMuZ3JpZFNlbGVjdGlvbi5zZWxlY3RlZFJvd3NDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfSk7XG4gICAgfVxuXG5cbiAgICBASG9zdExpc3RlbmVyKCdwb2ludGVyZG93bicpXG4gICAgcHVibGljIGFjdGl2YXRlKCkge1xuICAgICAgICB0aGlzLmdyaWQubmF2aWdhdGlvbi5zZXRBY3RpdmVOb2RlKHsgcm93OiB0aGlzLmluZGV4IH0pO1xuICAgIH1cblxuICAgIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgICBwdWJsaWMgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xuICAgICAgICB0aGlzLmdyaWQucm93Q2xpY2suZW1pdCh7XG4gICAgICAgICAgICByb3c6IHRoaXMuZ3JpZC5jcmVhdGVSb3codGhpcy5pbmRleCksXG4gICAgICAgICAgICBldmVudFxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgd2hldGhlciB0aGUgZ3JvdXAgcm93IGlzIGV4cGFuZGVkLlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBncm91cFJvd0V4cGFuZGVkID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LmV4cGFuZGVkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcbiAgICBwdWJsaWMgZ2V0IGV4cGFuZGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5ncmlkLmlzRXhwYW5kZWRHcm91cCh0aGlzLmdyb3VwUm93KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuXG4gICAgICovXG4gICAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtZGVzY3JpYmVkYnknKVxuICAgIHB1YmxpYyBnZXQgZGVzY3JpYmVkQnkoKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgZ3JSb3dFeHByID0gdGhpcy5ncm91cFJvdy5leHByZXNzaW9uICE9PSB1bmRlZmluZWQgPyB0aGlzLmdyb3VwUm93LmV4cHJlc3Npb24uZmllbGROYW1lIDogJyc7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWRJRCArICdfJyArIGdyUm93RXhwcjtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuZGF0YS1yb3dJbmRleCcpXG4gICAgcHVibGljIGdldCBkYXRhUm93SW5kZXgoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYSByZWZlcmVuY2UgdG8gdGhlIHVuZGVybHlpbmcgSFRNTCBlbGVtZW50LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBncm91cFJvd0VsZW1lbnQgPSB0aGlzLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICogYGBgXG4gICAgICovXG4gICAgcHVibGljIGdldCBuYXRpdmVFbGVtZW50KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudDtcbiAgICB9XG5cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIuaWQnKVxuICAgIHB1YmxpYyBnZXQgYXR0ckNlbGxJRCgpIHtcbiAgICAgICAgcmV0dXJuIGAke3RoaXMuZ3JpZElEfV8ke3RoaXMuaW5kZXh9YDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIHRoZSBzdHlsZSBjbGFzc2VzIGFwcGxpZWQgdG8gdGhlIGdyb3VwIHJvd3MuXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IGdyb3VwQ3NzU3R5bGVzID0gdGhpcy5ncmlkMS5yb3dMaXN0LmZpcnN0LnN0eWxlQ2xhc3NlcztcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgICBwdWJsaWMgZ2V0IHN0eWxlQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gYCR7dGhpcy5kZWZhdWx0Q3NzQ2xhc3N9IGAgKyBgJHt0aGlzLnBhZGRpbmdJbmRlbnRhdGlvbkNzc0NsYXNzfS1gICsgdGhpcy5ncm91cFJvdy5sZXZlbCArXG4gICAgICAgICAgICAodGhpcy5pc0FjdGl2ZSgpID8gYCAke3RoaXMuZGVmYXVsdENzc0NsYXNzfS0tYWN0aXZlYCA6ICcnKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgaXNBY3RpdmUoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQubmF2aWdhdGlvbi5hY3RpdmVOb2RlID8gdGhpcy5ncmlkLm5hdmlnYXRpb24uYWN0aXZlTm9kZS5yb3cgPT09IHRoaXMuaW5kZXggOiBmYWxzZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRSb3dJRChyb3dEYXRhKTogSWd4R3JpZFJvd0NvbXBvbmVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucHJpbWFyeUtleSA/IHJvd0RhdGFbdGhpcy5ncmlkLnByaW1hcnlLZXldIDogcm93RGF0YTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBvbkdyb3VwU2VsZWN0b3JDbGljayhldmVudCkge1xuICAgICAgICBpZiAoIXRoaXMuZ3JpZC5pc011bHRpUm93U2VsZWN0aW9uRW5hYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICBpZiAodGhpcy5hcmVBbGxSb3dzSW5UaGVHcm91cFNlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3Rpb24uZGVzZWxlY3RSb3dzKHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5tYXAoeCA9PiB0aGlzLmdldFJvd0lEKHgpKSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmdyaWRTZWxlY3Rpb24uc2VsZWN0Um93cyh0aGlzLmdyb3VwUm93LnJlY29yZHMubWFwKHggPT4gdGhpcy5nZXRSb3dJRCh4KSkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVG9nZ2xlcyB0aGUgZ3JvdXAgcm93LlxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiB0aGlzLmdyaWQxLnJvd0xpc3QuZmlyc3QudG9nZ2xlKClcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmdyaWQudG9nZ2xlR3JvdXAodGhpcy5ncm91cFJvdyk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBpY29uVGVtcGxhdGUoKSB7XG4gICAgICAgIGlmICh0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0V4cGFuZGVkSW5kaWNhdG9yVGVtcGxhdGUgfHwgdGhpcy5kZWZhdWx0R3JvdXBCeUV4cGFuZGVkVGVtcGxhdGU7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5ncmlkLnJvd0NvbGxhcHNlZEluZGljYXRvclRlbXBsYXRlIHx8IHRoaXMuZGVmYXVsdEdyb3VwQnlDb2xsYXBzZWRUZW1wbGF0ZTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXQgc2VsZWN0aW9uTm9kZSgpOiBJU2VsZWN0aW9uTm9kZSB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICByb3c6IHRoaXMuaW5kZXgsXG4gICAgICAgICAgICBjb2x1bW46IHRoaXMuZ3JpZFNlbGVjdGlvbi5hY3RpdmVFbGVtZW50ID8gdGhpcy5ncmlkU2VsZWN0aW9uLmFjdGl2ZUVsZW1lbnQuY29sdW1uIDogMFxuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgKi9cbiAgICBwdWJsaWMgZ2V0IGRhdGFUeXBlKCk6IGFueSB7XG4gICAgICAgIGNvbnN0IGNvbHVtbiA9IHRoaXMuZ3JvdXBSb3cuY29sdW1uO1xuICAgICAgICByZXR1cm4gKGNvbHVtbiAmJiBjb2x1bW4uZGF0YVR5cGUpIHx8IEdyaWRDb2x1bW5EYXRhVHlwZS5TdHJpbmc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGZvcm1hdHRlcigpOiBhbnkge1xuICAgICAgICBjb25zdCBjb2x1bW4gPSB0aGlzLmdyb3VwUm93LmNvbHVtbjtcbiAgICAgICAgcmV0dXJuIChjb2x1bW4gJiYgY29sdW1uLmZvcm1hdHRlcikgfHwgbnVsbDtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgYXJlQWxsUm93c0luVGhlR3JvdXBTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5ldmVyeSh4ID0+IHRoaXMuZ3JpZFNlbGVjdGlvbi5pc1Jvd1NlbGVjdGVkKHRoaXMuZ2V0Um93SUQoeCkpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaGlkZGVuIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgc2VsZWN0ZWRSb3dzSW5UaGVHcm91cCgpOiBhbnlbXSB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkSWRzID0gbmV3IFNldCh0aGlzLmdyaWRTZWxlY3Rpb24uZmlsdGVyZWRTZWxlY3RlZFJvd0lkcyk7XG4gICAgICAgIHJldHVybiB0aGlzLmdyb3VwUm93LnJlY29yZHMuZmlsdGVyKHJvd0lEID0+IHNlbGVjdGVkSWRzLmhhcyh0aGlzLmdldFJvd0lEKHJvd0lEKSkpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cEJ5Um93Q2hlY2tib3hJbmRldGVybWluYXRlU3RhdGUoKTogYm9vbGVhbiB7XG4gICAgICAgIGlmICh0aGlzLnNlbGVjdGVkUm93c0luVGhlR3JvdXAubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgcmV0dXJuICF0aGlzLmFyZUFsbFJvd3NJblRoZUdyb3VwU2VsZWN0ZWQ7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEBoaWRkZW4gQGludGVybmFsXG4gICAgICovXG4gICAgcHVibGljIGdldCBncm91cEJ5Um93U2VsZWN0b3JCYXNlQXJpYUxhYmVsKCk6IHN0cmluZyB7XG4gICAgICAgIGNvbnN0IGFyaWFMYWJlbDogc3RyaW5nID0gdGhpcy5hcmVBbGxSb3dzSW5UaGVHcm91cFNlbGVjdGVkID9cbiAgICAgICAgICAgIHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZ3JvdXBCeUFyZWFfZGVzZWxlY3RfbWVzc2FnZSA6IHRoaXMuZ3JpZC5yZXNvdXJjZVN0cmluZ3MuaWd4X2dyaWRfZ3JvdXBCeUFyZWFfc2VsZWN0X21lc3NhZ2U7XG4gICAgICAgIHJldHVybiBhcmlhTGFiZWwucmVwbGFjZSgnezB9JywgdGhpcy5ncm91cFJvdy5leHByZXNzaW9uLmZpZWxkTmFtZSkucmVwbGFjZSgnezF9JywgdGhpcy5ncm91cFJvdy52YWx1ZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGhpZGRlbiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IHNob3dSb3dTZWxlY3RvcnMoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmdyaWQucm93U2VsZWN0aW9uICE9PSBHcmlkU2VsZWN0aW9uTW9kZS5ub25lICYmICF0aGlzLmhpZGVHcm91cFJvd1NlbGVjdG9ycztcbiAgICB9XG5cbn1cbiIsIjxuZy1jb250YWluZXIgI2RlZmF1bHRHcm91cFJvdz5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJyb3dEcmFnZ2FibGVcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19kcmFnLWluZGljYXRvciBpZ3gtZ3JpZF9fdHItYWN0aW9uXCI+XG4gICAgICAgICAgICA8aWd4LWljb24gZmFtaWx5PVwiZGVmYXVsdFwiIG5hbWU9XCJkcmFnX2luZGljYXRvclwiIFtzdHlsZS52aXNpYmlsaXR5XT1cIidoaWRkZW4nXCI+PC9pZ3gtaWNvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic2hvd1Jvd1NlbGVjdG9yc1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2NieC1zZWxlY3Rpb24gaWd4LWdyaWRfX3RyLWFjdGlvblwiIChwb2ludGVyZG93bik9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25Hcm91cFNlbGVjdG9yQ2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNncm91cEJ5Um93U2VsZWN0b3IgKm5nVGVtcGxhdGVPdXRsZXQ9XCJcbiAgICAgICAgICAgICAgICB0aGlzLmdyaWQuZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGUgPyB0aGlzLmdyaWQuZ3JvdXBCeVJvd1NlbGVjdG9yVGVtcGxhdGUgOiBncm91cEJ5Um93U2VsZWN0b3JCYXNlVGVtcGxhdGU7XG4gICAgICAgICAgICAgICAgY29udGV4dDogeyAkaW1wbGljaXQ6IHtcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRDb3VudDogc2VsZWN0ZWRSb3dzSW5UaGVHcm91cC5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IHRoaXMuZ3JvdXBSb3cucmVjb3Jkcy5sZW5ndGgsXG4gICAgICAgICAgICAgICAgICAgIGdyb3VwUm93OiB0aGlzLmdyb3VwUm93IH19XCI+XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxkaXYgKGNsaWNrKT1cInRvZ2dsZSgpXCIgY2xhc3M9XCJpZ3gtZ3JpZF9fZ3JvdXBpbmctaW5kaWNhdG9yXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpY29uVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiB0aGlzIH1cIj5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaWd4LWdyaWRfX2dyb3VwLWNvbnRlbnRcIiAjZ3JvdXBDb250ZW50PlxuICAgICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cImdyaWQuZ3JvdXBSb3dUZW1wbGF0ZSA/IGdyaWQuZ3JvdXBSb3dUZW1wbGF0ZSA6IGRlZmF1bHRHcm91cEJ5VGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBncm91cFJvdyB9XCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuXG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0R3JvdXBCeUV4cGFuZGVkVGVtcGxhdGU+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cInRyZWVfY29sbGFwc2VcIj48L2lneC1pY29uPlxuICAgIDwvbmctdGVtcGxhdGU+XG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHcm91cEJ5Q29sbGFwc2VkVGVtcGxhdGU+XG4gICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cInRyZWVfZXhwYW5kXCI+PC9pZ3gtaWNvbj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG5cbiAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHRHcm91cEJ5VGVtcGxhdGU+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpZ3gtZ3JvdXAtbGFiZWxcIj5cbiAgICAgICAgICAgIDxpZ3gtaWNvbiBmYW1pbHk9XCJkZWZhdWx0XCIgbmFtZT1cImdyb3VwX3dvcmtcIiBjbGFzcz1cImlneC1ncm91cC1sYWJlbF9faWNvblwiPjwvaWd4LWljb24+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImlneC1ncm91cC1sYWJlbF9fY29sdW1uLW5hbWVcIj5cbiAgICAgICAgICAgICAgICB7eyBncm91cFJvdy5jb2x1bW4gJiYgZ3JvdXBSb3cuY29sdW1uLmhlYWRlciA/XG4gICAgICAgICAgICAgICAgZ3JvdXBSb3cuY29sdW1uLmhlYWRlciA6XG4gICAgICAgICAgICAgICAgKGdyb3VwUm93LmV4cHJlc3Npb24gPyBncm91cFJvdy5leHByZXNzaW9uLmZpZWxkTmFtZSA6ICcnKSB9fTpcbiAgICAgICAgICAgIDwvc3Bhbj5cblxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpZ3gtZ3JvdXAtbGFiZWxfX3RleHRcIj57e1xuICAgICAgICAgICAgICAgIGZvcm1hdHRlclxuICAgICAgICAgICAgICAgICAgICA/IChncm91cFJvdy52YWx1ZSB8IGNvbHVtbkZvcm1hdHRlcjpmb3JtYXR0ZXI6Z3JvdXBSb3cucmVjb3Jkc1swXTpudWxsKVxuICAgICAgICAgICAgICAgICAgICA6IGRhdGFUeXBlID09PSBcIm51bWJlclwiXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgbnVtYmVyOmdyb3VwUm93LmNvbHVtbi5waXBlQXJncy5kaWdpdHNJbmZvOmdyaWQubG9jYWxlKVxuICAgICAgICAgICAgICAgICAgICA6IChkYXRhVHlwZSA9PT0gJ2RhdGUnIHx8IGRhdGFUeXBlID09PSAndGltZScgfHwgZGF0YVR5cGUgPT09ICdkYXRlVGltZScpXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgZGF0ZTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZm9ybWF0Omdyb3VwUm93LmNvbHVtbi5waXBlQXJncy50aW1lem9uZTpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBkYXRhVHlwZSA9PT0gJ2N1cnJlbmN5J1xuICAgICAgICAgICAgICAgICAgICA/IChncm91cFJvdy52YWx1ZSB8IGN1cnJlbmN5OmN1cnJlbmN5Q29kZTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlzcGxheTpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBkYXRhVHlwZSA9PT0gJ3BlcmNlbnQnXG4gICAgICAgICAgICAgICAgICAgID8gKGdyb3VwUm93LnZhbHVlIHwgcGVyY2VudDpncm91cFJvdy5jb2x1bW4ucGlwZUFyZ3MuZGlnaXRzSW5mbzpncmlkLmxvY2FsZSlcbiAgICAgICAgICAgICAgICAgICAgOiBncm91cFJvdy52YWx1ZVxuICAgICAgICAgICAgfX08L3NwYW4+XG5cbiAgICAgICAgICAgIDxpZ3gtYmFkZ2UgW3ZhbHVlXT1cImdyb3VwUm93LnJlY29yZHMgPyBncm91cFJvdy5yZWNvcmRzLmxlbmd0aCA6IDBcIiBjbGFzcz0naWd4LWdyb3VwLWxhYmVsX19jb3VudC1iYWRnZSc+XG4gICAgICAgICAgICA8L2lneC1iYWRnZT5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8bmctdGVtcGxhdGUgI2dyb3VwQnlSb3dTZWxlY3RvckJhc2VUZW1wbGF0ZSBsZXQtY29udGV4dD5cbiAgICAgICAgPGRpdiBjbGFzcz1cImlneC1ncmlkX19jYngtcGFkZGluZ1wiPlxuICAgICAgICAgICAgPGlneC1jaGVja2JveCBbdGFiaW5kZXhdPVwiLTFcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIFtjaGVja2VkXT1cImFyZUFsbFJvd3NJblRoZUdyb3VwU2VsZWN0ZWRcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlUmlwcGxlXT1cInRydWVcIiBbaW5kZXRlcm1pbmF0ZV09XCJncm91cEJ5Um93Q2hlY2tib3hJbmRldGVybWluYXRlU3RhdGVcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJ0aGlzLmdyaWQucm93U2VsZWN0aW9uID09PSAnc2luZ2xlJ1wiIFthcmlhLWxhYmVsXT1cImdyb3VwQnlSb3dTZWxlY3RvckJhc2VBcmlhTGFiZWxcIlxuICAgICAgICAgICAgICAgICNncm91cEJ5Um93Q2hlY2tib3g+XG4gICAgICAgICAgICA8L2lneC1jaGVja2JveD5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuIl19