@sapui5/sap.fe.macros 1.96.14 → 1.96.16

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 (87) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Chart.metadata.js +1 -1
  4. package/src/sap/fe/macros/ChartDelegate.js +1 -1
  5. package/src/sap/fe/macros/CommonHelper.js +1 -1
  6. package/src/sap/fe/macros/Contact.designtime.js +1 -1
  7. package/src/sap/fe/macros/Contact.metadata.js +1 -1
  8. package/src/sap/fe/macros/ContactHelper.js +1 -1
  9. package/src/sap/fe/macros/DelegateUtil.js +1 -1
  10. package/src/sap/fe/macros/DraftIndicator.metadata.js +1 -1
  11. package/src/sap/fe/macros/DraftIndicatorRuntime.js +1 -1
  12. package/src/sap/fe/macros/FieldValueHelpDelegate.js +1 -1
  13. package/src/sap/fe/macros/FilterBar.designtime.js +1 -1
  14. package/src/sap/fe/macros/FilterBar.metadata.js +1 -1
  15. package/src/sap/fe/macros/FilterBarDelegate.js +1 -1
  16. package/src/sap/fe/macros/FilterBarHelper.js +1 -1
  17. package/src/sap/fe/macros/FilterField.designtime.js +1 -1
  18. package/src/sap/fe/macros/FilterField.metadata.js +1 -1
  19. package/src/sap/fe/macros/FlexibleColumnLayoutActions.metadata.js +1 -1
  20. package/src/sap/fe/macros/Form.designtime.js +1 -1
  21. package/src/sap/fe/macros/Form.metadata.js +1 -1
  22. package/src/sap/fe/macros/FormContainer.designtime.js +1 -1
  23. package/src/sap/fe/macros/FormContainer.metadata.js +1 -1
  24. package/src/sap/fe/macros/MacroMetadata.js +1 -1
  25. package/src/sap/fe/macros/MicroChart.designtime.js +1 -1
  26. package/src/sap/fe/macros/MicroChart.metadata.js +1 -1
  27. package/src/sap/fe/macros/ODataMetaModelUtil.js +1 -1
  28. package/src/sap/fe/macros/Paginator.metadata.js +1 -1
  29. package/src/sap/fe/macros/PhantomUtil.js +1 -1
  30. package/src/sap/fe/macros/QuickViewForm.designtime.js +1 -1
  31. package/src/sap/fe/macros/QuickViewForm.metadata.js +1 -1
  32. package/src/sap/fe/macros/ResourceModel.js +1 -1
  33. package/src/sap/fe/macros/Share.metadata.js +1 -1
  34. package/src/sap/fe/macros/SizeHelper.js +1 -1
  35. package/src/sap/fe/macros/Table.metadata.js +1 -1
  36. package/src/sap/fe/macros/TableAPI.js +11 -8
  37. package/src/sap/fe/macros/TableAPI.ts +9 -5
  38. package/src/sap/fe/macros/TraceInfo.js +1 -1
  39. package/src/sap/fe/macros/ValueHelp.metadata.js +1 -1
  40. package/src/sap/fe/macros/VisualFilter.metadata.js +1 -1
  41. package/src/sap/fe/macros/chart/ChartHelper.js +1 -1
  42. package/src/sap/fe/macros/chart/ChartRuntime.js +1 -1
  43. package/src/sap/fe/macros/chart/ChartUtils.js +1 -1
  44. package/src/sap/fe/macros/field/FieldHelper.js +1 -1
  45. package/src/sap/fe/macros/field/FieldRuntime.js +1 -1
  46. package/src/sap/fe/macros/field/QuickViewLinkDelegate.js +1 -1
  47. package/src/sap/fe/macros/filter/DraftEditState.js +1 -1
  48. package/src/sap/fe/macros/filter/FilterFieldHelper.js +1 -1
  49. package/src/sap/fe/macros/filter/FilterUtils.js +1 -1
  50. package/src/sap/fe/macros/filter/type/MultiValue.js +1 -1
  51. package/src/sap/fe/macros/filter/type/Range.js +1 -1
  52. package/src/sap/fe/macros/filter/type/Value.js +1 -1
  53. package/src/sap/fe/macros/flexibility/FormDelegate.js +1 -1
  54. package/src/sap/fe/macros/form/FormHelper.js +1 -1
  55. package/src/sap/fe/macros/fpm/CustomFragment.metadata.js +1 -1
  56. package/src/sap/fe/macros/fpm/CustomSection.metadata.js +1 -1
  57. package/src/sap/fe/macros/fpm/fpm.js +1 -1
  58. package/src/sap/fe/macros/internal/DataPoint.metadata.js +1 -1
  59. package/src/sap/fe/macros/internal/Field.designtime.js +1 -1
  60. package/src/sap/fe/macros/internal/Field.metadata.js +1 -1
  61. package/src/sap/fe/macros/internal/collectionField/MultiValueFieldDelegate.js +1 -1
  62. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +1 -1
  63. package/src/sap/fe/macros/internal/valuehelp/ValueHelp.designtime.js +1 -1
  64. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +1 -1
  65. package/src/sap/fe/macros/library.js +2 -2
  66. package/src/sap/fe/macros/macroLibrary.js +1 -1
  67. package/src/sap/fe/macros/massedit/MassEditHandler.js +1 -1
  68. package/src/sap/fe/macros/massedit/MassEditRuntime.js +1 -1
  69. package/src/sap/fe/macros/messagebundle_it.properties +1 -1
  70. package/src/sap/fe/macros/messagebundle_tr.properties +1 -1
  71. package/src/sap/fe/macros/microchart/MicroChartContainer.js +1 -1
  72. package/src/sap/fe/macros/microchart/MicroChartHelper.js +1 -1
  73. package/src/sap/fe/macros/table/BasicSearch.js +1 -1
  74. package/src/sap/fe/macros/table/QuickFilterContainer.js +1 -1
  75. package/src/sap/fe/macros/table/TableFullScreenUtil.js +1 -1
  76. package/src/sap/fe/macros/table/TableHelper.js +1 -1
  77. package/src/sap/fe/macros/table/TableRuntime.js +1 -1
  78. package/src/sap/fe/macros/table/Utils.js +1 -1
  79. package/src/sap/fe/macros/table/delegates/ALPTableDelegate.js +1 -1
  80. package/src/sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin.js +1 -1
  81. package/src/sap/fe/macros/table/delegates/AnalyticalALPTableDelegate.js +1 -1
  82. package/src/sap/fe/macros/table/delegates/AnalyticalTableDelegate.js +1 -1
  83. package/src/sap/fe/macros/table/delegates/TableDelegate.js +1 -1
  84. package/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.designtime.js +1 -1
  85. package/src/sap/fe/macros/valuehelp/ValueHelpFilterBar.metadata.js +1 -1
  86. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +1 -1
  87. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.macros",
3
- "version": "1.96.14",
3
+ "version": "1.96.16",
4
4
  "description": "SAPUI5 Library sap.fe.macros",
5
5
  "license": "SEE LICENSE IN LICENSE.txt",
6
6
  "author": "SAP SE (https://www.sap.com)",
@@ -6,7 +6,7 @@
6
6
  <copyright>SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.96.14</version>
9
+ <version>1.96.16</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.macros</documentation>
12
12
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.Contact macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.FilterBar macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.FilterField macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.Form macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.FormContainer macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["sap/fe/core/converters/ConverterContext", "sap/base/util/merge", "sap/base/util/uid", "sap/base/util/deepClone"], function(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.MicroChart macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define([], function() {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata", "sap/fe/core/converters/MetaModelConverter"], function(MacroMetadata, MetaModelConverter) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.QuickViewForm macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["sap/ui/model/resource/ResourceModel"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/m/Button", "sap/ui/dom/units/Rem"], function(Button, Rem) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -234,17 +234,15 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
234
234
  }, {
235
235
  key: "onBeforeExport",
236
236
  value: function onBeforeExport(oEvent) {
237
- var _oEvent$getParameters;
238
-
239
237
  var isSplitMode = oEvent.getParameters().userExportSettings.splitCells,
240
238
  isRLTLanguage = sap.ui.getCore().getConfiguration().getRTL(),
241
239
  oTableController = oEvent.getSource(),
242
- oExportColumns = (_oEvent$getParameters = oEvent.getParameters().exportSettings.workbook) === null || _oEvent$getParameters === void 0 ? void 0 : _oEvent$getParameters.columns,
240
+ oExportSettings = oEvent.getParameters().exportSettings,
243
241
  oTableColumns = this.tableDefinition.columns;
244
- TableAPI.updateExportSettings(oExportColumns, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
242
+ TableAPI.updateExportSettings(oExportSettings, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
245
243
  }
246
244
  /**
247
- * Handles the MDC DataStateIndicator plugin to display messageStrip on a table.
245
+ * Handles the DataStateIndicator plugin to display messageStrip on a table.
248
246
  * @param oMessage
249
247
  * @param oTable
250
248
  * @name dataStateFilter
@@ -289,7 +287,12 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
289
287
  }
290
288
  }, {
291
289
  key: "updateExportSettings",
292
- value: function updateExportSettings(oExportColumns, oColumns, oTableController, isSplitMode, isRLTLanguage) {
290
+ value: function updateExportSettings(oExportSettings, oColumns, oTableController, isSplitMode, isRLTLanguage) {
291
+ var _oExportSettings$work;
292
+
293
+ //Set static sizeLimit during export
294
+ oExportSettings.dataSource.sizeLimit = 1000;
295
+ var oExportColumns = (_oExportSettings$work = oExportSettings.workbook) === null || _oExportSettings$work === void 0 ? void 0 : _oExportSettings$work.columns;
293
296
  oExportColumns.forEach(function (oColumnExport) {
294
297
  var aExportLabels = [];
295
298
  oColumns === null || oColumns === void 0 ? void 0 : oColumns.forEach(function (column) {
@@ -364,7 +367,7 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
364
367
 
365
368
  oColumnExport.label = aExportLabels.join(" - ");
366
369
  });
367
- return oExportColumns;
370
+ return oExportSettings;
368
371
  }
369
372
  }, {
370
373
  key: "_getFieldGroupExportLabel",
@@ -473,4 +476,4 @@ sap.ui.define(["sap/fe/core/helpers/ClassSupport", "sap/fe/core/helpers/PasteHel
473
476
  }), _applyDecoratedDescriptor(_class2.prototype, "onTableRowPress", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onTableRowPress"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onInternalDataReceived", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onInternalDataReceived"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPaste", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onPaste"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onPasteButtonPressed", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onPasteButtonPressed"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onBeforeExport", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onBeforeExport"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onDataStateChange", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onDataStateChange"), _class2.prototype), _applyDecoratedDescriptor(_class2.prototype, "onMassEditButtonPressed", [EventHandler], Object.getOwnPropertyDescriptor(_class2.prototype, "onMassEditButtonPressed"), _class2.prototype)), _class2)) || _class);
474
477
  return TableAPI;
475
478
  }, false);
476
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlQVBJLnRzIl0sIm5hbWVzIjpbIlRhYmxlQVBJIiwiQVBJQ2xhc3MiLCJNYWNyb0NvbnRleHQiLCJQcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJvRXZlbnQiLCJvQ29udHJvbGxlciIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJpc0EiLCJnZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0Q29udHJvbGxlciIsIm1lc3NhZ2VIYW5kbGVyIiwic2hvd01lc3NhZ2VEaWFsb2ciLCJ0YWJsZURlZmluaXRpb24iLCJjb250cm9sIiwiZW5hYmxlUGFzdGUiLCJnZXRNb2RlbCIsImFSYXdQYXN0ZWREYXRhIiwib1RhYmxlIiwiZ2V0U291cmNlIiwiYlBhc3RlRW5hYmxlZCIsImRhdGEiLCJvUmVzb3VyY2VNb2RlbCIsIlBhc3RlSGVscGVyIiwicGFyc2VEYXRhRm9yVGFibGVQYXN0ZSIsInRoZW4iLCJhUGFyc2VkRGF0YSIsImxlbmd0aCIsIl9lZGl0RmxvdyIsImNyZWF0ZU11bHRpcGxlRG9jdW1lbnRzIiwiZ2V0Um93QmluZGluZyIsImNyZWF0ZUF0RW5kIiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk1lc3NhZ2VCb3giLCJnZXRUZXh0IiwidGl0bGUiLCJzRGV2aWNlT3MiLCJEZXZpY2UiLCJvcyIsIm5hbWUiLCJzRGV2aWNlU3lzdGVtIiwic3lzdGVtIiwic01lc3NhZ2VPblBhc3RlQnV0dG9uIiwicGhvbmUiLCJ0YWJsZXQiLCJjb21iaSIsImRlc2t0b3AiLCJpbmZvcm1hdGlvbiIsIm9uQ2xvc2UiLCJjb250ZW50IiwiZ2V0QWdncmVnYXRpb24iLCJhcHBseUZvY3VzSW5mbyIsInByZXZlbnRTY3JvbGwiLCJpc1NwbGl0TW9kZSIsImdldFBhcmFtZXRlcnMiLCJ1c2VyRXhwb3J0U2V0dGluZ3MiLCJzcGxpdENlbGxzIiwiaXNSTFRMYW5ndWFnZSIsImdldENvbmZpZ3VyYXRpb24iLCJnZXRSVEwiLCJvVGFibGVDb250cm9sbGVyIiwib0V4cG9ydENvbHVtbnMiLCJleHBvcnRTZXR0aW5ncyIsIndvcmtib29rIiwiY29sdW1ucyIsIm9UYWJsZUNvbHVtbnMiLCJ1cGRhdGVFeHBvcnRTZXR0aW5ncyIsIm9EYXRhU3RhdGVJbmRpY2F0b3IiLCJhRmlsdGVyZWRNZXNzYWdlcyIsIm9JbnRlcm5hbE1vZGVsIiwic2V0UHJvcGVydHkiLCJnZXRCaW5kaW5nQ29udGV4dCIsIlBhZ2VDb250cm9sbGVyIiwiTWFzc0VkaXRIYW5kbGVyIiwib3Blbk1hc3NFZGl0RGlhbG9nIiwib01lc3NhZ2UiLCJvVGFibGVBUEkiLCJnZXRQYXJlbnQiLCJlbmFibGVEYXRhU3RhdGVGaWx0ZXIiLCJvQ29sdW1ucyIsImZvckVhY2giLCJvQ29sdW1uRXhwb3J0IiwiYUV4cG9ydExhYmVscyIsImNvbHVtbiIsIm9Db2x1bW4iLCJpc1VuaXQiLCJzb21lIiwidW5pdCIsInByb3BlcnR5IiwiRmllbGRHcm91cExhYmVsIiwiX2dldEZpZWxkR3JvdXBFeHBvcnRMYWJlbCIsInVuc2hpZnQiLCJkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsIiwiX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwiLCJpc0RhdGFQb2ludEZha2VUYXJnZXRQcm9wZXJ0eSIsInJlbGF0aXZlUGF0aCIsImV4cG9ydENvbnRhY3RQcm9wZXJ0eSIsInByb3BlcnR5SW5mb3MiLCJ0b1N0cmluZyIsImxhYmVsIiwicHJvcCIsImluY2x1ZGVzIiwiQXJyYXkiLCJpc0FycmF5IiwibWFwIiwicHVzaCIsIkRlbGVnYXRlVXRpbCIsImdldExvY2FsaXplZFRleHQiLCJmaWx0ZXIiLCJpbmRleCIsImluZGV4T2YiLCJyZXZlcnNlIiwiam9pbiIsImNvbHVtbklkIiwiZmllbGRMYWJlbCIsIk1hY3JvQVBJIiwiRXZlbnQiLCJF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QkFDQUosT0FBTyxDQUFDYSxhQURSLG1EQUNBLHVCQUF1QkksUUFBdkIsQ0FBZ0MsZUFBZXBCLGFBQWEsQ0FBQ08sUUFBN0QsQ0FKRCxLQUtBLDBCQUFBSixPQUFPLENBQUNXLFlBQVIsZ0ZBQXNCZSxPQUF0QixDQUE4Qix3Q0FBOUIsT0FBNEUsQ0FBQyxDQU45RSxFQU9FO0FBQ0QsaUJBQU9KLFlBQVksQ0FBQ0MsZ0JBQWIsQ0FBOEJ2QixPQUFPLENBQUNlLEtBQXRDLEVBQXVEdkMsZ0JBQXZELENBQVA7QUFDQTtBQUNEOzs7O0lBNVhxQnVELFE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF5R3JCQyxLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1RUF1Q0FDLFksc0tBZUFBLFksOEpBTUFBLFksNEpBbUNBQSxZLG1LQWlDQUEsWSxnS0FvQ0FBLFkseUtBZ0hBQSxZO1NBT2FqSSxRIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElDbGFzcywgRXZlbnRIYW5kbGVyLCBNYWNyb0NvbnRleHQsIFByb3BlcnR5LCBFdmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgUGFzdGVIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVyc1wiO1xuaW1wb3J0IHsgTWVzc2FnZUJveCB9IGZyb20gXCJzYXAvbVwiO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSBcInNhcC91aVwiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcInNhcC9iYXNlXCI7XG5pbXBvcnQgeyBQYWdlQ29udHJvbGxlciB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcIi4vTWFjcm9BUElcIjtcbmltcG9ydCB7IE1hc3NFZGl0SGFuZGxlciB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL21hc3NlZGl0XCI7XG5pbXBvcnQgeyBEZWxlZ2F0ZVV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGFjdGlvbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUgdG9vbGJhclxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBhY3Rpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dGV4dDogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBhY3Rpb24gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2xiYXIgdG8gcHJvcGVybHkgcGxhY2UgdGhpcyBvbmVcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YW5jaG9yPzogc3RyaW5nO1xuXHQvKipcblx0ICogRGVmaW5lcyB3aGVyZSB0aGlzIGFjdGlvbiBzaG91bGQgYmUgcGxhY2VkIHJlbGF0aXZlIHRvIHRoZSBkZWZpbmVkIGFuY2hvclxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYEJlZm9yZWAgYW5kIGBBZnRlcmBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cGxhY2VtZW50Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgdGhlIGFjdGlvblxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRwcmVzczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGNvbHVtbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUuXG4gKlxuICogVGhlIHRlbXBsYXRlIGZvciB0aGUgY29sdW1uIGhhcyB0byBiZSBwcm92aWRlZCBhcyB0aGUgZGVmYXVsdCBhZ2dyZWdhdGlvblxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkNvbHVtblxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgdHlwZSBDb2x1bW4gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBjb2x1bW4gaGVhZGVyXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhlYWRlcjogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBjb2x1bW4gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlIHRvIHByb3Blcmx5IHBsYWNlIHRoaXMgb25lXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFuY2hvcj86IHN0cmluZztcblx0LyoqXG5cdCAqIERlZmluZXMgd2hlcmUgdGhpcyBjb2x1bW4gc2hvdWxkIGJlIHBsYWNlZCByZWxhdGl2ZSB0byB0aGUgZGVmaW5lZCBhbmNob3Jcblx0ICpcblx0ICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBCZWZvcmVgIGFuZCBgQWZ0ZXJgXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHBsYWNlbWVudD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBjcmVhdGUgYSB0YWJsZSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBVc3VhbGx5LCBhIExpbmVJdGVtIG9yIFByZXNlbnRhdGlvblZhcmlhbnQgYW5ub3RhdGlvbiBpcyBleHBlY3RlZCwgYnV0IHRoZSBUYWJsZSBidWlsZGluZyBibG9jayBjYW4gYWxzbyBiZSB1c2VkIHRvIGRpc3BsYXkgYW4gRW50aXR5U2V0LlxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNybzpUYWJsZSBpZD1cIk15VGFibGVcIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5UYWJsZVxuICogQHB1YmxpY1xuICovXG5AQVBJQ2xhc3MoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpXG5jbGFzcyBUYWJsZUFQSSBleHRlbmRzIE1hY3JvQVBJIHtcblx0QE1hY3JvQ29udGV4dCgpXG5cdHRhYmxlRGVmaW5pdGlvbiE6IFRhYmxlVmlzdWFsaXphdGlvbjtcblxuXHQvKipcblx0ICogQW4gZXhwcmVzc2lvbiB0aGF0IGFsbG93cyB5b3UgdG8gY29udHJvbCB0aGUgJ3JlYWQtb25seScgc3RhdGUgb2YgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBJZiB5b3UgZG8gbm90IHNldCBhbnkgZXhwcmVzc2lvbiwgU0FQIEZpb3JpIGVsZW1lbnRzIGhvb2tzIGludG8gdGhlIHN0YW5kYXJkIGxpZmVjeWNsZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgc3RhdGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHJlYWRPbmx5ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHRhYmxlIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEFuIGV4cHJlc3Npb24gdGhhdCBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlICdidXN5JyBzdGF0ZSBvZiB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGJ1c3khOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHRhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBtYWNybyB0byByZW5kZXIgdGhlIGRhdGEuXG5cdCAqXG5cdCAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgR3JpZFRhYmxlYCBhbmQgYFJlc3BvbnNpdmVUYWJsZWBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcIlJlc3BvbnNpdmVUYWJsZVwiIH0pXG5cdHR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBleHBvcnQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0ZW5hYmxlRXhwb3J0ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIHBhc3RlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlIGlzIGVuYWJsZWQgb3Igbm90LlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRlbmFibGVQYXN0ZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIGNhbiBiZSBvcGVuZWQgaW4gZnVsbHNjcmVlbiBtb2RlIG9yIG5vdC5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlRnVsbFNjcmVlbiE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHNlbGVjdGlvbiBtb2RlIHRvIGJlIHVzZWQgYnkgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYE5vbmVgLCBgU2luZ2xlYCwgYE11bHRpYCBvciBgQXV0b2Bcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRzZWxlY3Rpb25Nb2RlITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGhlYWRlciB0ZXh0IHRoYXQgaXMgc2hvd24gaW4gdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGhlYWRlciE6IHN0cmluZztcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdGV4dCB0aGF0IGlzIHNob3duIGluIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlQXV0b0NvbHVtbldpZHRoITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIGhlYWRlciB0ZXh0IHNob3VsZCBiZSBzaG93biBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0aGVhZGVyVmlzaWJsZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSByb3c7IHRoZSBldmVudCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCByb3cgd2FzIGNob3Nlbi5cblx0ICpcblx0ICogWW91IGNhbiBzZXQgdGhpcyBpbiBvcmRlciB0byBoYW5kbGUgdGhlIG5hdmlnYXRpb24gbWFudWFsbHkuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBFdmVudFxuXHRyb3dQcmVzcyE6IEZ1bmN0aW9uO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGljaCBvcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgdGFibGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZy5cblx0ICpcblx0ICogSWYgaXQgaXMgc2V0IHRvIGB0cnVlYCwgYWxsIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoaXMga2luZCBvZiB0YWJsZSBhcmUgZW5hYmxlZC48YnIvPlxuXHQgKiBJZiBpdCBpcyBzZXQgdG8gYGZhbHNlYCwgcGVyc29uYWxpemF0aW9uIGlzIGRpc2FibGVkLjxici8+XG5cdCAqPGJyLz5cblx0ICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBtb3JlIGdyYW51bGFyIGNvbnRyb2wgZm9yIHRoZSBwZXJzb25hbGl6YXRpb24gYnkgcHJvdmlkaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgd2l0aCB0aGUgb3B0aW9ucyB5b3Ugd2FudCB0byBiZSBhdmFpbGFibGUuPGJyLz5cblx0ICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlOjxici8+XG5cdCAqICAtIFNvcnQ8YnIvPlxuXHQgKiAgLSBDb2x1bW48YnIvPlxuXHQgKiAgLSBGaWx0ZXI8YnIvPlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW58c3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogdHJ1ZSB9KVxuXHRwZXJzb25hbGl6YXRpb24hOiBib29sZWFuIHwgc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB0aGUga2luZCBvZiB2YXJpYW50IG1hbmFnZW1lbnQgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBmb3IgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYFBhZ2VgLCBgQ29udHJvbGAgYW5kIGBOb25lYC48YnIvPlxuXHQgKiBJZiB0aGUgdGFibGUgaXMgdXNlZCB3aXRoaW4gYSBTQVAgRmlvcmkgZWxlbWVudHMgdGVtcGxhdGUsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgY3VycmVudCBwYWdlIHZhcmlhbnQgbWFuYWdlbWVudC48YnIvPlxuXHQgKiBPdGhlcndpc2UgaXQncyBgTm9uZWAuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmFyaWFudE1hbmFnZW1lbnQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBkYXRhU3RhdGVJbmRpY2F0b3IgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRlbmFibGVEYXRhU3RhdGVGaWx0ZXIhOiBib29sZWFuO1xuXG5cdEBFdmVudEhhbmRsZXJcblx0b25UYWJsZVJvd1ByZXNzKG9FdmVudDogVUk1RXZlbnQsIG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgb0NvbnRleHQ6IENvbnRleHQsIG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHQvLyBJbiB0aGUgY2FzZSBvZiBhbiBhbmFseXRpY2FsIHRhYmxlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gYSBjb250ZXh0IGNvcnJlc3BvbmRpbmcgdG8gYSB2aXN1YWwgZ3JvdXAgb3IgZ3JhbmQgdG90YWxcblx0XHQvLyAtLT4gQ2FuY2VsIG5hdmlnYXRpb25cblx0XHRpZiAoXG5cdFx0XHRvQ29udGV4dCAmJlxuXHRcdFx0b0NvbnRleHQuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHRcIikgJiZcblx0XHRcdHR5cGVvZiBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSA9PT0gXCJib29sZWFuXCJcblx0XHQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRyb2xsZXIuX3JvdXRpbmcubmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0QEV2ZW50SGFuZGxlclxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImVycm9yXCIpKSB7XG5cdFx0XHR0aGlzLmdldENvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5zaG93TWVzc2FnZURpYWxvZygpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGUob0V2ZW50OiBVSTVFdmVudCwgb0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0Ly8gSWYgcGFzdGUgaXMgZGlzYWJsZSBvciBpZiB3ZSdyZSBub3QgaW4gZWRpdCBtb2RlLCB3ZSBjYW4ndCBwYXN0ZSBhbnl0aGluZ1xuXHRcdGlmICghdGhpcy50YWJsZURlZmluaXRpb24uY29udHJvbC5lbmFibGVQYXN0ZSB8fCAhdGhpcy5nZXRNb2RlbChcInVpXCIpLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIikpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhUmF3UGFzdGVkRGF0YSA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJkYXRhXCIpLFxuXHRcdFx0b1RhYmxlID0gb0V2ZW50LmdldFNvdXJjZSgpLFxuXHRcdFx0YlBhc3RlRW5hYmxlZCA9IG9UYWJsZS5kYXRhKClbXCJlbmFibGVQYXN0ZVwiXTtcblx0XHRsZXQgb1Jlc291cmNlTW9kZWw7XG5cblx0XHRpZiAoYlBhc3RlRW5hYmxlZCA9PT0gdHJ1ZSB8fCBiUGFzdGVFbmFibGVkID09PSBcInRydWVcIikge1xuXHRcdFx0UGFzdGVIZWxwZXIucGFyc2VEYXRhRm9yVGFibGVQYXN0ZShhUmF3UGFzdGVkRGF0YSwgb1RhYmxlKVxuXHRcdFx0XHQudGhlbihhUGFyc2VkRGF0YSA9PiB7XG5cdFx0XHRcdFx0aWYgKGFQYXJzZWREYXRhICYmIGFQYXJzZWREYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQ29udHJvbGxlci5fZWRpdEZsb3cuY3JlYXRlTXVsdGlwbGVEb2N1bWVudHMoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRSb3dCaW5kaW5nKCksXG5cdFx0XHRcdFx0XHRcdGFQYXJzZWREYXRhLFxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb250cm9sLmNyZWF0ZUF0RW5kLFxuXHRcdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcGFzdGluZyBkYXRhXCIsIG9FcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUmVzb3VyY2VNb2RlbCA9IHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cdFx0XHRNZXNzYWdlQm94LmVycm9yKG9SZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX09QX0NPTlRST0xMRVJfU0FQRkVfUEFTVEVfRElTQUJMRURfTUVTU0FHRVwiKSwge1xuXHRcdFx0XHR0aXRsZTogb1Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGVCdXR0b25QcmVzc2VkKCkge1xuXHRcdGNvbnN0IG9SZXNvdXJjZU1vZGVsID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpLFxuXHRcdFx0c0RldmljZU9zID0gRGV2aWNlLm9zLm5hbWUsXG5cdFx0XHRzRGV2aWNlU3lzdGVtID0gRGV2aWNlLnN5c3RlbTtcblx0XHQvLyBXZSBuZWVkIGEgZGVmYXVsdCBpbiBjYXNlIHdlIGZhbGwgdGhyb3VnaCB0aGUgY3JhY2tcblx0XHRsZXQgc01lc3NhZ2VPblBhc3RlQnV0dG9uOiBzdHJpbmcgPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0Ly8gT24gbW9iaWxlLCB0aGVyZSBpcyBubyBuYXRpdmUgcGFzdGUgdHJpZ2dlcjpcblx0XHRpZiAoc0RldmljZVN5c3RlbS5waG9uZSB8fCAoc0RldmljZVN5c3RlbS50YWJsZXQgJiYgIXNEZXZpY2VTeXN0ZW0uY29tYmkpKSB7XG5cdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9UT1VDSF9ERVZJQ0VcIik7XG5cdFx0fSBlbHNlIGlmIChzRGV2aWNlU3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdHN3aXRjaCAoc0RldmljZU9zKSB7XG5cdFx0XHRcdGNhc2UgXCJ3aW5cIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJtYWNcIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9JT1NfREVTS1RPUFwiKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihzTWVzc2FnZU9uUGFzdGVCdXR0b24sIHtcblx0XHRcdG9uQ2xvc2U6ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0XHRcdC8vIFNldCB0aGUgZm9jdXMgb24gdGhlIGlubmVyIHRhYmxlIHRvIGFsbG93IHBhc3RlXG5cdFx0XHRcdFx0KHRoaXMuY29udGVudC5nZXRBZ2dyZWdhdGlvbihcIl9jb250ZW50XCIpIGFzIGFueSk/LmFwcGx5Rm9jdXNJbmZvKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gVGhpcyBldmVudCB3aWxsIGFsbG93IHVzIHRvIGludGVyY2VwdCB0aGUgZXhwb3J0IGJlZm9yZSBpcyB0cmlnZ2VyZWQgdG8gY292ZXIgc3BlY2lmaWMgY2FzZXNcblx0Ly8gdGhhdCBjb3VsZG4ndCBiZSBhZGRyZXNzZWQgb24gdGhlIHByb3BlcnR5SW5mb3MgZm9yIGVhY2ggY29sdW1uLlxuXHQvLyBlLmcuIEZpeGVkIFRhcmdldCBWYWx1ZSBmb3IgdGhlIGRhdGFwb2ludHNcblx0QEV2ZW50SGFuZGxlclxuXHRvbkJlZm9yZUV4cG9ydChvRXZlbnQ6IFVJNUV2ZW50KSB7XG5cdFx0Y29uc3QgaXNTcGxpdE1vZGUgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpLnVzZXJFeHBvcnRTZXR0aW5ncy5zcGxpdENlbGxzLFxuXHRcdFx0aXNSTFRMYW5ndWFnZSA9IHNhcC51aVxuXHRcdFx0XHQuZ2V0Q29yZSgpXG5cdFx0XHRcdC5nZXRDb25maWd1cmF0aW9uKClcblx0XHRcdFx0LmdldFJUTCgpLFxuXHRcdFx0b1RhYmxlQ29udHJvbGxlciA9IG9FdmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdG9FeHBvcnRDb2x1bW5zID0gb0V2ZW50LmdldFBhcmFtZXRlcnMoKS5leHBvcnRTZXR0aW5ncy53b3JrYm9vaz8uY29sdW1ucyxcblx0XHRcdG9UYWJsZUNvbHVtbnMgPSB0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb2x1bW5zO1xuXG5cdFx0VGFibGVBUEkudXBkYXRlRXhwb3J0U2V0dGluZ3Mob0V4cG9ydENvbHVtbnMsIG9UYWJsZUNvbHVtbnMsIG9UYWJsZUNvbnRyb2xsZXIsIGlzU3BsaXRNb2RlLCBpc1JMVExhbmd1YWdlKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSBNREMgRGF0YVN0YXRlSW5kaWNhdG9yIHBsdWdpbiB0byBkaXNwbGF5IG1lc3NhZ2VTdHJpcCBvbiBhIHRhYmxlLlxuXHQgKiBAcGFyYW0gb01lc3NhZ2Vcblx0ICogQHBhcmFtIG9UYWJsZVxuXHQgKiBAbmFtZSBkYXRhU3RhdGVGaWx0ZXJcblx0ICogQHJldHVybnMge2Jvb2xlYW59IFdoZXRoZXIgdG8gcmVuZGVyIHZpc2libGUgdGhlIG1lc3NhZ2VTdHJpcFxuXHQgKi9cblx0c3RhdGljIHNob3VsZEZpbHRlckRhdGFTdGF0ZU1lc3NhZ2Uob01lc3NhZ2U6IGFueSwgb1RhYmxlOiBhbnkpOiBib29sZWFuIHtcblx0XHRsZXQgb1RhYmxlQVBJID0gb1RhYmxlLmdldFBhcmVudCgpO1xuXHRcdHdoaWxlICghb1RhYmxlQVBJLmlzQShcInNhcC5mZS5tYWNyb3MuVGFibGVBUElcIikpIHtcblx0XHRcdG9UYWJsZUFQSSA9IG9UYWJsZUFQSS5nZXRQYXJlbnQoKTtcblx0XHR9XG5cdFx0cmV0dXJuIG9UYWJsZUFQSS50YWJsZURlZmluaXRpb24uZW5hYmxlRGF0YVN0YXRlRmlsdGVyO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoaXMgZXZlbnQgaGFuZGxlcyB0aGUgRGF0YVN0YXRlIG9mIHRoZSBEYXRhU3RhdGVJbmRpY2F0b3IgcGx1Z2luIGZyb20gTURDIG9uIGEgdGFibGUuXG5cdCAqIEl0J3MgZmlyZWQgd2hlbiBuZXcgZXJyb3IgbWVzc2FnZXMgYXJlIHNlbnQgZnJvbSB0aGUgYmFja2VuZCB0byB1cGRhdGUgcm93IGhpZ2hsaWdodGluZy5cblx0ICpcblx0ICogQG5hbWUgb25EYXRhU3RhdGVDaGFuZ2Vcblx0ICogQHBhcmFtIHtvYmplY3R9IG9FdmVudCBFdmVudCBvYmplY3Rcblx0ICovXG5cdEBFdmVudEhhbmRsZXJcblx0b25EYXRhU3RhdGVDaGFuZ2Uob0V2ZW50OiBVSTVFdmVudCkge1xuXHRcdGNvbnN0IG9EYXRhU3RhdGVJbmRpY2F0b3IgPSBvRXZlbnQuZ2V0U291cmNlKCk7XG5cdFx0Y29uc3QgYUZpbHRlcmVkTWVzc2FnZXMgPSBvRXZlbnQuZ2V0UGFyYW1ldGVyKFwiZmlsdGVyZWRNZXNzYWdlc1wiKTtcblx0XHRpZiAoYUZpbHRlcmVkTWVzc2FnZXMpIHtcblx0XHRcdGNvbnN0IG9JbnRlcm5hbE1vZGVsID0gb0RhdGFTdGF0ZUluZGljYXRvci5nZXRNb2RlbChcImludGVybmFsXCIpO1xuXHRcdFx0b0ludGVybmFsTW9kZWwuc2V0UHJvcGVydHkoXCJmaWx0ZXJlZE1lc3NhZ2VzXCIsIGFGaWx0ZXJlZE1lc3NhZ2VzLCBvRGF0YVN0YXRlSW5kaWNhdG9yLmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikpO1xuXHRcdH1cblx0fVxuXG5cdHN0YXRpYyB1cGRhdGVFeHBvcnRTZXR0aW5ncyhcblx0XHRvRXhwb3J0Q29sdW1uczogYW55LFxuXHRcdG9Db2x1bW5zOiBUYWJsZUNvbHVtbltdLFxuXHRcdG9UYWJsZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyLFxuXHRcdGlzU3BsaXRNb2RlOiBib29sZWFuLFxuXHRcdGlzUkxUTGFuZ3VhZ2U6IGJvb2xlYW5cblx0KTogYW55IHtcblx0XHRvRXhwb3J0Q29sdW1ucy5mb3JFYWNoKChvQ29sdW1uRXhwb3J0OiBhbnkpID0+IHtcblx0XHRcdGxldCBhRXhwb3J0TGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0b0NvbHVtbnM/LmZvckVhY2goY29sdW1uID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbHVtbiA9IGNvbHVtbiBhcyBBbm5vdGF0aW9uVGFibGVDb2x1bW47XG5cdFx0XHRcdGlmIChpc1NwbGl0TW9kZSkge1xuXHRcdFx0XHRcdC8vIGFFeHBvcnRMYWJlbHMgd2lsbCBjb250YWluIGxhYmVscyBmcm9tIGEgRmllbGRHcm91cCwgYSB0ZXh0IGFubm90YXRpb24gYW5kIGEgRGF0YVBvaW50XG5cdFx0XHRcdFx0Ly8gVGhlc2UgbGFiZWxzIHdpbGwgYmUgdXNlZCBmb3IgY2hpbGQgcHJvcGVydGllcyAoc2ltcGxlIHByb3BlcnRpZXMpIGZyb20gY29tcGxleFByb3BlcnR5XG5cdFx0XHRcdFx0Ly8gVW5pdC9jdXJyZW5jeSBwcm9wZXJ0aWVzIHdpbGwgYmUgZGlzbWlzcyBhcyBpdCBjb3VsZCBiZSB1c2VkIGluIHNldmVyYWwgZGF0YWZpZWxkcy5cblx0XHRcdFx0XHRjb25zdCBpc1VuaXQgPSBvQ29sdW1ucy5zb21lKGNvbHVtbiA9PiAoY29sdW1uIGFzIEFubm90YXRpb25UYWJsZUNvbHVtbikudW5pdCA9PT0gb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSk7XG5cdFx0XHRcdFx0Ly8gQ3JlYXRlIEV4cG9ydGluZyBsYWJlbHMgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBGaWVsZEdyb3VwTGFiZWwgPSBUYWJsZUFQSS5fZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQsIG9Db2x1bW4sIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdFx0XHRcdGlmIChGaWVsZEdyb3VwTGFiZWwpIHtcblx0XHRcdFx0XHRcdGFFeHBvcnRMYWJlbHMudW5zaGlmdChGaWVsZEdyb3VwTGFiZWwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBGb3IgYSB0ZXh0IGFubm90YXRpb24sIGV4cG9ydCBsYWJlbCB0ZW1wbGF0ZSB1c2VkIGlzIDx2YWx1ZT4gLSA8ZGVzY3JpcHRpb24+IGFuZCBmb3IgYSBEYXRhUG9pbnQgPGRhdGFwb2ludFZhbHVlPiAtIDxUYXJnZXRWYWx1ZT4uXG5cdFx0XHRcdFx0Ly8gSW4gYm90aCBjYXNlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBuZWVkZWRcblx0XHRcdFx0XHRjb25zdCBkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsID0gVGFibGVBUEkuX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LFxuXHRcdFx0XHRcdFx0b0NvbHVtbixcblx0XHRcdFx0XHRcdG9UYWJsZUNvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRpc1VuaXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKSB7XG5cdFx0XHRcdFx0XHRhRXhwb3J0TGFiZWxzLnVuc2hpZnQoZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly9BZGQgVGFyZ2V0VmFsdWUgb24gZHVtbXkgY3JlYXRlZCBwcm9wZXJ0eSB3aGVuICBleHBvcnRpbmcgb24gc3BsaXQgbW9kZVxuXHRcdFx0XHRcdGlmIChvQ29sdW1uLmlzRGF0YVBvaW50RmFrZVRhcmdldFByb3BlcnR5ICYmIG9Db2x1bW4ucmVsYXRpdmVQYXRoID09PSBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LnByb3BlcnR5ID0gW29Db2x1bW5FeHBvcnQucHJvcGVydHldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvL01vZGlmeSBleHBvcnRlZCB2YWx1ZSB3aGVuIHVzaW5nIENvbW11bmljYXRpb24uQ29udGFjdCBkYXRhRmllbGRGb3JBbm5vdGF0aW9uXG5cdFx0XHRcdC8vY29udGFjdD5mbiBwcm9wZXJ0eSBzaG91bGQgYmUgZXhwb3J0ZWRcblx0XHRcdFx0aWYgKG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5ICYmIGNvbHVtbi5wcm9wZXJ0eUluZm9zKSB7XG5cdFx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPT09IDEgJiYgY29sdW1uLnByb3BlcnR5SW5mb3M/LnRvU3RyaW5nKCkgPT09IG9Db2x1bW5FeHBvcnQucHJvcGVydHkudG9TdHJpbmcoKSkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5O1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5sYWJlbCA9IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LnNvbWUocHJvcCA9PiBvQ29sdW1uRXhwb3J0LnByb3BlcnR5LmluY2x1ZGVzKHByb3ApKSAmJlxuXHRcdFx0XHRcdFx0QXJyYXkuaXNBcnJheShvQ29sdW1uRXhwb3J0LnByb3BlcnR5KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW5FeHBvcnQucHJvcGVydHk/Lm1hcCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5zb21lKHByb3AgPT4gcHJvcCA9PT0gcHJvcGVydHkpID8gb0NvbHVtbi5leHBvcnRDb250YWN0UHJvcGVydHkgOiBwcm9wZXJ0eTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRhRXhwb3J0TGFiZWxzLnB1c2goRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbkV4cG9ydC5sYWJlbCwgb1RhYmxlQ29udHJvbGxlcikpO1xuXHRcdFx0aWYgKGFFeHBvcnRMYWJlbHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlIGxhYmVscyAoZS5nLiBGaWVsZEdyb3VwIGxhYmVsIGlzIHRoZSBzYW1lIGFzIHRoZSBsYWJlbCBvZiBvbmUgb2YgdGhlIHByb3BlcnRpZXMpXG5cdFx0XHRcdGFFeHBvcnRMYWJlbHMgPSBhRXhwb3J0TGFiZWxzLmZpbHRlcihmdW5jdGlvbihsYWJlbCwgaW5kZXgpIHtcblx0XHRcdFx0XHRpZiAoYUV4cG9ydExhYmVscy5pbmRleE9mKGxhYmVsKSA9PSBpbmRleCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGxhYmVsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHQvLyBDaGVjayBpZiBhIFJUTCBsYW5ndWFnZSBpZiB1c2VkIGFuZCBpZiBzbyB3ZSBuZWVkIHRvIHJldmVyc2UgbGFiZWxzXG5cdFx0XHRpZiAoaXNSTFRMYW5ndWFnZSkge1xuXHRcdFx0XHRhRXhwb3J0TGFiZWxzLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHRcdG9Db2x1bW5FeHBvcnQubGFiZWwgPSBhRXhwb3J0TGFiZWxzLmpvaW4oXCIgLSBcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9FeHBvcnRDb2x1bW5zO1xuXHR9XG5cblx0c3RhdGljIF9nZXRGaWVsZEdyb3VwRXhwb3J0TGFiZWwob0NvbHVtbkV4cG9ydDogYW55LCBvQ29sdW1uOiBBbm5vdGF0aW9uVGFibGVDb2x1bW4sIG9UYWJsZUNvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0aWYgKFxuXHRcdFx0KG9Db2x1bW5FeHBvcnQuY29sdW1uSWQuaW5kZXhPZihcIjo6RmllbGRHcm91cDo6XCIpICE9PSAtMSB8fFxuXHRcdFx0XHQob0NvbHVtbi5leHBvcnRTZXR0aW5ncz8uZmllbGRMYWJlbCAmJiBvQ29sdW1uRXhwb3J0LmNvbHVtbklkLmluZGV4T2YoXCJfX2NvbHVtblwiKSAhPT0gLTEpKSAmJlxuXHRcdFx0KG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMob0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSkgfHxcblx0XHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5pbmNsdWRlcyhcIlByb3BlcnR5OjpcIiArIG9Db2x1bW5FeHBvcnQucHJvcGVydHkpKVxuXHRcdCkge1xuXHRcdFx0Y29uc3QgbGFiZWwgPSBvQ29sdW1uLmV4cG9ydFNldHRpbmdzPy5maWVsZExhYmVsIHx8IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRyZXR1cm4gRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQobGFiZWwgYXMgc3RyaW5nLCBvVGFibGVDb250cm9sbGVyKTtcblx0XHR9XG5cdH1cblxuXHRzdGF0aWMgX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0b0NvbHVtbkV4cG9ydDogYW55LFxuXHRcdG9Db2x1bW46IEFubm90YXRpb25UYWJsZUNvbHVtbixcblx0XHRvVGFibGVDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcixcblx0XHRpc1VuaXQ6IGJvb2xlYW5cblx0KSB7XG5cdFx0aWYgKFxuXHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zICYmXG5cdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/Lmxlbmd0aCA+IDEgJiZcblx0XHRcdCFpc1VuaXQgJiZcblx0XHRcdChvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKG9Db2x1bW5FeHBvcnQucHJvcGVydHkpIHx8XG5cdFx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMoXCJQcm9wZXJ0eTo6XCIgKyBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSkgJiZcblx0XHRcdG9Db2x1bW4ucmVsYXRpdmVQYXRoPy5pbmRleE9mKFwiQGNvbS5zYXAudm9jYWJ1bGFyaWVzLlVJLnYxLkZpZWxkR3JvdXBcIikgPT09IC0xXG5cdFx0KSB7XG5cdFx0XHRyZXR1cm4gRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbi5sYWJlbCBhcyBzdHJpbmcsIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uTWFzc0VkaXRCdXR0b25QcmVzc2VkKG9FdmVudDogVUk1RXZlbnQsIFBhZ2VDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcikge1xuXHRcdGNvbnN0IG9UYWJsZSA9IHRoaXMuY29udGVudDtcblx0XHRNYXNzRWRpdEhhbmRsZXIub3Blbk1hc3NFZGl0RGlhbG9nKG9UYWJsZSwgUGFnZUNvbnRyb2xsZXIpO1xuXHR9XG59XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQVBJO1xuIl19
479
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIlRhYmxlQVBJLnRzIl0sIm5hbWVzIjpbIlRhYmxlQVBJIiwiQVBJQ2xhc3MiLCJNYWNyb0NvbnRleHQiLCJQcm9wZXJ0eSIsInR5cGUiLCJkZWZhdWx0VmFsdWUiLCJvRXZlbnQiLCJvQ29udHJvbGxlciIsIm9Db250ZXh0IiwibVBhcmFtZXRlcnMiLCJpc0EiLCJnZXRQcm9wZXJ0eSIsIl9yb3V0aW5nIiwibmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0IiwiZ2V0UGFyYW1ldGVyIiwiZ2V0Q29udHJvbGxlciIsIm1lc3NhZ2VIYW5kbGVyIiwic2hvd01lc3NhZ2VEaWFsb2ciLCJ0YWJsZURlZmluaXRpb24iLCJjb250cm9sIiwiZW5hYmxlUGFzdGUiLCJnZXRNb2RlbCIsImFSYXdQYXN0ZWREYXRhIiwib1RhYmxlIiwiZ2V0U291cmNlIiwiYlBhc3RlRW5hYmxlZCIsImRhdGEiLCJvUmVzb3VyY2VNb2RlbCIsIlBhc3RlSGVscGVyIiwicGFyc2VEYXRhRm9yVGFibGVQYXN0ZSIsInRoZW4iLCJhUGFyc2VkRGF0YSIsImxlbmd0aCIsIl9lZGl0RmxvdyIsImNyZWF0ZU11bHRpcGxlRG9jdW1lbnRzIiwiZ2V0Um93QmluZGluZyIsImNyZWF0ZUF0RW5kIiwiY2F0Y2giLCJvRXJyb3IiLCJMb2ciLCJlcnJvciIsInNhcCIsInVpIiwiZ2V0Q29yZSIsImdldExpYnJhcnlSZXNvdXJjZUJ1bmRsZSIsIk1lc3NhZ2VCb3giLCJnZXRUZXh0IiwidGl0bGUiLCJzRGV2aWNlT3MiLCJEZXZpY2UiLCJvcyIsIm5hbWUiLCJzRGV2aWNlU3lzdGVtIiwic3lzdGVtIiwic01lc3NhZ2VPblBhc3RlQnV0dG9uIiwicGhvbmUiLCJ0YWJsZXQiLCJjb21iaSIsImRlc2t0b3AiLCJpbmZvcm1hdGlvbiIsIm9uQ2xvc2UiLCJjb250ZW50IiwiZ2V0QWdncmVnYXRpb24iLCJhcHBseUZvY3VzSW5mbyIsInByZXZlbnRTY3JvbGwiLCJpc1NwbGl0TW9kZSIsImdldFBhcmFtZXRlcnMiLCJ1c2VyRXhwb3J0U2V0dGluZ3MiLCJzcGxpdENlbGxzIiwiaXNSTFRMYW5ndWFnZSIsImdldENvbmZpZ3VyYXRpb24iLCJnZXRSVEwiLCJvVGFibGVDb250cm9sbGVyIiwib0V4cG9ydFNldHRpbmdzIiwiZXhwb3J0U2V0dGluZ3MiLCJvVGFibGVDb2x1bW5zIiwiY29sdW1ucyIsInVwZGF0ZUV4cG9ydFNldHRpbmdzIiwib0RhdGFTdGF0ZUluZGljYXRvciIsImFGaWx0ZXJlZE1lc3NhZ2VzIiwib0ludGVybmFsTW9kZWwiLCJzZXRQcm9wZXJ0eSIsImdldEJpbmRpbmdDb250ZXh0IiwiUGFnZUNvbnRyb2xsZXIiLCJNYXNzRWRpdEhhbmRsZXIiLCJvcGVuTWFzc0VkaXREaWFsb2ciLCJvTWVzc2FnZSIsIm9UYWJsZUFQSSIsImdldFBhcmVudCIsImVuYWJsZURhdGFTdGF0ZUZpbHRlciIsIm9Db2x1bW5zIiwiZGF0YVNvdXJjZSIsInNpemVMaW1pdCIsIm9FeHBvcnRDb2x1bW5zIiwid29ya2Jvb2siLCJmb3JFYWNoIiwib0NvbHVtbkV4cG9ydCIsImFFeHBvcnRMYWJlbHMiLCJjb2x1bW4iLCJvQ29sdW1uIiwiaXNVbml0Iiwic29tZSIsInVuaXQiLCJwcm9wZXJ0eSIsIkZpZWxkR3JvdXBMYWJlbCIsIl9nZXRGaWVsZEdyb3VwRXhwb3J0TGFiZWwiLCJ1bnNoaWZ0IiwiZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCIsIl9nZXREYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsIiwiaXNEYXRhUG9pbnRGYWtlVGFyZ2V0UHJvcGVydHkiLCJyZWxhdGl2ZVBhdGgiLCJleHBvcnRDb250YWN0UHJvcGVydHkiLCJwcm9wZXJ0eUluZm9zIiwidG9TdHJpbmciLCJsYWJlbCIsInByb3AiLCJpbmNsdWRlcyIsIkFycmF5IiwiaXNBcnJheSIsIm1hcCIsInB1c2giLCJEZWxlZ2F0ZVV0aWwiLCJnZXRMb2NhbGl6ZWRUZXh0IiwiZmlsdGVyIiwiaW5kZXgiLCJpbmRleE9mIiwicmV2ZXJzZSIsImpvaW4iLCJjb2x1bW5JZCIsImZpZWxkTGFiZWwiLCJNYWNyb0FQSSIsIkV2ZW50IiwiRXZlbnRIYW5kbGVyIl0sIm1hcHBpbmdzIjoiO0FBQUE7QUFDQTtBQUNBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBMEZBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7TUFFTUEsUSxXQURMQyxRQUFRLENBQUMsd0JBQUQsQyxVQUVQQyxZQUFZLEUsVUFVWkMsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRTtBQUFSLEdBQUQsQyxVQVFSRCxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBRCxDLFVBUVJELFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsWUFBWSxFQUFFO0FBQWpDLEdBQUQsQyxVQVVSRixRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLFFBQVI7QUFBa0JDLElBQUFBLFlBQVksRUFBRTtBQUFoQyxHQUFELEMsVUFRUkYsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRSxTQUFSO0FBQW1CQyxJQUFBQSxZQUFZLEVBQUU7QUFBakMsR0FBRCxDLFVBUVJGLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsWUFBWSxFQUFFO0FBQWpDLEdBQUQsQyxVQVFSRixRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLFNBQVI7QUFBbUJDLElBQUFBLFlBQVksRUFBRTtBQUFqQyxHQUFELEMsV0FVUkYsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRTtBQUFSLEdBQUQsQyxXQVFSRCxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBRCxDLFdBUVJELFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsU0FBUjtBQUFtQkMsSUFBQUEsWUFBWSxFQUFFO0FBQWpDLEdBQUQsQyxXQVFSRixRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFLFNBQVI7QUFBbUJDLElBQUFBLFlBQVksRUFBRTtBQUFqQyxHQUFELEMsV0EyQlJGLFFBQVEsQ0FBQztBQUFFQyxJQUFBQSxJQUFJLEVBQUUsZ0JBQVI7QUFBMEJDLElBQUFBLFlBQVksRUFBRTtBQUF4QyxHQUFELEMsV0FZUkYsUUFBUSxDQUFDO0FBQUVDLElBQUFBLElBQUksRUFBRTtBQUFSLEdBQUQsQyxXQU9SRCxRQUFRLENBQUM7QUFBRUMsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBRCxDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OzthQUdULHlCQUNnQkUsTUFEaEIsRUFDa0NDLFdBRGxDLEVBQytEQyxRQUQvRCxFQUNrRkMsV0FEbEYsRUFDb0c7QUFDbkc7QUFDQTtBQUNBLFlBQ0NELFFBQVEsSUFDUkEsUUFBUSxDQUFDRSxHQUFULENBQWEsK0JBQWIsQ0FEQSxJQUVBLE9BQU9GLFFBQVEsQ0FBQ0csV0FBVCxDQUFxQix1QkFBckIsQ0FBUCxLQUF5RCxTQUgxRCxFQUlFO0FBQ0QsaUJBQU8sS0FBUDtBQUNBLFNBTkQsTUFNTztBQUNOSixVQUFBQSxXQUFXLENBQUNLLFFBQVosQ0FBcUJDLHdCQUFyQixDQUE4Q0wsUUFBOUMsRUFBd0RDLFdBQXhEO0FBQ0E7QUFDRDs7O2FBRUQsZ0NBQ3VCSCxNQUR2QixFQUN5QztBQUN4QyxZQUFJQSxNQUFNLENBQUNRLFlBQVAsQ0FBb0IsT0FBcEIsQ0FBSixFQUFrQztBQUNqQyxlQUFLQyxhQUFMLEdBQXFCQyxjQUFyQixDQUFvQ0MsaUJBQXBDO0FBQ0E7QUFDRDs7O2FBQ0QsaUJBQ1FYLE1BRFIsRUFDMEJDLFdBRDFCLEVBQ3VEO0FBQUE7O0FBQ3REO0FBQ0EsWUFBSSxDQUFDLEtBQUtXLGVBQUwsQ0FBcUJDLE9BQXJCLENBQTZCQyxXQUE5QixJQUE2QyxDQUFDLEtBQUtDLFFBQUwsQ0FBYyxJQUFkLEVBQW9CVixXQUFwQixDQUFnQyxhQUFoQyxDQUFsRCxFQUFrRztBQUNqRztBQUNBOztBQUVELFlBQU1XLGNBQWMsR0FBR2hCLE1BQU0sQ0FBQ1EsWUFBUCxDQUFvQixNQUFwQixDQUF2QjtBQUFBLFlBQ0NTLE1BQU0sR0FBR2pCLE1BQU0sQ0FBQ2tCLFNBQVAsRUFEVjtBQUFBLFlBRUNDLGFBQWEsR0FBR0YsTUFBTSxDQUFDRyxJQUFQLEdBQWMsYUFBZCxDQUZqQjtBQUdBLFlBQUlDLGNBQUo7O0FBRUEsWUFBSUYsYUFBYSxLQUFLLElBQWxCLElBQTBCQSxhQUFhLEtBQUssTUFBaEQsRUFBd0Q7QUFDdkRHLFVBQUFBLFdBQVcsQ0FBQ0Msc0JBQVosQ0FBbUNQLGNBQW5DLEVBQW1EQyxNQUFuRCxFQUNFTyxJQURGLENBQ08sVUFBQUMsV0FBVyxFQUFJO0FBQ3BCLGdCQUFJQSxXQUFXLElBQUlBLFdBQVcsQ0FBQ0MsTUFBWixHQUFxQixDQUF4QyxFQUEyQztBQUMxQyxxQkFBT3pCLFdBQVcsQ0FBQzBCLFNBQVosQ0FBc0JDLHVCQUF0QixDQUNOWCxNQUFNLENBQUNZLGFBQVAsRUFETSxFQUVOSixXQUZNLEVBR04sTUFBSSxDQUFDYixlQUFMLENBQXFCQyxPQUFyQixDQUE2QmlCLFdBSHZCLEVBSU4sSUFKTSxDQUFQO0FBTUE7QUFDRCxXQVZGLEVBV0VDLEtBWEYsQ0FXUSxVQUFBQyxNQUFNLEVBQUk7QUFDaEJDLFlBQUFBLEdBQUcsQ0FBQ0MsS0FBSixDQUFVLDBCQUFWLEVBQXNDRixNQUF0QztBQUNBLFdBYkY7QUFjQSxTQWZELE1BZU87QUFDTlgsVUFBQUEsY0FBYyxHQUFHYyxHQUFHLENBQUNDLEVBQUosQ0FBT0MsT0FBUCxHQUFpQkMsd0JBQWpCLENBQTBDLGFBQTFDLENBQWpCO0FBQ0FDLFVBQUFBLFVBQVUsQ0FBQ0wsS0FBWCxDQUFpQmIsY0FBYyxDQUFDbUIsT0FBZixDQUF1Qiw4Q0FBdkIsQ0FBakIsRUFBeUY7QUFDeEZDLFlBQUFBLEtBQUssRUFBRXBCLGNBQWMsQ0FBQ21CLE9BQWYsQ0FBdUIsc0JBQXZCO0FBRGlGLFdBQXpGO0FBR0E7QUFDRDs7O2FBRUQsZ0NBQ3VCO0FBQUE7O0FBQ3RCLFlBQU1uQixjQUFjLEdBQUdjLEdBQUcsQ0FBQ0MsRUFBSixDQUFPQyxPQUFQLEdBQWlCQyx3QkFBakIsQ0FBMEMsa0JBQTFDLENBQXZCO0FBQUEsWUFDQ0ksU0FBUyxHQUFHQyxNQUFNLENBQUNDLEVBQVAsQ0FBVUMsSUFEdkI7QUFBQSxZQUVDQyxhQUFhLEdBQUdILE1BQU0sQ0FBQ0ksTUFGeEIsQ0FEc0IsQ0FJdEI7O0FBQ0EsWUFBSUMscUJBQTZCLEdBQUczQixjQUFjLENBQUNtQixPQUFmLENBQXVCLG1FQUF2QixDQUFwQyxDQUxzQixDQU10Qjs7QUFDQSxZQUFJTSxhQUFhLENBQUNHLEtBQWQsSUFBd0JILGFBQWEsQ0FBQ0ksTUFBZCxJQUF3QixDQUFDSixhQUFhLENBQUNLLEtBQW5FLEVBQTJFO0FBQzFFSCxVQUFBQSxxQkFBcUIsR0FBRzNCLGNBQWMsQ0FBQ21CLE9BQWYsQ0FBdUIsZ0VBQXZCLENBQXhCO0FBQ0EsU0FGRCxNQUVPLElBQUlNLGFBQWEsQ0FBQ00sT0FBbEIsRUFBMkI7QUFDakMsa0JBQVFWLFNBQVI7QUFDQyxpQkFBSyxLQUFMO0FBQ0NNLGNBQUFBLHFCQUFxQixHQUFHM0IsY0FBYyxDQUFDbUIsT0FBZixDQUF1QixtRUFBdkIsQ0FBeEI7QUFDQTs7QUFDRCxpQkFBSyxLQUFMO0FBQ0NRLGNBQUFBLHFCQUFxQixHQUFHM0IsY0FBYyxDQUFDbUIsT0FBZixDQUF1QiwrREFBdkIsQ0FBeEI7QUFDQTtBQU5GO0FBUUE7O0FBQ0RELFFBQUFBLFVBQVUsQ0FBQ2MsV0FBWCxDQUF1QkwscUJBQXZCLEVBQThDO0FBQzdDTSxVQUFBQSxPQUFPLEVBQUUsWUFBTTtBQUNkLGdCQUFJLE1BQUksQ0FBQ0MsT0FBVCxFQUFrQjtBQUFBOztBQUNqQjtBQUNBLHVDQUFDLE1BQUksQ0FBQ0EsT0FBTCxDQUFhQyxjQUFiLENBQTRCLFVBQTVCLENBQUQsZ0ZBQWtEQyxjQUFsRCxDQUFpRTtBQUFFQyxnQkFBQUEsYUFBYSxFQUFFO0FBQWpCLGVBQWpFO0FBQ0E7QUFDRDtBQU40QyxTQUE5QztBQVFBLE8sQ0FFRDtBQUNBO0FBQ0E7Ozs7YUFDQSx3QkFDZTFELE1BRGYsRUFDaUM7QUFDaEMsWUFBTTJELFdBQVcsR0FBRzNELE1BQU0sQ0FBQzRELGFBQVAsR0FBdUJDLGtCQUF2QixDQUEwQ0MsVUFBOUQ7QUFBQSxZQUNDQyxhQUFhLEdBQUc1QixHQUFHLENBQUNDLEVBQUosQ0FDZEMsT0FEYyxHQUVkMkIsZ0JBRmMsR0FHZEMsTUFIYyxFQURqQjtBQUFBLFlBS0NDLGdCQUFnQixHQUFHbEUsTUFBTSxDQUFDa0IsU0FBUCxFQUxwQjtBQUFBLFlBTUNpRCxlQUFlLEdBQUduRSxNQUFNLENBQUM0RCxhQUFQLEdBQXVCUSxjQU4xQztBQUFBLFlBT0NDLGFBQWEsR0FBRyxLQUFLekQsZUFBTCxDQUFxQjBELE9BUHRDO0FBU0E1RSxRQUFBQSxRQUFRLENBQUM2RSxvQkFBVCxDQUE4QkosZUFBOUIsRUFBK0NFLGFBQS9DLEVBQThESCxnQkFBOUQsRUFBZ0ZQLFdBQWhGLEVBQTZGSSxhQUE3RjtBQUNBO0FBRUQ7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7Ozs7O0FBU0M7QUFDRDtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQyxpQ0FDa0IvRCxNQURsQixFQUNvQztBQUNuQyxZQUFNd0UsbUJBQW1CLEdBQUd4RSxNQUFNLENBQUNrQixTQUFQLEVBQTVCO0FBQ0EsWUFBTXVELGlCQUFpQixHQUFHekUsTUFBTSxDQUFDUSxZQUFQLENBQW9CLGtCQUFwQixDQUExQjs7QUFDQSxZQUFJaUUsaUJBQUosRUFBdUI7QUFDdEIsY0FBTUMsY0FBYyxHQUFHRixtQkFBbUIsQ0FBQ3pELFFBQXBCLENBQTZCLFVBQTdCLENBQXZCO0FBQ0EyRCxVQUFBQSxjQUFjLENBQUNDLFdBQWYsQ0FBMkIsa0JBQTNCLEVBQStDRixpQkFBL0MsRUFBa0VELG1CQUFtQixDQUFDSSxpQkFBcEIsQ0FBc0MsVUFBdEMsQ0FBbEU7QUFDQTtBQUNEOzs7YUE0R0QsaUNBQ3dCNUUsTUFEeEIsRUFDMEM2RSxjQUQxQyxFQUMwRTtBQUN6RSxZQUFNNUQsTUFBTSxHQUFHLEtBQUtzQyxPQUFwQjtBQUNBdUIsUUFBQUEsZUFBZSxDQUFDQyxrQkFBaEIsQ0FBbUM5RCxNQUFuQyxFQUEyQzRELGNBQTNDO0FBQ0E7OzthQXZJRCxzQ0FBb0NHLFFBQXBDLEVBQW1EL0QsTUFBbkQsRUFBeUU7QUFDeEUsWUFBSWdFLFNBQVMsR0FBR2hFLE1BQU0sQ0FBQ2lFLFNBQVAsRUFBaEI7O0FBQ0EsZUFBTyxDQUFDRCxTQUFTLENBQUM3RSxHQUFWLENBQWMsd0JBQWQsQ0FBUixFQUFpRDtBQUNoRDZFLFVBQUFBLFNBQVMsR0FBR0EsU0FBUyxDQUFDQyxTQUFWLEVBQVo7QUFDQTs7QUFDRCxlQUFPRCxTQUFTLENBQUNyRSxlQUFWLENBQTBCdUUscUJBQWpDO0FBQ0E7OzthQW1CRCw4QkFDQ2hCLGVBREQsRUFFQ2lCLFFBRkQsRUFHQ2xCLGdCQUhELEVBSUNQLFdBSkQsRUFLQ0ksYUFMRCxFQU1PO0FBQUE7O0FBQ047QUFDQUksUUFBQUEsZUFBZSxDQUFDa0IsVUFBaEIsQ0FBMkJDLFNBQTNCLEdBQXVDLElBQXZDO0FBRUEsWUFBTUMsY0FBYyw0QkFBR3BCLGVBQWUsQ0FBQ3FCLFFBQW5CLDBEQUFHLHNCQUEwQmxCLE9BQWpEO0FBQ0FpQixRQUFBQSxjQUFjLENBQUNFLE9BQWYsQ0FBdUIsVUFBQ0MsYUFBRCxFQUF3QjtBQUM5QyxjQUFJQyxhQUF1QixHQUFHLEVBQTlCO0FBQ0FQLFVBQUFBLFFBQVEsU0FBUixJQUFBQSxRQUFRLFdBQVIsWUFBQUEsUUFBUSxDQUFFSyxPQUFWLENBQWtCLFVBQUFHLE1BQU0sRUFBSTtBQUMzQixnQkFBTUMsT0FBTyxHQUFHRCxNQUFoQjs7QUFDQSxnQkFBSWpDLFdBQUosRUFBaUI7QUFDaEI7QUFDQTtBQUNBO0FBQ0Esa0JBQU1tQyxNQUFNLEdBQUdWLFFBQVEsQ0FBQ1csSUFBVCxDQUFjLFVBQUFILE1BQU07QUFBQSx1QkFBS0EsTUFBRCxDQUFrQ0ksSUFBbEMsS0FBMkNOLGFBQWEsQ0FBQ08sUUFBN0Q7QUFBQSxlQUFwQixDQUFmLENBSmdCLENBS2hCOztBQUNBLGtCQUFNQyxlQUFlLEdBQUd4RyxRQUFRLENBQUN5Ryx5QkFBVCxDQUFtQ1QsYUFBbkMsRUFBa0RHLE9BQWxELEVBQTJEM0IsZ0JBQTNELENBQXhCOztBQUNBLGtCQUFJZ0MsZUFBSixFQUFxQjtBQUNwQlAsZ0JBQUFBLGFBQWEsQ0FBQ1MsT0FBZCxDQUFzQkYsZUFBdEI7QUFDQSxlQVRlLENBVWhCO0FBQ0E7OztBQUNBLGtCQUFNRyx5QkFBeUIsR0FBRzNHLFFBQVEsQ0FBQzRHLDZCQUFULENBQ2pDWixhQURpQyxFQUVqQ0csT0FGaUMsRUFHakMzQixnQkFIaUMsRUFJakM0QixNQUppQyxDQUFsQzs7QUFNQSxrQkFBSU8seUJBQUosRUFBK0I7QUFDOUJWLGdCQUFBQSxhQUFhLENBQUNTLE9BQWQsQ0FBc0JDLHlCQUF0QjtBQUNBLGVBcEJlLENBc0JoQjs7O0FBQ0Esa0JBQUlSLE9BQU8sQ0FBQ1UsNkJBQVIsSUFBeUNWLE9BQU8sQ0FBQ1csWUFBUixLQUF5QmQsYUFBYSxDQUFDTyxRQUFwRixFQUE4RjtBQUM3RlAsZ0JBQUFBLGFBQWEsQ0FBQ08sUUFBZCxHQUF5QixDQUFDUCxhQUFhLENBQUNPLFFBQWYsQ0FBekI7QUFDQTtBQUNELGFBNUIwQixDQTZCM0I7QUFDQTs7O0FBQ0EsZ0JBQUlKLE9BQU8sQ0FBQ1kscUJBQVIsSUFBaUNiLE1BQU0sQ0FBQ2MsYUFBNUMsRUFBMkQ7QUFBQTs7QUFDMUQsa0JBQUksMEJBQUFkLE1BQU0sQ0FBQ2MsYUFBUCxnRkFBc0JoRixNQUF0QixNQUFpQyxDQUFqQyxJQUFzQywyQkFBQWtFLE1BQU0sQ0FBQ2MsYUFBUCxrRkFBc0JDLFFBQXRCLFFBQXFDakIsYUFBYSxDQUFDTyxRQUFkLENBQXVCVSxRQUF2QixFQUEvRSxFQUFrSDtBQUNqSGpCLGdCQUFBQSxhQUFhLENBQUNPLFFBQWQsR0FBeUJKLE9BQU8sQ0FBQ1kscUJBQWpDO0FBQ0FmLGdCQUFBQSxhQUFhLENBQUNrQixLQUFkLEdBQXNCZixPQUFPLENBQUNlLEtBQTlCO0FBQ0EsZUFIRCxNQUdPLElBQ04sMkJBQUFoQixNQUFNLENBQUNjLGFBQVAsa0ZBQXNCaEYsTUFBdEIsSUFBK0IsQ0FBL0IsNkJBQ0FtRSxPQUFPLENBQUNhLGFBRFIsa0RBQ0Esc0JBQXVCWCxJQUF2QixDQUE0QixVQUFBYyxJQUFJO0FBQUEsdUJBQUluQixhQUFhLENBQUNPLFFBQWQsQ0FBdUJhLFFBQXZCLENBQWdDRCxJQUFoQyxDQUFKO0FBQUEsZUFBaEMsQ0FEQSxJQUVBRSxLQUFLLENBQUNDLE9BQU4sQ0FBY3RCLGFBQWEsQ0FBQ08sUUFBNUIsQ0FITSxFQUlMO0FBQUE7O0FBQ0RQLGdCQUFBQSxhQUFhLENBQUNPLFFBQWQsNEJBQXlCUCxhQUFhLENBQUNPLFFBQXZDLDBEQUF5QixzQkFBd0JnQixHQUF4QixDQUE0QixVQUFDaEIsUUFBRCxFQUFzQjtBQUFBOztBQUMxRSx5QkFBTywwQkFBQUosT0FBTyxDQUFDYSxhQUFSLDBFQUF1QlgsSUFBdkIsQ0FBNEIsVUFBQWMsSUFBSTtBQUFBLDJCQUFJQSxJQUFJLEtBQUtaLFFBQWI7QUFBQSxtQkFBaEMsSUFBeURKLE9BQU8sQ0FBQ1kscUJBQWpFLEdBQXlGUixRQUFoRztBQUNBLGlCQUZ3QixDQUF6QjtBQUdBO0FBQ0Q7QUFDRCxXQTdDRDtBQThDQU4sVUFBQUEsYUFBYSxDQUFDdUIsSUFBZCxDQUFtQkMsWUFBWSxDQUFDQyxnQkFBYixDQUE4QjFCLGFBQWEsQ0FBQ2tCLEtBQTVDLEVBQW1EMUMsZ0JBQW5ELENBQW5COztBQUNBLGNBQUl5QixhQUFhLENBQUNqRSxNQUFkLEdBQXVCLENBQTNCLEVBQThCO0FBQzdCO0FBQ0FpRSxZQUFBQSxhQUFhLEdBQUdBLGFBQWEsQ0FBQzBCLE1BQWQsQ0FBcUIsVUFBU1QsS0FBVCxFQUFnQlUsS0FBaEIsRUFBdUI7QUFDM0Qsa0JBQUkzQixhQUFhLENBQUM0QixPQUFkLENBQXNCWCxLQUF0QixLQUFnQ1UsS0FBcEMsRUFBMkM7QUFDMUMsdUJBQU9WLEtBQVA7QUFDQTtBQUNELGFBSmUsQ0FBaEI7QUFLQSxXQXhENkMsQ0F5RDlDOzs7QUFDQSxjQUFJN0MsYUFBSixFQUFtQjtBQUNsQjRCLFlBQUFBLGFBQWEsQ0FBQzZCLE9BQWQ7QUFDQTs7QUFDRDlCLFVBQUFBLGFBQWEsQ0FBQ2tCLEtBQWQsR0FBc0JqQixhQUFhLENBQUM4QixJQUFkLENBQW1CLEtBQW5CLENBQXRCO0FBQ0EsU0E5REQ7QUErREEsZUFBT3RELGVBQVA7QUFDQTs7O2FBRUQsbUNBQWlDdUIsYUFBakMsRUFBcURHLE9BQXJELEVBQXFGM0IsZ0JBQXJGLEVBQXVIO0FBQUE7O0FBQ3RILFlBQ0MsQ0FBQ3dCLGFBQWEsQ0FBQ2dDLFFBQWQsQ0FBdUJILE9BQXZCLENBQStCLGdCQUEvQixNQUFxRCxDQUFDLENBQXRELElBQ0MseUJBQUExQixPQUFPLENBQUN6QixjQUFSLHdFQUF3QnVELFVBQXhCLElBQXNDakMsYUFBYSxDQUFDZ0MsUUFBZCxDQUF1QkgsT0FBdkIsQ0FBK0IsVUFBL0IsTUFBK0MsQ0FBQyxDQUR4RixNQUVDLDBCQUFBMUIsT0FBTyxDQUFDYSxhQUFSLDBFQUF1QkksUUFBdkIsQ0FBZ0NwQixhQUFhLENBQUNPLFFBQTlDLCtCQUNBSixPQUFPLENBQUNhLGFBRFIsbURBQ0EsdUJBQXVCSSxRQUF2QixDQUFnQyxlQUFlcEIsYUFBYSxDQUFDTyxRQUE3RCxDQUhELENBREQsRUFLRTtBQUFBOztBQUNELGNBQU1XLEtBQUssR0FBRywyQkFBQWYsT0FBTyxDQUFDekIsY0FBUixrRkFBd0J1RCxVQUF4QixLQUFzQzlCLE9BQU8sQ0FBQ2UsS0FBNUQ7QUFDQSxpQkFBT08sWUFBWSxDQUFDQyxnQkFBYixDQUE4QlIsS0FBOUIsRUFBK0MxQyxnQkFBL0MsQ0FBUDtBQUNBO0FBQ0Q7OzthQUVELHVDQUNDd0IsYUFERCxFQUVDRyxPQUZELEVBR0MzQixnQkFIRCxFQUlDNEIsTUFKRCxFQUtFO0FBQUE7O0FBQ0QsWUFDQ0QsT0FBTyxDQUFDYSxhQUFSLElBQ0EsMkJBQUFiLE9BQU8sQ0FBQ2EsYUFBUixrRkFBdUJoRixNQUF2QixJQUFnQyxDQURoQyxJQUVBLENBQUNvRSxNQUZELEtBR0MsMEJBQUFELE9BQU8sQ0FBQ2EsYUFBUiwwRUFBdUJJLFFBQXZCLENBQWdDcEIsYUFBYSxDQUFDTyxRQUE5QywrQkFDQUosT0FBTyxDQUFDYSxhQURSLG1EQUNBLHVCQUF1QkksUUFBdkIsQ0FBZ0MsZUFBZXBCLGFBQWEsQ0FBQ08sUUFBN0QsQ0FKRCxLQUtBLDBCQUFBSixPQUFPLENBQUNXLFlBQVIsZ0ZBQXNCZSxPQUF0QixDQUE4Qix3Q0FBOUIsT0FBNEUsQ0FBQyxDQU45RSxFQU9FO0FBQ0QsaUJBQU9KLFlBQVksQ0FBQ0MsZ0JBQWIsQ0FBOEJ2QixPQUFPLENBQUNlLEtBQXRDLEVBQXVEMUMsZ0JBQXZELENBQVA7QUFDQTtBQUNEOzs7O0lBaFlxQjBELFE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztnRkF5R3JCQyxLOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozt1RUF1Q0FDLFksc0tBZUFBLFksOEpBTUFBLFksNEpBbUNBQSxZLG1LQWlDQUEsWSxnS0FvQ0FBLFkseUtBb0hBQSxZO1NBT2FwSSxRIiwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBUElDbGFzcywgRXZlbnRIYW5kbGVyLCBNYWNyb0NvbnRleHQsIFByb3BlcnR5LCBFdmVudCB9IGZyb20gXCJzYXAvZmUvY29yZS9oZWxwZXJzL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgUGFzdGVIZWxwZXIgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVyc1wiO1xuaW1wb3J0IHsgTWVzc2FnZUJveCB9IGZyb20gXCJzYXAvbVwiO1xuaW1wb3J0IHsgRGV2aWNlIH0gZnJvbSBcInNhcC91aVwiO1xuaW1wb3J0IHsgTG9nIH0gZnJvbSBcInNhcC9iYXNlXCI7XG5pbXBvcnQgeyBQYWdlQ29udHJvbGxlciB9IGZyb20gXCJzYXAvZmUvY29yZVwiO1xuaW1wb3J0IHsgQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBUYWJsZUNvbHVtbiwgVGFibGVWaXN1YWxpemF0aW9uIH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvY29udHJvbHMvQ29tbW9uL1RhYmxlXCI7XG5pbXBvcnQgTWFjcm9BUEkgZnJvbSBcIi4vTWFjcm9BUElcIjtcbmltcG9ydCB7IE1hc3NFZGl0SGFuZGxlciB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL21hc3NlZGl0XCI7XG5pbXBvcnQgeyBEZWxlZ2F0ZVV0aWwgfSBmcm9tIFwic2FwL2ZlL21hY3Jvc1wiO1xuaW1wb3J0IHsgQ29udGV4dCB9IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjRcIjtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGFjdGlvbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUgdG9vbGJhclxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkFjdGlvblxuICogQHB1YmxpY1xuICovXG5leHBvcnQgdHlwZSBBY3Rpb24gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgYWN0aW9uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBhY3Rpb25cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0dGV4dDogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBhY3Rpb24gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRvb2xiYXIgdG8gcHJvcGVybHkgcGxhY2UgdGhpcyBvbmVcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0YW5jaG9yPzogc3RyaW5nO1xuXHQvKipcblx0ICogRGVmaW5lcyB3aGVyZSB0aGlzIGFjdGlvbiBzaG91bGQgYmUgcGxhY2VkIHJlbGF0aXZlIHRvIHRoZSBkZWZpbmVkIGFuY2hvclxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYEJlZm9yZWAgYW5kIGBBZnRlcmBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0cGxhY2VtZW50Pzogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBFdmVudCBoYW5kbGVyIHRvIGJlIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgdGhlIGFjdGlvblxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRwcmVzczogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIGEgY3VzdG9tIGNvbHVtbiB0byBiZSB1c2VkIGluc2lkZSB0aGUgdGFibGUuXG4gKlxuICogVGhlIHRlbXBsYXRlIGZvciB0aGUgY29sdW1uIGhhcyB0byBiZSBwcm92aWRlZCBhcyB0aGUgZGVmYXVsdCBhZ2dyZWdhdGlvblxuICpcbiAqIEBhbGlhcyBzYXAuZmUubWFjcm9zLnRhYmxlLkNvbHVtblxuICogQHB1YmxpY1xuICogQGV4cGVyaW1lbnRhbFxuICovXG5leHBvcnQgdHlwZSBDb2x1bW4gPSB7XG5cdC8qKlxuXHQgKiBVbmlxdWUgaWRlbnRpZmllciBvZiB0aGUgY29sdW1uXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGtleTogc3RyaW5nO1xuXHQvKipcblx0ICogVGhlIHRleHQgdGhhdCB3aWxsIGJlIGRpc3BsYXllZCBmb3IgdGhpcyBjb2x1bW4gaGVhZGVyXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGhlYWRlcjogc3RyaW5nO1xuXHQvKipcblx0ICogUmVmZXJlbmNlIHRvIHRoZSBrZXkgb2YgYW5vdGhlciBjb2x1bW4gYWxyZWFkeSBkaXNwbGF5ZWQgaW4gdGhlIHRhYmxlIHRvIHByb3Blcmx5IHBsYWNlIHRoaXMgb25lXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdGFuY2hvcj86IHN0cmluZztcblx0LyoqXG5cdCAqIERlZmluZXMgd2hlcmUgdGhpcyBjb2x1bW4gc2hvdWxkIGJlIHBsYWNlZCByZWxhdGl2ZSB0byB0aGUgZGVmaW5lZCBhbmNob3Jcblx0ICpcblx0ICogQWxsb3dlZCB2YWx1ZXMgYXJlIGBCZWZvcmVgIGFuZCBgQWZ0ZXJgXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdHBsYWNlbWVudD86IHN0cmluZztcbn07XG5cbi8qKlxuICogQnVpbGRpbmcgYmxvY2sgdXNlZCB0byBjcmVhdGUgYSB0YWJsZSBiYXNlZCBvbiB0aGUgbWV0YWRhdGEgcHJvdmlkZWQgYnkgT0RhdGEgVjQuXG4gKiA8YnI+XG4gKiBVc3VhbGx5LCBhIExpbmVJdGVtIG9yIFByZXNlbnRhdGlvblZhcmlhbnQgYW5ub3RhdGlvbiBpcyBleHBlY3RlZCwgYnV0IHRoZSBUYWJsZSBidWlsZGluZyBibG9jayBjYW4gYWxzbyBiZSB1c2VkIHRvIGRpc3BsYXkgYW4gRW50aXR5U2V0LlxuICpcbiAqXG4gKiBVc2FnZSBleGFtcGxlOlxuICogPHByZT5cbiAqICZsdDttYWNybzpUYWJsZSBpZD1cIk15VGFibGVcIiBtZXRhUGF0aD1cIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5MaW5lSXRlbVwiIC8mZ3Q7XG4gKiA8L3ByZT5cbiAqXG4gKiBAYWxpYXMgc2FwLmZlLm1hY3Jvcy5UYWJsZVxuICogQHB1YmxpY1xuICovXG5AQVBJQ2xhc3MoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpXG5jbGFzcyBUYWJsZUFQSSBleHRlbmRzIE1hY3JvQVBJIHtcblx0QE1hY3JvQ29udGV4dCgpXG5cdHRhYmxlRGVmaW5pdGlvbiE6IFRhYmxlVmlzdWFsaXphdGlvbjtcblxuXHQvKipcblx0ICogQW4gZXhwcmVzc2lvbiB0aGF0IGFsbG93cyB5b3UgdG8gY29udHJvbCB0aGUgJ3JlYWQtb25seScgc3RhdGUgb2YgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBJZiB5b3UgZG8gbm90IHNldCBhbnkgZXhwcmVzc2lvbiwgU0FQIEZpb3JpIGVsZW1lbnRzIGhvb2tzIGludG8gdGhlIHN0YW5kYXJkIGxpZmVjeWNsZSB0byBkZXRlcm1pbmUgdGhlIGN1cnJlbnQgc3RhdGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHJlYWRPbmx5ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIHRhYmxlIGNvbnRyb2wuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0aWQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIEFuIGV4cHJlc3Npb24gdGhhdCBhbGxvd3MgeW91IHRvIGNvbnRyb2wgdGhlICdidXN5JyBzdGF0ZSBvZiB0aGUgdGFibGUuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IGZhbHNlIH0pXG5cdGJ1c3khOiBib29sZWFuO1xuXG5cdC8qKlxuXHQgKiBEZWZpbmVzIHRoZSB0eXBlIG9mIHRhYmxlIHRoYXQgd2lsbCBiZSB1c2VkIGJ5IHRoZSBtYWNybyB0byByZW5kZXIgdGhlIGRhdGEuXG5cdCAqXG5cdCAqIEFsbG93ZWQgdmFsdWVzIGFyZSBgR3JpZFRhYmxlYCBhbmQgYFJlc3BvbnNpdmVUYWJsZWBcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiwgZGVmYXVsdFZhbHVlOiBcIlJlc3BvbnNpdmVUYWJsZVwiIH0pXG5cdHR5cGUhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBleHBvcnQgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0ZW5hYmxlRXhwb3J0ITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIHBhc3RlIGZ1bmN0aW9uYWxpdHkgb2YgdGhlIHRhYmxlIGlzIGVuYWJsZWQgb3Igbm90LlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiwgZGVmYXVsdFZhbHVlOiBmYWxzZSB9KVxuXHRlbmFibGVQYXN0ZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIHdoZXRoZXIgdGhlIHRhYmxlIGNhbiBiZSBvcGVuZWQgaW4gZnVsbHNjcmVlbiBtb2RlIG9yIG5vdC5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlRnVsbFNjcmVlbiE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIERlZmluZXMgdGhlIHNlbGVjdGlvbiBtb2RlIHRvIGJlIHVzZWQgYnkgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYE5vbmVgLCBgU2luZ2xlYCwgYE11bHRpYCBvciBgQXV0b2Bcblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJzdHJpbmdcIiB9KVxuXHRzZWxlY3Rpb25Nb2RlITogc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBTcGVjaWZpZXMgdGhlIGhlYWRlciB0ZXh0IHRoYXQgaXMgc2hvd24gaW4gdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiIH0pXG5cdGhlYWRlciE6IHN0cmluZztcblxuXHQvKipcblx0ICogU3BlY2lmaWVzIHRoZSBoZWFkZXIgdGV4dCB0aGF0IGlzIHNob3duIGluIHRoZSB0YWJsZS5cblx0ICpcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QFByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIsIGRlZmF1bHRWYWx1ZTogZmFsc2UgfSlcblx0ZW5hYmxlQXV0b0NvbHVtbldpZHRoITogYm9vbGVhbjtcblxuXHQvKipcblx0ICogQ29udHJvbHMgaWYgdGhlIGhlYWRlciB0ZXh0IHNob3VsZCBiZSBzaG93biBvciBub3QuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiLCBkZWZhdWx0VmFsdWU6IHRydWUgfSlcblx0aGVhZGVyVmlzaWJsZSE6IGJvb2xlYW47XG5cblx0LyoqXG5cdCAqIEFuIGV2ZW50IHRyaWdnZXJlZCB3aGVuIHRoZSB1c2VyIGNob29zZXMgYSByb3c7IHRoZSBldmVudCBjb250YWlucyBpbmZvcm1hdGlvbiBhYm91dCB3aGljaCByb3cgd2FzIGNob3Nlbi5cblx0ICpcblx0ICogWW91IGNhbiBzZXQgdGhpcyBpbiBvcmRlciB0byBoYW5kbGUgdGhlIG5hdmlnYXRpb24gbWFudWFsbHkuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBFdmVudFxuXHRyb3dQcmVzcyE6IEZ1bmN0aW9uO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB3aGljaCBvcHRpb25zIHNob3VsZCBiZSBlbmFibGVkIGZvciB0aGUgdGFibGUgcGVyc29uYWxpemF0aW9uIGRpYWxvZy5cblx0ICpcblx0ICogSWYgaXQgaXMgc2V0IHRvIGB0cnVlYCwgYWxsIHBvc3NpYmxlIG9wdGlvbnMgZm9yIHRoaXMga2luZCBvZiB0YWJsZSBhcmUgZW5hYmxlZC48YnIvPlxuXHQgKiBJZiBpdCBpcyBzZXQgdG8gYGZhbHNlYCwgcGVyc29uYWxpemF0aW9uIGlzIGRpc2FibGVkLjxici8+XG5cdCAqPGJyLz5cblx0ICogWW91IGNhbiBhbHNvIHByb3ZpZGUgYSBtb3JlIGdyYW51bGFyIGNvbnRyb2wgZm9yIHRoZSBwZXJzb25hbGl6YXRpb24gYnkgcHJvdmlkaW5nIGEgY29tbWEtc2VwYXJhdGVkIGxpc3Qgd2l0aCB0aGUgb3B0aW9ucyB5b3Ugd2FudCB0byBiZSBhdmFpbGFibGUuPGJyLz5cblx0ICogQXZhaWxhYmxlIG9wdGlvbnMgYXJlOjxici8+XG5cdCAqICAtIFNvcnQ8YnIvPlxuXHQgKiAgLSBDb2x1bW48YnIvPlxuXHQgKiAgLSBGaWx0ZXI8YnIvPlxuXHQgKlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW58c3RyaW5nXCIsIGRlZmF1bHRWYWx1ZTogdHJ1ZSB9KVxuXHRwZXJzb25hbGl6YXRpb24hOiBib29sZWFuIHwgc3RyaW5nO1xuXG5cdC8qKlxuXHQgKiBDb250cm9scyB0aGUga2luZCBvZiB2YXJpYW50IG1hbmFnZW1lbnQgdGhhdCBzaG91bGQgYmUgZW5hYmxlZCBmb3IgdGhlIHRhYmxlLlxuXHQgKlxuXHQgKiBBbGxvd2VkIHZhbHVlcyBhcmUgYFBhZ2VgLCBgQ29udHJvbGAgYW5kIGBOb25lYC48YnIvPlxuXHQgKiBJZiB0aGUgdGFibGUgaXMgdXNlZCB3aXRoaW4gYSBTQVAgRmlvcmkgZWxlbWVudHMgdGVtcGxhdGUsIHRoZSBkZWZhdWx0IHZhbHVlIHdpbGwgYmUgdGFrZW4gZnJvbSB0aGUgY3VycmVudCBwYWdlIHZhcmlhbnQgbWFuYWdlbWVudC48YnIvPlxuXHQgKiBPdGhlcndpc2UgaXQncyBgTm9uZWAuXG5cdCAqXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBQcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIgfSlcblx0dmFyaWFudE1hbmFnZW1lbnQhOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRyb2xzIGlmIHRoZSBkYXRhU3RhdGVJbmRpY2F0b3IgZnVuY3Rpb25hbGl0eSBvZiB0aGUgdGFibGUgaXMgZW5hYmxlZCBvciBub3QuXG5cdCAqXG5cdCAqL1xuXHRAUHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRlbmFibGVEYXRhU3RhdGVGaWx0ZXIhOiBib29sZWFuO1xuXG5cdEBFdmVudEhhbmRsZXJcblx0b25UYWJsZVJvd1ByZXNzKG9FdmVudDogVUk1RXZlbnQsIG9Db250cm9sbGVyOiBQYWdlQ29udHJvbGxlciwgb0NvbnRleHQ6IENvbnRleHQsIG1QYXJhbWV0ZXJzOiBhbnkpIHtcblx0XHQvLyBJbiB0aGUgY2FzZSBvZiBhbiBhbmFseXRpY2FsIHRhYmxlLCBpZiB3ZSdyZSB0cnlpbmcgdG8gbmF2aWdhdGUgdG8gYSBjb250ZXh0IGNvcnJlc3BvbmRpbmcgdG8gYSB2aXN1YWwgZ3JvdXAgb3IgZ3JhbmQgdG90YWxcblx0XHQvLyAtLT4gQ2FuY2VsIG5hdmlnYXRpb25cblx0XHRpZiAoXG5cdFx0XHRvQ29udGV4dCAmJlxuXHRcdFx0b0NvbnRleHQuaXNBKFwic2FwLnVpLm1vZGVsLm9kYXRhLnY0LkNvbnRleHRcIikgJiZcblx0XHRcdHR5cGVvZiBvQ29udGV4dC5nZXRQcm9wZXJ0eShcIkAkdWk1Lm5vZGUuaXNFeHBhbmRlZFwiKSA9PT0gXCJib29sZWFuXCJcblx0XHQpIHtcblx0XHRcdHJldHVybiBmYWxzZTtcblx0XHR9IGVsc2Uge1xuXHRcdFx0b0NvbnRyb2xsZXIuX3JvdXRpbmcubmF2aWdhdGVGb3J3YXJkVG9Db250ZXh0KG9Db250ZXh0LCBtUGFyYW1ldGVycyk7XG5cdFx0fVxuXHR9XG5cblx0QEV2ZW50SGFuZGxlclxuXHRvbkludGVybmFsRGF0YVJlY2VpdmVkKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRpZiAob0V2ZW50LmdldFBhcmFtZXRlcihcImVycm9yXCIpKSB7XG5cdFx0XHR0aGlzLmdldENvbnRyb2xsZXIoKS5tZXNzYWdlSGFuZGxlci5zaG93TWVzc2FnZURpYWxvZygpO1xuXHRcdH1cblx0fVxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGUob0V2ZW50OiBVSTVFdmVudCwgb0NvbnRyb2xsZXI6IFBhZ2VDb250cm9sbGVyKSB7XG5cdFx0Ly8gSWYgcGFzdGUgaXMgZGlzYWJsZSBvciBpZiB3ZSdyZSBub3QgaW4gZWRpdCBtb2RlLCB3ZSBjYW4ndCBwYXN0ZSBhbnl0aGluZ1xuXHRcdGlmICghdGhpcy50YWJsZURlZmluaXRpb24uY29udHJvbC5lbmFibGVQYXN0ZSB8fCAhdGhpcy5nZXRNb2RlbChcInVpXCIpLmdldFByb3BlcnR5KFwiL2lzRWRpdGFibGVcIikpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHRjb25zdCBhUmF3UGFzdGVkRGF0YSA9IG9FdmVudC5nZXRQYXJhbWV0ZXIoXCJkYXRhXCIpLFxuXHRcdFx0b1RhYmxlID0gb0V2ZW50LmdldFNvdXJjZSgpLFxuXHRcdFx0YlBhc3RlRW5hYmxlZCA9IG9UYWJsZS5kYXRhKClbXCJlbmFibGVQYXN0ZVwiXTtcblx0XHRsZXQgb1Jlc291cmNlTW9kZWw7XG5cblx0XHRpZiAoYlBhc3RlRW5hYmxlZCA9PT0gdHJ1ZSB8fCBiUGFzdGVFbmFibGVkID09PSBcInRydWVcIikge1xuXHRcdFx0UGFzdGVIZWxwZXIucGFyc2VEYXRhRm9yVGFibGVQYXN0ZShhUmF3UGFzdGVkRGF0YSwgb1RhYmxlKVxuXHRcdFx0XHQudGhlbihhUGFyc2VkRGF0YSA9PiB7XG5cdFx0XHRcdFx0aWYgKGFQYXJzZWREYXRhICYmIGFQYXJzZWREYXRhLmxlbmd0aCA+IDApIHtcblx0XHRcdFx0XHRcdHJldHVybiBvQ29udHJvbGxlci5fZWRpdEZsb3cuY3JlYXRlTXVsdGlwbGVEb2N1bWVudHMoXG5cdFx0XHRcdFx0XHRcdG9UYWJsZS5nZXRSb3dCaW5kaW5nKCksXG5cdFx0XHRcdFx0XHRcdGFQYXJzZWREYXRhLFxuXHRcdFx0XHRcdFx0XHR0aGlzLnRhYmxlRGVmaW5pdGlvbi5jb250cm9sLmNyZWF0ZUF0RW5kLFxuXHRcdFx0XHRcdFx0XHR0cnVlXG5cdFx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSlcblx0XHRcdFx0LmNhdGNoKG9FcnJvciA9PiB7XG5cdFx0XHRcdFx0TG9nLmVycm9yKFwiRXJyb3Igd2hpbGUgcGFzdGluZyBkYXRhXCIsIG9FcnJvcik7XG5cdFx0XHRcdH0pO1xuXHRcdH0gZWxzZSB7XG5cdFx0XHRvUmVzb3VyY2VNb2RlbCA9IHNhcC51aS5nZXRDb3JlKCkuZ2V0TGlicmFyeVJlc291cmNlQnVuZGxlKFwic2FwLmZlLmNvcmVcIik7XG5cdFx0XHRNZXNzYWdlQm94LmVycm9yKG9SZXNvdXJjZU1vZGVsLmdldFRleHQoXCJUX09QX0NPTlRST0xMRVJfU0FQRkVfUEFTVEVfRElTQUJMRURfTUVTU0FHRVwiKSwge1xuXHRcdFx0XHR0aXRsZTogb1Jlc291cmNlTW9kZWwuZ2V0VGV4dChcIkNfQ09NTU9OX1NBUEZFX0VSUk9SXCIpXG5cdFx0XHR9KTtcblx0XHR9XG5cdH1cblxuXHRARXZlbnRIYW5kbGVyXG5cdG9uUGFzdGVCdXR0b25QcmVzc2VkKCkge1xuXHRcdGNvbnN0IG9SZXNvdXJjZU1vZGVsID0gc2FwLnVpLmdldENvcmUoKS5nZXRMaWJyYXJ5UmVzb3VyY2VCdW5kbGUoXCJzYXAuZmUudGVtcGxhdGVzXCIpLFxuXHRcdFx0c0RldmljZU9zID0gRGV2aWNlLm9zLm5hbWUsXG5cdFx0XHRzRGV2aWNlU3lzdGVtID0gRGV2aWNlLnN5c3RlbTtcblx0XHQvLyBXZSBuZWVkIGEgZGVmYXVsdCBpbiBjYXNlIHdlIGZhbGwgdGhyb3VnaCB0aGUgY3JhY2tcblx0XHRsZXQgc01lc3NhZ2VPblBhc3RlQnV0dG9uOiBzdHJpbmcgPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0Ly8gT24gbW9iaWxlLCB0aGVyZSBpcyBubyBuYXRpdmUgcGFzdGUgdHJpZ2dlcjpcblx0XHRpZiAoc0RldmljZVN5c3RlbS5waG9uZSB8fCAoc0RldmljZVN5c3RlbS50YWJsZXQgJiYgIXNEZXZpY2VTeXN0ZW0uY29tYmkpKSB7XG5cdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9UT1VDSF9ERVZJQ0VcIik7XG5cdFx0fSBlbHNlIGlmIChzRGV2aWNlU3lzdGVtLmRlc2t0b3ApIHtcblx0XHRcdHN3aXRjaCAoc0RldmljZU9zKSB7XG5cdFx0XHRcdGNhc2UgXCJ3aW5cIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9XSU5ET1dTX0RFU0tUT1BcIik7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJtYWNcIjpcblx0XHRcdFx0XHRzTWVzc2FnZU9uUGFzdGVCdXR0b24gPSBvUmVzb3VyY2VNb2RlbC5nZXRUZXh0KFwiVF9PUF9DT05UUk9MTEVSX1RBQkxFX1BBU1RFX0JVVFRPTl9BQ1RJT05fTUVTU0FHRV9JT1NfREVTS1RPUFwiKTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdH1cblx0XHR9XG5cdFx0TWVzc2FnZUJveC5pbmZvcm1hdGlvbihzTWVzc2FnZU9uUGFzdGVCdXR0b24sIHtcblx0XHRcdG9uQ2xvc2U6ICgpID0+IHtcblx0XHRcdFx0aWYgKHRoaXMuY29udGVudCkge1xuXHRcdFx0XHRcdC8vIFNldCB0aGUgZm9jdXMgb24gdGhlIGlubmVyIHRhYmxlIHRvIGFsbG93IHBhc3RlXG5cdFx0XHRcdFx0KHRoaXMuY29udGVudC5nZXRBZ2dyZWdhdGlvbihcIl9jb250ZW50XCIpIGFzIGFueSk/LmFwcGx5Rm9jdXNJbmZvKHsgcHJldmVudFNjcm9sbDogdHJ1ZSB9KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0Ly8gVGhpcyBldmVudCB3aWxsIGFsbG93IHVzIHRvIGludGVyY2VwdCB0aGUgZXhwb3J0IGJlZm9yZSBpcyB0cmlnZ2VyZWQgdG8gY292ZXIgc3BlY2lmaWMgY2FzZXNcblx0Ly8gdGhhdCBjb3VsZG4ndCBiZSBhZGRyZXNzZWQgb24gdGhlIHByb3BlcnR5SW5mb3MgZm9yIGVhY2ggY29sdW1uLlxuXHQvLyBlLmcuIEZpeGVkIFRhcmdldCBWYWx1ZSBmb3IgdGhlIGRhdGFwb2ludHNcblx0QEV2ZW50SGFuZGxlclxuXHRvbkJlZm9yZUV4cG9ydChvRXZlbnQ6IFVJNUV2ZW50KSB7XG5cdFx0Y29uc3QgaXNTcGxpdE1vZGUgPSBvRXZlbnQuZ2V0UGFyYW1ldGVycygpLnVzZXJFeHBvcnRTZXR0aW5ncy5zcGxpdENlbGxzLFxuXHRcdFx0aXNSTFRMYW5ndWFnZSA9IHNhcC51aVxuXHRcdFx0XHQuZ2V0Q29yZSgpXG5cdFx0XHRcdC5nZXRDb25maWd1cmF0aW9uKClcblx0XHRcdFx0LmdldFJUTCgpLFxuXHRcdFx0b1RhYmxlQ29udHJvbGxlciA9IG9FdmVudC5nZXRTb3VyY2UoKSxcblx0XHRcdG9FeHBvcnRTZXR0aW5ncyA9IG9FdmVudC5nZXRQYXJhbWV0ZXJzKCkuZXhwb3J0U2V0dGluZ3MsXG5cdFx0XHRvVGFibGVDb2x1bW5zID0gdGhpcy50YWJsZURlZmluaXRpb24uY29sdW1ucztcblxuXHRcdFRhYmxlQVBJLnVwZGF0ZUV4cG9ydFNldHRpbmdzKG9FeHBvcnRTZXR0aW5ncywgb1RhYmxlQ29sdW1ucywgb1RhYmxlQ29udHJvbGxlciwgaXNTcGxpdE1vZGUsIGlzUkxUTGFuZ3VhZ2UpO1xuXHR9XG5cblx0LyoqXG5cdCAqIEhhbmRsZXMgdGhlIERhdGFTdGF0ZUluZGljYXRvciBwbHVnaW4gdG8gZGlzcGxheSBtZXNzYWdlU3RyaXAgb24gYSB0YWJsZS5cblx0ICogQHBhcmFtIG9NZXNzYWdlXG5cdCAqIEBwYXJhbSBvVGFibGVcblx0ICogQG5hbWUgZGF0YVN0YXRlRmlsdGVyXG5cdCAqIEByZXR1cm5zIHtib29sZWFufSBXaGV0aGVyIHRvIHJlbmRlciB2aXNpYmxlIHRoZSBtZXNzYWdlU3RyaXBcblx0ICovXG5cdHN0YXRpYyBzaG91bGRGaWx0ZXJEYXRhU3RhdGVNZXNzYWdlKG9NZXNzYWdlOiBhbnksIG9UYWJsZTogYW55KTogYm9vbGVhbiB7XG5cdFx0bGV0IG9UYWJsZUFQSSA9IG9UYWJsZS5nZXRQYXJlbnQoKTtcblx0XHR3aGlsZSAoIW9UYWJsZUFQSS5pc0EoXCJzYXAuZmUubWFjcm9zLlRhYmxlQVBJXCIpKSB7XG5cdFx0XHRvVGFibGVBUEkgPSBvVGFibGVBUEkuZ2V0UGFyZW50KCk7XG5cdFx0fVxuXHRcdHJldHVybiBvVGFibGVBUEkudGFibGVEZWZpbml0aW9uLmVuYWJsZURhdGFTdGF0ZUZpbHRlcjtcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGlzIGV2ZW50IGhhbmRsZXMgdGhlIERhdGFTdGF0ZSBvZiB0aGUgRGF0YVN0YXRlSW5kaWNhdG9yIHBsdWdpbiBmcm9tIE1EQyBvbiBhIHRhYmxlLlxuXHQgKiBJdCdzIGZpcmVkIHdoZW4gbmV3IGVycm9yIG1lc3NhZ2VzIGFyZSBzZW50IGZyb20gdGhlIGJhY2tlbmQgdG8gdXBkYXRlIHJvdyBoaWdobGlnaHRpbmcuXG5cdCAqXG5cdCAqIEBuYW1lIG9uRGF0YVN0YXRlQ2hhbmdlXG5cdCAqIEBwYXJhbSB7b2JqZWN0fSBvRXZlbnQgRXZlbnQgb2JqZWN0XG5cdCAqL1xuXHRARXZlbnRIYW5kbGVyXG5cdG9uRGF0YVN0YXRlQ2hhbmdlKG9FdmVudDogVUk1RXZlbnQpIHtcblx0XHRjb25zdCBvRGF0YVN0YXRlSW5kaWNhdG9yID0gb0V2ZW50LmdldFNvdXJjZSgpO1xuXHRcdGNvbnN0IGFGaWx0ZXJlZE1lc3NhZ2VzID0gb0V2ZW50LmdldFBhcmFtZXRlcihcImZpbHRlcmVkTWVzc2FnZXNcIik7XG5cdFx0aWYgKGFGaWx0ZXJlZE1lc3NhZ2VzKSB7XG5cdFx0XHRjb25zdCBvSW50ZXJuYWxNb2RlbCA9IG9EYXRhU3RhdGVJbmRpY2F0b3IuZ2V0TW9kZWwoXCJpbnRlcm5hbFwiKTtcblx0XHRcdG9JbnRlcm5hbE1vZGVsLnNldFByb3BlcnR5KFwiZmlsdGVyZWRNZXNzYWdlc1wiLCBhRmlsdGVyZWRNZXNzYWdlcywgb0RhdGFTdGF0ZUluZGljYXRvci5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpKTtcblx0XHR9XG5cdH1cblxuXHRzdGF0aWMgdXBkYXRlRXhwb3J0U2V0dGluZ3MoXG5cdFx0b0V4cG9ydFNldHRpbmdzOiBhbnksXG5cdFx0b0NvbHVtbnM6IFRhYmxlQ29sdW1uW10sXG5cdFx0b1RhYmxlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdFx0aXNTcGxpdE1vZGU6IGJvb2xlYW4sXG5cdFx0aXNSTFRMYW5ndWFnZTogYm9vbGVhblxuXHQpOiBhbnkge1xuXHRcdC8vU2V0IHN0YXRpYyBzaXplTGltaXQgZHVyaW5nIGV4cG9ydFxuXHRcdG9FeHBvcnRTZXR0aW5ncy5kYXRhU291cmNlLnNpemVMaW1pdCA9IDEwMDA7XG5cblx0XHRjb25zdCBvRXhwb3J0Q29sdW1ucyA9IG9FeHBvcnRTZXR0aW5ncy53b3JrYm9vaz8uY29sdW1ucztcblx0XHRvRXhwb3J0Q29sdW1ucy5mb3JFYWNoKChvQ29sdW1uRXhwb3J0OiBhbnkpID0+IHtcblx0XHRcdGxldCBhRXhwb3J0TGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xuXHRcdFx0b0NvbHVtbnM/LmZvckVhY2goY29sdW1uID0+IHtcblx0XHRcdFx0Y29uc3Qgb0NvbHVtbiA9IGNvbHVtbiBhcyBBbm5vdGF0aW9uVGFibGVDb2x1bW47XG5cdFx0XHRcdGlmIChpc1NwbGl0TW9kZSkge1xuXHRcdFx0XHRcdC8vIGFFeHBvcnRMYWJlbHMgd2lsbCBjb250YWluIGxhYmVscyBmcm9tIGEgRmllbGRHcm91cCwgYSB0ZXh0IGFubm90YXRpb24gYW5kIGEgRGF0YVBvaW50XG5cdFx0XHRcdFx0Ly8gVGhlc2UgbGFiZWxzIHdpbGwgYmUgdXNlZCBmb3IgY2hpbGQgcHJvcGVydGllcyAoc2ltcGxlIHByb3BlcnRpZXMpIGZyb20gY29tcGxleFByb3BlcnR5XG5cdFx0XHRcdFx0Ly8gVW5pdC9jdXJyZW5jeSBwcm9wZXJ0aWVzIHdpbGwgYmUgZGlzbWlzcyBhcyBpdCBjb3VsZCBiZSB1c2VkIGluIHNldmVyYWwgZGF0YWZpZWxkcy5cblx0XHRcdFx0XHRjb25zdCBpc1VuaXQgPSBvQ29sdW1ucy5zb21lKGNvbHVtbiA9PiAoY29sdW1uIGFzIEFubm90YXRpb25UYWJsZUNvbHVtbikudW5pdCA9PT0gb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSk7XG5cdFx0XHRcdFx0Ly8gQ3JlYXRlIEV4cG9ydGluZyBsYWJlbHMgYXJyYXlcblx0XHRcdFx0XHRjb25zdCBGaWVsZEdyb3VwTGFiZWwgPSBUYWJsZUFQSS5fZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQsIG9Db2x1bW4sIG9UYWJsZUNvbnRyb2xsZXIpO1xuXHRcdFx0XHRcdGlmIChGaWVsZEdyb3VwTGFiZWwpIHtcblx0XHRcdFx0XHRcdGFFeHBvcnRMYWJlbHMudW5zaGlmdChGaWVsZEdyb3VwTGFiZWwpO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHQvLyBGb3IgYSB0ZXh0IGFubm90YXRpb24sIGV4cG9ydCBsYWJlbCB0ZW1wbGF0ZSB1c2VkIGlzIDx2YWx1ZT4gLSA8ZGVzY3JpcHRpb24+IGFuZCBmb3IgYSBEYXRhUG9pbnQgPGRhdGFwb2ludFZhbHVlPiAtIDxUYXJnZXRWYWx1ZT4uXG5cdFx0XHRcdFx0Ly8gSW4gYm90aCBjYXNlcyBpbnRlcm5hdGlvbmFsaXphdGlvbiBpcyBuZWVkZWRcblx0XHRcdFx0XHRjb25zdCBkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsID0gVGFibGVBUEkuX2dldERhdGFGaWVsZERlc2NyaXB0aW9uTGFiZWwoXG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LFxuXHRcdFx0XHRcdFx0b0NvbHVtbixcblx0XHRcdFx0XHRcdG9UYWJsZUNvbnRyb2xsZXIsXG5cdFx0XHRcdFx0XHRpc1VuaXRcblx0XHRcdFx0XHQpO1xuXHRcdFx0XHRcdGlmIChkYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKSB7XG5cdFx0XHRcdFx0XHRhRXhwb3J0TGFiZWxzLnVuc2hpZnQoZGF0YUZpZWxkRGVzY3JpcHRpb25MYWJlbCk7XG5cdFx0XHRcdFx0fVxuXG5cdFx0XHRcdFx0Ly9BZGQgVGFyZ2V0VmFsdWUgb24gZHVtbXkgY3JlYXRlZCBwcm9wZXJ0eSB3aGVuICBleHBvcnRpbmcgb24gc3BsaXQgbW9kZVxuXHRcdFx0XHRcdGlmIChvQ29sdW1uLmlzRGF0YVBvaW50RmFrZVRhcmdldFByb3BlcnR5ICYmIG9Db2x1bW4ucmVsYXRpdmVQYXRoID09PSBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB7XG5cdFx0XHRcdFx0XHRvQ29sdW1uRXhwb3J0LnByb3BlcnR5ID0gW29Db2x1bW5FeHBvcnQucHJvcGVydHldO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0XHQvL01vZGlmeSBleHBvcnRlZCB2YWx1ZSB3aGVuIHVzaW5nIENvbW11bmljYXRpb24uQ29udGFjdCBkYXRhRmllbGRGb3JBbm5vdGF0aW9uXG5cdFx0XHRcdC8vY29udGFjdD5mbiBwcm9wZXJ0eSBzaG91bGQgYmUgZXhwb3J0ZWRcblx0XHRcdFx0aWYgKG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5ICYmIGNvbHVtbi5wcm9wZXJ0eUluZm9zKSB7XG5cdFx0XHRcdFx0aWYgKGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPT09IDEgJiYgY29sdW1uLnByb3BlcnR5SW5mb3M/LnRvU3RyaW5nKCkgPT09IG9Db2x1bW5FeHBvcnQucHJvcGVydHkudG9TdHJpbmcoKSkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW4uZXhwb3J0Q29udGFjdFByb3BlcnR5O1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5sYWJlbCA9IG9Db2x1bW4ubGFiZWw7XG5cdFx0XHRcdFx0fSBlbHNlIGlmIChcblx0XHRcdFx0XHRcdGNvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LnNvbWUocHJvcCA9PiBvQ29sdW1uRXhwb3J0LnByb3BlcnR5LmluY2x1ZGVzKHByb3ApKSAmJlxuXHRcdFx0XHRcdFx0QXJyYXkuaXNBcnJheShvQ29sdW1uRXhwb3J0LnByb3BlcnR5KVxuXHRcdFx0XHRcdCkge1xuXHRcdFx0XHRcdFx0b0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSA9IG9Db2x1bW5FeHBvcnQucHJvcGVydHk/Lm1hcCgocHJvcGVydHk6IHN0cmluZykgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gb0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5zb21lKHByb3AgPT4gcHJvcCA9PT0gcHJvcGVydHkpID8gb0NvbHVtbi5leHBvcnRDb250YWN0UHJvcGVydHkgOiBwcm9wZXJ0eTtcblx0XHRcdFx0XHRcdH0pO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fSk7XG5cdFx0XHRhRXhwb3J0TGFiZWxzLnB1c2goRGVsZWdhdGVVdGlsLmdldExvY2FsaXplZFRleHQob0NvbHVtbkV4cG9ydC5sYWJlbCwgb1RhYmxlQ29udHJvbGxlcikpO1xuXHRcdFx0aWYgKGFFeHBvcnRMYWJlbHMubGVuZ3RoID4gMSkge1xuXHRcdFx0XHQvLyBSZW1vdmUgZHVwbGljYXRlIGxhYmVscyAoZS5nLiBGaWVsZEdyb3VwIGxhYmVsIGlzIHRoZSBzYW1lIGFzIHRoZSBsYWJlbCBvZiBvbmUgb2YgdGhlIHByb3BlcnRpZXMpXG5cdFx0XHRcdGFFeHBvcnRMYWJlbHMgPSBhRXhwb3J0TGFiZWxzLmZpbHRlcihmdW5jdGlvbihsYWJlbCwgaW5kZXgpIHtcblx0XHRcdFx0XHRpZiAoYUV4cG9ydExhYmVscy5pbmRleE9mKGxhYmVsKSA9PSBpbmRleCkge1xuXHRcdFx0XHRcdFx0cmV0dXJuIGxhYmVsO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cdFx0XHQvLyBDaGVjayBpZiBhIFJUTCBsYW5ndWFnZSBpZiB1c2VkIGFuZCBpZiBzbyB3ZSBuZWVkIHRvIHJldmVyc2UgbGFiZWxzXG5cdFx0XHRpZiAoaXNSTFRMYW5ndWFnZSkge1xuXHRcdFx0XHRhRXhwb3J0TGFiZWxzLnJldmVyc2UoKTtcblx0XHRcdH1cblx0XHRcdG9Db2x1bW5FeHBvcnQubGFiZWwgPSBhRXhwb3J0TGFiZWxzLmpvaW4oXCIgLSBcIik7XG5cdFx0fSk7XG5cdFx0cmV0dXJuIG9FeHBvcnRTZXR0aW5ncztcblx0fVxuXG5cdHN0YXRpYyBfZ2V0RmllbGRHcm91cEV4cG9ydExhYmVsKG9Db2x1bW5FeHBvcnQ6IGFueSwgb0NvbHVtbjogQW5ub3RhdGlvblRhYmxlQ29sdW1uLCBvVGFibGVDb250cm9sbGVyOiBQYWdlQ29udHJvbGxlcikge1xuXHRcdGlmIChcblx0XHRcdChvQ29sdW1uRXhwb3J0LmNvbHVtbklkLmluZGV4T2YoXCI6OkZpZWxkR3JvdXA6OlwiKSAhPT0gLTEgfHxcblx0XHRcdFx0KG9Db2x1bW4uZXhwb3J0U2V0dGluZ3M/LmZpZWxkTGFiZWwgJiYgb0NvbHVtbkV4cG9ydC5jb2x1bW5JZC5pbmRleE9mKFwiX19jb2x1bW5cIikgIT09IC0xKSkgJiZcblx0XHRcdChvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKG9Db2x1bW5FeHBvcnQucHJvcGVydHkpIHx8XG5cdFx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcz8uaW5jbHVkZXMoXCJQcm9wZXJ0eTo6XCIgKyBvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSlcblx0XHQpIHtcblx0XHRcdGNvbnN0IGxhYmVsID0gb0NvbHVtbi5leHBvcnRTZXR0aW5ncz8uZmllbGRMYWJlbCB8fCBvQ29sdW1uLmxhYmVsO1xuXHRcdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KGxhYmVsIGFzIHN0cmluZywgb1RhYmxlQ29udHJvbGxlcik7XG5cdFx0fVxuXHR9XG5cblx0c3RhdGljIF9nZXREYXRhRmllbGREZXNjcmlwdGlvbkxhYmVsKFxuXHRcdG9Db2x1bW5FeHBvcnQ6IGFueSxcblx0XHRvQ29sdW1uOiBBbm5vdGF0aW9uVGFibGVDb2x1bW4sXG5cdFx0b1RhYmxlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIsXG5cdFx0aXNVbml0OiBib29sZWFuXG5cdCkge1xuXHRcdGlmIChcblx0XHRcdG9Db2x1bW4ucHJvcGVydHlJbmZvcyAmJlxuXHRcdFx0b0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5sZW5ndGggPiAxICYmXG5cdFx0XHQhaXNVbml0ICYmXG5cdFx0XHQob0NvbHVtbi5wcm9wZXJ0eUluZm9zPy5pbmNsdWRlcyhvQ29sdW1uRXhwb3J0LnByb3BlcnR5KSB8fFxuXHRcdFx0XHRvQ29sdW1uLnByb3BlcnR5SW5mb3M/LmluY2x1ZGVzKFwiUHJvcGVydHk6OlwiICsgb0NvbHVtbkV4cG9ydC5wcm9wZXJ0eSkpICYmXG5cdFx0XHRvQ29sdW1uLnJlbGF0aXZlUGF0aD8uaW5kZXhPZihcIkBjb20uc2FwLnZvY2FidWxhcmllcy5VSS52MS5GaWVsZEdyb3VwXCIpID09PSAtMVxuXHRcdCkge1xuXHRcdFx0cmV0dXJuIERlbGVnYXRlVXRpbC5nZXRMb2NhbGl6ZWRUZXh0KG9Db2x1bW4ubGFiZWwgYXMgc3RyaW5nLCBvVGFibGVDb250cm9sbGVyKTtcblx0XHR9XG5cdH1cblx0QEV2ZW50SGFuZGxlclxuXHRvbk1hc3NFZGl0QnV0dG9uUHJlc3NlZChvRXZlbnQ6IFVJNUV2ZW50LCBQYWdlQ29udHJvbGxlcjogUGFnZUNvbnRyb2xsZXIpIHtcblx0XHRjb25zdCBvVGFibGUgPSB0aGlzLmNvbnRlbnQ7XG5cdFx0TWFzc0VkaXRIYW5kbGVyLm9wZW5NYXNzRWRpdERpYWxvZyhvVGFibGUsIFBhZ2VDb250cm9sbGVyKTtcblx0fVxufVxuXG5leHBvcnQgZGVmYXVsdCBUYWJsZUFQSTtcbiJdfQ==
@@ -346,14 +346,14 @@ class TableAPI extends MacroAPI {
346
346
  .getConfiguration()
347
347
  .getRTL(),
348
348
  oTableController = oEvent.getSource(),
349
- oExportColumns = oEvent.getParameters().exportSettings.workbook?.columns,
349
+ oExportSettings = oEvent.getParameters().exportSettings,
350
350
  oTableColumns = this.tableDefinition.columns;
351
351
 
352
- TableAPI.updateExportSettings(oExportColumns, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
352
+ TableAPI.updateExportSettings(oExportSettings, oTableColumns, oTableController, isSplitMode, isRLTLanguage);
353
353
  }
354
354
 
355
355
  /**
356
- * Handles the MDC DataStateIndicator plugin to display messageStrip on a table.
356
+ * Handles the DataStateIndicator plugin to display messageStrip on a table.
357
357
  * @param oMessage
358
358
  * @param oTable
359
359
  * @name dataStateFilter
@@ -385,12 +385,16 @@ class TableAPI extends MacroAPI {
385
385
  }
386
386
 
387
387
  static updateExportSettings(
388
- oExportColumns: any,
388
+ oExportSettings: any,
389
389
  oColumns: TableColumn[],
390
390
  oTableController: PageController,
391
391
  isSplitMode: boolean,
392
392
  isRLTLanguage: boolean
393
393
  ): any {
394
+ //Set static sizeLimit during export
395
+ oExportSettings.dataSource.sizeLimit = 1000;
396
+
397
+ const oExportColumns = oExportSettings.workbook?.columns;
394
398
  oExportColumns.forEach((oColumnExport: any) => {
395
399
  let aExportLabels: string[] = [];
396
400
  oColumns?.forEach(column => {
@@ -454,7 +458,7 @@ class TableAPI extends MacroAPI {
454
458
  }
455
459
  oColumnExport.label = aExportLabels.join(" - ");
456
460
  });
457
- return oExportColumns;
461
+ return oExportSettings;
458
462
  }
459
463
 
460
464
  static _getFieldGroupExportLabel(oColumnExport: any, oColumn: AnnotationTableColumn, oTableController: PageController) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["./MacroMetadata", "sap/fe/core/converters/MetaModelConverter"], function(MacroMetadata, MetaModelConverter) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["sap/ui/model/json/JSONModel", "sap/fe/macros/CommonHelper", "sap/fe/macros/chart/ChartUtils", "sap/fe/macros/DelegateUtil"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["sap/ui/model/Filter", "sap/fe/macros/filter/FilterUtils", "sap/ui/model/FilterOperator", "sap/base/Log"], function(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/fe/macros/CommonHelper", "sap/fe/core/CommonUtils", "sap/ui/model/odata/v4/AnnotationHelper"], function(
6
6
  CommonHelper,
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["./Value"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["./Value"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/fe/macros/DelegateUtil", "sap/ui/model/json/JSONModel", "sap/fe/macros/CommonHelper"], function(
6
6
  DelegateUtil,
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["sap/fe/macros/MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(["sap/fe/macros/MacroMetadata"], function(MacroMetadata) {
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/fe/macros/PhantomUtil", "./CustomSection.metadata", "./CustomFragment.metadata"], function(
6
6
  PhantomUtil,
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.internal.Field macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(["sap/ui/mdc/field/MultiValueFieldDelegate", "sap/fe/core/CommonUtils"], function(MdcMultiValueFieldDelegate, CommonUtils) {
6
6
  "use strict";
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.ValueHelp macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  /* global Promise */
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -59,7 +59,7 @@ sap.ui.define(
59
59
  interfaces: [],
60
60
  controls: [],
61
61
  elements: [],
62
- version: "1.96.14",
62
+ version: "1.96.16",
63
63
  noLibraryCSS: true
64
64
  });
65
65
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /**
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  /*
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [],
@@ -19,7 +19,7 @@ M_DRAFT_POPOVER_ADMIN_GENERIC_LOCKED_OBJECT_POPOVER_TEXT=Questo oggetto \u00E8 i
19
19
 
20
20
  M_FIELD_RUNTIME_DRAFT_POPOVER_LOCKED_BY_KNOWN=Questo oggetto viene elaborato da {0}.
21
21
 
22
- C_DRAFT_EDIT_STATE_DRAFT_ALL_FILTER=Tutto
22
+ C_DRAFT_EDIT_STATE_DRAFT_ALL_FILTER=Tutti
23
23
 
24
24
  C_DRAFT_EDIT_STATE_DRAFT_UNCHANGED_FILTER=Senza modifiche
25
25
 
@@ -40,7 +40,7 @@ M_CONDITIONFIELDHELP_PERIOD=D\u00F6nem
40
40
 
41
41
  T_COMMON_PROGRESS_INDICATOR_DISPLAY_VALUE_NO_UOM={0}/{1}
42
42
 
43
- M_COMMON_TABLE_CREATE=Yarat
43
+ M_COMMON_TABLE_CREATE=Olu\u015Ftur
44
44
 
45
45
  M_COMMON_TABLE_DELETE=Sil
46
46
 
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["sap/fe/macros/CommonHelper", "sap/base/Log", "sap/m/library"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["sap/ui/core/Control", "sap/m/SearchField"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  ["sap/fe/macros/table/delegates/TableDelegate", "sap/fe/macros/table/delegates/ALPTableDelegateBaseMixin"],
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // ---------------------------------------------------------------------------------------
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  // Provides the Design Time Metadata for the sap.fe.macros.FilterBar macro.
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
 
6
6
  sap.ui.define(
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [
@@ -1,6 +1,6 @@
1
1
  /*!
2
2
  * SAPUI5
3
- * (c) Copyright 2009-2022 SAP SE. All rights reserved.
3
+ * (c) Copyright 2009-2023 SAP SE. All rights reserved.
4
4
  */
5
5
  sap.ui.define(
6
6
  [