igniteui-angular 16.0.0-beta.0 → 16.0.0-beta.2

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 (77) hide show
  1. package/esm2022/lib/banner/banner.component.mjs +12 -12
  2. package/esm2022/lib/calendar/calendar-base.mjs +1 -1
  3. package/esm2022/lib/calendar/calendar.mjs +2 -1
  4. package/esm2022/lib/card/card.component.mjs +1 -2
  5. package/esm2022/lib/chips/chip.component.mjs +2 -2
  6. package/esm2022/lib/data-operations/data-util.mjs +1 -1
  7. package/esm2022/lib/data-operations/filtering-strategy.mjs +1 -1
  8. package/esm2022/lib/data-operations/pivot-sort-strategy.mjs +1 -1
  9. package/esm2022/lib/data-operations/pivot-strategy.mjs +3 -3
  10. package/esm2022/lib/data-operations/sorting-strategy.mjs +3 -3
  11. package/esm2022/lib/date-common/picker-base.directive.mjs +1 -2
  12. package/esm2022/lib/date-range-picker/date-range-picker.component.mjs +1 -2
  13. package/esm2022/lib/directives/autocomplete/autocomplete.directive.mjs +1 -3
  14. package/esm2022/lib/directives/drag-drop/drag-drop.directive.mjs +2 -2
  15. package/esm2022/lib/directives/for-of/for_of.directive.mjs +1 -1
  16. package/esm2022/lib/directives/mask/mask-parsing.service.mjs +4 -5
  17. package/esm2022/lib/directives/mask/mask.directive.mjs +1 -2
  18. package/esm2022/lib/directives/text-selection/text-selection.module.mjs +20 -0
  19. package/esm2022/lib/expansion-panel/expansion-panel-header.component.mjs +1 -3
  20. package/esm2022/lib/grids/columns/column.component.mjs +2 -1
  21. package/esm2022/lib/grids/columns/interfaces.mjs +1 -1
  22. package/esm2022/lib/grids/columns/templates.directive.mjs +1 -8
  23. package/esm2022/lib/grids/common/strategy.mjs +1 -1
  24. package/esm2022/lib/grids/filtering/excel-style/excel-style-filtering.component.mjs +2 -2
  25. package/esm2022/lib/grids/filtering/excel-style/excel-style-search.component.mjs +1 -2
  26. package/esm2022/lib/grids/grid/grid.directives.mjs +1 -11
  27. package/esm2022/lib/grids/grid-base.directive.mjs +3 -5
  28. package/esm2022/lib/grids/grid-public-cell.mjs +12 -12
  29. package/esm2022/lib/grids/grid.rowEdit.directive.mjs +1 -5
  30. package/esm2022/lib/grids/pivot-grid/pivot-data-selector.component.mjs +1 -3
  31. package/esm2022/lib/grids/pivot-grid/pivot-grid.component.mjs +2 -2
  32. package/esm2022/lib/grids/pivot-grid/pivot-grid.directives.mjs +1 -2
  33. package/esm2022/lib/grids/pivot-grid/pivot-grid.pipes.mjs +2 -2
  34. package/esm2022/lib/grids/pivot-grid/pivot-header-row.component.mjs +5 -5
  35. package/esm2022/lib/grids/pivot-grid/pivot-row.component.mjs +2 -2
  36. package/esm2022/lib/grids/resizing/pivot-grid/pivot-resize-handle.directive.mjs +1 -2
  37. package/esm2022/lib/grids/row-drag.directive.mjs +1 -3
  38. package/esm2022/lib/grids/selection/row-selectors.mjs +1 -4
  39. package/esm2022/lib/grids/state.directive.mjs +2 -2
  40. package/esm2022/lib/grids/summaries/grid-root-summary.pipe.mjs +1 -1
  41. package/esm2022/lib/grids/toolbar/common.mjs +1 -2
  42. package/esm2022/lib/grids/tree-grid/tree-grid-api.service.mjs +2 -2
  43. package/esm2022/lib/grids/tree-grid/tree-grid.component.mjs +1 -2
  44. package/esm2022/lib/grids/tree-grid/tree-grid.filtering.strategy.mjs +1 -1
  45. package/esm2022/lib/grids/tree-grid/tree-grid.grouping.pipe.mjs +1 -1
  46. package/esm2022/lib/icon/icon.service.mjs +2 -2
  47. package/esm2022/lib/services/excel/excel-files.mjs +2 -2
  48. package/esm2022/lib/services/excel/worksheet-data-dictionary.mjs +1 -1
  49. package/esm2022/lib/services/exporter-common/base-export-service.mjs +2 -2
  50. package/esm2022/lib/services/transaction/igx-transaction.mjs +1 -1
  51. package/esm2022/lib/services/transaction/transaction-factory.service.mjs +1 -2
  52. package/esm2022/lib/splitter/splitter-pane/splitter-pane.component.mjs +1 -3
  53. package/esm2022/lib/tabs/tab-content.directive.mjs +1 -2
  54. package/esm2022/lib/tabs/tab-header.directive.mjs +1 -2
  55. package/esm2022/lib/tabs/tab-item.directive.mjs +1 -2
  56. package/esm2022/lib/tabs/tabs/public_api.mjs +1 -1
  57. package/esm2022/lib/tabs/tabs/tabs.component.mjs +1 -2
  58. package/esm2022/lib/tree/tree-navigation.service.mjs +1 -1
  59. package/esm2022/lib/tree/tree-node/tree-node.component.mjs +1 -3
  60. package/esm2022/lib/tree/tree-selection.service.mjs +1 -2
  61. package/esm2022/public_api.mjs +2 -1
  62. package/fesm2022/igniteui-angular.mjs +66 -101
  63. package/fesm2022/igniteui-angular.mjs.map +1 -1
  64. package/lib/banner/banner.component.d.ts +9 -9
  65. package/lib/directives/for-of/for_of.directive.d.ts +1 -1
  66. package/lib/directives/text-selection/text-selection.module.d.ts +11 -0
  67. package/lib/grids/columns/column.component.d.ts +1 -1
  68. package/lib/grids/columns/interfaces.d.ts +1 -2
  69. package/lib/grids/grid-base.directive.d.ts +1 -1
  70. package/lib/grids/grid-public-cell.d.ts +8 -8
  71. package/lib/tabs/tabs/public_api.d.ts +1 -0
  72. package/migrations/common/UpdateChanges.js +2 -3
  73. package/migrations/common/util.js +3 -1
  74. package/migrations/update-13_0_0/index.js +4 -4
  75. package/package.json +7 -7
  76. package/public_api.d.ts +1 -0
  77. package/schematics/tsconfig.tsbuildinfo +1 -1
@@ -41,4 +41,4 @@ export class DefaultPivotSortingStrategy extends DefaultSortingStrategy {
41
41
  return resolvedValue;
42
42
  }
43
43
  }
44
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtc29ydC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRhLW9wZXJhdGlvbnMvcGl2b3Qtc29ydC1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUUsTUFBTSxPQUFPLHFDQUFzQyxTQUFRLHNCQUFzQjthQUNuRCxjQUFTLEdBQTBDLElBQUksQ0FBQztJQUMzRSxNQUFNLENBQVUsUUFBUTtRQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ2UsSUFBSSxDQUFDLElBQVcsRUFDNUIsU0FBaUIsRUFDakIsR0FBcUIsRUFDckIsVUFBbUIsRUFDbkIsYUFBK0QsRUFDL0QsTUFBZ0IsRUFDaEIsTUFBZ0IsRUFDaEIsS0FBcUI7UUFDckIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFB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dXRpbHMnO1xuaW1wb3J0IHsgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2dyaWRzL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBJUGl2b3RHcmlkUmVjb3JkIH0gZnJvbSAnLi4vZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC1ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQaXZvdFV0aWwgfSBmcm9tICcuLi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LXV0aWwnO1xuaW1wb3J0IHsgR3JpZENvbHVtbkRhdGFUeXBlIH0gZnJvbSAnLi9kYXRhLXV0aWwnO1xuaW1wb3J0IHsgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSwgU29ydGluZ0RpcmVjdGlvbiB9IGZyb20gJy4vc29ydGluZy1zdHJhdGVneSc7XG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGl2b3RHcmlkUmVjb3JkU29ydGluZ1N0cmF0ZWd5IGV4dGVuZHMgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSB7XG4gICAgcHJvdGVjdGVkIHN0YXRpYyBvdmVycmlkZSBfaW5zdGFuY2U6IERlZmF1bHRQaXZvdEdyaWRSZWNvcmRTb3J0aW5nU3RyYXRlZ3kgPSBudWxsO1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgaW5zdGFuY2UoKTogRGVmYXVsdFBpdm90R3JpZFJlY29yZFNvcnRpbmdTdHJhdGVneSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgdGhpcygpKTtcbiAgICB9XG4gICAgcHVibGljIG92ZXJyaWRlIHNvcnQoZGF0YTogYW55W10sXG4gICAgICAgIGZpZWxkTmFtZTogc3RyaW5nLFxuICAgICAgICBkaXI6IFNvcnRpbmdEaXJlY3Rpb24sXG4gICAgICAgIGlnbm9yZUNhc2U6IGJvb2xlYW4sXG4gICAgICAgIHZhbHVlUmVzb2x2ZXI6IChvYmo6IGFueSwga2V5OiBzdHJpbmcsIGlzRGF0ZT86IGJvb2xlYW4pID0+IGFueSxcbiAgICAgICAgaXNEYXRlPzogYm9vbGVhbixcbiAgICAgICAgaXNUaW1lPzogYm9vbGVhbixcbiAgICAgICAgX2dyaWQ/OiBQaXZvdEdyaWRUeXBlKSB7XG4gICAgICAgIGNvbnN0IHJldmVyc2UgPSAoZGlyID09PSBTb3J0aW5nRGlyZWN0aW9uLkRlc2MgPyAtMSA6IDEpO1xuICAgICAgICBjb25zdCBjbXBGdW5jID0gKG9iajEsIG9iajIpID0+IHRoaXMuY29tcGFyZU9iamVjdHMob2JqMSwgb2JqMiwgZmllbGROYW1lLCByZXZlcnNlLCBpZ25vcmVDYXNlLCB0aGlzLmdldEZpZWxkVmFsdWUsIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJyYXlTb3J0KGRhdGEsIGNtcEZ1bmMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGaWVsZFZhbHVlKG9iajogSVBpdm90R3JpZFJlY29yZCwga2V5OiBzdHJpbmcsIF9pc0RhdGU6IGJvb2xlYW4gPSBmYWxzZSwgX2lzVGltZTogYm9vbGVhbiA9IGZhbHNlKTogYW55IHtcbiAgICAgICAgcmV0dXJuIG9iai5hZ2dyZWdhdGlvblZhbHVlcy5nZXQoa2V5KTtcbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIERlZmF1bHRQaXZvdFNvcnRpbmdTdHJhdGVneSBleHRlbmRzIERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgb3ZlcnJpZGUgX2luc3RhbmNlOiBEZWZhdWx0UGl2b3RTb3J0aW5nU3RyYXRlZ3kgPSBudWxsO1xuICAgIHByb3RlY3RlZCBkaW1lbnNpb247XG4gICAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBpbnN0YW5jZSgpOiBEZWZhdWx0UGl2b3RTb3J0aW5nU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IHRoaXMoKSk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBzb3J0KGRhdGE6IGFueVtdLFxuICAgICAgICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgICAgZGlyOiBTb3J0aW5nRGlyZWN0aW9uLFxuICAgICAgICBpZ25vcmVDYXNlOiBib29sZWFuLFxuICAgICAgICB2YWx1ZVJlc29sdmVyOiAob2JqOiBhbnksIGtleTogc3RyaW5nLCBpc0RhdGU/OiBib29sZWFuKSA9PiBhbnksXG4gICAgICAgIGlzRGF0ZT86IGJvb2xlYW4sXG4gICAgICAgIGlzVGltZT86IGJvb2xlYW4sXG4gICAgICAgIGdyaWQ/OiBQaXZvdEdyaWRUeXBlKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGZpZWxkTmFtZTtcbiAgICAgICAgY29uc3QgYWxsRGltZW5zaW9ucyA9IGdyaWQuYWxsRGltZW5zaW9ucztcbiAgICAgICAgY29uc3QgZW5hYmxlZERpbWVuc2lvbnMgPSBhbGxEaW1lbnNpb25zLmZpbHRlcih4ID0+IHggJiYgeC5lbmFibGVkKTtcbiAgICAgICAgdGhpcy5kaW1lbnNpb24gPSBQaXZvdFV0aWwuZmxhdHRlbihlbmFibGVkRGltZW5zaW9ucykuZmluZCh4ID0+IHgubWVtYmVyTmFtZSA9PT0ga2V5KTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZSA9IChkaXIgPT09IFNvcnRpbmdEaXJlY3Rpb24uRGVzYyA/IC0xIDogMSk7XG4gICAgICAgIGNvbnN0IGNtcEZ1bmMgPSAob2JqMSwgb2JqMikgPT4gdGhpcy5jb21wYXJlT2JqZWN0cyhvYmoxLCBvYmoyLCBrZXksIHJldmVyc2UsIGlnbm9yZUNhc2UsIHRoaXMuZ2V0RmllbGRWYWx1ZSwgaXNEYXRlLCBpc1RpbWUpO1xuICAgICAgICByZXR1cm4gdGhpcy5hcnJheVNvcnQoZGF0YSwgY21wRnVuYyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEZpZWxkVmFsdWUob2JqOiBhbnksIGtleTogc3RyaW5nLCBfaXNEYXRlOiBib29sZWFuID0gZmFsc2UsIGlzVGltZTogYm9vbGVhbiA9IGZhbHNlKTogYW55IHtcbiAgICAgICAgbGV0IHJlc29sdmVkVmFsdWUgPSBQaXZvdFV0aWwuZXh0cmFjdFZhbHVlRnJvbURpbWVuc2lvbih0aGlzLmRpbWVuc2lvbiwgb2JqKSB8fCBvYmpbMF07XG4gICAgICAgIGNvbnN0IGZvcm1hdEFzRGF0ZSA9IHRoaXMuZGltZW5zaW9uLmRhdGFUeXBlID09PSBHcmlkQ29sdW1uRGF0YVR5cGUuRGF0ZSB8fCB0aGlzLmRpbWVuc2lvbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkRhdGVUaW1lO1xuICAgICAgICBpZiAoZm9ybWF0QXNEYXRlKSB7XG4gICAgICAgICAgICBjb25zdCBkYXRlID0gcGFyc2VEYXRlKHJlc29sdmVkVmFsdWUpO1xuICAgICAgICAgICAgcmVzb2x2ZWRWYWx1ZSA9IGlzVGltZSAmJiBkYXRlID9cbiAgICAgICAgICAgICAgICBuZXcgRGF0ZSgpLnNldEhvdXJzKGRhdGUuZ2V0SG91cnMoKSwgZGF0ZS5nZXRNaW51dGVzKCksIGRhdGUuZ2V0U2Vjb25kcygpLCBkYXRlLmdldE1pbGxpc2Vjb25kcygpKSA6IGRhdGU7XG5cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gcmVzb2x2ZWRWYWx1ZTtcbiAgICB9XG59XG4iXX0=
44
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtc29ydC1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRhLW9wZXJhdGlvbnMvcGl2b3Qtc29ydC1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRzFDLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDakQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFOUUsTUFBTSxPQUFPLHFDQUFzQyxTQUFRLHNCQUFzQjthQUNuRCxjQUFTLEdBQTBDLElBQUksQ0FBQztJQUMzRSxNQUFNLENBQVUsUUFBUTtRQUMzQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBQ2UsSUFBSSxDQUFDLElBQVcsRUFDNUIsU0FBaUIsRUFDakIsR0FBcUIsRUFDckIsVUFBbUIsRUFDbkIsYUFBK0QsRUFDL0QsTUFBZ0IsRUFDaEIsTUFBZ0IsRUFDaEIsS0FBcUI7UUFDckIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFB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fSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IFBpdm90R3JpZFR5cGUgfSBmcm9tICcuLi9ncmlkcy9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgSVBpdm90R3JpZFJlY29yZCB9IGZyb20gJy4uL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGl2b3RVdGlsIH0gZnJvbSAnLi4vZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC11dGlsJztcbmltcG9ydCB7IEdyaWRDb2x1bW5EYXRhVHlwZSB9IGZyb20gJy4vZGF0YS11dGlsJztcbmltcG9ydCB7IERlZmF1bHRTb3J0aW5nU3RyYXRlZ3ksIFNvcnRpbmdEaXJlY3Rpb24gfSBmcm9tICcuL3NvcnRpbmctc3RyYXRlZ3knO1xuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFBpdm90R3JpZFJlY29yZFNvcnRpbmdTdHJhdGVneSBleHRlbmRzIERlZmF1bHRTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgb3ZlcnJpZGUgX2luc3RhbmNlOiBEZWZhdWx0UGl2b3RHcmlkUmVjb3JkU29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcbiAgICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIGluc3RhbmNlKCk6IERlZmF1bHRQaXZvdEdyaWRSZWNvcmRTb3J0aW5nU3RyYXRlZ3kge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IHRoaXMoKSk7XG4gICAgfVxuICAgIHB1YmxpYyBvdmVycmlkZSBzb3J0KGRhdGE6IGFueVtdLFxuICAgICAgICBmaWVsZE5hbWU6IHN0cmluZyxcbiAgICAgICAgZGlyOiBTb3J0aW5nRGlyZWN0aW9uLFxuICAgICAgICBpZ25vcmVDYXNlOiBib29sZWFuLFxuICAgICAgICB2YWx1ZVJlc29sdmVyOiAob2JqOiBhbnksIGtleTogc3RyaW5nLCBpc0RhdGU/OiBib29sZWFuKSA9PiBhbnksXG4gICAgICAgIGlzRGF0ZT86IGJvb2xlYW4sXG4gICAgICAgIGlzVGltZT86IGJvb2xlYW4sXG4gICAgICAgIF9ncmlkPzogUGl2b3RHcmlkVHlwZSkge1xuICAgICAgICBjb25zdCByZXZlcnNlID0gKGRpciA9PT0gU29ydGluZ0RpcmVjdGlvbi5EZXNjID8gLTEgOiAxKTtcbiAgICAgICAgY29uc3QgY21wRnVuYyA9IChvYmoxLCBvYmoyKSA9PiB0aGlzLmNvbXBhcmVPYmplY3RzKG9iajEsIG9iajIsIGZpZWxkTmFtZSwgcmV2ZXJzZSwgaWdub3JlQ2FzZSwgdGhpcy5nZXRGaWVsZFZhbHVlLCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5U29ydChkYXRhLCBjbXBGdW5jKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0RmllbGRWYWx1ZShvYmo6IElQaXZvdEdyaWRSZWNvcmQsIGtleTogc3RyaW5nLCBfaXNEYXRlID0gZmFsc2UsIF9pc1RpbWUgPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIHJldHVybiBvYmouYWdncmVnYXRpb25WYWx1ZXMuZ2V0KGtleSk7XG4gICAgfVxufVxuXG5cbmV4cG9ydCBjbGFzcyBEZWZhdWx0UGl2b3RTb3J0aW5nU3RyYXRlZ3kgZXh0ZW5kcyBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5IHtcbiAgICBwcm90ZWN0ZWQgc3RhdGljIG92ZXJyaWRlIF9pbnN0YW5jZTogRGVmYXVsdFBpdm90U29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcbiAgICBwcm90ZWN0ZWQgZGltZW5zaW9uO1xuICAgIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgaW5zdGFuY2UoKTogRGVmYXVsdFBpdm90U29ydGluZ1N0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyB0aGlzKCkpO1xuICAgIH1cbiAgICBwdWJsaWMgb3ZlcnJpZGUgc29ydChkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU/OiBib29sZWFuLFxuICAgICAgICBpc1RpbWU/OiBib29sZWFuLFxuICAgICAgICBncmlkPzogUGl2b3RHcmlkVHlwZSkge1xuICAgICAgICBjb25zdCBrZXkgPSBmaWVsZE5hbWU7XG4gICAgICAgIGNvbnN0IGFsbERpbWVuc2lvbnMgPSBncmlkLmFsbERpbWVuc2lvbnM7XG4gICAgICAgIGNvbnN0IGVuYWJsZWREaW1lbnNpb25zID0gYWxsRGltZW5zaW9ucy5maWx0ZXIoeCA9PiB4ICYmIHguZW5hYmxlZCk7XG4gICAgICAgIHRoaXMuZGltZW5zaW9uID0gUGl2b3RVdGlsLmZsYXR0ZW4oZW5hYmxlZERpbWVuc2lvbnMpLmZpbmQoeCA9PiB4Lm1lbWJlck5hbWUgPT09IGtleSk7XG4gICAgICAgIGNvbnN0IHJldmVyc2UgPSAoZGlyID09PSBTb3J0aW5nRGlyZWN0aW9uLkRlc2MgPyAtMSA6IDEpO1xuICAgICAgICBjb25zdCBjbXBGdW5jID0gKG9iajEsIG9iajIpID0+IHRoaXMuY29tcGFyZU9iamVjdHMob2JqMSwgb2JqMiwga2V5LCByZXZlcnNlLCBpZ25vcmVDYXNlLCB0aGlzLmdldEZpZWxkVmFsdWUsIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXJyYXlTb3J0KGRhdGEsIGNtcEZ1bmMpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRGaWVsZFZhbHVlKG9iajogYW55LCBrZXk6IHN0cmluZywgX2lzRGF0ZSA9IGZhbHNlLCBpc1RpbWUgPSBmYWxzZSk6IGFueSB7XG4gICAgICAgIGxldCByZXNvbHZlZFZhbHVlID0gUGl2b3RVdGlsLmV4dHJhY3RWYWx1ZUZyb21EaW1lbnNpb24odGhpcy5kaW1lbnNpb24sIG9iaikgfHwgb2JqWzBdO1xuICAgICAgICBjb25zdCBmb3JtYXRBc0RhdGUgPSB0aGlzLmRpbWVuc2lvbi5kYXRhVHlwZSA9PT0gR3JpZENvbHVtbkRhdGFUeXBlLkRhdGUgfHwgdGhpcy5kaW1lbnNpb24uZGF0YVR5cGUgPT09IEdyaWRDb2x1bW5EYXRhVHlwZS5EYXRlVGltZTtcbiAgICAgICAgaWYgKGZvcm1hdEFzRGF0ZSkge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHBhcnNlRGF0ZShyZXNvbHZlZFZhbHVlKTtcbiAgICAgICAgICAgIHJlc29sdmVkVmFsdWUgPSBpc1RpbWUgJiYgZGF0ZSA/XG4gICAgICAgICAgICAgICAgbmV3IERhdGUoKS5zZXRIb3VycyhkYXRlLmdldEhvdXJzKCksIGRhdGUuZ2V0TWludXRlcygpLCBkYXRlLmdldFNlY29uZHMoKSwgZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSkgOiBkYXRlO1xuXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHJlc29sdmVkVmFsdWU7XG4gICAgfVxufVxuIl19
@@ -113,7 +113,7 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy {
113
113
  getFilterItems(column, tree) {
114
114
  const grid = column.grid;
115
115
  const enabledDimensions = grid.allDimensions.filter(x => x && x.enabled);
116
- let data = column.grid.gridAPI.filterDataByExpressions(tree);
116
+ const data = column.grid.gridAPI.filterDataByExpressions(tree);
117
117
  const dim = enabledDimensions.find(x => x.memberName === column.field);
118
118
  const allValuesHierarchy = PivotUtil.getFieldsHierarchy(data, [dim], PivotDimensionType.Column, grid.pivotKeys);
119
119
  const isNoop = grid.pivotConfiguration.columnStrategy instanceof NoopPivotDimensionsStrategy || grid.pivotConfiguration.rowStrategy instanceof NoopPivotDimensionsStrategy;
@@ -137,7 +137,7 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy {
137
137
  }
138
138
  _getDimensionValueHierarchy(dim, rec) {
139
139
  let path = [];
140
- let value = PivotUtil.extractValueFromDimension(dim, rec);
140
+ const value = PivotUtil.extractValueFromDimension(dim, rec);
141
141
  path.push(value);
142
142
  if (dim.childLevel) {
143
143
  const childVals = this._getDimensionValueHierarchy(dim.childLevel, rec);
@@ -146,4 +146,4 @@ export class DimensionValuesFilteringStrategy extends FilteringStrategy {
146
146
  return path;
147
147
  }
148
148
  }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZGF0YS1vcGVyYXRpb25zL3Bpdm90LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBdUYsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2TCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLDJCQUEyQjthQUNyQixjQUFTLEdBQWdDLElBQUksQ0FBQztJQUV0RCxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxPQUFPLENBQUMsVUFBaUIsRUFBRSxDQUFvQixFQUFFLEVBQWlCO1FBQ3JFLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O0FBSUwsTUFBTSxPQUFPLDBCQUEwQjthQUNwQixjQUFTLEdBQStCLElBQUksQ0FBQztJQUVyRCxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxPQUFPLENBQ1YsVUFBZSxFQUNmLElBQXVCLEVBQ3ZCLE1BQXNCLEVBQ3RCLFlBQXdCLGtCQUFrQjtRQUUxQyxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQXdCLENBQUM7UUFDN0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxD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LEdBQUUsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDeEYsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUUsQ0FBQyxDQUFDLENBQUM7WUFDbEMsS0FBSyxDQUFDLElBQUksQ0FBQztnQkFDUCxLQUFLLEVBQUUsaUJBQWlCO2dCQUN4QixLQUFLLEVBQUUsSUFBSTtnQkFDWCxRQUFRLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsUUFBUSxFQUFFLFNBQVMsQ0FBQzthQUM1RCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztRQUNILE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7SUFFTywyQkFBMkIsQ0FBQyxHQUFvQixFQUFFLEdBQVE7UUFDOUQsSUFBSSxJQUFJLEdBQUcsRUFBRSxDQUFDO1FBQ2QsSUFBSSxLQUFLLEdBQUcsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMxRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pCLElBQUksR0FBRyxDQUFDLFVBQVUsRUFBRTtZQUNoQixNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsMkJBQTJCLENBQUMsR0FBRyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztZQUN4RSxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUNqQztRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbIlxuaW1wb3J0IHsgQ29sdW1uVHlwZSwgUGl2b3RHcmlkVHlwZSB9IGZyb20gJy4uL2dyaWRzL2NvbW1vbi9ncmlkLmludGVyZmFjZSc7XG5pbXBvcnQgeyBERUZBVUxUX1BJVk9UX0tFWVMsIElQaXZvdERpbWVuc2lvbiwgSVBpdm90RGltZW5zaW9uU3RyYXRlZ3ksIElQaXZvdEdyaWRSZWNvcmQsIElQaXZvdEtleXMsIElQaXZvdFZhbHVlLCBQaXZvdERpbWVuc2lvblR5cGUgfSBmcm9tICcuLi9ncmlkcy9waXZvdC1ncmlkL3Bpdm90LWdyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFBpdm90VXRpbCB9IGZyb20gJy4uL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3QtdXRpbCc7XG5pbXBvcnQgeyBGaWx0ZXJpbmdTdHJhdGVneSwgSWd4RmlsdGVySXRlbSB9IGZyb20gJy4vZmlsdGVyaW5nLXN0cmF0ZWd5JztcbmltcG9ydCB7IGNsb25lQXJyYXkgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUgfSBmcm9tICcuL2ZpbHRlcmluZy1leHByZXNzaW9ucy10cmVlJztcblxuZXhwb3J0IGNsYXNzIE5vb3BQaXZvdERpbWVuc2lvbnNTdHJhdGVneSBpbXBsZW1lbnRzIElQaXZvdERpbWVuc2lvblN0cmF0ZWd5IHtcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IE5vb3BQaXZvdERpbWVuc2lvbnNTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IE5vb3BQaXZvdERpbWVuc2lvbnNTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2Vzcyhjb2xsZWN0aW9uOiBhbnlbXSwgXzogSVBpdm90RGltZW5zaW9uW10sIF9fOiBJUGl2b3RWYWx1ZVtdKTogYW55W10ge1xuICAgICAgICByZXR1cm4gY29sbGVjdGlvbjtcbiAgICB9XG59XG5cblxuZXhwb3J0IGNsYXNzIFBpdm90Um93RGltZW5zaW9uc1N0cmF0ZWd5IGltcGxlbWVudHMgSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogUGl2b3RSb3dEaW1lbnNpb25zU3RyYXRlZ3kgPSBudWxsO1xuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyBQaXZvdFJvd0RpbWVuc2lvbnNTdHJhdGVneSgpKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgcHJvY2VzcyhcbiAgICAgICAgY29sbGVjdGlvbjogYW55LFxuICAgICAgICByb3dzOiBJUGl2b3REaW1lbnNpb25bXSxcbiAgICAgICAgdmFsdWVzPzogSVBpdm90VmFsdWVbXSxcbiAgICAgICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzID0gREVGQVVMVF9QSVZPVF9LRVlTXG4gICAgKTogSVBpdm90R3JpZFJlY29yZFtdIHtcbiAgICAgICAgbGV0IGhpZXJhcmNoaWVzO1xuICAgICAgICBsZXQgZGF0YTogSVBpdm90R3JpZFJlY29yZFtdO1xuICAgICAgICBjb25zdCBwcmV2Um93RGltcyA9IFtdO1xuICAgICAgICBjb25zdCBjdXJyUm93cyA9IGNsb25lQXJyYXkocm93cywgdHJ1ZSk7XG4gICAgICAgIFBpdm90VXRpbC5hc3NpZ25MZXZlbHMoY3VyclJvd3MpO1xuXG4gICAgICAgIGlmIChjdXJyUm93cy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgIGhpZXJhcmNoaWVzID0gUGl2b3RVdGlsLmdldEZpZWxkc0hpZXJhcmNoeShjb2xsZWN0aW9uLCBbeyBtZW1iZXJOYW1lOiAnJywgZW5hYmxlZDogdHJ1ZSB9XSwgUGl2b3REaW1lbnNpb25UeXBlLlJvdywgcGl2b3RLZXlzKTtcbiAgICAgICAgICAgIC8vIGdlbmVyYXRlIGZsYXQgZGF0YSBmcm9tIHRoZSBoaWVyYXJjaGllc1xuICAgICAgICAgICAgZGF0YSA9IFBpdm90VXRpbC5wcm9jZXNzSGllcmFyY2h5KGhpZXJhcmNoaWVzLCBwaXZvdEtleXMsIDAsIHRydWUpO1xuICAgICAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHJvdyBvZiBjdXJyUm93cykge1xuICAgICAgICAgICAgaWYgKCFkYXRhKSB7XG4gICAgICAgICAgICAgICAgLy8gYnVpbGQgaGllcmFyY2hpZXMgLSBncm91cHMgYW5kIHN1Ymdyb3Vwc1xuICAgICAgICAgICAgICAgIGhpZXJhcmNoaWVzID0gUGl2b3RVdGlsLmdldEZpZWxkc0hpZXJhcmNoeShjb2xsZWN0aW9uLCBbcm93XSwgUGl2b3REaW1lbnNpb25UeXBlLlJvdywgcGl2b3RLZXlzKTtcbiAgICAgICAgICAgICAgICAvLyBnZW5lcmF0ZSBmbGF0IGRhdGEgZnJvbSB0aGUgaGllcmFyY2hpZXNcbiAgICAgICAgICAgICAgICBkYXRhID0gUGl2b3RVdGlsLnByb2Nlc3NIaWVyYXJjaHkoaGllcmFyY2hpZXMsIHBpdm90S2V5cywgMCwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgcHJldlJvd0RpbXMucHVzaChyb3cpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBQaXZvdFV0aWwucHJvY2Vzc0dyb3VwcyhkYXRhLCByb3csIHBpdm90S2V5cyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGRhdGE7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgUGl2b3RDb2x1bW5EaW1lbnNpb25zU3RyYXRlZ3kgaW1wbGVtZW50cyBJUGl2b3REaW1lbnNpb25TdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBQaXZvdFJvd0RpbWVuc2lvbnNTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IFBpdm90Q29sdW1uRGltZW5zaW9uc1N0cmF0ZWd5KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcm9jZXNzKFxuICAgICAgICBjb2xsZWN0aW9uOiBJUGl2b3RHcmlkUmVjb3JkW10sXG4gICAgICAgIGNvbHVtbnM6IElQaXZvdERpbWVuc2lvbltdLFxuICAgICAgICB2YWx1ZXM6IElQaXZvdFZhbHVlW10sXG4gICAgICAgIHBpdm90S2V5czogSVBpdm90S2V5cyA9IERFRkFVTFRfUElWT1RfS0VZU1xuICAgICk6IGFueVtdIHtcbiAgICAgICAgY29uc3QgcmVzID0gdGhpcy5wcm9jZXNzSGllcmFyY2h5KGNvbGxlY3Rpb24sIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKTtcbiAgICAgICAgcmV0dXJuIHJlcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHByb2Nlc3NIaWVyYXJjaHkoY29sbGVjdGlvbjogSVBpdm90R3JpZFJlY29yZFtdLCBjb2x1bW5zOiBJUGl2b3REaW1lbnNpb25bXSwgdmFsdWVzLCBwaXZvdEtleXMpIHtcbiAgICAgICAgY29uc3QgcmVzdWx0OiBJUGl2b3RHcmlkUmVjb3JkW10gPSBbXTtcbiAgICAgICAgY29sbGVjdGlvbi5mb3JFYWNoKHJlYyA9PiB7XG4gICAgICAgICAgICAvLyBhcHBseSBhZ2dyZWdhdGlvbnMgYmFzZWQgb24gdGhlIGNyZWF0ZWQgZ3JvdXBzIGFuZCBnZW5lcmF0ZSBjb2x1bW4gZmllbGRzIGJhc2VkIG9uIHRoZSBoaWVyYXJjaGllc1xuICAgICAgICAgICAgdGhpcy5ncm91cENvbHVtbnMocmVjLCBjb2x1bW5zLCB2YWx1ZXMsIHBpdm90S2V5cyk7XG4gICAgICAgICAgICByZXN1bHQucHVzaChyZWMpO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdyb3VwQ29sdW1ucyhyZWM6IElQaXZvdEdyaWRSZWNvcmQsIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKSB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuID0gcmVjLmNoaWxkcmVuO1xuICAgICAgICBpZiAoY2hpbGRyZW4gJiYgY2hpbGRyZW4uc2l6ZSA+IDApIHtcbiAgICAgICAgICAgIGNoaWxkcmVuLmZvckVhY2goKGNoaWxkUmVjcykgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChjaGlsZFJlY3MpIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRSZWNzLmZvckVhY2goY2hpbGQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5ncm91cENvbHVtbnMoY2hpbGQsIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmFwcGx5QWdncmVnYXRlcyhyZWMsIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGFwcGx5QWdncmVnYXRlcyhyZWMsIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKSB7XG4gICAgICAgIGNvbnN0IGxlYWZSZWNvcmRzID0gdGhpcy5nZXRMZWFmcyhyZWMucmVjb3JkcywgcGl2b3RLZXlzKTtcbiAgICAgICAgY29uc3QgaGllcmFyY2h5ID0gUGl2b3RVdGlsLmdldEZpZWxkc0hpZXJhcmNoeShsZWFmUmVjb3JkcywgY29sdW1ucywgUGl2b3REaW1lbnNpb25UeXBlLkNvbHVtbiwgcGl2b3RLZXlzKTtcbiAgICAgICAgUGl2b3RVdGlsLmFwcGx5QWdncmVnYXRpb25zKHJlYywgaGllcmFyY2h5LCB2YWx1ZXMsIHBpdm90S2V5cylcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldExlYWZzKHJlY29yZHMsIHBpdm90S2V5cykge1xuICAgICAgICBsZXQgbGVhZnMgPSBbXTtcbiAgICAgICAgZm9yIChjb25zdCByZWMgb2YgcmVjb3Jkcykge1xuICAgICAgICAgICAgaWYgKHJlY1twaXZvdEtleXMucmVjb3Jkc10pIHtcbiAgICAgICAgICAgICAgICBsZWFmcyA9IGxlYWZzLmNvbmNhdCh0aGlzLmdldExlYWZzKHJlY1twaXZvdEtleXMucmVjb3Jkc10sIHBpdm90S2V5cykpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBsZWFmcy5wdXNoKHJlYyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGxlYWZzO1xuICAgIH1cbn1cblxuZXhwb3J0IGNsYXNzIERpbWVuc2lvblZhbHVlc0ZpbHRlcmluZ1N0cmF0ZWd5IGV4dGVuZHMgRmlsdGVyaW5nU3RyYXRlZ3kge1xuICAgIC8qKlxuICAgICAqIENyZWF0ZXMgYSBuZXcgaW5zdGFuY2Ugb2YgRm9ybWF0dGVkVmFsdWVzRmlsdGVyaW5nU3RyYXRlZ3kuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gZmllbGRzIEFuIGFycmF5IG9mIGNvbHVtbiBmaWVsZCBuYW1lcyB0aGF0IHNob3VsZCBiZSBmb3JtYXR0ZWQuXG4gICAgICogSWYgb21pdHRlZCB0aGUgdmFsdWVzIG9mIGFsbCBjb2x1bW5zIHdoaWNoIGhhcyBmb3JtYXR0ZXIgd2lsbCBiZSBmb3JtYXR0ZWQuXG4gICAgICovXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmaWVsZHM/OiBzdHJpbmdbXSkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBvdmVycmlkZSBnZXRGaWVsZFZhbHVlKHJlYzogYW55LCBmaWVsZE5hbWU6IHN0cmluZywgX2lzRGF0ZTogYm9vbGVhbiA9IGZhbHNlLCBfaXNUaW1lOiBib29sZWFuID0gZmFsc2UsXG4gICAgICAgIGdyaWQ/OiBQaXZvdEdyaWRUeXBlKTogYW55IHtcbiAgICAgICAgY29uc3QgYWxsRGltZW5zaW9ucyA9IGdyaWQuYWxsRGltZW5zaW9ucztcbiAgICAgICAgY29uc3QgZW5hYmxlZERpbWVuc2lvbnMgPSBhbGxEaW1lbnNpb25zLmZpbHRlcih4ID0+IHggJiYgeC5lbmFibGVkKTtcbiAgICAgICAgY29uc3QgZGltIDpJUGl2b3REaW1lbnNpb24gPSBQaXZvdFV0aWwuZmxhdHRlbihlbmFibGVkRGltZW5zaW9ucykuZmluZCh4ID0+IHgubWVtYmVyTmFtZSA9PT0gZmllbGROYW1lKTtcbiAgICAgICAgY29uc3QgdmFsdWUgPSBkaW0uY2hpbGRMZXZlbCA/IHRoaXMuX2dldERpbWVuc2lvblZhbHVlSGllcmFyY2h5KGRpbSwgcmVjKS5tYXAoeCA9PiBgW2AgKyB4ICtgXWApLmpvaW4oJy4nKSA6IFBpdm90VXRpbC5leHRyYWN0VmFsdWVGcm9tRGltZW5zaW9uKGRpbSwgcmVjKTtcbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH1cblxuICAgIHB1YmxpYyBvdmVycmlkZSBnZXRGaWx0ZXJJdGVtcyhjb2x1bW46IENvbHVtblR5cGUsIHRyZWU6IElGaWx0ZXJpbmdFeHByZXNzaW9uc1RyZWUpOiBQcm9taXNlPElneEZpbHRlckl0ZW1bXT4ge1xuICAgICAgICBjb25zdCBncmlkID0gKGNvbHVtbi5ncmlkIGFzIGFueSk7XG4gICAgICAgIGNvbnN0IGVuYWJsZWREaW1lbnNpb25zID0gZ3JpZC5hbGxEaW1lbnNpb25zLmZpbHRlcih4ID0+IHggJiYgeC5lbmFibGVkKTtcbiAgICAgICAgbGV0IGRhdGEgPSBjb2x1bW4uZ3JpZC5ncmlkQVBJLmZpbHRlckRhdGFCeUV4cHJlc3Npb25zKHRyZWUpO1xuICAgICAgICBjb25zdCBkaW0gPSBlbmFibGVkRGltZW5zaW9ucy5maW5kKHggPT4geC5tZW1iZXJOYW1lID09PSBjb2x1bW4uZmllbGQpO1xuICAgICAgICBjb25zdCBhbGxWYWx1ZXNIaWVyYXJjaHkgPSBQaXZvdFV0aWwuZ2V0RmllbGRzSGllcmFyY2h5KFxuICAgICAgICAgICAgZGF0YSxcbiAgICAgICAgICAgIFtkaW1dLFxuICAgICAgICAgICAgUGl2b3REaW1lbnNpb25UeXBlLkNvbHVtbixcbiAgICAgICAgICAgIGdyaWQucGl2b3RLZXlzXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IGlzTm9vcCA9IGdyaWQucGl2b3RDb25maWd1cmF0aW9uLmNvbHVtblN0cmF0ZWd5IGluc3RhbmNlb2YgTm9vcFBpdm90RGltZW5zaW9uc1N0cmF0ZWd5IHx8IGdyaWQucGl2b3RDb25maWd1cmF0aW9uLnJvd1N0cmF0ZWd5IGluc3RhbmNlb2YgTm9vcFBpdm90RGltZW5zaW9uc1N0cmF0ZWd5O1xuICAgICAgICBjb25zdCBpdGVtczogSWd4RmlsdGVySXRlbVtdID0gIWlzTm9vcCA/IHRoaXMuX2dldEZpbHRlckl0ZW1zKGFsbFZhbHVlc0hpZXJhcmNoeSwgZ3JpZC5waXZvdEtleXMpIDogW3t2YWx1ZSA6ICcnfV07XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUoaXRlbXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldEZpbHRlckl0ZW1zKGhpZXJhcmNoeTogTWFwPHN0cmluZywgYW55PiwgcGl2b3RLZXlzOiBJUGl2b3RLZXlzKSA6IElneEZpbHRlckl0ZW1bXSB7XG4gICAgICAgIGNvbnN0IGl0ZW1zOiAgSWd4RmlsdGVySXRlbVtdID0gW107XG4gICAgICAgIGhpZXJhcmNoeS5mb3JFYWNoKCh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgY29uc3QgdmFsID0gdmFsdWUudmFsdWU7XG4gICAgICAgICAgICBjb25zdCBwYXRoID0gdmFsLnNwbGl0KHBpdm90S2V5cy5jb2x1bW5EaW1lbnNpb25TZXBhcmF0b3IpO1xuICAgICAgICAgICAgY29uc3QgaGllcmFyY2hpY2FsVmFsdWUgPSBwYXRoLmxlbmd0aCA+IDEgPyBwYXRoLm1hcCh4ID0+IGBbYCArIHggK2BdYCkuam9pbignLicpIDogdmFsO1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IHBhdGhbcGF0aC5sZW5ndGggLTFdO1xuICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgdmFsdWU6IGhpZXJhcmNoaWNhbFZhbHVlLFxuICAgICAgICAgICAgICAgIGxhYmVsOiB0ZXh0LFxuICAgICAgICAgICAgICAgIGNoaWxkcmVuOiB0aGlzLl9nZXRGaWx0ZXJJdGVtcyh2YWx1ZS5jaGlsZHJlbiwgcGl2b3RLZXlzKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gaXRlbXM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0RGltZW5zaW9uVmFsdWVIaWVyYXJjaHkoZGltOiBJUGl2b3REaW1lbnNpb24sIHJlYzogYW55KSA6IHN0cmluZ1tdIHtcbiAgICAgICAgbGV0IHBhdGggPSBbXTtcbiAgICAgICAgbGV0IHZhbHVlID0gUGl2b3RVdGlsLmV4dHJhY3RWYWx1ZUZyb21EaW1lbnNpb24oZGltLCByZWMpO1xuICAgICAgICBwYXRoLnB1c2godmFsdWUpO1xuICAgICAgICBpZiAoZGltLmNoaWxkTGV2ZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVmFscyA9IHRoaXMuX2dldERpbWVuc2lvblZhbHVlSGllcmFyY2h5KGRpbS5jaGlsZExldmVsLCByZWMpO1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguY29uY2F0KGNoaWxkVmFscyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxufVxuIl19
149
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGl2b3Qtc3RyYXRlZ3kuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9pZ25pdGV1aS1hbmd1bGFyL3NyYy9saWIvZGF0YS1vcGVyYXRpb25zL3Bpdm90LXN0cmF0ZWd5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxrQkFBa0IsRUFBdUYsa0JBQWtCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUN2TCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFpQixNQUFNLHNCQUFzQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsTUFBTSxPQUFPLDJCQUEyQjthQUNyQixjQUFTLEdBQWdDLElBQUksQ0FBQztJQUV0RCxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMkJBQTJCLEVBQUUsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFFTSxPQUFPLENBQUMsVUFBaUIsRUFBRSxDQUFvQixFQUFFLEVBQWlCO1FBQ3JFLE9BQU8sVUFBVSxDQUFDO0lBQ3RCLENBQUM7O0FBSUwsTUFBTSxPQUFPLDBCQUEwQjthQUNwQixjQUFTLEdBQStCLElBQUksQ0FBQztJQUVyRCxNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksMEJBQTBCLEVBQUUsQ0FBQyxDQUFDO0lBQ2pGLENBQUM7SUFFTSxPQUFPLENBQ1YsVUFBZSxFQUNmLElBQXVCLEVBQ3ZCLE1BQXNCLEVBQ3RCLFlBQXdCLGtCQUFrQjtRQUUxQyxJQUFJLFdBQVcsQ0FBQztRQUNoQixJQUFJLElBQXdCLENBQUM7UUFDN0IsTUFBTSxXQUFXLEdBQUcsRUFBRSxDQUFDO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDeEMsU0FBUyxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUVqQyxJQUFJLFFBQVEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZCLFdBQVcsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsRUFBRSxVQUFVLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLGtCQUFrQixDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUMvSCwwQ0FBMEM7WUFDMUMsSUFBSSxHQUFHLFNBQVMsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsU0FBUyxFQUFFLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQztZQUNuRSxPQUFPLElBQUksQ0FBQztTQUNmO1FBRUQsS0FBSyxNQUFNLEdBQUcsSUFBSSxRQUFRLEVBQUU7WUFDeEIsSUFBSSxDQUFDLElBQUksRUFBRTtnQkFDUCwyQ0FBMkM7Z0JBQzNDLFdBQVcsR0FBRyxTQUFTLENBQUMsa0JBQWtCLENBQUMsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsa0JBQWtCLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2dCQUNqRywwQ0FBMEM7Z0JBQzFDLElBQUksR0FBRyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsV0FBVyxFQUFFLFNBQVMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ25FLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDekI7aUJBQU07Z0JBQ0gsU0FBUyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO2FBQ2pEO1NBQ0o7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDOztBQUdMLE1BQU0sT0FBTyw2QkFBNkI7YUFDdkIsY0FBUyxHQUErQixJQUFJLENBQUM7SUFFckQsTUFBTSxDQUFDLFFBQVE7UUFDbEIsT0FBTyxJQUFJLENBQUMsU0FBUyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLDZCQUE2QixFQUFFLENBQUMsQ0FBQztJQUNwRixDQUFDO0lBRU0sT0FBTyxDQUNWLFVBQThCLEVBQzlCLE9BQTBCLEVBQzFCLE1BQXFCLEVBQ3JCLFlBQXdCLGtCQUFrQjtRQUUxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUM7UUFDMUUsT0FBTyxHQUFHLENBQUM7SUFDZixDQUFDO0lBRU8sZ0JBQWdCLENBQUMsVUFBOEIsRUFBRSxPQUEwQixFQUFFLE1BQU0sRUFBRSxTQUFTO1FBQ2xHLE1BQU0sTUFBTSxHQUF1QixFQUFFLENBQUM7UUFDdEMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNyQixxR0FBcUc7WUFDckcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztZQUNuRCxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3JCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQztJQUVPLFlBQVksQ0FBQyxHQUFxQixFQUFFLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUztRQUNsRSxNQUFNLFFBQVEsR0FBRyxHQUFHLENBQUMsUUFBUSxDQUFDO1FBQzlCLElBQUksUUFBUSxJQUFJLFFBQVEsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtnQkFDM0IsSUFBSSxTQUFTLEVBQUU7b0JBQ1gsU0FBUyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTt3QkFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztvQkFDekQsQ0FBQyxDQUFDLENBQUE7aUJBQ0w7WUFDTCxDQUFDLENBQUMsQ0FBQztTQUNOO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxHQUFHLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU8sZUFBZSxDQUFDLEdBQUcsRUFBRSxPQUFPLEVBQUUsTUFBTSxFQUFFLFNBQVM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sU0FBUyxHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FBQyxXQUFXLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxTQUFTLENBQUMsQ0FBQztRQUMzRyxTQUFTLENBQUMsaUJBQWlCLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDbEUsQ0FBQztJQUVPLFFBQVEsQ0FBQyxPQUFPLEVBQUUsU0FBUztRQUMvQixJQUFJLEtBQUssR0FBRyxFQUFFLENBQUM7UUFDZixLQUFLLE1BQU0sR0FBRyxJQUFJLE9BQU8sRUFBRTtZQUN2QixJQUFJLEdBQUcsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ3hCLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDO2FBQzFFO2lCQUFNO2dCQUNILEtBQUssQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDbkI7U0FDSjtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2pCLENBQUM7O0FBR0wsTUFBTSxPQUFPLGdDQUFpQyxTQUFRLGlCQUFpQjtJQUNuRTs7Ozs7T0FLRztJQUNILFlBQW9CLE1BQWlCO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBVztJQUVyQyxDQUFDO0lBRWtCLGFBQWEsQ0FBQyxHQUFRLEVBQUUsU0FBaUIsRUFBRSxPQUFPLEdBQUcsS0FBSyxFQUFFLE9BQU8sR0FBRyxLQUFLLEVBQzFGLElBQW9CO1FBQ3BCLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUM7UUFDekMsTUFBTSxpQkFBaUIsR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRSxNQUFNLEdBQUcsR0FBb0IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxVQUFVLEtBQUssU0FBUyxDQUFDLENBQUM7UUFDeEcsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxHQUFFLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLHlCQUF5QixDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQztRQUMzSixPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0lBRWUsY0FBYyxDQUFDLE1BQWtCLEVBQUUsSUFBK0I7UUFDOUUsTUFBTSxJQUFJLEdBQUksTUFBTSxDQUFDLElBQVksQ0FBQztRQUNsQyxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN6RSxNQUFNLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMvRCxNQUFNLEdBQUcsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxLQUFLLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2RSxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FBQyxrQkFBa0IsQ0FDbkQsSUFBSSxFQUNKLENBQUMsR0FBRyxDQUFDLEVBQ0wsa0JBQWtCLENBQUMsTUFBTSxFQUN6QixJQUFJLENBQUMsU0FBUyxDQUNqQixDQUFDO1FBQ0YsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLGNBQWMsWUFBWSwyQkFBMkIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxZQUFZLDJCQUEyQixDQUFDO1FBQzNLLE1BQU0sS0FBSyxHQUFvQixDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBQyxLQUFLLEVBQUcsRUFBRSxFQUFDLENBQUMsQ0FBQztRQUNuSCxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVPLGVBQWUsQ0FBQyxTQUEyQixFQUFFLFNBQXFCO1FBQ3RFLE1BQU0sS0FBSyxHQUFxQixFQUFFLENBQUM7UUFDbkMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ3hCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLENBQUM7WUFDeEIsTUFBTSxJQUFJLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsd0JBQXdCLENBQUMsQ0FBQztZQUMzRCxNQUFNLGlCQUFpQixHQUFHLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxHQUFHLENBQUMsR0FBRSxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztZQUN4RixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRSxDQUFDLENBQUMsQ0FBQztZQUNsQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUNQLEtBQUssRUFBRSxpQkFBaUI7Z0JBQ3hCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFFBQVEsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxRQUFRLEVBQUUsU0FBUyxDQUFDO2FBQzVELENBQUMsQ0FBQztRQUNQLENBQUMsQ0FBQyxDQUFDO1FBQ0gsT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztJQUVPLDJCQUEyQixDQUFDLEdBQW9CLEVBQUUsR0FBUTtRQUM5RCxJQUFJLElBQUksR0FBRyxFQUFFLENBQUM7UUFDZCxNQUFNLEtBQUssR0FBRyxTQUFTLENBQUMseUJBQXlCLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakIsSUFBSSxHQUFHLENBQUMsVUFBVSxFQUFFO1lBQ2hCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxHQUFHLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1lBQ3hFLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ2pDO1FBQ0QsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiXG5pbXBvcnQgeyBDb2x1bW5UeXBlLCBQaXZvdEdyaWRUeXBlIH0gZnJvbSAnLi4vZ3JpZHMvY29tbW9uL2dyaWQuaW50ZXJmYWNlJztcbmltcG9ydCB7IERFRkFVTFRfUElWT1RfS0VZUywgSVBpdm90RGltZW5zaW9uLCBJUGl2b3REaW1lbnNpb25TdHJhdGVneSwgSVBpdm90R3JpZFJlY29yZCwgSVBpdm90S2V5cywgSVBpdm90VmFsdWUsIFBpdm90RGltZW5zaW9uVHlwZSB9IGZyb20gJy4uL2dyaWRzL3Bpdm90LWdyaWQvcGl2b3QtZ3JpZC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUGl2b3RVdGlsIH0gZnJvbSAnLi4vZ3JpZHMvcGl2b3QtZ3JpZC9waXZvdC11dGlsJztcbmltcG9ydCB7IEZpbHRlcmluZ1N0cmF0ZWd5LCBJZ3hGaWx0ZXJJdGVtIH0gZnJvbSAnLi9maWx0ZXJpbmctc3RyYXRlZ3knO1xuaW1wb3J0IHsgY2xvbmVBcnJheSB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSB9IGZyb20gJy4vZmlsdGVyaW5nLWV4cHJlc3Npb25zLXRyZWUnO1xuXG5leHBvcnQgY2xhc3MgTm9vcFBpdm90RGltZW5zaW9uc1N0cmF0ZWd5IGltcGxlbWVudHMgSVBpdm90RGltZW5zaW9uU3RyYXRlZ3kge1xuICAgIHByaXZhdGUgc3RhdGljIF9pbnN0YW5jZTogTm9vcFBpdm90RGltZW5zaW9uc1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgTm9vcFBpdm90RGltZW5zaW9uc1N0cmF0ZWd5KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcm9jZXNzKGNvbGxlY3Rpb246IGFueVtdLCBfOiBJUGl2b3REaW1lbnNpb25bXSwgX186IElQaXZvdFZhbHVlW10pOiBhbnlbXSB7XG4gICAgICAgIHJldHVybiBjb2xsZWN0aW9uO1xuICAgIH1cbn1cblxuXG5leHBvcnQgY2xhc3MgUGl2b3RSb3dEaW1lbnNpb25zU3RyYXRlZ3kgaW1wbGVtZW50cyBJUGl2b3REaW1lbnNpb25TdHJhdGVneSB7XG4gICAgcHJpdmF0ZSBzdGF0aWMgX2luc3RhbmNlOiBQaXZvdFJvd0RpbWVuc2lvbnNTdHJhdGVneSA9IG51bGw7XG5cbiAgICBwdWJsaWMgc3RhdGljIGluc3RhbmNlKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5faW5zdGFuY2UgfHwgKHRoaXMuX2luc3RhbmNlID0gbmV3IFBpdm90Um93RGltZW5zaW9uc1N0cmF0ZWd5KCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBwcm9jZXNzKFxuICAgICAgICBjb2xsZWN0aW9uOiBhbnksXG4gICAgICAgIHJvd3M6IElQaXZvdERpbWVuc2lvbltdLFxuICAgICAgICB2YWx1ZXM/OiBJUGl2b3RWYWx1ZVtdLFxuICAgICAgICBwaXZvdEtleXM6IElQaXZvdEtleXMgPSBERUZBVUxUX1BJVk9UX0tFWVNcbiAgICApOiBJUGl2b3RHcmlkUmVjb3JkW10ge1xuICAgICAgICBsZXQgaGllcmFyY2hpZXM7XG4gICAgICAgIGxldCBkYXRhOiBJUGl2b3RHcmlkUmVjb3JkW107XG4gICAgICAgIGNvbnN0IHByZXZSb3dEaW1zID0gW107XG4gICAgICAgIGNvbnN0IGN1cnJSb3dzID0gY2xvbmVBcnJheShyb3dzLCB0cnVlKTtcbiAgICAgICAgUGl2b3RVdGlsLmFzc2lnbkxldmVscyhjdXJyUm93cyk7XG5cbiAgICAgICAgaWYgKGN1cnJSb3dzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgaGllcmFyY2hpZXMgPSBQaXZvdFV0aWwuZ2V0RmllbGRzSGllcmFyY2h5KGNvbGxlY3Rpb24sIFt7IG1lbWJlck5hbWU6ICcnLCBlbmFibGVkOiB0cnVlIH1dLCBQaXZvdERpbWVuc2lvblR5cGUuUm93LCBwaXZvdEtleXMpO1xuICAgICAgICAgICAgLy8gZ2VuZXJhdGUgZmxhdCBkYXRhIGZyb20gdGhlIGhpZXJhcmNoaWVzXG4gICAgICAgICAgICBkYXRhID0gUGl2b3RVdGlsLnByb2Nlc3NIaWVyYXJjaHkoaGllcmFyY2hpZXMsIHBpdm90S2V5cywgMCwgdHJ1ZSk7XG4gICAgICAgICAgICByZXR1cm4gZGF0YTtcbiAgICAgICAgfVxuXG4gICAgICAgIGZvciAoY29uc3Qgcm93IG9mIGN1cnJSb3dzKSB7XG4gICAgICAgICAgICBpZiAoIWRhdGEpIHtcbiAgICAgICAgICAgICAgICAvLyBidWlsZCBoaWVyYXJjaGllcyAtIGdyb3VwcyBhbmQgc3ViZ3JvdXBzXG4gICAgICAgICAgICAgICAgaGllcmFyY2hpZXMgPSBQaXZvdFV0aWwuZ2V0RmllbGRzSGllcmFyY2h5KGNvbGxlY3Rpb24sIFtyb3ddLCBQaXZvdERpbWVuc2lvblR5cGUuUm93LCBwaXZvdEtleXMpO1xuICAgICAgICAgICAgICAgIC8vIGdlbmVyYXRlIGZsYXQgZGF0YSBmcm9tIHRoZSBoaWVyYXJjaGllc1xuICAgICAgICAgICAgICAgIGRhdGEgPSBQaXZvdFV0aWwucHJvY2Vzc0hpZXJhcmNoeShoaWVyYXJjaGllcywgcGl2b3RLZXlzLCAwLCB0cnVlKTtcbiAgICAgICAgICAgICAgICBwcmV2Um93RGltcy5wdXNoKHJvdyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIFBpdm90VXRpbC5wcm9jZXNzR3JvdXBzKGRhdGEsIHJvdywgcGl2b3RLZXlzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG59XG5cbmV4cG9ydCBjbGFzcyBQaXZvdENvbHVtbkRpbWVuc2lvbnNTdHJhdGVneSBpbXBsZW1lbnRzIElQaXZvdERpbWVuc2lvblN0cmF0ZWd5IHtcbiAgICBwcml2YXRlIHN0YXRpYyBfaW5zdGFuY2U6IFBpdm90Um93RGltZW5zaW9uc1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHB1YmxpYyBzdGF0aWMgaW5zdGFuY2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnN0YW5jZSB8fCAodGhpcy5faW5zdGFuY2UgPSBuZXcgUGl2b3RDb2x1bW5EaW1lbnNpb25zU3RyYXRlZ3koKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHByb2Nlc3MoXG4gICAgICAgIGNvbGxlY3Rpb246IElQaXZvdEdyaWRSZWNvcmRbXSxcbiAgICAgICAgY29sdW1uczogSVBpdm90RGltZW5zaW9uW10sXG4gICAgICAgIHZhbHVlczogSVBpdm90VmFsdWVbXSxcbiAgICAgICAgcGl2b3RLZXlzOiBJUGl2b3RLZXlzID0gREVGQVVMVF9QSVZPVF9LRVlTXG4gICAgKTogYW55W10ge1xuICAgICAgICBjb25zdCByZXMgPSB0aGlzLnByb2Nlc3NIaWVyYXJjaHkoY29sbGVjdGlvbiwgY29sdW1ucywgdmFsdWVzLCBwaXZvdEtleXMpO1xuICAgICAgICByZXR1cm4gcmVzO1xuICAgIH1cblxuICAgIHByaXZhdGUgcHJvY2Vzc0hpZXJhcmNoeShjb2xsZWN0aW9uOiBJUGl2b3RHcmlkUmVjb3JkW10sIGNvbHVtbnM6IElQaXZvdERpbWVuc2lvbltdLCB2YWx1ZXMsIHBpdm90S2V5cykge1xuICAgICAgICBjb25zdCByZXN1bHQ6IElQaXZvdEdyaWRSZWNvcmRbXSA9IFtdO1xuICAgICAgICBjb2xsZWN0aW9uLmZvckVhY2gocmVjID0+IHtcbiAgICAgICAgICAgIC8vIGFwcGx5IGFnZ3JlZ2F0aW9ucyBiYXNlZCBvbiB0aGUgY3JlYXRlZCBncm91cHMgYW5kIGdlbmVyYXRlIGNvbHVtbiBmaWVsZHMgYmFzZWQgb24gdGhlIGhpZXJhcmNoaWVzXG4gICAgICAgICAgICB0aGlzLmdyb3VwQ29sdW1ucyhyZWMsIGNvbHVtbnMsIHZhbHVlcywgcGl2b3RLZXlzKTtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKHJlYyk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH1cblxuICAgIHByaXZhdGUgZ3JvdXBDb2x1bW5zKHJlYzogSVBpdm90R3JpZFJlY29yZCwgY29sdW1ucywgdmFsdWVzLCBwaXZvdEtleXMpIHtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSByZWMuY2hpbGRyZW47XG4gICAgICAgIGlmIChjaGlsZHJlbiAmJiBjaGlsZHJlbi5zaXplID4gMCkge1xuICAgICAgICAgICAgY2hpbGRyZW4uZm9yRWFjaCgoY2hpbGRSZWNzKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjcykge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZFJlY3MuZm9yRWFjaChjaGlsZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmdyb3VwQ29sdW1ucyhjaGlsZCwgY29sdW1ucywgdmFsdWVzLCBwaXZvdEtleXMpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuYXBwbHlBZ2dyZWdhdGVzKHJlYywgY29sdW1ucywgdmFsdWVzLCBwaXZvdEtleXMpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXBwbHlBZ2dyZWdhdGVzKHJlYywgY29sdW1ucywgdmFsdWVzLCBwaXZvdEtleXMpIHtcbiAgICAgICAgY29uc3QgbGVhZlJlY29yZHMgPSB0aGlzLmdldExlYWZzKHJlYy5yZWNvcmRzLCBwaXZvdEtleXMpO1xuICAgICAgICBjb25zdCBoaWVyYXJjaHkgPSBQaXZvdFV0aWwuZ2V0RmllbGRzSGllcmFyY2h5KGxlYWZSZWNvcmRzLCBjb2x1bW5zLCBQaXZvdERpbWVuc2lvblR5cGUuQ29sdW1uLCBwaXZvdEtleXMpO1xuICAgICAgICBQaXZvdFV0aWwuYXBwbHlBZ2dyZWdhdGlvbnMocmVjLCBoaWVyYXJjaHksIHZhbHVlcywgcGl2b3RLZXlzKVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGVhZnMocmVjb3JkcywgcGl2b3RLZXlzKSB7XG4gICAgICAgIGxldCBsZWFmcyA9IFtdO1xuICAgICAgICBmb3IgKGNvbnN0IHJlYyBvZiByZWNvcmRzKSB7XG4gICAgICAgICAgICBpZiAocmVjW3Bpdm90S2V5cy5yZWNvcmRzXSkge1xuICAgICAgICAgICAgICAgIGxlYWZzID0gbGVhZnMuY29uY2F0KHRoaXMuZ2V0TGVhZnMocmVjW3Bpdm90S2V5cy5yZWNvcmRzXSwgcGl2b3RLZXlzKSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxlYWZzLnB1c2gocmVjKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gbGVhZnM7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgRGltZW5zaW9uVmFsdWVzRmlsdGVyaW5nU3RyYXRlZ3kgZXh0ZW5kcyBGaWx0ZXJpbmdTdHJhdGVneSB7XG4gICAgLyoqXG4gICAgICogQ3JlYXRlcyBhIG5ldyBpbnN0YW5jZSBvZiBGb3JtYXR0ZWRWYWx1ZXNGaWx0ZXJpbmdTdHJhdGVneS5cbiAgICAgKlxuICAgICAqIEBwYXJhbSBmaWVsZHMgQW4gYXJyYXkgb2YgY29sdW1uIGZpZWxkIG5hbWVzIHRoYXQgc2hvdWxkIGJlIGZvcm1hdHRlZC5cbiAgICAgKiBJZiBvbWl0dGVkIHRoZSB2YWx1ZXMgb2YgYWxsIGNvbHVtbnMgd2hpY2ggaGFzIGZvcm1hdHRlciB3aWxsIGJlIGZvcm1hdHRlZC5cbiAgICAgKi9cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIGZpZWxkcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG92ZXJyaWRlIGdldEZpZWxkVmFsdWUocmVjOiBhbnksIGZpZWxkTmFtZTogc3RyaW5nLCBfaXNEYXRlID0gZmFsc2UsIF9pc1RpbWUgPSBmYWxzZSxcbiAgICAgICAgZ3JpZD86IFBpdm90R3JpZFR5cGUpOiBhbnkge1xuICAgICAgICBjb25zdCBhbGxEaW1lbnNpb25zID0gZ3JpZC5hbGxEaW1lbnNpb25zO1xuICAgICAgICBjb25zdCBlbmFibGVkRGltZW5zaW9ucyA9IGFsbERpbWVuc2lvbnMuZmlsdGVyKHggPT4geCAmJiB4LmVuYWJsZWQpO1xuICAgICAgICBjb25zdCBkaW0gOklQaXZvdERpbWVuc2lvbiA9IFBpdm90VXRpbC5mbGF0dGVuKGVuYWJsZWREaW1lbnNpb25zKS5maW5kKHggPT4geC5tZW1iZXJOYW1lID09PSBmaWVsZE5hbWUpO1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGRpbS5jaGlsZExldmVsID8gdGhpcy5fZ2V0RGltZW5zaW9uVmFsdWVIaWVyYXJjaHkoZGltLCByZWMpLm1hcCh4ID0+IGBbYCArIHggK2BdYCkuam9pbignLicpIDogUGl2b3RVdGlsLmV4dHJhY3RWYWx1ZUZyb21EaW1lbnNpb24oZGltLCByZWMpO1xuICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgfVxuXG4gICAgcHVibGljIG92ZXJyaWRlIGdldEZpbHRlckl0ZW1zKGNvbHVtbjogQ29sdW1uVHlwZSwgdHJlZTogSUZpbHRlcmluZ0V4cHJlc3Npb25zVHJlZSk6IFByb21pc2U8SWd4RmlsdGVySXRlbVtdPiB7XG4gICAgICAgIGNvbnN0IGdyaWQgPSAoY29sdW1uLmdyaWQgYXMgYW55KTtcbiAgICAgICAgY29uc3QgZW5hYmxlZERpbWVuc2lvbnMgPSBncmlkLmFsbERpbWVuc2lvbnMuZmlsdGVyKHggPT4geCAmJiB4LmVuYWJsZWQpO1xuICAgICAgICBjb25zdCBkYXRhID0gY29sdW1uLmdyaWQuZ3JpZEFQSS5maWx0ZXJEYXRhQnlFeHByZXNzaW9ucyh0cmVlKTtcbiAgICAgICAgY29uc3QgZGltID0gZW5hYmxlZERpbWVuc2lvbnMuZmluZCh4ID0+IHgubWVtYmVyTmFtZSA9PT0gY29sdW1uLmZpZWxkKTtcbiAgICAgICAgY29uc3QgYWxsVmFsdWVzSGllcmFyY2h5ID0gUGl2b3RVdGlsLmdldEZpZWxkc0hpZXJhcmNoeShcbiAgICAgICAgICAgIGRhdGEsXG4gICAgICAgICAgICBbZGltXSxcbiAgICAgICAgICAgIFBpdm90RGltZW5zaW9uVHlwZS5Db2x1bW4sXG4gICAgICAgICAgICBncmlkLnBpdm90S2V5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBpc05vb3AgPSBncmlkLnBpdm90Q29uZmlndXJhdGlvbi5jb2x1bW5TdHJhdGVneSBpbnN0YW5jZW9mIE5vb3BQaXZvdERpbWVuc2lvbnNTdHJhdGVneSB8fCBncmlkLnBpdm90Q29uZmlndXJhdGlvbi5yb3dTdHJhdGVneSBpbnN0YW5jZW9mIE5vb3BQaXZvdERpbWVuc2lvbnNTdHJhdGVneTtcbiAgICAgICAgY29uc3QgaXRlbXM6IElneEZpbHRlckl0ZW1bXSA9ICFpc05vb3AgPyB0aGlzLl9nZXRGaWx0ZXJJdGVtcyhhbGxWYWx1ZXNIaWVyYXJjaHksIGdyaWQucGl2b3RLZXlzKSA6IFt7dmFsdWUgOiAnJ31dO1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGl0ZW1zKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9nZXRGaWx0ZXJJdGVtcyhoaWVyYXJjaHk6IE1hcDxzdHJpbmcsIGFueT4sIHBpdm90S2V5czogSVBpdm90S2V5cykgOiBJZ3hGaWx0ZXJJdGVtW10ge1xuICAgICAgICBjb25zdCBpdGVtczogIElneEZpbHRlckl0ZW1bXSA9IFtdO1xuICAgICAgICBoaWVyYXJjaHkuZm9yRWFjaCgodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHZhbCA9IHZhbHVlLnZhbHVlO1xuICAgICAgICAgICAgY29uc3QgcGF0aCA9IHZhbC5zcGxpdChwaXZvdEtleXMuY29sdW1uRGltZW5zaW9uU2VwYXJhdG9yKTtcbiAgICAgICAgICAgIGNvbnN0IGhpZXJhcmNoaWNhbFZhbHVlID0gcGF0aC5sZW5ndGggPiAxID8gcGF0aC5tYXAoeCA9PiBgW2AgKyB4ICtgXWApLmpvaW4oJy4nKSA6IHZhbDtcbiAgICAgICAgICAgIGNvbnN0IHRleHQgPSBwYXRoW3BhdGgubGVuZ3RoIC0xXTtcbiAgICAgICAgICAgIGl0ZW1zLnB1c2goe1xuICAgICAgICAgICAgICAgIHZhbHVlOiBoaWVyYXJjaGljYWxWYWx1ZSxcbiAgICAgICAgICAgICAgICBsYWJlbDogdGV4dCxcbiAgICAgICAgICAgICAgICBjaGlsZHJlbjogdGhpcy5fZ2V0RmlsdGVySXRlbXModmFsdWUuY2hpbGRyZW4sIHBpdm90S2V5cylcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICAgICAgcmV0dXJuIGl0ZW1zO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2dldERpbWVuc2lvblZhbHVlSGllcmFyY2h5KGRpbTogSVBpdm90RGltZW5zaW9uLCByZWM6IGFueSkgOiBzdHJpbmdbXSB7XG4gICAgICAgIGxldCBwYXRoID0gW107XG4gICAgICAgIGNvbnN0IHZhbHVlID0gUGl2b3RVdGlsLmV4dHJhY3RWYWx1ZUZyb21EaW1lbnNpb24oZGltLCByZWMpO1xuICAgICAgICBwYXRoLnB1c2godmFsdWUpO1xuICAgICAgICBpZiAoZGltLmNoaWxkTGV2ZWwpIHtcbiAgICAgICAgICAgIGNvbnN0IGNoaWxkVmFscyA9IHRoaXMuX2dldERpbWVuc2lvblZhbHVlSGllcmFyY2h5KGRpbS5jaGlsZExldmVsLCByZWMpO1xuICAgICAgICAgICAgcGF0aCA9IHBhdGguY29uY2F0KGNoaWxkVmFscyk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxufVxuIl19
@@ -66,9 +66,9 @@ export class GroupMemberCountSortingStrategy {
66
66
  }, {});
67
67
  }
68
68
  compareObjects(obj1, obj2, data, fieldName, reverse) {
69
- let firstItemValuesLength = data[obj1[fieldName]].length;
70
- let secondItemValuesLength = data[obj2[fieldName]].length;
69
+ const firstItemValuesLength = data[obj1[fieldName]].length;
70
+ const secondItemValuesLength = data[obj2[fieldName]].length;
71
71
  return reverse * (firstItemValuesLength - secondItemValuesLength);
72
72
  }
73
73
  }
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLHVEQUFRLENBQUE7SUFDUixxREFBTyxDQUFBO0lBQ1AsdURBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBc0JELE1BQU0sT0FBTyxzQkFBc0I7YUFDZCxjQUFTLEdBQTJCLElBQUksQ0FBQztJQUUxRCxnQkFBMEIsQ0FBQztJQUVwQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sSUFBSSxDQUNQLElBQVcsRUFDWCxTQUFpQixFQUNqQixHQUFxQixFQUNyQixVQUFtQixFQUNuQixhQUErRCxFQUMvRCxNQUFnQixFQUNoQixNQUFnQjtRQUVoQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDdEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuSSxPQUFPLElBQUks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QUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDN0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFUyxjQUFjLENBQUMsSUFBUyxFQUFFLElBQVMsRUFBRSxJQUFXLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQzFGLElBQUkscUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUN6RCxJQUFJLHNCQUFzQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFMUQsT0FBTyxPQUFPLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuLi9ncmlkcy9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZW51bSBTb3J0aW5nRGlyZWN0aW9uIHtcbiAgICBOb25lID0gMCxcbiAgICBBc2MgPSAxLFxuICAgIERlc2MgPSAyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRpbmdFeHByZXNzaW9uIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbjtcbiAgICBpZ25vcmVDYXNlPzogYm9vbGVhbjtcbiAgICBzdHJhdGVneT86IElTb3J0aW5nU3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRpbmdTdHJhdGVneSB7XG4gICAgc29ydDogKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU/OiBib29sZWFuLFxuICAgICAgICBpc1RpbWU/OiBib29sZWFuLFxuICAgICAgICBncmlkPzogR3JpZFR5cGVcbiAgICApID0+IGFueVtdO1xufVxuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSBpbXBsZW1lbnRzIElTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgX2luc3RhbmNlOiBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpOiBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyB0aGlzKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0KFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU/OiBib29sZWFuLFxuICAgICAgICBpc1RpbWU/OiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGZpZWxkTmFtZTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZSA9IChkaXIgPT09IFNvcnRpbmdEaXJlY3Rpb24uRGVzYyA/IC0xIDogMSk7XG4gICAgICAgIGNvbnN0IGNtcEZ1bmMgPSAob2JqMTogYW55LCBvYmoyOiBhbnkpID0+IHRoaXMuY29tcGFyZU9iamVjdHMob2JqMSwgb2JqMiwga2V5LCByZXZlcnNlLCBpZ25vcmVDYXNlLCB2YWx1ZVJlc29sdmVyLCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5U29ydChkYXRhLCBjbXBGdW5jKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcGFyZVZhbHVlcyhhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFuID0gKGEgPT09IG51bGwgfHwgYSA9PT0gdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgYm4gPSAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoYW4pIHtcbiAgICAgICAgICAgIGlmIChibikge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGJuKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA8IGIgPyAtMSA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXBhcmVPYmplY3RzKFxuICAgICAgICBvYmoxOiBhbnksXG4gICAgICAgIG9iajI6IGFueSxcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHJldmVyc2U6IG51bWJlcixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbiwgaXNUaW1lPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU6IGJvb2xlYW4sXG4gICAgICAgIGlzVGltZTogYm9vbGVhblxuICAgICkge1xuICAgICAgICBsZXQgYSA9IHZhbHVlUmVzb2x2ZXIuY2FsbCh0aGlzLCBvYmoxLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgbGV0IGIgPSB2YWx1ZVJlc29sdmVyLmNhbGwodGhpcywgb2JqMiwga2V5LCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIGlmIChpZ25vcmVDYXNlKSB7XG4gICAgICAgICAgICBhID0gYSAmJiBhLnRvTG93ZXJDYXNlID8gYS50b0xvd2VyQ2FzZSgpIDogYTtcbiAgICAgICAgICAgIGIgPSBiICYmIGIudG9Mb3dlckNhc2UgPyBiLnRvTG93ZXJDYXNlKCkgOiBiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXZlcnNlICogdGhpcy5jb21wYXJlVmFsdWVzKGEsIGIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhcnJheVNvcnQoZGF0YTogYW55W10sIGNvbXBhcmVGbj86IChhcmcwOiBhbnksIGFyZzE6IGFueSkgPT4gbnVtYmVyKTogYW55W10ge1xuICAgICAgICByZXR1cm4gZGF0YS5zb3J0KGNvbXBhcmVGbik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JvdXBNZW1iZXJDb3VudFNvcnRpbmdTdHJhdGVneSBpbXBsZW1lbnRzIElTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgX2luc3RhbmNlOiBHcm91cE1lbWJlckNvdW50U29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpOiBHcm91cE1lbWJlckNvdW50U29ydGluZ1N0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyB0aGlzKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0KGRhdGE6IGFueVtdLCBmaWVsZE5hbWU6IHN0cmluZywgZGlyOiBTb3J0aW5nRGlyZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRBcnJheSA9IHRoaXMuZ3JvdXBCeShkYXRhLCBmaWVsZE5hbWUpO1xuICAgICAgICBjb25zdCByZXZlcnNlID0gKGRpciA9PT0gU29ydGluZ0RpcmVjdGlvbi5EZXNjID8gLTEgOiAxKTtcblxuICAgICAgICBjb25zdCBjbXBGdW5jID0gKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVPYmplY3RzKGEsIGIsIGdyb3VwZWRBcnJheSwgZmllbGROYW1lLCByZXZlcnNlKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGFbZmllbGROYW1lXS5sb2NhbGVDb21wYXJlKGJbZmllbGROYW1lXSkpXG4gICAgICAgICAgICAuc29ydChjbXBGdW5jKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ3JvdXBCeShkYXRhLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICAgIChhY2NbY3VycltrZXldXSA9IGFjY1tjdXJyW2tleV1dIHx8IFtdKS5wdXNoKGN1cnIpO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXBhcmVPYmplY3RzKG9iajE6IGFueSwgb2JqMjogYW55LCBkYXRhOiBhbnlbXSwgZmllbGROYW1lOiBzdHJpbmcsIHJldmVyc2U6IG51bWJlcikge1xuICAgICAgICBsZXQgZmlyc3RJdGVtVmFsdWVzTGVuZ3RoID0gZGF0YVtvYmoxW2ZpZWxkTmFtZV1dLmxlbmd0aDtcbiAgICAgICAgbGV0IHNlY29uZEl0ZW1WYWx1ZXNMZW5ndGggPSBkYXRhW29iajJbZmllbGROYW1lXV0ubGVuZ3RoO1xuXG4gICAgICAgIHJldHVybiByZXZlcnNlICogKGZpcnN0SXRlbVZhbHVlc0xlbmd0aCAtIHNlY29uZEl0ZW1WYWx1ZXNMZW5ndGgpO1xuICAgIH1cbn0iXX0=
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ydGluZy1zdHJhdGVneS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2lnbml0ZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRhLW9wZXJhdGlvbnMvc29ydGluZy1zdHJhdGVneS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFHQSxNQUFNLENBQU4sSUFBWSxnQkFJWDtBQUpELFdBQVksZ0JBQWdCO0lBQ3hCLHVEQUFRLENBQUE7SUFDUixxREFBTyxDQUFBO0lBQ1AsdURBQVEsQ0FBQTtBQUNaLENBQUMsRUFKVyxnQkFBZ0IsS0FBaEIsZ0JBQWdCLFFBSTNCO0FBc0JELE1BQU0sT0FBTyxzQkFBc0I7YUFDZCxjQUFTLEdBQTJCLElBQUksQ0FBQztJQUUxRCxnQkFBMEIsQ0FBQztJQUVwQixNQUFNLENBQUMsUUFBUTtRQUNsQixPQUFPLElBQUksQ0FBQyxTQUFTLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRU0sSUFBSSxDQUNQLElBQVcsRUFDWCxTQUFpQixFQUNqQixHQUFxQixFQUNyQixVQUFtQixFQUNuQixhQUErRCxFQUMvRCxNQUFnQixFQUNoQixNQUFnQjtRQUVoQixNQUFNLEdBQUcsR0FBRyxTQUFTLENBQUM7UUFDdEIsTUFBTSxPQUFPLEdBQUcsQ0FBQyxHQUFHLEtBQUssZ0JBQWdCLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekQsTUFBTSxPQUFPLEdBQUcsQ0FBQyxJQUFTLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sRUFBRSxVQUFVLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNuSSxPQUFPLElBQUks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QUFDLFNBQVMsQ0FBQyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQzthQUN4RCxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsR0FBRztRQUNwQixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsSUFBSSxFQUFFLEVBQUU7WUFDN0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNuRCxPQUFPLEdBQUcsQ0FBQztRQUNmLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNWLENBQUM7SUFFUyxjQUFjLENBQUMsSUFBUyxFQUFFLElBQVMsRUFBRSxJQUFXLEVBQUUsU0FBaUIsRUFBRSxPQUFlO1FBQzFGLE1BQU0scUJBQXFCLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUMzRCxNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFNUQsT0FBTyxPQUFPLEdBQUcsQ0FBQyxxQkFBcUIsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO0lBQ3RFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJQmFzZUV2ZW50QXJncyB9IGZyb20gJy4uL2NvcmUvdXRpbHMnO1xuaW1wb3J0IHsgR3JpZFR5cGUgfSBmcm9tICcuLi9ncmlkcy9jb21tb24vZ3JpZC5pbnRlcmZhY2UnO1xuXG5leHBvcnQgZW51bSBTb3J0aW5nRGlyZWN0aW9uIHtcbiAgICBOb25lID0gMCxcbiAgICBBc2MgPSAxLFxuICAgIERlc2MgPSAyXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRpbmdFeHByZXNzaW9uIGV4dGVuZHMgSUJhc2VFdmVudEFyZ3Mge1xuICAgIGZpZWxkTmFtZTogc3RyaW5nO1xuICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbjtcbiAgICBpZ25vcmVDYXNlPzogYm9vbGVhbjtcbiAgICBzdHJhdGVneT86IElTb3J0aW5nU3RyYXRlZ3k7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNvcnRpbmdTdHJhdGVneSB7XG4gICAgc29ydDogKFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU/OiBib29sZWFuLFxuICAgICAgICBpc1RpbWU/OiBib29sZWFuLFxuICAgICAgICBncmlkPzogR3JpZFR5cGVcbiAgICApID0+IGFueVtdO1xufVxuXG5leHBvcnQgY2xhc3MgRGVmYXVsdFNvcnRpbmdTdHJhdGVneSBpbXBsZW1lbnRzIElTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgX2luc3RhbmNlOiBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpOiBEZWZhdWx0U29ydGluZ1N0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyB0aGlzKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0KFxuICAgICAgICBkYXRhOiBhbnlbXSxcbiAgICAgICAgZmllbGROYW1lOiBzdHJpbmcsXG4gICAgICAgIGRpcjogU29ydGluZ0RpcmVjdGlvbixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU/OiBib29sZWFuLFxuICAgICAgICBpc1RpbWU/OiBib29sZWFuXG4gICAgKSB7XG4gICAgICAgIGNvbnN0IGtleSA9IGZpZWxkTmFtZTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZSA9IChkaXIgPT09IFNvcnRpbmdEaXJlY3Rpb24uRGVzYyA/IC0xIDogMSk7XG4gICAgICAgIGNvbnN0IGNtcEZ1bmMgPSAob2JqMTogYW55LCBvYmoyOiBhbnkpID0+IHRoaXMuY29tcGFyZU9iamVjdHMob2JqMSwgb2JqMiwga2V5LCByZXZlcnNlLCBpZ25vcmVDYXNlLCB2YWx1ZVJlc29sdmVyLCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIHJldHVybiB0aGlzLmFycmF5U29ydChkYXRhLCBjbXBGdW5jKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgY29tcGFyZVZhbHVlcyhhOiBhbnksIGI6IGFueSk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IGFuID0gKGEgPT09IG51bGwgfHwgYSA9PT0gdW5kZWZpbmVkKTtcbiAgICAgICAgY29uc3QgYm4gPSAoYiA9PT0gbnVsbCB8fCBiID09PSB1bmRlZmluZWQpO1xuICAgICAgICBpZiAoYW4pIHtcbiAgICAgICAgICAgIGlmIChibikge1xuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICB9IGVsc2UgaWYgKGJuKSB7XG4gICAgICAgICAgICByZXR1cm4gMTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gYSA+IGIgPyAxIDogYSA8IGIgPyAtMSA6IDA7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXBhcmVPYmplY3RzKFxuICAgICAgICBvYmoxOiBhbnksXG4gICAgICAgIG9iajI6IGFueSxcbiAgICAgICAga2V5OiBzdHJpbmcsXG4gICAgICAgIHJldmVyc2U6IG51bWJlcixcbiAgICAgICAgaWdub3JlQ2FzZTogYm9vbGVhbixcbiAgICAgICAgdmFsdWVSZXNvbHZlcjogKG9iajogYW55LCBrZXk6IHN0cmluZywgaXNEYXRlPzogYm9vbGVhbiwgaXNUaW1lPzogYm9vbGVhbikgPT4gYW55LFxuICAgICAgICBpc0RhdGU6IGJvb2xlYW4sXG4gICAgICAgIGlzVGltZTogYm9vbGVhblxuICAgICkge1xuICAgICAgICBsZXQgYSA9IHZhbHVlUmVzb2x2ZXIuY2FsbCh0aGlzLCBvYmoxLCBrZXksIGlzRGF0ZSwgaXNUaW1lKTtcbiAgICAgICAgbGV0IGIgPSB2YWx1ZVJlc29sdmVyLmNhbGwodGhpcywgb2JqMiwga2V5LCBpc0RhdGUsIGlzVGltZSk7XG4gICAgICAgIGlmIChpZ25vcmVDYXNlKSB7XG4gICAgICAgICAgICBhID0gYSAmJiBhLnRvTG93ZXJDYXNlID8gYS50b0xvd2VyQ2FzZSgpIDogYTtcbiAgICAgICAgICAgIGIgPSBiICYmIGIudG9Mb3dlckNhc2UgPyBiLnRvTG93ZXJDYXNlKCkgOiBiO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiByZXZlcnNlICogdGhpcy5jb21wYXJlVmFsdWVzKGEsIGIpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBhcnJheVNvcnQoZGF0YTogYW55W10sIGNvbXBhcmVGbj86IChhcmcwOiBhbnksIGFyZzE6IGFueSkgPT4gbnVtYmVyKTogYW55W10ge1xuICAgICAgICByZXR1cm4gZGF0YS5zb3J0KGNvbXBhcmVGbik7XG4gICAgfVxufVxuXG5leHBvcnQgY2xhc3MgR3JvdXBNZW1iZXJDb3VudFNvcnRpbmdTdHJhdGVneSBpbXBsZW1lbnRzIElTb3J0aW5nU3RyYXRlZ3kge1xuICAgIHByb3RlY3RlZCBzdGF0aWMgX2luc3RhbmNlOiBHcm91cE1lbWJlckNvdW50U29ydGluZ1N0cmF0ZWd5ID0gbnVsbDtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgcHVibGljIHN0YXRpYyBpbnN0YW5jZSgpOiBHcm91cE1lbWJlckNvdW50U29ydGluZ1N0cmF0ZWd5IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2luc3RhbmNlIHx8ICh0aGlzLl9pbnN0YW5jZSA9IG5ldyB0aGlzKCkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBzb3J0KGRhdGE6IGFueVtdLCBmaWVsZE5hbWU6IHN0cmluZywgZGlyOiBTb3J0aW5nRGlyZWN0aW9uKSB7XG4gICAgICAgIGNvbnN0IGdyb3VwZWRBcnJheSA9IHRoaXMuZ3JvdXBCeShkYXRhLCBmaWVsZE5hbWUpO1xuICAgICAgICBjb25zdCByZXZlcnNlID0gKGRpciA9PT0gU29ydGluZ0RpcmVjdGlvbi5EZXNjID8gLTEgOiAxKTtcblxuICAgICAgICBjb25zdCBjbXBGdW5jID0gKGEsIGIpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmNvbXBhcmVPYmplY3RzKGEsIGIsIGdyb3VwZWRBcnJheSwgZmllbGROYW1lLCByZXZlcnNlKTtcbiAgICAgICAgfTtcblxuICAgICAgICByZXR1cm4gZGF0YVxuICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGFbZmllbGROYW1lXS5sb2NhbGVDb21wYXJlKGJbZmllbGROYW1lXSkpXG4gICAgICAgICAgICAuc29ydChjbXBGdW5jKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ3JvdXBCeShkYXRhLCBrZXkpIHtcbiAgICAgICAgcmV0dXJuIGRhdGEucmVkdWNlKChhY2MsIGN1cnIpID0+IHtcbiAgICAgICAgICAgIChhY2NbY3VycltrZXldXSA9IGFjY1tjdXJyW2tleV1dIHx8IFtdKS5wdXNoKGN1cnIpO1xuICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgfSwge30pXG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGNvbXBhcmVPYmplY3RzKG9iajE6IGFueSwgb2JqMjogYW55LCBkYXRhOiBhbnlbXSwgZmllbGROYW1lOiBzdHJpbmcsIHJldmVyc2U6IG51bWJlcikge1xuICAgICAgICBjb25zdCBmaXJzdEl0ZW1WYWx1ZXNMZW5ndGggPSBkYXRhW29iajFbZmllbGROYW1lXV0ubGVuZ3RoO1xuICAgICAgICBjb25zdCBzZWNvbmRJdGVtVmFsdWVzTGVuZ3RoID0gZGF0YVtvYmoyW2ZpZWxkTmFtZV1dLmxlbmd0aDtcblxuICAgICAgICByZXR1cm4gcmV2ZXJzZSAqIChmaXJzdEl0ZW1WYWx1ZXNMZW5ndGggLSBzZWNvbmRJdGVtVmFsdWVzTGVuZ3RoKTtcbiAgICB9XG59Il19
@@ -189,7 +189,6 @@ export class PickerBaseDirective extends DisplayDensityBase {
189
189
  .subscribe(next);
190
190
  });
191
191
  }
192
- ;
193
192
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.0-rc.4", ngImport: i0, type: PickerBaseDirective, deps: [{ token: i0.ElementRef }, { token: LOCALE_ID }, { token: DisplayDensityToken, optional: true }, { token: IGX_INPUT_GROUP_TYPE, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
194
193
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.0.0-rc.4", type: PickerBaseDirective, inputs: { inputFormat: "inputFormat", displayFormat: "displayFormat", placeholder: "placeholder", mode: "mode", overlaySettings: "overlaySettings", disabled: "disabled", locale: "locale", weekStart: "weekStart", outlet: "outlet", type: "type", tabIndex: "tabIndex" }, outputs: { opening: "opening", opened: "opened", closing: "closing", closed: "closed" }, queries: [{ propertyName: "toggleComponents", predicate: IgxPickerToggleComponent, descendants: true }, { propertyName: "prefixes", predicate: IgxPrefixDirective, descendants: true }, { propertyName: "suffixes", predicate: IgxSuffixDirective, descendants: true }], viewQueries: [{ propertyName: "inputGroup", first: true, predicate: IgxInputGroupComponent, descendants: true }], usesInheritance: true, ngImport: i0 }); }
195
194
  }
@@ -251,4 +250,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.0-rc.4", ng
251
250
  type: ViewChild,
252
251
  args: [IgxInputGroupComponent]
253
252
  }] } });
254
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RhdGUtY29tbW9uL3BpY2tlci1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRVksZUFBZSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQ25FLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUM5RSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBTWxHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRzlFLE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsa0JBQWtCO0lBOEVoRTs7Ozs7T0FLRztJQUNIOzs7T0FHRztJQUNILElBQ1csTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxNQUFNLENBQUMsS0FBYTtRQUMzQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixnREFBZ0Q7UUFDaEQsSUFBSTtZQUNBLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztTQUN6QztRQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ1IsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQ2pDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUNXLFNBQVM7UUFDaEIsT0FBTyxJQUFJLENBQUMsVUFBVSxJQUFJLHVCQUF1QixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRSxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsSUFBVyxTQUFTLENBQUMsS0FBd0I7UUFDekMsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDNUIsQ0FBQztJQWdCRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsSUFDVyxJQUFJLENBQUMsR0FBc0I7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7SUFDckIsQ0FBQztJQUNELElBQVcsSUFBSTtRQUNYLE9BQU8sSUFBSSxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzlDLENBQUM7SUE2RUQ7Ozs7Ozs7T0FPRztJQUNILElBQVcsU0FBUztRQUNoQixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUM7SUFDM0IsQ0FBQztJQUVELHdCQUF3QjtJQUN4QixJQUFXLFVBQVU7UUFDakIsT0FBTyxJQUFJLENBQUMsSUFBSSxLQUFLLHFCQUFxQixDQUFDLFFBQVEsQ0FBQztJQUN4RCxDQUFDO0lBUUQsWUFBbUIsT0FBbUIsRUFDTCxTQUFpQixFQUNLLHNCQUErQyxFQUM5QyxlQUFtQztRQUN2RixLQUFLLENBQUMsc0JBQXNCLElBQUksRUFBRSxjQUFjLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQztRQUpwRCxZQUFPLEdBQVAsT0FBTyxDQUFZO1FBQ0wsY0FBUyxHQUFULFNBQVMsQ0FBUTtRQUNLLDJCQUFzQixHQUF0QixzQkFBc0IsQ0FBeUI7UUFDOUMsb0JBQWUsR0FBZixlQUFlLENBQW9CO1FBcE8zRjs7Ozs7OztXQU9HO1FBRUksZ0JBQVcsR0FBRyxFQUFFLENBQUM7UUFFeEI7Ozs7Ozs7Ozs7V0FVRztRQUVJLFNBQUksR0FBMEIscUJBQXFCLENBQUMsUUFBUSxDQUFDO1FBYXBFOzs7Ozs7O1dBT0c7UUFFSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBNkZ4Qjs7Ozs7OztXQU9HO1FBRUksWUFBTyxHQUFHLElBQUksWUFBWSxFQUFtQyxDQUFDO1FBRXJFOzs7Ozs7O1dBT0c7UUFFSSxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQWtCLENBQUM7UUFFbkQ7Ozs7Ozs7V0FPRztRQUVJLFlBQU8sR0FBRyxJQUFJLFlBQVksRUFBbUMsQ0FBQztRQUVyRTs7Ozs7OztXQU9HO1FBRUksV0FBTSxHQUFHLElBQUksWUFBWSxFQUFrQixDQUFDO1FBZ0J6QyxlQUFVLEdBQUcsSUFBSSxDQUFDO1FBdUJsQixjQUFTLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQVdoQyxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsd0JBQXdCO0lBQ2pCLGVBQWU7UUFDbEIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUNqRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ3hELFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDM0YsQ0FBQztJQUVELHdCQUF3QjtJQUNqQixxQkFBcUI7UUFDeEIsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzVDO1FBRUQsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1NBQzVDO0lBQ0wsQ0FBQztJQUVELHdCQUF3QjtJQUNqQixXQUFXO1FBQ2QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFRCxzRUFBc0U7SUFDNUQsaUJBQWlCLENBQUMsVUFBK0MsRUFBRSxJQUFlO1FBQ3hGLFVBQVUsQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDeEIsTUFBTSxDQUFDLE9BQU87aUJBQ1QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQztpQkFDMUQsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUFBLENBQUM7bUhBdlNnQixtQkFBbUIsNENBaVF6QixTQUFTLGFBQ0csbUJBQW1CLDZCQUNuQixvQkFBb0I7dUdBblExQixtQkFBbUIsZ2FBc05wQix3QkFBd0IsOERBR3hCLGtCQUFrQiw4REFHbEIsa0JBQWtCLDRGQUd4QixzQkFBc0I7O2dHQS9OZixtQkFBbUI7a0JBRHhDLFNBQVM7OzBCQWtRRCxNQUFNOzJCQUFDLFNBQVM7OzBCQUNoQixRQUFROzswQkFBSSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQ3RDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsb0JBQW9COzRDQXJQckMsV0FBVztzQkFEakIsS0FBSztnQkFnQkMsYUFBYTtzQkFEbkIsS0FBSztnQkFZQyxXQUFXO3NCQURqQixLQUFLO2dCQWVDLElBQUk7c0JBRFYsS0FBSztnQkFZQyxlQUFlO3NCQURyQixLQUFLO2dCQVlDLFFBQVE7c0JBRGQsS0FBSztnQkFjSyxNQUFNO3NCQURoQixLQUFLO2dCQXlCSyxTQUFTO3NCQURuQixLQUFLO2dCQXlCQyxNQUFNO3NCQURaLEtBQUs7Z0JBZUssSUFBSTtzQkFEZCxLQUFLO2dCQWlCQyxRQUFRO3NCQURkLEtBQUs7Z0JBWUMsT0FBTztzQkFEYixNQUFNO2dCQVlBLE1BQU07c0JBRFosTUFBTTtnQkFZQSxPQUFPO3NCQURiLE1BQU07Z0JBWUEsTUFBTTtzQkFEWixNQUFNO2dCQUtBLGdCQUFnQjtzQkFEdEIsZUFBZTt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSXRELFFBQVE7c0JBRGpCLGVBQWU7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUloRCxRQUFRO3NCQURqQixlQUFlO3VCQUFDLGtCQUFrQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJaEQsVUFBVTtzQkFEbkIsU0FBUzt1QkFBQyxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCwgQ29udGVudENoaWxkcmVuLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3QsIElucHV0LCBMT0NBTEVfSUQsIE9uRGVzdHJveSwgT3B0aW9uYWwsIE91dHB1dCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBnZXRMb2NhbGVGaXJzdERheU9mV2VlayB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuaW1wb3J0IHsgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgRGlzcGxheURlbnNpdHlCYXNlLCBEaXNwbGF5RGVuc2l0eVRva2VuLCBJRGlzcGxheURlbnNpdHlPcHRpb25zIH0gZnJvbSAnLi4vY29yZS9kZW5zaXR5JztcbmltcG9ydCB7IEVkaXRvclByb3ZpZGVyIH0gZnJvbSAnLi4vY29yZS9lZGl0LXByb3ZpZGVyJztcbmltcG9ydCB7IElUb2dnbGVWaWV3IH0gZnJvbSAnLi4vY29yZS9uYXZpZ2F0aW9uJztcbmltcG9ydCB7IElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3MsIElCYXNlRXZlbnRBcmdzIH0gZnJvbSAnLi4vY29yZS91dGlscyc7XG5pbXBvcnQgeyBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy90b2dnbGUvdG9nZ2xlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPdmVybGF5U2V0dGluZ3MgfSBmcm9tICcuLi9zZXJ2aWNlcy9vdmVybGF5L3V0aWxpdGllcyc7XG5pbXBvcnQgeyBJZ3hQaWNrZXJUb2dnbGVDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci1pY29ucy5jb21tb24nO1xuaW1wb3J0IHsgUGlja2VySW50ZXJhY3Rpb25Nb2RlIH0gZnJvbSAnLi90eXBlcyc7XG5pbXBvcnQgeyBXRUVLREFZUyB9IGZyb20gJy4uL2NhbGVuZGFyL2NhbGVuZGFyJztcbmltcG9ydCB7IERhdGVSYW5nZSB9IGZyb20gJy4uL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLWlucHV0cy5jb21tb24nO1xuaW1wb3J0IHsgSUdYX0lOUFVUX0dST1VQX1RZUEUsIElneElucHV0R3JvdXBUeXBlIH0gZnJvbSAnLi4vaW5wdXQtZ3JvdXAvaW5wdXRHcm91cFR5cGUnO1xuaW1wb3J0IHsgSWd4UHJlZml4RGlyZWN0aXZlIH0gZnJvbSAnLi4vZGlyZWN0aXZlcy9wcmVmaXgvcHJlZml4LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBJZ3hTdWZmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3N1ZmZpeC9zdWZmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IElneElucHV0R3JvdXBDb21wb25lbnQgfSBmcm9tICcuLi9pbnB1dC1ncm91cC9pbnB1dC1ncm91cC5jb21wb25lbnQnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQaWNrZXJCYXNlRGlyZWN0aXZlIGV4dGVuZHMgRGlzcGxheURlbnNpdHlCYXNlIGltcGxlbWVudHMgSVRvZ2dsZVZpZXcsIEVkaXRvclByb3ZpZGVyLCBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkLCBPbkRlc3Ryb3kge1xuICAgIC8qKlxuICAgICAqIFRoZSBlZGl0b3IncyBpbnB1dCBtYXNrLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBBbHNvIHVzZWQgYXMgYSBwbGFjZWhvbGRlciB3aGVuIG5vbmUgaXMgcHJvdmlkZWQuXG4gICAgICogRGVmYXVsdCBpcyBgXCInTU0vZGQveXl5eSdcImBcbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgaW5wdXRGb3JtYXQ9XCJkZC9NTS95eVwiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlucHV0Rm9ybWF0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgZm9ybWF0IHVzZWQgdG8gZGlzcGxheSB0aGUgcGlja2VyJ3MgdmFsdWUgd2hlbiBpdCdzIG5vdCBiZWluZyBlZGl0ZWQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIFVzZXMgQW5ndWxhcidzIERhdGVQaXBlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBkaXNwbGF5Rm9ybWF0PVwiRUUvTS95eVwiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzcGxheUZvcm1hdDogc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgYHBsYWNlaG9sZGVyYCBvZiB0aGUgcGlja2VyJ3MgaW5wdXQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIFtwbGFjZWhvbGRlcl09XCInQ2hvb3NlIHlvdXIgZGF0ZSdcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogQ2FuIGJlIGBkcm9wZG93bmAgd2l0aCBlZGl0YWJsZSBpbnB1dCBmaWVsZCBvciBgZGlhbG9nYCB3aXRoIHJlYWRvbmx5IGlucHV0IGZpZWxkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IG1vZGUgaXMgYGRyb3Bkb3duYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBtb2RlPVwiZGlhbG9nXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgbW9kZTogUGlja2VySW50ZXJhY3Rpb25Nb2RlID0gUGlja2VySW50ZXJhY3Rpb25Nb2RlLkRyb3BEb3duO1xuXG4gICAgLyoqXG4gICAgICogT3ZlcmxheSBzZXR0aW5ncyB1c2VkIHRvIGRpc3BsYXkgdGhlIHBvcC11cCBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBbb3ZlcmxheVNldHRpbmdzXT1cImN1c3RvbU92ZXJsYXlTZXR0aW5nc1wiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIG92ZXJsYXlTZXR0aW5nczogT3ZlcmxheVNldHRpbmdzO1xuXG4gICAgLyoqXG4gICAgICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgcGlja2VyLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBbZGlzYWJsZWRdPVwiJ3RydWUnXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgbG9jYWxlPVwianBcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgZGF0ZS1waWNrZXIuXG4gICAgICogSWYgbm90IHNldCwgZGVmYXVsdHMgdG8gYXBwbGNpYXRpb24ncyBsb2NhbGUuLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCBsb2NhbGUoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgbG9jYWxlYCBvZiB0aGUgZGF0ZS1waWNrZXIuXG4gICAgICogRXhwZWN0cyBhIHZhbGlkIEJDUCA0NyBsYW5ndWFnZSB0YWcuXG4gICAgICovXG4gICAgcHVibGljIHNldCBsb2NhbGUodmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgICAgICAgLy8gaWYgdmFsdWUgaXMgaW52YWxpZCwgc2V0IGl0IGJhY2sgdG8gX2xvY2FsZUlkXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBnZXRMb2NhbGVGaXJzdERheU9mV2Vlayh0aGlzLl9sb2NhbGUpO1xuICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICB0aGlzLl9sb2NhbGUgPSB0aGlzLl9sb2NhbGVJZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHN0YXJ0IGRheSBvZiB0aGUgd2Vlay5cbiAgICAgKiBDYW4gcmV0dXJuIGEgbnVtZXJpYyBvciBhbiBlbnVtIHJlcHJlc2VudGF0aW9uIG9mIHRoZSB3ZWVrIGRheS5cbiAgICAgKiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byB0aGUgZmlyc3QgZGF5IG9mIHRoZSB3ZWVrIGZvciB0aGUgYXBwbGljYXRpb24gbG9jYWxlLlxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGdldCB3ZWVrU3RhcnQoKTogV0VFS0RBWVMgfCBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5fd2Vla1N0YXJ0ID8/IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0cyB0aGUgc3RhcnQgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAqIENhbiBiZSBhc3NpZ25lZCB0byBhIG51bWVyaWMgdmFsdWUgb3IgdG8gYFdFRUtEQVlTYCBlbnVtIHZhbHVlLlxuICAgICAqL1xuICAgIHB1YmxpYyBzZXQgd2Vla1N0YXJ0KHZhbHVlOiBXRUVLREFZUyB8IG51bWJlcikge1xuICAgICAgICB0aGlzLl93ZWVrU3RhcnQgPSB2YWx1ZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUaGUgY29udGFpbmVyIHVzZWQgZm9yIHRoZSBwb3AtdXAgZWxlbWVudC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxkaXYgaWd4T3ZlcmxheU91dGxldCAjb3V0bGV0PVwib3ZlcmxheS1vdXRsZXRcIj48L2Rpdj5cbiAgICAgKiA8IS0tIC4uLiAtLT5cbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIFtvdXRsZXRdPVwib3V0bGV0XCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogPCEtLSAuLi4gLS0+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3V0bGV0OiBJZ3hPdmVybGF5T3V0bGV0RGlyZWN0aXZlIHwgRWxlbWVudFJlZjtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZXMgaG93IHRoZSBwaWNrZXIncyBpbnB1dCB3aWxsIGJlIHN0eWxlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogRGVmYXVsdCBpcyBgYm94YC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgW3R5cGVdPVwiJ2xpbmUnXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgc2V0IHR5cGUodmFsOiBJZ3hJbnB1dEdyb3VwVHlwZSkge1xuICAgICAgICB0aGlzLl90eXBlID0gdmFsO1xuICAgIH1cbiAgICBwdWJsaWMgZ2V0IHR5cGUoKTogSWd4SW5wdXRHcm91cFR5cGUge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHlwZSB8fCB0aGlzLl9pbnB1dEdyb3VwVHlwZTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzL1NldHMgdGhlIGRlZmF1bHQgdGVtcGxhdGUgZWRpdG9yJ3MgdGFiaW5kZXguXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIFt0YWJJbmRleF09XCIxXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgdGFiSW5kZXg6IG51bWJlciB8IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FsZW5kYXIgaGFzIHN0YXJ0ZWQgb3BlbmluZywgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgKG9wZW5pbmcpPVwiaGFuZGxlT3BlbmluZygkZXZlbnQpXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5pbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBjYWxlbmRhciBoYXMgb3BlbmVkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciAob3BlbmVkKT1cImhhbmRsZU9wZW5lZCgkZXZlbnQpXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIG9wZW5lZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIHdoZW4gdGhlIGNhbGVuZGFyIGhhcyBzdGFydGVkIGNsb3NpbmcsIGNhbmNlbGFibGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIChjbG9zaW5nKT1cImhhbmRsZUNsb3NpbmcoJGV2ZW50KVwiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbG9zaW5nID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUNhbmNlbGFibGVCcm93c2VyRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCBhZnRlciB0aGUgY2FsZW5kYXIgaGFzIGNsb3NlZC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgKGNsb3NlZCk9XCJoYW5kbGVDbG9zZWQoJGV2ZW50KVwiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlRXZlbnRBcmdzPigpO1xuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgQENvbnRlbnRDaGlsZHJlbihJZ3hQaWNrZXJUb2dnbGVDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwdWJsaWMgdG9nZ2xlQ29tcG9uZW50czogUXVlcnlMaXN0PElneFBpY2tlclRvZ2dsZUNvbXBvbmVudD47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKElneFByZWZpeERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBwcmVmaXhlczogUXVlcnlMaXN0PElneFByZWZpeERpcmVjdGl2ZT47XG5cbiAgICBAQ29udGVudENoaWxkcmVuKElneFN1ZmZpeERpcmVjdGl2ZSwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHByb3RlY3RlZCBzdWZmaXhlczogUXVlcnlMaXN0PElneFN1ZmZpeERpcmVjdGl2ZT47XG5cbiAgICBAVmlld0NoaWxkKElneElucHV0R3JvdXBDb21wb25lbnQpXG4gICAgcHJvdGVjdGVkIGlucHV0R3JvdXA6IElneElucHV0R3JvdXBDb21wb25lbnQ7XG5cbiAgICBwcm90ZWN0ZWQgX2xvY2FsZTogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfY29sbGFwc2VkID0gdHJ1ZTtcbiAgICBwcm90ZWN0ZWQgX3R5cGU6IElneElucHV0R3JvdXBUeXBlO1xuICAgIHByb3RlY3RlZCBfbWluVmFsdWU6IERhdGUgfCBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9tYXhWYWx1ZTogRGF0ZSB8IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX3dlZWtTdGFydDogV0VFS0RBWVMgfCBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSBwaWNrZXIncyBwb3AtdXAgc3RhdGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYHR5cGVzY3JpcHRcbiAgICAgKiBjb25zdCBzdGF0ZSA9IHRoaXMucGlja2VyLmNvbGxhcHNlZDtcbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBwdWJsaWMgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2NvbGxhcHNlZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgZ2V0IGlzRHJvcGRvd24oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLm1vZGUgPT09IFBpY2tlckludGVyYWN0aW9uTW9kZS5Ecm9wRG93bjtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2Rlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcblxuICAgIC8vIEQuUC4gRXZlbnRFbWl0dGVyPHN0cmluZyB8IERhdGUgfCBEYXRlUmFuZ2UgfCBudWxsPiB0aHJvd3Mgb24gc3RyaWN0IGNoZWNrcyBmb3IgbW9yZSByZXN0cmljdGl2ZSBvdmVycmlkZXNcbiAgICAvLyB3LyBUUzI0MTYgVHlwZSAnc3RyaW5nIHwgRGF0ZSAuLi4nIG5vdCBhc3NpZ25hYmxlIHRvIHR5cGUgJ0RhdGVSYW5nZScgZHVlIHRvIG9ic2VydmVyIG1ldGhvZCBjaGVja1xuICAgIHB1YmxpYyBhYnN0cmFjdCB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIHByb3RlY3RlZCBfbG9jYWxlSWQ6IHN0cmluZyxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChEaXNwbGF5RGVuc2l0eVRva2VuKSBwcm90ZWN0ZWQgX2Rpc3BsYXlEZW5zaXR5T3B0aW9ucz86IElEaXNwbGF5RGVuc2l0eU9wdGlvbnMsXG4gICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoSUdYX0lOUFVUX0dST1VQX1RZUEUpIHByb3RlY3RlZCBfaW5wdXRHcm91cFR5cGU/OiBJZ3hJbnB1dEdyb3VwVHlwZSkge1xuICAgICAgICBzdXBlcihfZGlzcGxheURlbnNpdHlPcHRpb25zIHx8IHsgZGlzcGxheURlbnNpdHk6ICdjb21mb3J0YWJsZScgfSk7XG4gICAgICAgIHRoaXMubG9jYWxlID0gdGhpcy5sb2NhbGUgfHwgdGhpcy5fbG9jYWxlSWQ7XG4gICAgfVxuXG4gICAgLyoqIEBoaWRkZW4gQGludGVybmFsICovXG4gICAgcHVibGljIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5zdWJUb0ljb25zQ2xpY2tlZCh0aGlzLnRvZ2dsZUNvbXBvbmVudHMsICgpID0+IHRoaXMub3BlbigpKTtcbiAgICAgICAgdGhpcy50b2dnbGVDb21wb25lbnRzLmNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5fZGVzdHJveSQpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnN1YlRvSWNvbnNDbGlja2VkKHRoaXMudG9nZ2xlQ29tcG9uZW50cywgKCkgPT4gdGhpcy5vcGVuKCkpKTtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5pbnB1dEdyb3VwICYmIHRoaXMucHJlZml4ZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5wcmVmaXhlcyA9IHRoaXMucHJlZml4ZXM7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pbnB1dEdyb3VwICYmIHRoaXMuc3VmZml4ZXM/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXRHcm91cC5zdWZmaXhlcyA9IHRoaXMuc3VmZml4ZXM7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX2Rlc3Ryb3kkLm5leHQoKTtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG5cbiAgICAvKiogU3Vic2NyaWJlcyB0byB0aGUgY2xpY2sgZXZlbnRzIG9mIHRvZ2dsZS9jbGVhciBpY29ucyBpbiBhIHF1ZXJ5ICovXG4gICAgcHJvdGVjdGVkIHN1YlRvSWNvbnNDbGlja2VkKGNvbXBvbmVudHM6IFF1ZXJ5TGlzdDxJZ3hQaWNrZXJUb2dnbGVDb21wb25lbnQ+LCBuZXh0OiAoKSA9PiBhbnkpOiB2b2lkIHtcbiAgICAgICAgY29tcG9uZW50cy5mb3JFYWNoKHRvZ2dsZSA9PiB7XG4gICAgICAgICAgICB0b2dnbGUuY2xpY2tlZFxuICAgICAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbChtZXJnZShjb21wb25lbnRzLmNoYW5nZXMsIHRoaXMuX2Rlc3Ryb3kkKSkpXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShuZXh0KTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIHB1YmxpYyBhYnN0cmFjdCBzZWxlY3QodmFsdWU6IERhdGUgfCBEYXRlUmFuZ2UgfCBzdHJpbmcpOiB2b2lkO1xuICAgIHB1YmxpYyBhYnN0cmFjdCBvcGVuKHNldHRpbmdzPzogT3ZlcmxheVNldHRpbmdzKTogdm9pZDtcbiAgICBwdWJsaWMgYWJzdHJhY3QgdG9nZ2xlKHNldHRpbmdzPzogT3ZlcmxheVNldHRpbmdzKTogdm9pZDtcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xvc2UoKTogdm9pZDtcbiAgICBwdWJsaWMgYWJzdHJhY3QgZ2V0RWRpdEVsZW1lbnQoKTogSFRNTElucHV0RWxlbWVudDtcbn1cbiJdfQ==
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLWJhc2UuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvaWduaXRldWktYW5ndWxhci9zcmMvbGliL2RhdGUtY29tbW9uL3BpY2tlci1iYXNlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRVksZUFBZSxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQ25FLE1BQU0sRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFhLFFBQVEsRUFBRSxNQUFNLEVBQWEsU0FBUyxFQUM5RSxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUUxRCxPQUFPLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLG1CQUFtQixFQUEwQixNQUFNLGlCQUFpQixDQUFDO0FBTWxHLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUdoRCxPQUFPLEVBQUUsb0JBQW9CLEVBQXFCLE1BQU0sK0JBQStCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7O0FBRzlFLE1BQU0sT0FBZ0IsbUJBQW9CLFNBQVEsa0JBQWtCO0lBOEVoRTs7Ozs7T0FLRztJQUNIOzs7T0FHRztJQUNILElBQ1csTUFBTTtRQUNiLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QixDQUFDO0lBRUQ7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dEMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQyxvQkFBb0I7NENBclByQyxXQUFXO3NCQURqQixLQUFLO2dCQWdCQyxhQUFhO3NCQURuQixLQUFLO2dCQVlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBZUMsSUFBSTtzQkFEVixLQUFLO2dCQVlDLGVBQWU7c0JBRHJCLEtBQUs7Z0JBWUMsUUFBUTtzQkFEZCxLQUFLO2dCQWNLLE1BQU07c0JBRGhCLEtBQUs7Z0JBeUJLLFNBQVM7c0JBRG5CLEtBQUs7Z0JBeUJDLE1BQU07c0JBRFosS0FBSztnQkFlSyxJQUFJO3NCQURkLEtBQUs7Z0JBaUJDLFFBQVE7c0JBRGQsS0FBSztnQkFZQyxPQUFPO3NCQURiLE1BQU07Z0JBWUEsTUFBTTtzQkFEWixNQUFNO2dCQVlBLE9BQU87c0JBRGIsTUFBTTtnQkFZQSxNQUFNO3NCQURaLE1BQU07Z0JBS0EsZ0JBQWdCO3NCQUR0QixlQUFlO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJdEQsUUFBUTtzQkFEakIsZUFBZTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSWhELFFBQVE7c0JBRGpCLGVBQWU7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO2dCQUloRCxVQUFVO3NCQURuQixTQUFTO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBBZnRlclZpZXdJbml0LCBDb250ZW50Q2hpbGRyZW4sIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLFxuICAgIEluamVjdCwgSW5wdXQsIExPQ0FMRV9JRCwgT25EZXN0cm95LCBPcHRpb25hbCwgT3V0cHV0LCBRdWVyeUxpc3QsIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5pbXBvcnQgeyBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBEaXNwbGF5RGVuc2l0eUJhc2UsIERpc3BsYXlEZW5zaXR5VG9rZW4sIElEaXNwbGF5RGVuc2l0eU9wdGlvbnMgfSBmcm9tICcuLi9jb3JlL2RlbnNpdHknO1xuaW1wb3J0IHsgRWRpdG9yUHJvdmlkZXIgfSBmcm9tICcuLi9jb3JlL2VkaXQtcHJvdmlkZXInO1xuaW1wb3J0IHsgSVRvZ2dsZVZpZXcgfSBmcm9tICcuLi9jb3JlL25hdmlnYXRpb24nO1xuaW1wb3J0IHsgSUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncywgSUJhc2VFdmVudEFyZ3MgfSBmcm9tICcuLi9jb3JlL3V0aWxzJztcbmltcG9ydCB7IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3RvZ2dsZS90b2dnbGUuZGlyZWN0aXZlJztcbmltcG9ydCB7IE92ZXJsYXlTZXR0aW5ncyB9IGZyb20gJy4uL3NlcnZpY2VzL292ZXJsYXkvdXRpbGl0aWVzJztcbmltcG9ydCB7IElneFBpY2tlclRvZ2dsZUNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLWljb25zLmNvbW1vbic7XG5pbXBvcnQgeyBQaWNrZXJJbnRlcmFjdGlvbk1vZGUgfSBmcm9tICcuL3R5cGVzJztcbmltcG9ydCB7IFdFRUtEQVlTIH0gZnJvbSAnLi4vY2FsZW5kYXIvY2FsZW5kYXInO1xuaW1wb3J0IHsgRGF0ZVJhbmdlIH0gZnJvbSAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXItaW5wdXRzLmNvbW1vbic7XG5pbXBvcnQgeyBJR1hfSU5QVVRfR1JPVVBfVFlQRSwgSWd4SW5wdXRHcm91cFR5cGUgfSBmcm9tICcuLi9pbnB1dC1ncm91cC9pbnB1dEdyb3VwVHlwZSc7XG5pbXBvcnQgeyBJZ3hQcmVmaXhEaXJlY3RpdmUgfSBmcm9tICcuLi9kaXJlY3RpdmVzL3ByZWZpeC9wcmVmaXguZGlyZWN0aXZlJztcbmltcG9ydCB7IElneFN1ZmZpeERpcmVjdGl2ZSB9IGZyb20gJy4uL2RpcmVjdGl2ZXMvc3VmZml4L3N1ZmZpeC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgSWd4SW5wdXRHcm91cENvbXBvbmVudCB9IGZyb20gJy4uL2lucHV0LWdyb3VwL2lucHV0LWdyb3VwLmNvbXBvbmVudCc7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBpY2tlckJhc2VEaXJlY3RpdmUgZXh0ZW5kcyBEaXNwbGF5RGVuc2l0eUJhc2UgaW1wbGVtZW50cyBJVG9nZ2xlVmlldywgRWRpdG9yUHJvdmlkZXIsIEFmdGVyVmlld0luaXQsIEFmdGVyQ29udGVudENoZWNrZWQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogVGhlIGVkaXRvcidzIGlucHV0IG1hc2suXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIEFsc28gdXNlZCBhcyBhIHBsYWNlaG9sZGVyIHdoZW4gbm9uZSBpcyBwcm92aWRlZC5cbiAgICAgKiBEZWZhdWx0IGlzIGBcIidNTS9kZC95eXl5J1wiYFxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBpbnB1dEZvcm1hdD1cImRkL01NL3l5XCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaW5wdXRGb3JtYXQ6IHN0cmluZztcblxuICAgIC8qKlxuICAgICAqIFRoZSBmb3JtYXQgdXNlZCB0byBkaXNwbGF5IHRoZSBwaWNrZXIncyB2YWx1ZSB3aGVuIGl0J3Mgbm90IGJlaW5nIGVkaXRlZC5cbiAgICAgKlxuICAgICAqIEByZW1hcmtzXG4gICAgICogVXNlcyBBbmd1bGFyJ3MgRGF0ZVBpcGUuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIGRpc3BsYXlGb3JtYXQ9XCJFRS9NL3l5XCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICpcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNwbGF5Rm9ybWF0OiBzdHJpbmc7XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBgcGxhY2Vob2xkZXJgIG9mIHRoZSBwaWNrZXIncyBpbnB1dC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgW3BsYWNlaG9sZGVyXT1cIidDaG9vc2UgeW91ciBkYXRlJ1wiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIHBsYWNlaG9sZGVyID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBDYW4gYmUgYGRyb3Bkb3duYCB3aXRoIGVkaXRhYmxlIGlucHV0IGZpZWxkIG9yIGBkaWFsb2dgIHdpdGggcmVhZG9ubHkgaW5wdXQgZmllbGQuXG4gICAgICpcbiAgICAgKiBAcmVtYXJrc1xuICAgICAqIERlZmF1bHQgbW9kZSBpcyBgZHJvcGRvd25gXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIG1vZGU9XCJkaWFsb2dcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBtb2RlOiBQaWNrZXJJbnRlcmFjdGlvbk1vZGUgPSBQaWNrZXJJbnRlcmFjdGlvbk1vZGUuRHJvcERvd247XG5cbiAgICAvKipcbiAgICAgKiBPdmVybGF5IHNldHRpbmdzIHVzZWQgdG8gZGlzcGxheSB0aGUgcG9wLXVwIGVsZW1lbnQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIFtvdmVybGF5U2V0dGluZ3NdPVwiY3VzdG9tT3ZlcmxheVNldHRpbmdzXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgb3ZlcmxheVNldHRpbmdzOiBPdmVybGF5U2V0dGluZ3M7XG5cbiAgICAvKipcbiAgICAgKiBFbmFibGVzIG9yIGRpc2FibGVzIHRoZSBwaWNrZXIuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIFtkaXNhYmxlZF09XCIndHJ1ZSdcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBsb2NhbGU9XCJqcFwiPjwvaWd4LWRhdGUtcGlja2VyPlxuICAgICAqIGBgYFxuICAgICAqL1xuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSBkYXRlLXBpY2tlci5cbiAgICAgKiBJZiBub3Qgc2V0LCBkZWZhdWx0cyB0byBhcHBsY2lhdGlvbidzIGxvY2FsZS4uXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IGxvY2FsZSgpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldHMgdGhlIGBsb2NhbGVgIG9mIHRoZSBkYXRlLXBpY2tlci5cbiAgICAgKiBFeHBlY3RzIGEgdmFsaWQgQkNQIDQ3IGxhbmd1YWdlIHRhZy5cbiAgICAgKi9cbiAgICBwdWJsaWMgc2V0IGxvY2FsZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMuX2xvY2FsZSA9IHZhbHVlO1xuICAgICAgICAvLyBpZiB2YWx1ZSBpcyBpbnZhbGlkLCBzZXQgaXQgYmFjayB0byBfbG9jYWxlSWRcbiAgICAgICAgdHJ5IHtcbiAgICAgICAgICAgIGdldExvY2FsZUZpcnN0RGF5T2ZXZWVrKHRoaXMuX2xvY2FsZSk7XG4gICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgIHRoaXMuX2xvY2FsZSA9IHRoaXMuX2xvY2FsZUlkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogR2V0cyB0aGUgc3RhcnQgZGF5IG9mIHRoZSB3ZWVrLlxuICAgICAqIENhbiByZXR1cm4gYSBudW1lcmljIG9yIGFuIGVudW0gcmVwcmVzZW50YXRpb24gb2YgdGhlIHdlZWsgZGF5LlxuICAgICAqIElmIG5vdCBzZXQsIGRlZmF1bHRzIHRvIHRoZSBmaXJzdCBkYXkgb2YgdGhlIHdlZWsgZm9yIHRoZSBhcHBsaWNhdGlvbiBsb2NhbGUuXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZ2V0IHdlZWtTdGFydCgpOiBXRUVLREFZUyB8IG51bWJlciB7XG4gICAgICAgIHJldHVybiB0aGlzLl93ZWVrU3RhcnQgPz8gZ2V0TG9jYWxlRmlyc3REYXlPZldlZWsodGhpcy5fbG9jYWxlKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXRzIHRoZSBzdGFydCBkYXkgb2YgdGhlIHdlZWsuXG4gICAgICogQ2FuIGJlIGFzc2lnbmVkIHRvIGEgbnVtZXJpYyB2YWx1ZSBvciB0byBgV0VFS0RBWVNgIGVudW0gdmFsdWUuXG4gICAgICovXG4gICAgcHVibGljIHNldCB3ZWVrU3RhcnQodmFsdWU6IFdFRUtEQVlTIHwgbnVtYmVyKSB7XG4gICAgICAgIHRoaXMuX3dlZWtTdGFydCA9IHZhbHVlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRoZSBjb250YWluZXIgdXNlZCBmb3IgdGhlIHBvcC11cCBlbGVtZW50LlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGRpdiBpZ3hPdmVybGF5T3V0bGV0ICNvdXRsZXQ9XCJvdmVybGF5LW91dGxldFwiPjwvZGl2PlxuICAgICAqIDwhLS0gLi4uIC0tPlxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgW291dGxldF09XCJvdXRsZXRcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiA8IS0tIC4uLiAtLT5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBvdXRsZXQ6IElneE92ZXJsYXlPdXRsZXREaXJlY3RpdmUgfCBFbGVtZW50UmVmO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBob3cgdGhlIHBpY2tlcidzIGlucHV0IHdpbGwgYmUgc3R5bGVkLlxuICAgICAqXG4gICAgICogQHJlbWFya3NcbiAgICAgKiBEZWZhdWx0IGlzIGBib3hgLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciBbdHlwZV09XCInbGluZSdcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBzZXQgdHlwZSh2YWw6IElneElucHV0R3JvdXBUeXBlKSB7XG4gICAgICAgIHRoaXMuX3R5cGUgPSB2YWw7XG4gICAgfVxuICAgIHB1YmxpYyBnZXQgdHlwZSgpOiBJZ3hJbnB1dEdyb3VwVHlwZSB7XG4gICAgICAgIHJldHVybiB0aGlzLl90eXBlIHx8IHRoaXMuX2lucHV0R3JvdXBUeXBlO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEdldHMvU2V0cyB0aGUgZGVmYXVsdCB0ZW1wbGF0ZSBlZGl0b3IncyB0YWJpbmRleC5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgW3RhYkluZGV4XT1cIjFcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyB0YWJJbmRleDogbnVtYmVyIHwgc3RyaW5nO1xuXG4gICAgLyoqXG4gICAgICogRW1pdHRlZCB3aGVuIHRoZSBjYWxlbmRhciBoYXMgc3RhcnRlZCBvcGVuaW5nLCBjYW5jZWxhYmxlLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciAob3BlbmluZyk9XCJoYW5kbGVPcGVuaW5nKCRldmVudClcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmluZyA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VDYW5jZWxhYmxlQnJvd3NlckV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgYWZ0ZXIgdGhlIGNhbGVuZGFyIGhhcyBvcGVuZWQuXG4gICAgICpcbiAgICAgKiBAZXhhbXBsZVxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8aWd4LWRhdGUtcGlja2VyIChvcGVuZWQpPVwiaGFuZGxlT3BlbmVkKCRldmVudClcIj48L2lneC1kYXRlLXBpY2tlcj5cbiAgICAgKiBgYGBcbiAgICAgKi9cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb3BlbmVkID0gbmV3IEV2ZW50RW1pdHRlcjxJQmFzZUV2ZW50QXJncz4oKTtcblxuICAgIC8qKlxuICAgICAqIEVtaXR0ZWQgd2hlbiB0aGUgY2FsZW5kYXIgaGFzIHN0YXJ0ZWQgY2xvc2luZywgY2FuY2VsYWJsZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgaHRtbFxuICAgICAqIDxpZ3gtZGF0ZS1waWNrZXIgKGNsb3NpbmcpPVwiaGFuZGxlQ2xvc2luZygkZXZlbnQpXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPElCYXNlQ2FuY2VsYWJsZUJyb3dzZXJFdmVudEFyZ3M+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFbWl0dGVkIGFmdGVyIHRoZSBjYWxlbmRhciBoYXMgY2xvc2VkLlxuICAgICAqXG4gICAgICogQGV4YW1wbGVcbiAgICAgKiBgYGBodG1sXG4gICAgICogPGlneC1kYXRlLXBpY2tlciAoY2xvc2VkKT1cImhhbmRsZUNsb3NlZCgkZXZlbnQpXCI+PC9pZ3gtZGF0ZS1waWNrZXI+XG4gICAgICogYGBgXG4gICAgICovXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGNsb3NlZCA9IG5ldyBFdmVudEVtaXR0ZXI8SUJhc2VFdmVudEFyZ3M+KCk7XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBAQ29udGVudENoaWxkcmVuKElneFBpY2tlclRvZ2dsZUNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHB1YmxpYyB0b2dnbGVDb21wb25lbnRzOiBRdWVyeUxpc3Q8SWd4UGlja2VyVG9nZ2xlQ29tcG9uZW50PjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4UHJlZml4RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIHByZWZpeGVzOiBRdWVyeUxpc3Q8SWd4UHJlZml4RGlyZWN0aXZlPjtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oSWd4U3VmZml4RGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHJvdGVjdGVkIHN1ZmZpeGVzOiBRdWVyeUxpc3Q8SWd4U3VmZml4RGlyZWN0aXZlPjtcblxuICAgIEBWaWV3Q2hpbGQoSWd4SW5wdXRHcm91cENvbXBvbmVudClcbiAgICBwcm90ZWN0ZWQgaW5wdXRHcm91cDogSWd4SW5wdXRHcm91cENvbXBvbmVudDtcblxuICAgIHByb3RlY3RlZCBfbG9jYWxlOiBzdHJpbmc7XG4gICAgcHJvdGVjdGVkIF9jb2xsYXBzZWQgPSB0cnVlO1xuICAgIHByb3RlY3RlZCBfdHlwZTogSWd4SW5wdXRHcm91cFR5cGU7XG4gICAgcHJvdGVjdGVkIF9taW5WYWx1ZTogRGF0ZSB8IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX21heFZhbHVlOiBEYXRlIHwgc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfd2Vla1N0YXJ0OiBXRUVLREFZUyB8IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHBpY2tlcidzIHBvcC11cCBzdGF0ZS5cbiAgICAgKlxuICAgICAqIEBleGFtcGxlXG4gICAgICogYGBgdHlwZXNjcmlwdFxuICAgICAqIGNvbnN0IHN0YXRlID0gdGhpcy5waWNrZXIuY29sbGFwc2VkO1xuICAgICAqIGBgYFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXQgY29sbGFwc2VkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29sbGFwc2VkO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBnZXQgaXNEcm9wZG93bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMubW9kZSA9PT0gUGlja2VySW50ZXJhY3Rpb25Nb2RlLkRyb3BEb3duO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBfZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgLy8gRC5QLiBFdmVudEVtaXR0ZXI8c3RyaW5nIHwgRGF0ZSB8IERhdGVSYW5nZSB8IG51bGw+IHRocm93cyBvbiBzdHJpY3QgY2hlY2tzIGZvciBtb3JlIHJlc3RyaWN0aXZlIG92ZXJyaWRlc1xuICAgIC8vIHcvIFRTMjQxNiBUeXBlICdzdHJpbmcgfCBEYXRlIC4uLicgbm90IGFzc2lnbmFibGUgdG8gdHlwZSAnRGF0ZVJhbmdlJyBkdWUgdG8gb2JzZXJ2ZXIgbWV0aG9kIGNoZWNrXG4gICAgcHVibGljIGFic3RyYWN0IHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBlbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBASW5qZWN0KExPQ0FMRV9JRCkgcHJvdGVjdGVkIF9sb2NhbGVJZDogc3RyaW5nLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERpc3BsYXlEZW5zaXR5VG9rZW4pIHByb3RlY3RlZCBfZGlzcGxheURlbnNpdHlPcHRpb25zPzogSURpc3BsYXlEZW5zaXR5T3B0aW9ucyxcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChJR1hfSU5QVVRfR1JPVVBfVFlQRSkgcHJvdGVjdGVkIF9pbnB1dEdyb3VwVHlwZT86IElneElucHV0R3JvdXBUeXBlKSB7XG4gICAgICAgIHN1cGVyKF9kaXNwbGF5RGVuc2l0eU9wdGlvbnMgfHwgeyBkaXNwbGF5RGVuc2l0eTogJ2NvbWZvcnRhYmxlJyB9KTtcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB0aGlzLmxvY2FsZSB8fCB0aGlzLl9sb2NhbGVJZDtcbiAgICB9XG5cbiAgICAvKiogQGhpZGRlbiBAaW50ZXJuYWwgKi9cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnN1YlRvSWNvbnNDbGlja2VkKHRoaXMudG9nZ2xlQ29tcG9uZW50cywgKCkgPT4gdGhpcy5vcGVuKCkpO1xuICAgICAgICB0aGlzLnRvZ2dsZUNvbXBvbmVudHMuY2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuc3ViVG9JY29uc0NsaWNrZWQodGhpcy50b2dnbGVDb21wb25lbnRzLCAoKSA9PiB0aGlzLm9wZW4oKSkpO1xuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmlucHV0R3JvdXAgJiYgdGhpcy5wcmVmaXhlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLnByZWZpeGVzID0gdGhpcy5wcmVmaXhlcztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlucHV0R3JvdXAgJiYgdGhpcy5zdWZmaXhlcz8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5pbnB1dEdyb3VwLnN1ZmZpeGVzID0gdGhpcy5zdWZmaXhlcztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBAaGlkZGVuIEBpbnRlcm5hbCAqL1xuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZGVzdHJveSQubmV4dCgpO1xuICAgICAgICB0aGlzLl9kZXN0cm95JC5jb21wbGV0ZSgpO1xuICAgIH1cblxuICAgIC8qKiBTdWJzY3JpYmVzIHRvIHRoZSBjbGljayBldmVudHMgb2YgdG9nZ2xlL2NsZWFyIGljb25zIGluIGEgcXVlcnkgKi9cbiAgICBwcm90ZWN0ZWQgc3ViVG9JY29uc0NsaWNrZWQoY29tcG9uZW50czogUXVlcnlMaXN0PElneFBpY2tlclRvZ2dsZUNvbXBvbmVudD4sIG5leHQ6ICgpID0+IGFueSk6IHZvaWQge1xuICAgICAgICBjb21wb25lbnRzLmZvckVhY2godG9nZ2xlID0+IHtcbiAgICAgICAgICAgIHRvZ2dsZS5jbGlja2VkXG4gICAgICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKG1lcmdlKGNvbXBvbmVudHMuY2hhbmdlcywgdGhpcy5fZGVzdHJveSQpKSlcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKG5leHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwdWJsaWMgYWJzdHJhY3Qgc2VsZWN0KHZhbHVlOiBEYXRlIHwgRGF0ZVJhbmdlIHwgc3RyaW5nKTogdm9pZDtcbiAgICBwdWJsaWMgYWJzdHJhY3Qgb3BlbihzZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncyk6IHZvaWQ7XG4gICAgcHVibGljIGFic3RyYWN0IHRvZ2dsZShzZXR0aW5ncz86IE92ZXJsYXlTZXR0aW5ncyk6IHZvaWQ7XG4gICAgcHVibGljIGFic3RyYWN0IGNsb3NlKCk6IHZvaWQ7XG4gICAgcHVibGljIGFic3RyYWN0IGdldEVkaXRFbGVtZW50KCk6IEhUTUxJbnB1dEVsZW1lbnQ7XG59XG4iXX0=