@sapui5/sap.fe.macros 1.142.0 → 1.143.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (102) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/CollaborativeDraftHandler.js +1 -7
  4. package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +0 -6
  5. package/src/sap/fe/macros/ConditionalSwitch.js +1 -2
  6. package/src/sap/fe/macros/ConditionalSwitch.tsx +0 -1
  7. package/src/sap/fe/macros/ConditionalSwitchProperty.js +1 -3
  8. package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +0 -2
  9. package/src/sap/fe/macros/Field.js +5 -5
  10. package/src/sap/fe/macros/Field.ts +5 -3
  11. package/src/sap/fe/macros/FooterContent.js +3 -2
  12. package/src/sap/fe/macros/FooterContent.tsx +2 -10
  13. package/src/sap/fe/macros/KPITag.js +6 -6
  14. package/src/sap/fe/macros/KPITag.tsx +5 -5
  15. package/src/sap/fe/macros/MacroAPI.js +2 -2
  16. package/src/sap/fe/macros/MacroAPI.ts +1 -1
  17. package/src/sap/fe/macros/MessageButton.js +3 -3
  18. package/src/sap/fe/macros/MessageButton.tsx +3 -2
  19. package/src/sap/fe/macros/MicroChart.js +3 -2
  20. package/src/sap/fe/macros/MicroChart.tsx +1 -1
  21. package/src/sap/fe/macros/Share.js +7 -7
  22. package/src/sap/fe/macros/Share.tsx +9 -6
  23. package/src/sap/fe/macros/Status.js +6 -5
  24. package/src/sap/fe/macros/Status.tsx +3 -4
  25. package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
  26. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
  27. package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
  28. package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
  29. package/src/sap/fe/macros/chart/ChartDelegate.js +22 -1
  30. package/src/sap/fe/macros/chart/ChartDelegate.ts +29 -2
  31. package/src/sap/fe/macros/chart/MdcChartTemplate.js +5 -2
  32. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +5 -2
  33. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +7 -7
  34. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +3 -2
  35. package/src/sap/fe/macros/controls/FileWrapper.js +11 -5
  36. package/src/sap/fe/macros/controls/FileWrapper.ts +10 -4
  37. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +3 -1
  38. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -0
  39. package/src/sap/fe/macros/coreUI/CreateDialog.js +2 -2
  40. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +1 -1
  41. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +4 -4
  42. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +3 -3
  43. package/src/sap/fe/macros/field/FieldFormatOptions.js +2 -2
  44. package/src/sap/fe/macros/field/FieldFormatOptions.ts +1 -1
  45. package/src/sap/fe/macros/field/FieldRuntime.js +7 -2
  46. package/src/sap/fe/macros/field/FieldRuntime.ts +7 -1
  47. package/src/sap/fe/macros/filter/FilterUtils.js +31 -5
  48. package/src/sap/fe/macros/filter/FilterUtils.ts +40 -6
  49. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +6 -3
  50. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +5 -1
  51. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +19 -9
  52. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +76 -61
  53. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.js +376 -0
  54. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.ts +463 -0
  55. package/src/sap/fe/macros/form/FormContainer.block.js +22 -6
  56. package/src/sap/fe/macros/form/FormContainer.block.ts +24 -6
  57. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
  58. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -1
  59. package/src/sap/fe/macros/library.js +5 -6
  60. package/src/sap/fe/macros/{library.ts → library.tsx} +1 -1
  61. package/src/sap/fe/macros/messagebundle.properties +6 -0
  62. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +1 -1
  63. package/src/sap/fe/macros/messages/MessageButton.js +21 -12
  64. package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
  65. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +7 -3
  66. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +8 -2
  67. package/src/sap/fe/macros/quickView/QuickView.js +5 -4
  68. package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
  69. package/src/sap/fe/macros/table/Action.js +7 -4
  70. package/src/sap/fe/macros/table/Action.ts +3 -3
  71. package/src/sap/fe/macros/table/Column.js +3 -2
  72. package/src/sap/fe/macros/table/Column.ts +1 -1
  73. package/src/sap/fe/macros/table/MdcTableTemplate.js +6 -9
  74. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +5 -7
  75. package/src/sap/fe/macros/table/Table.block.js +6 -3
  76. package/src/sap/fe/macros/table/Table.block.tsx +13 -3
  77. package/src/sap/fe/macros/table/TableAPI.js +13 -8
  78. package/src/sap/fe/macros/table/TableAPI.ts +10 -3
  79. package/src/sap/fe/macros/table/TableDefinition.js +2 -2
  80. package/src/sap/fe/macros/table/TableDefinition.ts +1 -1
  81. package/src/sap/fe/macros/table/TableEventHandlerProvider.js +3 -1
  82. package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +4 -0
  83. package/src/sap/fe/macros/table/TableRuntime.js +24 -12
  84. package/src/sap/fe/macros/table/TableRuntime.ts +27 -11
  85. package/src/sap/fe/macros/table/Utils.js +9 -3
  86. package/src/sap/fe/macros/table/Utils.ts +14 -8
  87. package/src/sap/fe/macros/table/delegates/TableDelegate.js +6 -4
  88. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +6 -5
  89. package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
  90. package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
  91. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +14 -5
  92. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +13 -4
  93. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -3
  94. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +3 -2
  95. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +37 -10
  96. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +39 -15
  97. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -4
  98. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -3
  99. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.js +5 -4
  100. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.ts +6 -3
  101. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +17 -10
  102. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +24 -9
@@ -27,8 +27,7 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
27
27
  /**
28
28
  * Building block to display a status and criticality.
29
29
  * @public
30
- * @ui5-experimental-since 1.141.0
31
- * @since 1.141.0
30
+ * @since 1.143.0
32
31
  */
33
32
  let Status = (_dec = defineUI5Class("sap.fe.macros.Status"), _dec2 = implementInterface("sap.ui.core.IFormContent"), _dec3 = property({
34
33
  type: "string",
@@ -37,7 +36,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
37
36
  type: "string"
38
37
  }), _dec5 = property({
39
38
  type: "string",
40
- allowedValues: ["Inline", "Overlay"]
39
+ allowedValues: ["Inline", "Overlay"],
40
+ defaultValue: "Inline"
41
41
  }), _dec6 = property({
42
42
  type: "boolean"
43
43
  }), _dec7 = property({
@@ -46,7 +46,8 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
46
46
  type: "boolean"
47
47
  }), _dec9 = property({
48
48
  type: "string",
49
- allowedValues: ["Standard", "Pastel"]
49
+ allowedValues: ["Standard", "Pastel"],
50
+ defaultValue: "Standard"
50
51
  }), _dec10 = event(), _dec(_class = (_class2 = /*#__PURE__*/function (_BuildingBlock) {
51
52
  /**
52
53
  * Internal property to store the data model path
@@ -275,4 +276,4 @@ sap.ui.define(["sap/fe/base/ClassSupport", "sap/fe/core/buildingBlocks/BuildingB
275
276
  _exports = Status;
276
277
  return _exports;
277
278
  }, false);
278
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0dXMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwicmVxdWlyZWQiLCJfZGVjNCIsIl9kZWM1IiwiYWxsb3dlZFZhbHVlcyIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9kZXNjcmlwdG9yNyIsIl9kZXNjcmlwdG9yOCIsIl9kZXNjcmlwdG9yOSIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiZ2V0VGVtcGxhdGluZ09iamVjdHMiLCJkYXRhTW9kZWxQYXRoIiwidmFsdWVEYXRhTW9kZWxQYXRoIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJpbnRlcm5hbERhdGFNb2RlbFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJ0YXJnZXRPYmplY3QiLCJpc1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJ1bmRlZmluZWQiLCJWYWx1ZSIsInBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImdldENyaXRpY2FsaXR5RXhwcmVzc2lvbiIsImNvbG9yUGFsZXR0ZSIsInBhc3RlbENvbG9yTWFwIiwiTmVnYXRpdmUiLCJDcml0aWNhbCIsIlBvc2l0aXZlIiwiSW5mb3JtYXRpb24iLCJOZXV0cmFsIiwic3BlY2lmaWNDb2xvck1hcCIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IiLCJnZXRDcml0aWNhbGl0eUljb25FeHByZXNzaW9uIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIiwiZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmciLCJwcm9wZXJ0eU9yRGF0YUZpZWxkRGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldFRleHRCaW5kaW5nIiwic3RhdHVzQ29uZmlnIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0QWRkaXRpb25hbENvbmZpZ3VyYXRpb24iLCJkYXRhRmllbGRPclByb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCIsInZpc2libGUiLCJnZXRWaXNpYmxlRXhwcmVzc2lvbiIsImlzUHJvcGVydHlJbml0aWFsIiwiY3JpdGljYWxpdHlFeHByZXNzaW9uIiwiY3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbiIsInRleHRCaW5kaW5nIiwiaXNBY3RpdmUiLCJoYXNMaXN0ZW5lcnMiLCJpbnZlcnRlZCIsImludmVydGVkRGVmYXVsdFZhbHVlIiwibGFyZ2VEZXNpZ24iLCJoaWRlSWNvbiIsInRvb2xUaXBWYWx1ZSIsImdldFRvb2x0aXBWYWx1ZSIsIl9qc3giLCJNT2JqZWN0U3RhdHVzIiwiaWQiLCJnZW5lcmF0ZSIsImdldElkIiwiY2xhc3MiLCJzdGF0ZSIsInRvb2x0aXAiLCJpY29uIiwidGV4dCIsImFjdGl2ZSIsInJlYWN0aXZlQXJlYU1vZGUiLCJwcmVzcyIsInByZXNzRXZlbnQiLCJmaXJlRXZlbnQiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTdGF0dXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkLCBEYXRhUG9pbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGlzUHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yLCBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUljb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Dcml0aWNhbGl0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0VG9vbHRpcFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRUZXh0QmluZGluZywgZ2V0VmlzaWJsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCB0eXBlIHsgT2JqZWN0U3RhdHVzJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgTU9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHRvIGRpc3BsYXkgYSBzdGF0dXMgYW5kIGNyaXRpY2FsaXR5LlxuICogQHB1YmxpY1xuICogQHVpNS1leHBlcmltZW50YWwtc2luY2UgMS4xNDEuMFxuICogQHNpbmNlIDEuMTQxLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5TdGF0dXNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXR1cyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8TU9iamVjdFN0YXR1cz4gaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHQvKipcblx0ICogTWV0YWRhdGEgcGF0aCB0byB0aGUgRGF0YUZpZWxkIGFubm90YXRpb24gb3IgcHJvcGVydHkuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRyZXF1aXJlZDogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgbWV0YVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRleHQgcGF0aCBmb3IgdGhlIGJpbmRpbmcgY29udGV4dC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHQvKipcblx0ICogIFdoZW4gdGhlIFN0YXR1cyBpcyBjbGlja2FibGUsIGl0IGRlZmluZXMgdGhlIHNpemUgb2YgdGhlIHJlYWN0aXZlIGFyZWEgb2YgdGhlIGNsaWNrYWJsZSBlbGVtZW50OlxuXHQgKlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuSW5saW5lIC0gVGhlIFN0YXR1cyBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiBhIHNlbnRlbmNlLlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuT3ZlcmxheSAtIFRoZSBTdGF0dXMgaXMgZGlzcGxheWVkIGFzIGFuIG92ZXJsYXkgb24gdG9wIG9mIG90aGVyIGludGVyYWN0aXZlIHBhcnRzIG9mIHRoZSBwYWdlLlxuXHQgKiBOb3RlOiBJdCBpcyBkZXNpZ25lZCB0byBtYWtlIHRoZSBjbGlja2FibGUgZWxlbWVudCBlYXNpZXIgdG8gYWN0aXZhdGUgYW5kIGhlbHBzIG1lZXQgdGhlIFdDQUcgMi4yIFRhcmdldCBTaXplIHJlcXVpcmVtZW50LiBJdCBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIHRoZSBTQVAgSG9yaXpvbiB0aGVtZXMuIE5vdGU6IFRoZSBzaXplIG9mIHRoZSByZWFjdGl2ZSBhcmVhIGlzIHN1ZmZpY2llbnRseSBsYXJnZSB0byBoZWxwIHVzZXJzIGF2b2lkIGFjY2lkZW50YWxseSBzZWxlY3RpbmcgKGNsaWNraW5nIG9yIHRhcHBpbmcpIHVuaW50ZW5kZWQgVUkgZWxlbWVudHMuIFVJIGVsZW1lbnRzIHBvc2l0aW9uZWQgb3ZlciBvdGhlciBwYXJ0cyBvZiB0aGUgcGFnZSBtYXkgbmVlZCBhbiBpbnZpc2libGUgYWN0aXZlIHRvdWNoIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IG5vIGVsZW1lbnRzIGJlbmVhdGggYXJlIGFjdGl2YXRlZCBhY2NpZGVudGFsbHkgd2hlbiB0aGUgdXNlciB0cmllcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBvdmVybGF5IGVsZW1lbnQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGFsbG93ZWRWYWx1ZXM6IFtcIklubGluZVwiLCBcIk92ZXJsYXlcIl0gfSlcblx0cHVibGljIHJlYWN0aXZlQXJlYU1vZGU/OiBcIklubGluZVwiIHwgXCJPdmVybGF5XCI7XG5cblx0LyoqXG5cdCAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBPYmplY3RTdGF0dXMgc2hvdWxkIGJlIGRpc3BsYXllZCBpbiBsYXJnZSBkZXNpZ24gbW9kZS5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGxhcmdlRGVzaWduID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIERldGVybWluZXMgd2hldGhlciB0aGUgYmFja2dyb3VuZCBjb2xvciByZWZsZWN0cyB0aGUgc2V0IHN0YXRlIG9mIHRoZSBPYmplY3RTdGF0dXMgaW5zdGVhZCBvZiB0aGUgY29udHJvbCdzIHRleHQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHB1YmxpYyBpbnZlcnRlZCA9IGZhbHNlO1xuXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwiYm9vbGVhblwiIH0pXG5cdHB1YmxpYyBoaWRlSWNvbiA9IGZhbHNlO1xuXG5cdC8qKlxuXHQgKiBDb2xvciBwYWxldHRlIHRvIGJlIHVzZWQgYnkgdGhlIGNvbnRyb2wuIFRoZSBzdXBwb3J0ZWQgdmFsdWVzIGFyZSBcIlN0YW5kYXJkXCIgKGRlZmF1bHQpIGFuZCBcIlBhc3RlbFwiLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCBhbGxvd2VkVmFsdWVzOiBbXCJTdGFuZGFyZFwiLCBcIlBhc3RlbFwiXSB9KVxuXHRwdWJsaWMgY29sb3JQYWxldHRlPzogXCJTdGFuZGFyZFwiIHwgXCJQYXN0ZWxcIjtcblxuXHQvKipcblx0ICogUHJlc3MgZXZlbnQgZmlyZWQgd2hlbiB0aGUgT2JqZWN0U3RhdHVzIGlzIGNsaWNrZWQuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgcHJlc3MgZXZlbnRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGV2ZW50KClcblx0cHVibGljIHByZXNzPzogKGV2ZW50OiBPYmplY3RTdGF0dXMkUHJlc3NFdmVudCkgPT4gdm9pZDtcblxuXHQvKipcblx0ICogSW50ZXJuYWwgcHJvcGVydHkgdG8gc3RvcmUgdGhlIGRhdGEgbW9kZWwgcGF0aFxuXHQgKi9cblx0cHJpdmF0ZSBkYXRhTW9kZWxQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlPjtcblxuXHRwcml2YXRlIHZhbHVlRGF0YU1vZGVsUGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+O1xuXG5cdC8qKlxuXHQgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIFN0YXR1cyBidWlsZGluZyBibG9jay5cblx0ICogQHBhcmFtIHByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2JqZWN0IGNvbnRhaW5pbmcgU3RhdHVzLXNwZWNpZmljIHNldHRpbmdzIGFuZCBiYXNlIGNvbnRyb2wgc2V0dGluZ3Ncblx0ICogQHBhcmFtIFtvdGhlcnNdIEFkZGl0aW9uYWwgY29udHJvbCBzZXR0aW5ncyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHRoZSBidWlsZGluZyBibG9ja1xuXHQgKi9cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxTdGF0dXM+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5nZXRUZW1wbGF0aW5nT2JqZWN0cygpO1xuXHRcdGlmICghdGhpcy5kYXRhTW9kZWxQYXRoICYmICF0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0Ly8gdGhlcmUgY2Fubm90IGJlIGEgc3RhdGljIHZhbHVlIGFuZCBubyBkYXRhZmllbGQgb3IgZGF0YXBvaW50XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB0ZW1wbGF0aW5nIG9iamVjdHMgYW5kIHByZXBhcmUgZGF0YSBtb2RlbCBwYXRocy5cblx0ICovXG5cdHByaXZhdGUgZ2V0VGVtcGxhdGluZ09iamVjdHMoKTogdm9pZCB7XG5cdFx0Ly8gVHJ5IHRvIGdldCBhcyBEYXRhRmllbGQgZmlyc3QsIHRoZW4gYXMgRGF0YVBvaW50LCB0aGVuIGFzIFByb3BlcnR5XG5cdFx0Y29uc3QgaW50ZXJuYWxEYXRhTW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlIHwgUHJvcGVydHk+KFxuXHRcdFx0dGhpcy5tZXRhUGF0aCxcblx0XHRcdHRoaXMuY29udGV4dFBhdGhcblx0XHQpO1xuXHRcdGNvbnN0IHRhcmdldE9iamVjdCA9IGludGVybmFsRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0O1xuXG5cdFx0aWYgKCFpbnRlcm5hbERhdGFNb2RlbFBhdGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKGlzUHJvcGVydHkodGFyZ2V0T2JqZWN0KSkge1xuXHRcdFx0aWYgKHRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LlVJPy5EYXRhRmllbGREZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0dGhpcy5kYXRhTW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxEYXRhRmllbGQ+KFxuXHRcdFx0XHRcdGAke3RoaXMubWV0YVBhdGh9QCR7VUlBbm5vdGF0aW9uVGVybXMuRGF0YUZpZWxkRGVmYXVsdH1gLFxuXHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGhcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoID0gaW50ZXJuYWxEYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmRhdGFNb2RlbFBhdGggPSBpbnRlcm5hbERhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlPjtcblx0XHRcdGlmICh0aGlzLmRhdGFNb2RlbFBhdGg/LnRhcmdldE9iamVjdD8uVmFsdWU/LnBhdGgpIHtcblx0XHRcdFx0dGhpcy52YWx1ZURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aDxQcm9wZXJ0eT4oaW50ZXJuYWxEYXRhTW9kZWxQYXRoLCB0aGlzLmRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LlZhbHVlLnBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjcml0aWNhbGl0eSBleHByZXNzaW9uIGZvciB0aGUgT2JqZWN0U3RhdHVzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgYmluZGluZyBleHByZXNzaW9uIGZvciBjcml0aWNhbGl0eSBjb2xvciwgb3IgdW5kZWZpbmVkIGlmIG5vIGNyaXRpY2FsaXR5IGlzIGF2YWlsYWJsZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb24oY29sb3JQYWxldHRlPzogc3RyaW5nKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHBhc3RlbENvbG9yTWFwID0ge1xuXHRcdFx0TmVnYXRpdmU6IFwiSW5kaWNhdGlvbjEyXCIsXG5cdFx0XHRDcml0aWNhbDogXCJJbmRpY2F0aW9uMTNcIixcblx0XHRcdFBvc2l0aXZlOiBcIkluZGljYXRpb24xNFwiLFxuXHRcdFx0SW5mb3JtYXRpb246IFwiSW5kaWNhdGlvbjE1XCIsXG5cdFx0XHROZXV0cmFsOiBcIkluZGljYXRpb24yMFwiXG5cdFx0fTtcblx0XHRjb25zdCBzcGVjaWZpY0NvbG9yTWFwID0gY29sb3JQYWxldHRlID09PSBcIlBhc3RlbFwiID8gcGFzdGVsQ29sb3JNYXAgOiB1bmRlZmluZWQ7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YU1vZGVsUGF0aCA9PT0gdW5kZWZpbmVkXG5cdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0OiBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy5kYXRhTW9kZWxQYXRoLCBzcGVjaWZpY0NvbG9yTWFwKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjcml0aWNhbGl0eSBpY29uIGV4cHJlc3Npb24gZm9yIHRoZSBPYmplY3RTdGF0dXMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIGNyaXRpY2FsaXR5IGljb24sIG9yIHVuZGVmaW5lZCBpZiBubyBjcml0aWNhbGl0eSBpcyBhdmFpbGFibGVcblx0ICovXG5cdHByaXZhdGUgZ2V0Q3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbigpOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YU1vZGVsUGF0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy5kYXRhTW9kZWxQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB0ZXh0IGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIE9iamVjdFN0YXR1cy5cblx0ICogQHJldHVybnMgVGhlIGNvbXBpbGVkIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIE9iamVjdFN0YXR1cyB0ZXh0IGNvbnRlbnRcblx0ICovXG5cdHByaXZhdGUgZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmcoKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IHByb3BlcnR5T3JEYXRhRmllbGREYXRhTW9kZWxPYmplY3RQYXRoID0gKHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoID8/IHRoaXMuZGF0YU1vZGVsUGF0aCkgYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxcblx0XHRcdFByb3BlcnR5IHwgRGF0YUZpZWxkIHwgRGF0YVBvaW50VHlwZVxuXHRcdD47XG5cdFx0cmV0dXJuIGdldFRleHRCaW5kaW5nKHByb3BlcnR5T3JEYXRhRmllbGREYXRhTW9kZWxPYmplY3RQYXRoLCB7fSkgYXMgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgT2JqZWN0U3RhdHVzIGNvbnRyb2wgY29udGVudC5cblx0ICogQHJldHVybnMgVGhlIGNvbmZpZ3VyZWQgT2JqZWN0U3RhdHVzIGNvbnRyb2wgcmVhZHkgZm9yIHJlbmRlcmluZ1xuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBNT2JqZWN0U3RhdHVzIHtcblx0XHRjb25zdCBzdGF0dXNDb25maWcgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpPy5nZXRBZGRpdGlvbmFsQ29uZmlndXJhdGlvbigpPy5bXCJzYXAuZmUubWFjcm9zXCJdPy5TdGF0dXM7XG5cdFx0Y29uc3QgZGF0YUZpZWxkT3JQcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGggPSAodGhpcy5kYXRhTW9kZWxQYXRoID8/IHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoKSBhcyBEYXRhTW9kZWxPYmplY3RQYXRoPFxuXHRcdFx0UHJvcGVydHkgfCBEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlXG5cdFx0Pjtcblx0XHRjb25zdCB2aXNpYmxlID0gZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YUZpZWxkT3JQcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgpO1xuXHRcdGlmICh0aGlzLmlzUHJvcGVydHlJbml0aWFsKFwiY29sb3JQYWxldHRlXCIpKSB7XG5cdFx0XHR0aGlzLmNvbG9yUGFsZXR0ZSA9IHN0YXR1c0NvbmZpZz8uY29sb3JQYWxldHRlID8/IFwiU3RhbmRhcmRcIjtcblx0XHR9XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlFeHByZXNzaW9uID0gdGhpcy5nZXRDcml0aWNhbGl0eUV4cHJlc3Npb24odGhpcy5jb2xvclBhbGV0dGUpO1xuXHRcdGNvbnN0IGNyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb24gPSB0aGlzLmdldENyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb24oKTtcblx0XHRjb25zdCB0ZXh0QmluZGluZyA9IHRoaXMuZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmcoKTtcblx0XHRjb25zdCBpc0FjdGl2ZSA9IHRoaXMuaGFzTGlzdGVuZXJzKFwicHJlc3NcIik7XG5cdFx0aWYgKHRoaXMuaXNQcm9wZXJ0eUluaXRpYWwoXCJpbnZlcnRlZFwiKSkge1xuXHRcdFx0Ly8gaWYgaW52ZXJ0ZWQgaXMgbm90IHNldCwgdXNlIHRoZSBkZWZhdWx0IGZyb20gY29uZmlndXJhdGlvblxuXHRcdFx0dGhpcy5pbnZlcnRlZCA9IHN0YXR1c0NvbmZpZz8uaW52ZXJ0ZWREZWZhdWx0VmFsdWUgPT09IHRydWU7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmxhcmdlRGVzaWduKSB7XG5cdFx0XHR0aGlzLmhpZGVJY29uID0gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgdG9vbFRpcFZhbHVlID0gZ2V0VG9vbHRpcFZhbHVlKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy52YWx1ZURhdGFNb2RlbFBhdGgpO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxNT2JqZWN0U3RhdHVzXG5cdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5nZXRJZCgpLCBcIk9iamVjdFN0YXR1c1wiXSl9XG5cdFx0XHRcdGludmVydGVkPXt0aGlzLmludmVydGVkfVxuXHRcdFx0XHRjbGFzcz17dGhpcy5sYXJnZURlc2lnbiA/IFwic2FwTU9iamVjdFN0YXR1c0xhcmdlIHNhcE1PYmplY3RTdGF0dXNMb25nVGV4dFwiIDogdW5kZWZpbmVkfVxuXHRcdFx0XHRzdGF0ZT17Y3JpdGljYWxpdHlFeHByZXNzaW9ufVxuXHRcdFx0XHR0b29sdGlwPXt0b29sVGlwVmFsdWV9XG5cdFx0XHRcdGljb249e3RoaXMuaGlkZUljb24gPyB1bmRlZmluZWQgOiBjcml0aWNhbGl0eUljb25FeHByZXNzaW9ufVxuXHRcdFx0XHR0ZXh0PXt0ZXh0QmluZGluZ31cblx0XHRcdFx0dmlzaWJsZT17dmlzaWJsZX1cblx0XHRcdFx0YWN0aXZlPXtpc0FjdGl2ZX1cblx0XHRcdFx0cmVhY3RpdmVBcmVhTW9kZT17dGhpcy5yZWFjdGl2ZUFyZWFNb2RlfVxuXHRcdFx0XHRwcmVzcz17KHByZXNzRXZlbnQ6IE9iamVjdFN0YXR1cyRQcmVzc0V2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiLCBwcmVzc0V2ZW50KTtcblx0XHRcdFx0fX1cblx0XHRcdC8+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQWtCQTtBQUNBO0FBQ0E7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
279
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdGF0dXMiLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImltcGxlbWVudEludGVyZmFjZSIsIl9kZWMzIiwicHJvcGVydHkiLCJ0eXBlIiwicmVxdWlyZWQiLCJfZGVjNCIsIl9kZWM1IiwiYWxsb3dlZFZhbHVlcyIsImRlZmF1bHRWYWx1ZSIsIl9kZWM2IiwiX2RlYzciLCJfZGVjOCIsIl9kZWM5IiwiX2RlYzEwIiwiZXZlbnQiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJwcm9wZXJ0aWVzIiwib3RoZXJzIiwiX3RoaXMiLCJjYWxsIiwiX2luaXRpYWxpemVyRGVmaW5lUHJvcGVydHkiLCJfZGVzY3JpcHRvciIsIl9kZXNjcmlwdG9yMiIsIl9kZXNjcmlwdG9yMyIsIl9kZXNjcmlwdG9yNCIsIl9kZXNjcmlwdG9yNSIsIl9kZXNjcmlwdG9yNiIsIl9kZXNjcmlwdG9yNyIsIl9kZXNjcmlwdG9yOCIsIl9kZXNjcmlwdG9yOSIsIl9leHBvcnRzIiwiX2luaGVyaXRzTG9vc2UiLCJfcHJvdG8iLCJwcm90b3R5cGUiLCJvbk1ldGFkYXRhQXZhaWxhYmxlIiwiZ2V0VGVtcGxhdGluZ09iamVjdHMiLCJkYXRhTW9kZWxQYXRoIiwidmFsdWVEYXRhTW9kZWxQYXRoIiwiY29udGVudCIsImNyZWF0ZUNvbnRlbnQiLCJpbnRlcm5hbERhdGFNb2RlbFBhdGgiLCJnZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aCIsIm1ldGFQYXRoIiwiY29udGV4dFBhdGgiLCJ0YXJnZXRPYmplY3QiLCJpc1Byb3BlcnR5IiwiYW5ub3RhdGlvbnMiLCJVSSIsIkRhdGFGaWVsZERlZmF1bHQiLCJ1bmRlZmluZWQiLCJWYWx1ZSIsInBhdGgiLCJlbmhhbmNlRGF0YU1vZGVsUGF0aCIsImdldENyaXRpY2FsaXR5RXhwcmVzc2lvbiIsImNvbG9yUGFsZXR0ZSIsInBhc3RlbENvbG9yTWFwIiwiTmVnYXRpdmUiLCJDcml0aWNhbCIsIlBvc2l0aXZlIiwiSW5mb3JtYXRpb24iLCJOZXV0cmFsIiwic3BlY2lmaWNDb2xvck1hcCIsImJ1aWxkRXhwcmVzc2lvbkZvckNyaXRpY2FsaXR5Q29sb3IiLCJnZXRDcml0aWNhbGl0eUljb25FeHByZXNzaW9uIiwiYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uIiwiZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmciLCJwcm9wZXJ0eU9yRGF0YUZpZWxkRGF0YU1vZGVsT2JqZWN0UGF0aCIsImdldFRleHRCaW5kaW5nIiwic3RhdHVzQ29uZmlnIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0QWRkaXRpb25hbENvbmZpZ3VyYXRpb24iLCJkYXRhRmllbGRPclByb3BlcnR5RGF0YU1vZGVsT2JqZWN0UGF0aCIsInZpc2libGUiLCJnZXRWaXNpYmxlRXhwcmVzc2lvbiIsImlzUHJvcGVydHlJbml0aWFsIiwiY3JpdGljYWxpdHlFeHByZXNzaW9uIiwiY3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbiIsInRleHRCaW5kaW5nIiwiaXNBY3RpdmUiLCJoYXNMaXN0ZW5lcnMiLCJpbnZlcnRlZCIsImludmVydGVkRGVmYXVsdFZhbHVlIiwibGFyZ2VEZXNpZ24iLCJoaWRlSWNvbiIsInRvb2xUaXBWYWx1ZSIsImdldFRvb2x0aXBWYWx1ZSIsIl9qc3giLCJNT2JqZWN0U3RhdHVzIiwiaWQiLCJnZW5lcmF0ZSIsImdldElkIiwiY2xhc3MiLCJzdGF0ZSIsInRvb2x0aXAiLCJpY29uIiwidGV4dCIsImFjdGl2ZSIsInJlYWN0aXZlQXJlYU1vZGUiLCJwcmVzcyIsInByZXNzRXZlbnQiLCJmaXJlRXZlbnQiLCJCdWlsZGluZ0Jsb2NrIiwiX2FwcGx5RGVjb3JhdGVkRGVzY3JpcHRvciIsImNvbmZpZ3VyYWJsZSIsImVudW1lcmFibGUiLCJ3cml0YWJsZSIsImluaXRpYWxpemVyIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJTdGF0dXMudHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUHJvcGVydHkgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YUZpZWxkLCBEYXRhUG9pbnRUeXBlIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL3ZvY2FidWxhcmllcy9VSVwiO1xuaW1wb3J0IHsgVUlBbm5vdGF0aW9uVGVybXMgfSBmcm9tIFwiQHNhcC11eC92b2NhYnVsYXJpZXMtdHlwZXMvdm9jYWJ1bGFyaWVzL1VJXCI7XG5pbXBvcnQgdHlwZSB7IENvbXBpbGVkQmluZGluZ1Rvb2xraXRFeHByZXNzaW9uIH0gZnJvbSBcInNhcC9mZS9iYXNlL0JpbmRpbmdUb29sa2l0XCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgZXZlbnQsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHksIHR5cGUgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IEJ1aWxkaW5nQmxvY2sgZnJvbSBcInNhcC9mZS9jb3JlL2J1aWxkaW5nQmxvY2tzL0J1aWxkaW5nQmxvY2tcIjtcbmltcG9ydCB7IGdlbmVyYXRlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvU3RhYmxlSWRIZWxwZXJcIjtcbmltcG9ydCB7IGlzUHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2NvcmUvaGVscGVycy9UeXBlR3VhcmRzXCI7XG5pbXBvcnQgeyBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yLCBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUljb24gfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Dcml0aWNhbGl0eUZvcm1hdHRlcnNcIjtcbmltcG9ydCB0eXBlIHsgRGF0YU1vZGVsT2JqZWN0UGF0aCB9IGZyb20gXCJzYXAvZmUvY29yZS90ZW1wbGF0aW5nL0RhdGFNb2RlbFBhdGhIZWxwZXJcIjtcbmltcG9ydCB7IGVuaGFuY2VEYXRhTW9kZWxQYXRoIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvRGF0YU1vZGVsUGF0aEhlbHBlclwiO1xuaW1wb3J0IHsgZ2V0VG9vbHRpcFZhbHVlIH0gZnJvbSBcInNhcC9mZS9jb3JlL3RlbXBsYXRpbmcvVUlGb3JtYXR0ZXJzXCI7XG5pbXBvcnQgeyBnZXRUZXh0QmluZGluZywgZ2V0VmlzaWJsZUV4cHJlc3Npb24gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9maWVsZC9GaWVsZFRlbXBsYXRpbmdcIjtcbmltcG9ydCB0eXBlIHsgT2JqZWN0U3RhdHVzJFByZXNzRXZlbnQgfSBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgTU9iamVjdFN0YXR1cyBmcm9tIFwic2FwL20vT2JqZWN0U3RhdHVzXCI7XG5pbXBvcnQgdHlwZSB7ICRDb250cm9sU2V0dGluZ3MgfSBmcm9tIFwic2FwL3VpL2NvcmUvQ29udHJvbFwiO1xuaW1wb3J0IHR5cGUgeyBJRm9ybUNvbnRlbnQgfSBmcm9tIFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuXG4vKipcbiAqIEJ1aWxkaW5nIGJsb2NrIHRvIGRpc3BsYXkgYSBzdGF0dXMgYW5kIGNyaXRpY2FsaXR5LlxuICogQHB1YmxpY1xuICogQHNpbmNlIDEuMTQzLjBcbiAqL1xuQGRlZmluZVVJNUNsYXNzKFwic2FwLmZlLm1hY3Jvcy5TdGF0dXNcIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN0YXR1cyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8TU9iamVjdFN0YXR1cz4gaW1wbGVtZW50cyBJRm9ybUNvbnRlbnQge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLnVpLmNvcmUuSUZvcm1Db250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX3VpX2NvcmVfSUZvcm1Db250ZW50ID0gdHJ1ZTtcblxuXHQvKipcblx0ICogTWV0YWRhdGEgcGF0aCB0byB0aGUgRGF0YUZpZWxkIGFubm90YXRpb24gb3IgcHJvcGVydHkuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7XG5cdFx0dHlwZTogXCJzdHJpbmdcIixcblx0XHRyZXF1aXJlZDogdHJ1ZVxuXHR9KVxuXHRwdWJsaWMgbWV0YVBhdGghOiBzdHJpbmc7XG5cblx0LyoqXG5cdCAqIENvbnRleHQgcGF0aCBmb3IgdGhlIGJpbmRpbmcgY29udGV4dC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHtcblx0XHR0eXBlOiBcInN0cmluZ1wiXG5cdH0pXG5cdHB1YmxpYyBjb250ZXh0UGF0aD86IHN0cmluZztcblxuXHQvKipcblx0ICogIFdoZW4gdGhlIFN0YXR1cyBpcyBjbGlja2FibGUsIGl0IGRlZmluZXMgdGhlIHNpemUgb2YgdGhlIHJlYWN0aXZlIGFyZWEgb2YgdGhlIGNsaWNrYWJsZSBlbGVtZW50OlxuXHQgKlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuSW5saW5lIC0gVGhlIFN0YXR1cyBpcyBkaXNwbGF5ZWQgYXMgcGFydCBvZiBhIHNlbnRlbmNlLlxuXHQgKiAtIFJlYWN0aXZlQXJlYU1vZGUuT3ZlcmxheSAtIFRoZSBTdGF0dXMgaXMgZGlzcGxheWVkIGFzIGFuIG92ZXJsYXkgb24gdG9wIG9mIG90aGVyIGludGVyYWN0aXZlIHBhcnRzIG9mIHRoZSBwYWdlLlxuXHQgKiBOb3RlOiBJdCBpcyBkZXNpZ25lZCB0byBtYWtlIHRoZSBjbGlja2FibGUgZWxlbWVudCBlYXNpZXIgdG8gYWN0aXZhdGUgYW5kIGhlbHBzIG1lZXQgdGhlIFdDQUcgMi4yIFRhcmdldCBTaXplIHJlcXVpcmVtZW50LiBJdCBpcyBhcHBsaWNhYmxlIG9ubHkgZm9yIHRoZSBTQVAgSG9yaXpvbiB0aGVtZXMuIE5vdGU6IFRoZSBzaXplIG9mIHRoZSByZWFjdGl2ZSBhcmVhIGlzIHN1ZmZpY2llbnRseSBsYXJnZSB0byBoZWxwIHVzZXJzIGF2b2lkIGFjY2lkZW50YWxseSBzZWxlY3RpbmcgKGNsaWNraW5nIG9yIHRhcHBpbmcpIHVuaW50ZW5kZWQgVUkgZWxlbWVudHMuIFVJIGVsZW1lbnRzIHBvc2l0aW9uZWQgb3ZlciBvdGhlciBwYXJ0cyBvZiB0aGUgcGFnZSBtYXkgbmVlZCBhbiBpbnZpc2libGUgYWN0aXZlIHRvdWNoIGFyZWEuIFRoaXMgZW5zdXJlcyB0aGF0IG5vIGVsZW1lbnRzIGJlbmVhdGggYXJlIGFjdGl2YXRlZCBhY2NpZGVudGFsbHkgd2hlbiB0aGUgdXNlciB0cmllcyB0byBpbnRlcmFjdCB3aXRoIHRoZSBvdmVybGF5IGVsZW1lbnQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGFsbG93ZWRWYWx1ZXM6IFtcIklubGluZVwiLCBcIk92ZXJsYXlcIl0sIGRlZmF1bHRWYWx1ZTogXCJJbmxpbmVcIiB9KVxuXHRwdWJsaWMgcmVhY3RpdmVBcmVhTW9kZT86IFwiSW5saW5lXCIgfCBcIk92ZXJsYXlcIjtcblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIE9iamVjdFN0YXR1cyBzaG91bGQgYmUgZGlzcGxheWVkIGluIGxhcmdlIGRlc2lnbiBtb2RlLlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcImJvb2xlYW5cIiB9KVxuXHRwdWJsaWMgbGFyZ2VEZXNpZ24gPSBmYWxzZTtcblxuXHQvKipcblx0ICogRGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSBiYWNrZ3JvdW5kIGNvbG9yIHJlZmxlY3RzIHRoZSBzZXQgc3RhdGUgb2YgdGhlIE9iamVjdFN0YXR1cyBpbnN0ZWFkIG9mIHRoZSBjb250cm9sJ3MgdGV4dC5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGludmVydGVkID0gZmFsc2U7XG5cblx0QHByb3BlcnR5KHsgdHlwZTogXCJib29sZWFuXCIgfSlcblx0cHVibGljIGhpZGVJY29uID0gZmFsc2U7XG5cblx0LyoqXG5cdCAqIENvbG9yIHBhbGV0dGUgdG8gYmUgdXNlZCBieSB0aGUgY29udHJvbC4gVGhlIHN1cHBvcnRlZCB2YWx1ZXMgYXJlIFwiU3RhbmRhcmRcIiAoZGVmYXVsdCkgYW5kIFwiUGFzdGVsXCIuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIGFsbG93ZWRWYWx1ZXM6IFtcIlN0YW5kYXJkXCIsIFwiUGFzdGVsXCJdLCBkZWZhdWx0VmFsdWU6IFwiU3RhbmRhcmRcIiB9KVxuXHRwdWJsaWMgY29sb3JQYWxldHRlPzogXCJTdGFuZGFyZFwiIHwgXCJQYXN0ZWxcIjtcblxuXHQvKipcblx0ICogUHJlc3MgZXZlbnQgZmlyZWQgd2hlbiB0aGUgT2JqZWN0U3RhdHVzIGlzIGNsaWNrZWQuXG5cdCAqIEBwYXJhbSBldmVudCBUaGUgcHJlc3MgZXZlbnRcblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QGV2ZW50KClcblx0cHVibGljIHByZXNzPzogKGV2ZW50OiBPYmplY3RTdGF0dXMkUHJlc3NFdmVudCkgPT4gdm9pZDtcblxuXHQvKipcblx0ICogSW50ZXJuYWwgcHJvcGVydHkgdG8gc3RvcmUgdGhlIGRhdGEgbW9kZWwgcGF0aFxuXHQgKi9cblx0cHJpdmF0ZSBkYXRhTW9kZWxQYXRoPzogRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlPjtcblxuXHRwcml2YXRlIHZhbHVlRGF0YU1vZGVsUGF0aD86IERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+O1xuXG5cdC8qKlxuXHQgKiBDb25zdHJ1Y3RvciBmb3IgdGhlIFN0YXR1cyBidWlsZGluZyBibG9jay5cblx0ICogQHBhcmFtIHByb3BlcnRpZXMgVGhlIHByb3BlcnRpZXMgb2JqZWN0IGNvbnRhaW5pbmcgU3RhdHVzLXNwZWNpZmljIHNldHRpbmdzIGFuZCBiYXNlIGNvbnRyb2wgc2V0dGluZ3Ncblx0ICogQHBhcmFtIFtvdGhlcnNdIEFkZGl0aW9uYWwgY29udHJvbCBzZXR0aW5ncyB0aGF0IG1heSBiZSBhcHBsaWVkIHRvIHRoZSBidWlsZGluZyBibG9ja1xuXHQgKi9cblx0Y29uc3RydWN0b3IocHJvcGVydGllczogJENvbnRyb2xTZXR0aW5ncyAmIFByb3BlcnRpZXNPZjxTdGF0dXM+LCBvdGhlcnM/OiAkQ29udHJvbFNldHRpbmdzKSB7XG5cdFx0c3VwZXIocHJvcGVydGllcywgb3RoZXJzKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVyIGZvciB0aGUgb25NZXRhZGF0YUF2YWlsYWJsZSBldmVudC5cblx0ICovXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5nZXRUZW1wbGF0aW5nT2JqZWN0cygpO1xuXHRcdGlmICghdGhpcy5kYXRhTW9kZWxQYXRoICYmICF0aGlzLnZhbHVlRGF0YU1vZGVsUGF0aCkge1xuXHRcdFx0Ly8gdGhlcmUgY2Fubm90IGJlIGEgc3RhdGljIHZhbHVlIGFuZCBubyBkYXRhZmllbGQgb3IgZGF0YXBvaW50XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdGlmICghdGhpcy5jb250ZW50KSB7XG5cdFx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogRnVuY3Rpb24gdG8gZ2V0IHRoZSB0ZW1wbGF0aW5nIG9iamVjdHMgYW5kIHByZXBhcmUgZGF0YSBtb2RlbCBwYXRocy5cblx0ICovXG5cdHByaXZhdGUgZ2V0VGVtcGxhdGluZ09iamVjdHMoKTogdm9pZCB7XG5cdFx0Ly8gVHJ5IHRvIGdldCBhcyBEYXRhRmllbGQgZmlyc3QsIHRoZW4gYXMgRGF0YVBvaW50LCB0aGVuIGFzIFByb3BlcnR5XG5cdFx0Y29uc3QgaW50ZXJuYWxEYXRhTW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlIHwgUHJvcGVydHk+KFxuXHRcdFx0dGhpcy5tZXRhUGF0aCxcblx0XHRcdHRoaXMuY29udGV4dFBhdGhcblx0XHQpO1xuXHRcdGNvbnN0IHRhcmdldE9iamVjdCA9IGludGVybmFsRGF0YU1vZGVsUGF0aD8udGFyZ2V0T2JqZWN0O1xuXG5cdFx0aWYgKCFpbnRlcm5hbERhdGFNb2RlbFBhdGgpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0aWYgKGlzUHJvcGVydHkodGFyZ2V0T2JqZWN0KSkge1xuXHRcdFx0aWYgKHRhcmdldE9iamVjdD8uYW5ub3RhdGlvbnM/LlVJPy5EYXRhRmllbGREZWZhdWx0ICE9PSB1bmRlZmluZWQpIHtcblx0XHRcdFx0dGhpcy5kYXRhTW9kZWxQYXRoID0gdGhpcy5nZXREYXRhTW9kZWxPYmplY3RGb3JNZXRhUGF0aDxEYXRhRmllbGQ+KFxuXHRcdFx0XHRcdGAke3RoaXMubWV0YVBhdGh9QCR7VUlBbm5vdGF0aW9uVGVybXMuRGF0YUZpZWxkRGVmYXVsdH1gLFxuXHRcdFx0XHRcdHRoaXMuY29udGV4dFBhdGhcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHRcdHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoID0gaW50ZXJuYWxEYXRhTW9kZWxQYXRoIGFzIERhdGFNb2RlbE9iamVjdFBhdGg8UHJvcGVydHk+O1xuXHRcdH0gZWxzZSB7XG5cdFx0XHR0aGlzLmRhdGFNb2RlbFBhdGggPSBpbnRlcm5hbERhdGFNb2RlbFBhdGggYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlPjtcblx0XHRcdGlmICh0aGlzLmRhdGFNb2RlbFBhdGg/LnRhcmdldE9iamVjdD8uVmFsdWU/LnBhdGgpIHtcblx0XHRcdFx0dGhpcy52YWx1ZURhdGFNb2RlbFBhdGggPSBlbmhhbmNlRGF0YU1vZGVsUGF0aDxQcm9wZXJ0eT4oaW50ZXJuYWxEYXRhTW9kZWxQYXRoLCB0aGlzLmRhdGFNb2RlbFBhdGgudGFyZ2V0T2JqZWN0LlZhbHVlLnBhdGgpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjcml0aWNhbGl0eSBleHByZXNzaW9uIGZvciB0aGUgT2JqZWN0U3RhdHVzLlxuXHQgKiBAcmV0dXJucyBUaGUgY29tcGlsZWQgYmluZGluZyBleHByZXNzaW9uIGZvciBjcml0aWNhbGl0eSBjb2xvciwgb3IgdW5kZWZpbmVkIGlmIG5vIGNyaXRpY2FsaXR5IGlzIGF2YWlsYWJsZVxuXHQgKi9cblx0cHJpdmF0ZSBnZXRDcml0aWNhbGl0eUV4cHJlc3Npb24oY29sb3JQYWxldHRlPzogc3RyaW5nKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IHBhc3RlbENvbG9yTWFwID0ge1xuXHRcdFx0TmVnYXRpdmU6IFwiSW5kaWNhdGlvbjEyXCIsXG5cdFx0XHRDcml0aWNhbDogXCJJbmRpY2F0aW9uMTNcIixcblx0XHRcdFBvc2l0aXZlOiBcIkluZGljYXRpb24xNFwiLFxuXHRcdFx0SW5mb3JtYXRpb246IFwiSW5kaWNhdGlvbjE1XCIsXG5cdFx0XHROZXV0cmFsOiBcIkluZGljYXRpb24yMFwiXG5cdFx0fTtcblx0XHRjb25zdCBzcGVjaWZpY0NvbG9yTWFwID0gY29sb3JQYWxldHRlID09PSBcIlBhc3RlbFwiID8gcGFzdGVsQ29sb3JNYXAgOiB1bmRlZmluZWQ7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YU1vZGVsUGF0aCA9PT0gdW5kZWZpbmVkXG5cdFx0XHQ/IHVuZGVmaW5lZFxuXHRcdFx0OiBidWlsZEV4cHJlc3Npb25Gb3JDcml0aWNhbGl0eUNvbG9yKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy5kYXRhTW9kZWxQYXRoLCBzcGVjaWZpY0NvbG9yTWFwKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSBjcml0aWNhbGl0eSBpY29uIGV4cHJlc3Npb24gZm9yIHRoZSBPYmplY3RTdGF0dXMuXG5cdCAqIEByZXR1cm5zIFRoZSBjb21waWxlZCBiaW5kaW5nIGV4cHJlc3Npb24gZm9yIGNyaXRpY2FsaXR5IGljb24sIG9yIHVuZGVmaW5lZCBpZiBubyBjcml0aWNhbGl0eSBpcyBhdmFpbGFibGVcblx0ICovXG5cdHByaXZhdGUgZ2V0Q3JpdGljYWxpdHlJY29uRXhwcmVzc2lvbigpOiBDb21waWxlZEJpbmRpbmdUb29sa2l0RXhwcmVzc2lvbiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuZGF0YU1vZGVsUGF0aCA9PT0gdW5kZWZpbmVkID8gdW5kZWZpbmVkIDogYnVpbGRFeHByZXNzaW9uRm9yQ3JpdGljYWxpdHlJY29uKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy5kYXRhTW9kZWxQYXRoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBHZXRzIHRoZSB0ZXh0IGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIE9iamVjdFN0YXR1cy5cblx0ICogQHJldHVybnMgVGhlIGNvbXBpbGVkIGJpbmRpbmcgZXhwcmVzc2lvbiBmb3IgdGhlIE9iamVjdFN0YXR1cyB0ZXh0IGNvbnRlbnRcblx0ICovXG5cdHByaXZhdGUgZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmcoKTogQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb24ge1xuXHRcdGNvbnN0IHByb3BlcnR5T3JEYXRhRmllbGREYXRhTW9kZWxPYmplY3RQYXRoID0gKHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoID8/IHRoaXMuZGF0YU1vZGVsUGF0aCkgYXMgRGF0YU1vZGVsT2JqZWN0UGF0aDxcblx0XHRcdFByb3BlcnR5IHwgRGF0YUZpZWxkIHwgRGF0YVBvaW50VHlwZVxuXHRcdD47XG5cdFx0cmV0dXJuIGdldFRleHRCaW5kaW5nKHByb3BlcnR5T3JEYXRhRmllbGREYXRhTW9kZWxPYmplY3RQYXRoLCB7fSkgYXMgQ29tcGlsZWRCaW5kaW5nVG9vbGtpdEV4cHJlc3Npb247XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyB0aGUgT2JqZWN0U3RhdHVzIGNvbnRyb2wgY29udGVudC5cblx0ICogQHJldHVybnMgVGhlIGNvbmZpZ3VyZWQgT2JqZWN0U3RhdHVzIGNvbnRyb2wgcmVhZHkgZm9yIHJlbmRlcmluZ1xuXHQgKi9cblx0Y3JlYXRlQ29udGVudCgpOiBNT2JqZWN0U3RhdHVzIHtcblx0XHRjb25zdCBzdGF0dXNDb25maWcgPSB0aGlzLmdldEFwcENvbXBvbmVudCgpPy5nZXRBZGRpdGlvbmFsQ29uZmlndXJhdGlvbigpPy5bXCJzYXAuZmUubWFjcm9zXCJdPy5TdGF0dXM7XG5cdFx0Y29uc3QgZGF0YUZpZWxkT3JQcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGggPSAodGhpcy5kYXRhTW9kZWxQYXRoID8/IHRoaXMudmFsdWVEYXRhTW9kZWxQYXRoKSBhcyBEYXRhTW9kZWxPYmplY3RQYXRoPFxuXHRcdFx0UHJvcGVydHkgfCBEYXRhRmllbGQgfCBEYXRhUG9pbnRUeXBlXG5cdFx0Pjtcblx0XHRjb25zdCB2aXNpYmxlID0gZ2V0VmlzaWJsZUV4cHJlc3Npb24oZGF0YUZpZWxkT3JQcm9wZXJ0eURhdGFNb2RlbE9iamVjdFBhdGgpO1xuXHRcdGlmICh0aGlzLmlzUHJvcGVydHlJbml0aWFsKFwiY29sb3JQYWxldHRlXCIpKSB7XG5cdFx0XHR0aGlzLmNvbG9yUGFsZXR0ZSA9IHN0YXR1c0NvbmZpZz8uY29sb3JQYWxldHRlID8/IFwiU3RhbmRhcmRcIjtcblx0XHR9XG5cdFx0Y29uc3QgY3JpdGljYWxpdHlFeHByZXNzaW9uID0gdGhpcy5nZXRDcml0aWNhbGl0eUV4cHJlc3Npb24odGhpcy5jb2xvclBhbGV0dGUpO1xuXHRcdGNvbnN0IGNyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb24gPSB0aGlzLmdldENyaXRpY2FsaXR5SWNvbkV4cHJlc3Npb24oKTtcblx0XHRjb25zdCB0ZXh0QmluZGluZyA9IHRoaXMuZ2V0T2JqZWN0U3RhdHVzVGV4dEJpbmRpbmcoKTtcblx0XHRjb25zdCBpc0FjdGl2ZSA9IHRoaXMuaGFzTGlzdGVuZXJzKFwicHJlc3NcIik7XG5cdFx0aWYgKHRoaXMuaXNQcm9wZXJ0eUluaXRpYWwoXCJpbnZlcnRlZFwiKSkge1xuXHRcdFx0Ly8gaWYgaW52ZXJ0ZWQgaXMgbm90IHNldCwgdXNlIHRoZSBkZWZhdWx0IGZyb20gY29uZmlndXJhdGlvblxuXHRcdFx0dGhpcy5pbnZlcnRlZCA9IHN0YXR1c0NvbmZpZz8uaW52ZXJ0ZWREZWZhdWx0VmFsdWUgPT09IHRydWU7XG5cdFx0fVxuXHRcdGlmICh0aGlzLmxhcmdlRGVzaWduKSB7XG5cdFx0XHR0aGlzLmhpZGVJY29uID0gdHJ1ZTtcblx0XHR9XG5cdFx0Y29uc3QgdG9vbFRpcFZhbHVlID0gZ2V0VG9vbHRpcFZhbHVlKHRoaXMuZGF0YU1vZGVsUGF0aCwgdGhpcy52YWx1ZURhdGFNb2RlbFBhdGgpO1xuXG5cdFx0cmV0dXJuIChcblx0XHRcdDxNT2JqZWN0U3RhdHVzXG5cdFx0XHRcdGlkPXtnZW5lcmF0ZShbdGhpcy5nZXRJZCgpLCBcIk9iamVjdFN0YXR1c1wiXSl9XG5cdFx0XHRcdGludmVydGVkPXt0aGlzLmludmVydGVkfVxuXHRcdFx0XHRjbGFzcz17dGhpcy5sYXJnZURlc2lnbiA/IFwic2FwTU9iamVjdFN0YXR1c0xhcmdlIHNhcE1PYmplY3RTdGF0dXNMb25nVGV4dFwiIDogdW5kZWZpbmVkfVxuXHRcdFx0XHRzdGF0ZT17Y3JpdGljYWxpdHlFeHByZXNzaW9ufVxuXHRcdFx0XHR0b29sdGlwPXt0b29sVGlwVmFsdWV9XG5cdFx0XHRcdGljb249e3RoaXMuaGlkZUljb24gPyB1bmRlZmluZWQgOiBjcml0aWNhbGl0eUljb25FeHByZXNzaW9ufVxuXHRcdFx0XHR0ZXh0PXt0ZXh0QmluZGluZ31cblx0XHRcdFx0dmlzaWJsZT17dmlzaWJsZX1cblx0XHRcdFx0YWN0aXZlPXtpc0FjdGl2ZX1cblx0XHRcdFx0cmVhY3RpdmVBcmVhTW9kZT17dGhpcy5yZWFjdGl2ZUFyZWFNb2RlfVxuXHRcdFx0XHRwcmVzcz17KHByZXNzRXZlbnQ6IE9iamVjdFN0YXR1cyRQcmVzc0V2ZW50KTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5maXJlRXZlbnQoXCJwcmVzc1wiLCBwcmVzc0V2ZW50KTtcblx0XHRcdFx0fX1cblx0XHRcdC8+XG5cdFx0KTtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7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
@@ -19,8 +19,7 @@ import type { IFormContent } from "sap/ui/core/library";
19
19
  /**
20
20
  * Building block to display a status and criticality.
21
21
  * @public
22
- * @ui5-experimental-since 1.141.0
23
- * @since 1.141.0
22
+ * @since 1.143.0
24
23
  */
25
24
  @defineUI5Class("sap.fe.macros.Status")
26
25
  export default class Status extends BuildingBlock<MObjectStatus> implements IFormContent {
@@ -54,7 +53,7 @@ export default class Status extends BuildingBlock<MObjectStatus> implements IFor
54
53
  * Note: It is designed to make the clickable element easier to activate and helps meet the WCAG 2.2 Target Size requirement. It is applicable only for the SAP Horizon themes. Note: The size of the reactive area is sufficiently large to help users avoid accidentally selecting (clicking or tapping) unintended UI elements. UI elements positioned over other parts of the page may need an invisible active touch area. This ensures that no elements beneath are activated accidentally when the user tries to interact with the overlay element.
55
54
  * @public
56
55
  */
57
- @property({ type: "string", allowedValues: ["Inline", "Overlay"] })
56
+ @property({ type: "string", allowedValues: ["Inline", "Overlay"], defaultValue: "Inline" })
58
57
  public reactiveAreaMode?: "Inline" | "Overlay";
59
58
 
60
59
  /**
@@ -78,7 +77,7 @@ export default class Status extends BuildingBlock<MObjectStatus> implements IFor
78
77
  * Color palette to be used by the control. The supported values are "Standard" (default) and "Pastel".
79
78
  * @public
80
79
  */
81
- @property({ type: "string", allowedValues: ["Standard", "Pastel"] })
80
+ @property({ type: "string", allowedValues: ["Standard", "Pastel"], defaultValue: "Standard" })
82
81
  public colorPalette?: "Standard" | "Pastel";
83
82
 
84
83
  /**
@@ -509,6 +509,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
509
509
  direction: FlexDirection.Column,
510
510
  class: "sapUiContentPadding",
511
511
  renderType: "Bare",
512
+ fitContainer: true,
512
513
  children: [_jsx(FormattedText, {
513
514
  htmlText: this.getTranslatedText("C_EASYEDIT_DIALOG_DESCRIPTION"),
514
515
  class: "sapUiTinyMarginBottom"
@@ -632,4 +633,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
632
633
  _exports = EasyFillDialog;
633
634
  return _exports;
634
635
  }, false);
635
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfTEVOR1RIIiwiRWFzeUZpbGxEaWFsb2ciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImRlZmluZVJlZmVyZW5jZSIsIl9kZWMzIiwiX2RlYzQiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJpZE9yUHJvcHMiLCJwcm9wcyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIl9vd25lckNvbXBvbmVudCIsInN0YXRlIiwibmV3VmFsdWVzIiwiaGFzVmFsdWVzIiwiaGFzRXJyb3IiLCJzdGF0ZVR5cGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIm9uQ29uZmlybSIsIl9lIiwibWFpblBhZ2VCaW5kaW5nQ29udGV4dCIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiYWxsUHJvcHMiLCJfYmluZGluZ0NvbnRleHQiLCJnZXRPYmplY3QiLCJuZXdWYWx1ZXNLZXkiLCJzdGFydHNXaXRoIiwic2V0UHJvcGVydHkiLCJwdXNoIiwiYXBwbHlVcGRhdGVzRm9yQ2hhbmdlIiwiZ2V0UGF0aCIsIlByb21pc2UiLCJhbGwiLCJyZWZyZXNoIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJjbG9zZSIsInZpZXciLCJwcm9wZXJ0eVBhdGhGb3JVcGRhdGUiLCJtZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm1ldGFDb250ZXh0IiwiZ2V0TWV0YUNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3QiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJ0YXJnZXRDb250ZXh0Iiwic2lkZUVmZmVjdHNQcm9taXNlcyIsInNpZGVFZmZlY3RzU2VydmljZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsInRhcmdldE1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJyZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlIiwicmVwbGFjZSIsInNsaWNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwiZmllbGRHcm91cElkcyIsImNvbXB1dGVGaWVsZEdyb3VwSWRzIiwidGFyZ2V0RW50aXR5VHlwZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRhcmdldE9iamVjdCIsImxlbmd0aCIsInBhZ2VDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCIsIl9zaWRlRWZmZWN0cyIsImdldFNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNpZGVFZmZlY3ROYW1lIiwic2lkZUVmZmVjdCIsInNpZGVFZmZlY3RzIiwiY29udGV4dCIsInVuZGVmaW5lZCIsIm9uQ2FuY2VsIiwib3BlbiIsIl9nZXRGaWVsZE1hcHBpbmciLCJkZWZpbml0aW9uUGFnZSIsImZpZWxkTWFwcGluZyIsInBhZ2VUYXJnZXQiLCJnZXRUYXJnZXQiLCJlbnRpdHlUeXBlIiwiX3R5cGUiLCJ0YXJnZXRUeXBlIiwiZW50aXR5UHJvcGVydHkiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiaXNJbW11dGFibGUiLCJpc0NvbXB1dGVkIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJnZXRMYWJlbCIsImRhdGFUeXBlIiwiZ2VuZXJhdGVMaXN0QmluZGluZyIsInBhdGgiLCJtb2RlbCIsInRyYW5zaWVudExpc3RCaW5kaW5nIiwiYmluZExpc3QiLCIkJHVwZGF0ZUdyb3VwSWQiLCJyZWZyZXNoSW50ZXJuYWwiLCJvblRodW1iUHJlc3MiLCJ0aHVtYlVwQnV0dG9uIiwidGh1bWJEb3duQnV0dG9uIiwic2V0RW5hYmxlZCIsIk1lc3NhZ2VUb2FzdCIsInNob3ciLCJnZXRUcmFuc2xhdGVkVGV4dCIsImZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMiLCJ2YWx1ZSIsIm9uQ2xlYXJBbGwiLCJoYXNJbmNvcnJlY3RWYWx1ZXMiLCJlbnRlcmVkVGV4dCIsImN1cnJlbnRseUVudGVyZWRUZXh0IiwiaW5jb3JyZWN0VmFsdWVzIiwib25WYWxpZGF0ZUZpZWxkR3JvdXBzIiwiYWxsRmllbGRzIiwiJHJldmlld0FyZWEiLCJjdXJyZW50IiwiZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZCIsInNvbWUiLCJmaWVsZCIsImRhdGEiLCJnZXRWYWx1ZVN0YXRlIiwib25GaWVsZENoYW5nZSIsImV2IiwiZ2V0U291cmNlIiwicmVtb3ZlTWVzc2FnZSIsIm9uRWFzeUVkaXRQcmVzc2VkIiwibWV0YVBhdGgiLCJnZXRPd25lclBhZ2VEZWZpbml0aW9uIiwiZWFzeUZpbGxMaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsIm9kYXRhTW9kZWwiLCJjcmVhdGUiLCJpc0J1c3kiLCJhaUNhbGxSZXN1bHQiLCJleHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCIsInN1Y2Nlc3MiLCJ1cGRhdGVkRmllbGRzIiwiZWRpdGFibGVGaWVsZHMiLCJnZXRFZGl0YWJsZUZpZWxkcyIsIiRzY3JvbGxDb250YWluZXIiLCJkZXN0cm95IiwicmV2aWV3QXJlYUZvcm0iLCJfanN4IiwiRm9ybSIsImVkaXRhYmxlIiwiY2xhc3MiLCJ2aXNpYmxlIiwiYmluZFN0YXRlIiwiY2hpbGRyZW4iLCJsYXlvdXQiLCJDb2x1bW5MYXlvdXQiLCJjb2x1bW5zTSIsImNvbHVtbnNMIiwiY29sdW1uc1hMIiwibGFiZWxDZWxsc0xhcmdlIiwiZW1wdHlDZWxsc0xhcmdlIiwiaW5jb3JyZWN0VmFsdWVzRm9ybSIsIndhcm5pbmdNZXNzYWdlIiwiTWVzc2FnZVN0cmlwIiwidGV4dCIsInNob3dJY29uIiwiVG9nZ2xlQnV0dG9uIiwiaWNvbiIsInRvb2x0aXAiLCJwcmVzcyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIiwiYWlOb3RpY2VUZXh0IiwiX2pzeHMiLCJIQm94IiwiYWxpZ25JdGVtcyIsImVxdWFsIiwiQUlMaW5rTm90aWNlIiwiVGV4dCIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lciIsIkZvcm1Db250YWluZXIiLCJ0aXRsZSIsIkNvcmVUaXRsZSIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJuZXdWYWx1ZXNGb3JtQ29udGFpbmVyIiwibmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJ1aUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRm9ybUNvbnRhaW5lciIsInNldE1vZGVsIiwiJHZCb3giLCJjcmVhdGVSZWZlcmVuY2UiLCJhZGRJdGVtIiwiU2Nyb2xsQ29udGFpbmVyIiwicmVmIiwidmVydGljYWwiLCJWQm94IiwiaXRlbXMiLCJsYXlvdXREYXRhIiwiRmxleEl0ZW1EYXRhIiwiYWxpZ25TZWxmIiwiVGl0bGUiLCJ1cGRhdGVkRmllbGQiLCJpc0VkaXRhYmxlIiwiYWRkRm9ybUVsZW1lbnQiLCJGb3JtRWxlbWVudCIsImxhYmVsIiwiRmllbGQiLCJjb250ZXh0UGF0aCIsImdldE93bmVyQ29udGV4dFBhdGgiLCJyZWFkT25seSIsInJlcXVpcmVkIiwibmV3RmllbGQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiX3JlcXVpcmVzVmFsaWRhdGlvbiIsInZhbGlkYXRlRmllbGRHcm91cCIsImJpbmQiLCJjaGFuZ2UiLCJmaWVsZHMiLCJtZXRhTW9kZWxPYmoiLCJ2YWx1ZUV4cHJlc3Npb24iLCJBbm5vdGF0aW9uSGVscGVyIiwiZm9ybWF0IiwicGFyc2VkQmluZGluZyIsIkJpbmRpbmdJbmZvIiwicGFyc2UiLCJlcnJvck1lc3NhZ2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZSIsIm1lc3NhZ2UiLCJ2YWx1ZUxpc3QiLCJfZ2V0VmFsdWVMaXN0IiwiaGFzVkhFcnJvciIsIlZhbHVlTGlzdEhlbHBlciIsImlzVmFsdWVMaXN0U2VhcmNoYWJsZSIsInZhbHVlcyIsInJlc29sdmVUb2tlblZhbHVlIiwib3BlcmF0b3IiLCJGaWx0ZXJPcGVyYXRvciIsIkVRIiwic2VsZWN0ZWRWYWx1ZXMiLCJub01hdGNoIiwic2V0VGltZW91dCIsInNldFZhbHVlIiwibWVzc2FnZUlkIiwiYWRkTWVzc2FnZSIsIk1lc3NhZ2VUeXBlIiwiRXJyb3IiLCJlYXN5RWRpdERlc2NyaXB0aW9uIiwiSW52aXNpYmxlVGV4dCIsIiRlYXN5RmlsbEJ1dHRvbiIsIiRlYXN5RmlsbFNhdmVCdXR0b24iLCIkZWFzeUZpbGxDYW5jZWxCdXR0b24iLCIkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbiIsImRpYWxvZyIsIkRpYWxvZyIsInJlc2l6YWJsZSIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsImNvbnRlbnRIZWlnaHQiLCJlc2NhcGVIYW5kbGVyIiwiYWZ0ZXJDbG9zZSIsIkZsZXhCb3giLCJkaXJlY3Rpb24iLCJGbGV4RGlyZWN0aW9uIiwiUm93IiwicmVuZGVyVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiaWQiLCJjcmVhdGVJZCIsIkNvbHVtbiIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsIlRleHRBcmVhIiwibGl2ZUNoYW5nZSIsImdldFBhcmFtZXRlciIsInBsYWNlaG9sZGVyIiwicm93cyIsImdyb3dpbmciLCJncm93aW5nTWF4TGluZXMiLCJtYXhMZW5ndGgiLCJhcmlhTGFiZWxsZWRCeSIsImZvcm1hdHRlciIsIkJ1dHRvbiIsImVuYWJsZWQiLCJub3QiLCJpc0VtcHR5IiwiQnV0dG9uVHlwZSIsIlRyYW5zcGFyZW50IiwiYnVzeSIsIklsbHVzdHJhdGVkTWVzc2FnZSIsImlsbHVzdHJhdGlvblR5cGUiLCJJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlIiwiTm9TZWFyY2hSZXN1bHRzIiwiaWxsdXN0cmF0aW9uU2l6ZSIsIklsbHVzdHJhdGVkTWVzc2FnZVNpemUiLCJMYXJnZSIsIk5vRW50cmllcyIsIlVuYWJsZVRvTG9hZCIsImZvb3RlciIsIk92ZXJmbG93VG9vbGJhciIsIlRvb2xiYXJTcGFjZXIiLCJhbmQiLCJwcm9wZXJ0eVBhdGgiLCJ2YWx1ZUxpc3RzIiwiZ2V0VmFsdWVMaXN0SW5mbyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWxsRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGFuZCwgZXF1YWwsIGlzRW1wdHksIG5vdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVmZXJlbmNlLCBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgQUlMaW5rTm90aWNlIH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL0FJTm90aWNlXCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZFNpZGVFZmZlY3REaWN0aW9uYXJ5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25QYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2RlZmluaXRpb24vRkVEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCwgaXNDb21wdXRlZCwgaXNJbW11dGFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpZWxkXCI7XG5pbXBvcnQgeyByZXNvbHZlVG9rZW5WYWx1ZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2FpL0Vhc3lGaWx0ZXJEYXRhRmV0Y2hlclwiO1xuaW1wb3J0IFZhbHVlTGlzdEhlbHBlciwgeyB0eXBlIFZhbHVlTGlzdEluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvVmFsdWVMaXN0SGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgRmxleEl0ZW1EYXRhIGZyb20gXCJzYXAvbS9GbGV4SXRlbURhdGFcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgSEJveCBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlXCI7XG5pbXBvcnQgSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZVwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZVR5cGUgZnJvbSBcInNhcC9tL0lsbHVzdHJhdGVkTWVzc2FnZVR5cGVcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBTY3JvbGxDb250YWluZXIgZnJvbSBcInNhcC9tL1Njcm9sbENvbnRhaW5lclwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBUZXh0QXJlYSBmcm9tIFwic2FwL20vVGV4dEFyZWFcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcInNhcC9tL1RvZ2dsZUJ1dHRvblwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBGbGV4RGlyZWN0aW9uIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBCaW5kaW5nSW5mbyBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ0luZm9cIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgQ29yZVRpdGxlIGZyb20gXCJzYXAvdWkvY29yZS9UaXRsZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgQ29sdW1uTGF5b3V0IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vQ29sdW1uTGF5b3V0XCI7XG5pbXBvcnQgRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1cIjtcbmltcG9ydCBGb3JtQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUNvbnRhaW5lclwiO1xuaW1wb3J0IEZvcm1FbGVtZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUVsZW1lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCI7XG5cbmNvbnN0IE1BWF9MRU5HVEggPSAyMDAwO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLkVhc3lGaWxsRGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsbERpYWxvZyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8XG5cdERpYWxvZyxcblx0e1xuXHRcdGVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aXNCdXN5OiBib29sZWFuO1xuXHRcdGN1cnJlbnRseUVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRuZXdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdGhhc1ZhbHVlczogYm9vbGVhbjtcblx0XHRoYXNFcnJvcjogYm9vbGVhbjtcblx0XHRoYXNJbmNvcnJlY3RWYWx1ZXM6IGJvb2xlYW47XG5cdFx0c3RhdGVUeXBlOiBcIkluaXRpYWxcIiB8IFwiTm9FbnRyaWVzXCIgfCBcIkVycm9yXCIgfCBcIkhhc0VudHJpZXNcIjtcblx0fVxuPiB7XG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHQkcmV2aWV3QXJlYSE6IFJlZjxGbGV4Qm94PjtcblxuXHRAZGVmaW5lUmVmZXJlbmNlKClcblx0JHNjcm9sbENvbnRhaW5lciE6IFJlZjxGbGV4Qm94PjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcIkZ1bmN0aW9uXCIgfSlcblx0Z2V0RWRpdGFibGVGaWVsZHM/OiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIF9iaW5kaW5nQ29udGV4dD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IoaWRPclByb3BzOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8RWFzeUZpbGxEaWFsb2c+LCBwcm9wcz86IFByb3BlcnRpZXNPZjxFYXN5RmlsbERpYWxvZz4pIHtcblx0XHRzdXBlcihpZE9yUHJvcHMsIHByb3BzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdHN1cGVyLm9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50KTtcblx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJJbml0aWFsXCI7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRhc3luYyBvbkNvbmZpcm0oX2U6IEJ1dHRvbiRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gVmFsaWRhdGUgdGhlIGRhdGEgaGFuZGxpbmdcblx0XHRjb25zdCBtYWluUGFnZUJpbmRpbmdDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBhbGxQcm9wcyA9IFtdO1xuXHRcdGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuX2JpbmRpbmdDb250ZXh0Py5nZXRPYmplY3QoKSA/PyB0aGlzLnN0YXRlLm5ld1ZhbHVlcztcblx0XHRmb3IgKGNvbnN0IG5ld1ZhbHVlc0tleSBpbiBuZXdWYWx1ZXMpIHtcblx0XHRcdGlmIChuZXdWYWx1ZXNLZXkgIT09IFwiX19iaW5kaW5nSW5mb1wiICYmICFuZXdWYWx1ZXNLZXkuc3RhcnRzV2l0aChcIkAkXCIpKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV3VmFsdWVzW25ld1ZhbHVlc0tleV0gIT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRtYWluUGFnZUJpbmRpbmdDb250ZXh0Py5zZXRQcm9wZXJ0eShuZXdWYWx1ZXNLZXksIG5ld1ZhbHVlc1tuZXdWYWx1ZXNLZXldKTtcblx0XHRcdFx0XHRhbGxQcm9wcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBseVVwZGF0ZXNGb3JDaGFuZ2UodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKSwgbWFpblBhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKG5ld1ZhbHVlc0tleSkpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvcHMpO1xuXHRcdFx0bWFpblBhZ2VCaW5kaW5nQ29udGV4dC5yZWZyZXNoKCk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJGYWlsZWQgdG8gdXBkYXRlIGRhdGEgYWZ0ZXIgY2hhbmdlOlwiICsgZXJyKTtcblx0XHR9XG5cdFx0Ly8gQ2xvc2Ugbm9uZXRoZWxlc3Ncblx0XHR0aGlzLmNvbnRlbnQ/LmNsb3NlKCk7XG5cdH1cblxuXHRhc3luYyBhcHBseVVwZGF0ZXNGb3JDaGFuZ2UodmlldzogRkVWaWV3LCBwcm9wZXJ0eVBhdGhGb3JVcGRhdGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG1ldGFNb2RlbC5nZXRNZXRhQ29udGV4dChwcm9wZXJ0eVBhdGhGb3JVcGRhdGUpO1xuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KG1ldGFDb250ZXh0KTtcblx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBzaWRlRWZmZWN0c1Byb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzU2VydmljZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldykuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cblx0XHRcdC8vIFdlIGhhdmUgYSB0YXJnZXQgY29udGV4dCwgc28gd2UgY2FuIHJldHJpZXZlIHRoZSB1cGRhdGVkIHByb3BlcnR5XG5cdFx0XHRjb25zdCB0YXJnZXRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXRDb250ZXh0LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCByZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKHByb3BlcnR5UGF0aEZvclVwZGF0ZSkucmVwbGFjZSh0YXJnZXRNZXRhUGF0aCwgXCJcIikuc2xpY2UoMSk7XG5cdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goc2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhbcmVsYXRpdmVNZXRhUGF0aEZvclVwZGF0ZV0sIHRhcmdldENvbnRleHQsIFwiJGF1dG9cIikpO1xuXG5cdFx0XHQvLyBHZXQgdGhlIGZpZWxkR3JvdXBJZHMgY29ycmVzcG9uZGluZyB0byBwYXRoRm9yVXBkYXRlXG5cdFx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmNvbXB1dGVGaWVsZEdyb3VwSWRzKFxuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3QudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdC50YXJnZXRPYmplY3QhLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSB0aGUgc2lkZSBlZmZlY3RzIGZvciB0aGUgZmllbGRHcm91cElkc1xuXHRcdFx0aWYgKGZpZWxkR3JvdXBJZHMubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCA9IHBhZ2VDb250cm9sbGVyLl9zaWRlRWZmZWN0cy5nZXRTaWRlRWZmZWN0c01hcEZvckZpZWxkR3JvdXBzKFxuXHRcdFx0XHRcdGZpZWxkR3JvdXBJZHMsXG5cdFx0XHRcdFx0dGFyZ2V0Q29udGV4dFxuXHRcdFx0XHQpIGFzIEZpZWxkU2lkZUVmZmVjdERpY3Rpb25hcnk7XG5cdFx0XHRcdE9iamVjdC5rZXlzKHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCkuZm9yRWFjaCgoc2lkZUVmZmVjdE5hbWUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzaWRlRWZmZWN0ID0gc2lkZUVmZmVjdHNNYXBGb3JGaWVsZEdyb3VwW3NpZGVFZmZlY3ROYW1lXTtcblx0XHRcdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0XHRwYWdlQ29udHJvbGxlci5fc2lkZUVmZmVjdHMucmVxdWVzdFNpZGVFZmZlY3RzKHNpZGVFZmZlY3Quc2lkZUVmZmVjdHMsIHNpZGVFZmZlY3QuY29udGV4dCwgXCIkYXV0b1wiLCB1bmRlZmluZWQsIHRydWUpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHNpZGVFZmZlY3RzUHJvbWlzZXMpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiRmFpbGVkIHRvIHVwZGF0ZSBkYXRhIGFmdGVyIGNoYW5nZTpcIiArIGVycik7XG5cdFx0XHR0aHJvdyBlcnI7XG5cdFx0fVxuXHR9XG5cblx0b25DYW5jZWwoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0b3BlbigpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRlbnQ/Lm9wZW4oKTtcblx0fVxuXG5cdF9nZXRGaWVsZE1hcHBpbmcoZGVmaW5pdGlvblBhZ2U6IERlZmluaXRpb25QYWdlIHwgdW5kZWZpbmVkKTogRmllbGRNZXRhZGF0YSB7XG5cdFx0Y29uc3QgZmllbGRNYXBwaW5nOiBGaWVsZE1ldGFkYXRhID0ge307XG5cdFx0aWYgKGRlZmluaXRpb25QYWdlKSB7XG5cdFx0XHRjb25zdCBwYWdlVGFyZ2V0ID0gZGVmaW5pdGlvblBhZ2UuZ2V0TWV0YVBhdGgoKS5nZXRUYXJnZXQoKTtcblx0XHRcdGxldCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0c3dpdGNoIChwYWdlVGFyZ2V0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFbnRpdHlTZXRcIjpcblx0XHRcdFx0Y2FzZSBcIlNpbmdsZXRvblwiOlxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSBwYWdlVGFyZ2V0LmVudGl0eVR5cGU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRlbnRpdHlUeXBlID0gcGFnZVRhcmdldC50YXJnZXRUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZW50aXR5VHlwZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZW50aXR5UHJvcGVydHkgb2YgZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0IWlzSW1tdXRhYmxlKGVudGl0eVByb3BlcnR5KSAmJlxuXHRcdFx0XHRcdFx0IWlzQ29tcHV0ZWQoZW50aXR5UHJvcGVydHkpICYmXG5cdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUgJiZcblx0XHRcdFx0XHRcdCFlbnRpdHlQcm9wZXJ0eS50YXJnZXRUeXBlXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBJZiBub3QgaW1tdXRhYmxlLCBjb21wdXRlZCBvciBoaWRkZW4sIG9yIGEgY29tcGxleCB0eXBlIGFkZCB0byB0aGUgZmllbGQgbWFwcGluZ1xuXHRcdFx0XHRcdFx0ZmllbGRNYXBwaW5nW2VudGl0eVByb3BlcnR5Lm5hbWVdID0ge1xuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZ2V0TGFiZWwoZW50aXR5UHJvcGVydHkpID8/IGVudGl0eVByb3BlcnR5Lm5hbWUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlOiBlbnRpdHlQcm9wZXJ0eS50eXBlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmllbGRNYXBwaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBnZW5lcmF0ZUxpc3RCaW5kaW5nKHBhdGg6IHN0cmluZywgbW9kZWw6IE9EYXRhTW9kZWwpOiBPRGF0YUxpc3RCaW5kaW5nIHtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFx0cGF0aCxcblx0XHRcdHVuZGVmaW5lZCxcblxuXHRcdFx0W10sXG5cdFx0XHRbXSxcblx0XHRcdHtcblx0XHRcdFx0JCR1cGRhdGVHcm91cElkOiBcInN1Ym1pdExhdGVyXCJcblx0XHRcdH1cblx0XHQpO1xuXHRcdHRyYW5zaWVudExpc3RCaW5kaW5nLnJlZnJlc2hJbnRlcm5hbCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdC8qICovXG5cdFx0fTtcblx0XHRyZXR1cm4gdHJhbnNpZW50TGlzdEJpbmRpbmc7XG5cdH1cblxuXHRwcml2YXRlIG9uVGh1bWJQcmVzcyh0aHVtYlVwQnV0dG9uOiBUb2dnbGVCdXR0b24sIHRodW1iRG93bkJ1dHRvbjogVG9nZ2xlQnV0dG9uKTogdm9pZCB7XG5cdFx0dGh1bWJVcEJ1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTtcblx0XHR0aHVtYkRvd25CdXR0b24uc2V0RW5hYmxlZChmYWxzZSk7XG5cdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRkVFREJBQ0tfU0VOVFwiKSk7XG5cdH1cblxuXHRmb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9SRU1BSU5JTkdfQ0hBUkFDVEVSU1wiLCBbTUFYX0xFTkdUSCAtICh2YWx1ZT8ubGVuZ3RoID8/IDApXSk7XG5cdH1cblxuXHRvbkNsZWFyQWxsKCk6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0ge307XG5cdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLmhhc0luY29ycmVjdFZhbHVlcyA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuZW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSW5pdGlhbFwiO1xuXHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdH1cblxuXHRvblZhbGlkYXRlRmllbGRHcm91cHMoX2U/OiBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsRmllbGRzID0gKHRoaXMuJHJldmlld0FyZWEuY3VycmVudD8uZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZChcIkVhc3lGaWxsRmllbGRcIikgYXMgRW5oYW5jZVdpdGhVSTU8RmllbGQ+W10pID8/IFtdO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBhbGxGaWVsZHMuc29tZSgoZmllbGQ6IEVuaGFuY2VXaXRoVUk1PEZpZWxkPik6IGJvb2xlYW4gPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0ISFmaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIpIHx8XG5cdFx0XHRcdCghIShmaWVsZCBhcyB7IGdldFZhbHVlU3RhdGU/OiBGdW5jdGlvbiB9KS5nZXRWYWx1ZVN0YXRlICYmXG5cdFx0XHRcdFx0KGZpZWxkIGFzIHsgZ2V0VmFsdWVTdGF0ZT86IEZ1bmN0aW9uIH0pLmdldFZhbHVlU3RhdGU/LigpID09PSBcIkVycm9yXCIpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25GaWVsZENoYW5nZShldjogVUk1RXZlbnQ8e30sIEZpZWxkPik6IHZvaWQge1xuXHRcdGV2LmdldFNvdXJjZSgpLnJlbW92ZU1lc3NhZ2UoZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiKSk7XG5cdFx0ZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiLCB1bmRlZmluZWQpO1xuXHR9XG5cblx0YXN5bmMgb25FYXN5RWRpdFByZXNzZWQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gQ2FsbCB0aGUgQUkgc2VydmljZVxuXHRcdC8vIFByb2Nlc3MgdGhyb3VnaCBjaGF0IGNvbXBsZXRpb24gQVBJXG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLmdldE93bmVyUGFnZURlZmluaXRpb24oKTtcblx0XHRjb25zdCBmaWVsZE1hcHBpbmcgPSB0aGlzLl9nZXRGaWVsZE1hcHBpbmcobWV0YVBhdGgpO1xuXHRcdGNvbnN0IGVhc3lGaWxsTGlicmFyeSA9IGF3YWl0IGltcG9ydChcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCIpO1xuXHRcdGNvbnN0IG9kYXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IHRoaXMuZ2VuZXJhdGVMaXN0QmluZGluZyhcblx0XHRcdG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpKSxcblx0XHRcdHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsXG5cdFx0KTtcblx0XHR0aGlzLl9iaW5kaW5nQ29udGV4dCA9IHRyYW5zaWVudExpc3RCaW5kaW5nLmNyZWF0ZSh7fSwgdHJ1ZSk7XG5cblx0XHR0aGlzLnN0YXRlLmlzQnVzeSA9IHRydWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGFpQ2FsbFJlc3VsdCA9IGF3YWl0IGVhc3lGaWxsTGlicmFyeS5leHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCh0aGlzLnN0YXRlLmVudGVyZWRUZXh0LCBmaWVsZE1hcHBpbmcpO1xuXHRcdFx0dGhpcy5zdGF0ZS5pc0J1c3kgPSBmYWxzZTtcblx0XHRcdGlmIChhaUNhbGxSZXN1bHQuc3VjY2Vzcykge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkRmllbGRzID0gYWlDYWxsUmVzdWx0LmRhdGE7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh1cGRhdGVkRmllbGRzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5zdGF0ZS5zdGF0ZVR5cGUgPSBcIk5vRW50cmllc1wiO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSGFzRW50cmllc1wiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmhhc0Vycm9yID0gZmFsc2U7XG5cdFx0XHRcdGNvbnN0IGVkaXRhYmxlRmllbGRzID0gKGF3YWl0IHRoaXMuZ2V0RWRpdGFibGVGaWVsZHM/LigpKSA/PyB7fTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy4kc2Nyb2xsQ29udGFpbmVyLmN1cnJlbnQ/LmRlc3Ryb3koKTtcblxuXHRcdFx0XHRjb25zdCByZXZpZXdBcmVhRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17dHJ1ZX0gY2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpblRvcEJvdHRvbVwifSB2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX0+XG5cdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRsYXlvdXQ6IDxDb2x1bW5MYXlvdXQgY29sdW1uc009ezJ9IGNvbHVtbnNMPXsyfSBjb2x1bW5zWEw9ezJ9IGxhYmVsQ2VsbHNMYXJnZT17MX0gZW1wdHlDZWxsc0xhcmdlPXsxfSAvPlxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L0Zvcm0+XG5cdFx0XHRcdCkgYXMgRm9ybTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17ZmFsc2V9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BCb3R0b21cIn0gdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0bGF5b3V0OiA8Q29sdW1uTGF5b3V0IGNvbHVtbnNNPXsyfSBjb2x1bW5zTD17Mn0gY29sdW1uc1hMPXsyfSBsYWJlbENlbGxzTGFyZ2U9ezF9IGVtcHR5Q2VsbHNMYXJnZT17MX0gLz5cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Gb3JtPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB3YXJuaW5nTWVzc2FnZSA9IChcblx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfV0FSTklOR19NU0dcIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIldhcm5pbmdcIn1cblx0XHRcdFx0XHRcdHNob3dJY29uPXt0cnVlfVxuXHRcdFx0XHRcdFx0dmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9XG5cdFx0XHRcdFx0PjwvTWVzc2FnZVN0cmlwPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB0aHVtYlVwQnV0dG9uID0gKFxuXHRcdFx0XHRcdDxUb2dnbGVCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly90aHVtYi11cFwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX1VQXCIpfVxuXHRcdFx0XHRcdFx0dHlwZT17XCJUcmFuc3BhcmVudFwifVxuXHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub25UaHVtYlByZXNzKHRodW1iVXBCdXR0b24sIHRodW1iRG93bkJ1dHRvbik7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSh0aHVtYlVwQnV0dG9uLCBcInByZXNzXCIsIFwiZmU0OmVmOnRodW1iVXBcIik7XG5cdFx0XHRcdGNvbnN0IHRodW1iRG93bkJ1dHRvbiA9IChcblx0XHRcdFx0XHQ8VG9nZ2xlQnV0dG9uXG5cdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vdGh1bWItZG93blwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX0RPV05cIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIlRyYW5zcGFyZW50XCJ9XG5cdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5vblRodW1iUHJlc3ModGh1bWJVcEJ1dHRvbiwgdGh1bWJEb3duQnV0dG9uKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKHRodW1iRG93bkJ1dHRvbiwgXCJwcmVzc1wiLCBcImZlNDplZjp0aHVtYkRvd25cIik7XG5cdFx0XHRcdGNvbnN0IGFpTm90aWNlVGV4dCA9IChcblx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPXtcIkNlbnRlclwifSB2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJIYXNFbnRyaWVzXCIpfT5cblx0XHRcdFx0XHRcdDxBSUxpbmtOb3RpY2UgLz5cblx0XHRcdFx0XHRcdDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0FJX05PVElDRV9URVhUXCIpfSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwifSAvPlxuXHRcdFx0XHRcdFx0e3RodW1iVXBCdXR0b259LCB7dGh1bWJEb3duQnV0dG9ufVxuXHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyID0gKFxuXHRcdFx0XHRcdDxGb3JtQ29udGFpbmVyPnt7IHRpdGxlOiA8Q29yZVRpdGxlIHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1BSRVZJT1VTX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMiA9IChcblx0XHRcdFx0XHQ8Rm9ybUNvbnRhaW5lcj57eyB0aXRsZTogPENvcmVUaXRsZSB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9QUkVWSU9VU19WQUxVRVNcIil9IC8+IH19PC9Gb3JtQ29udGFpbmVyPlxuXHRcdFx0XHQpIGFzIEZvcm1Db250YWluZXI7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlc0Zvcm1Db250YWluZXIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgdWlDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIik/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL2Vhc3lFZGl0RGlhbG9nXCIpO1xuXG5cdFx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbChcInVpXCIpLnNldFByb3BlcnR5KFwiL2Vhc3lFZGl0RGlhbG9nXCIsIHt9KTtcblx0XHRcdFx0dWlDb250ZXh0LnNldFByb3BlcnR5KFwiaXNFZGl0YWJsZVwiLCB0cnVlKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lci5zZXRCaW5kaW5nQ29udGV4dCh1aUNvbnRleHQsIFwidWlcIik7XG5cblx0XHRcdFx0cmV2aWV3QXJlYUZvcm0uYWRkRm9ybUNvbnRhaW5lcihwcmV2aW91c1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRyZXZpZXdBcmVhRm9ybS5hZGRGb3JtQ29udGFpbmVyKG5ld1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtLmFkZEZvcm1Db250YWluZXIocHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGluY29ycmVjdFZhbHVlc0Zvcm0uYWRkRm9ybUNvbnRhaW5lcihuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyLnNldEJpbmRpbmdDb250ZXh0KHRoaXMuX2JpbmRpbmdDb250ZXh0KTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKT8uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvaW5jb3JyZWN0VmFsdWVzXCIpKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0TW9kZWwodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKSk7XG5cblx0XHRcdFx0Y29uc3QgJHZCb3ggPSBjcmVhdGVSZWZlcmVuY2U8VkJveD4oKTtcblx0XHRcdFx0dGhpcy4kcmV2aWV3QXJlYS5jdXJyZW50Py5hZGRJdGVtKFxuXHRcdFx0XHRcdDxTY3JvbGxDb250YWluZXIgcmVmPXt0aGlzLiRzY3JvbGxDb250YWluZXJ9IHZlcnRpY2FsPXt0cnVlfSBjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdDxWQm94IHJlZj17JHZCb3h9PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHthaU5vdGljZVRleHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9IQm94Pixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0ZJTExFRF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXZpZXdBcmVhRm9ybSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0lOQ09SUkVDVF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luVG9wQm90dG9tXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc0luY29ycmVjdFZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3YXJuaW5nTWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdDwvU2Nyb2xsQ29udGFpbmVyPlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGZvciAoY29uc3QgdXBkYXRlZEZpZWxkIGluIHVwZGF0ZWRGaWVsZHMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdGFibGVGaWVsZHNbdXBkYXRlZEZpZWxkXSAmJiBlZGl0YWJsZUZpZWxkc1t1cGRhdGVkRmllbGRdLmlzRWRpdGFibGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lci5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXS5kZXNjcmlwdGlvbn0+XG5cdFx0XHRcdFx0XHRcdFx0PEZpZWxkXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD17dXBkYXRlZEZpZWxkfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVhZE9ubHk9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZD17ZmFsc2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvRm9ybUVsZW1lbnQ+XG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuZXdGaWVsZCA9IHRoaXMuX2dldE93bmVyKCk/LnJ1bkFzT3duZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRcdDxGaWVsZFxuXHRcdFx0XHRcdFx0XHRcdFx0X3JlcXVpcmVzVmFsaWRhdGlvbj17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbGlkYXRlRmllbGRHcm91cD17dGhpcy5vblZhbGlkYXRlRmllbGRHcm91cHMuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdGZpZWxkR3JvdXBJZHM9e1wiRWFzeUZpbGxGaWVsZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNoYW5nZT17dGhpcy5vbkZpZWxkQ2hhbmdlLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0KSBhcyBGaWVsZDtcblx0XHRcdFx0XHRcdH0pIGFzIEVuaGFuY2VXaXRoVUk1PEZpZWxkPjtcblx0XHRcdFx0XHRcdG5ld1ZhbHVlc0Zvcm1Db250YWluZXIuYWRkRm9ybUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdDxGb3JtRWxlbWVudCBsYWJlbD17ZmllbGRNYXBwaW5nW3VwZGF0ZWRGaWVsZF0uZGVzY3JpcHRpb259Pnt7IGZpZWxkczogbmV3RmllbGQgfX08L0Zvcm1FbGVtZW50PlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdFx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5fYmluZGluZ0NvbnRleHQuZ2V0UGF0aCh1cGRhdGVkRmllbGQpKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbE9iaiA9IG1ldGFNb2RlbC5nZXRPYmplY3QodGFyZ2V0TWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQobWV0YU1vZGVsT2JqLCB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQ6IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YXJnZXRNZXRhUGF0aCkhXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGNvbnN0IHBhcnNlZEJpbmRpbmcgPSBCaW5kaW5nSW5mby5wYXJzZSh2YWx1ZUV4cHJlc3Npb24pO1xuXHRcdFx0XHRcdFx0bGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG5cdFx0XHRcdFx0XHRpZiAocGFyc2VkQmluZGluZyAmJiBwYXJzZWRCaW5kaW5nLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRwYXJzZWRCaW5kaW5nLnR5cGUudmFsaWRhdGVWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0pO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRmV0Y2ggdGhlIHZhbHVlIGxpc3QgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXRoXG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3QgPSBhd2FpdCB0aGlzLl9nZXRWYWx1ZUxpc3QodGFyZ2V0TWV0YVBhdGgpO1xuXG5cdFx0XHRcdFx0XHQvLyBJbml0aWFsaXplIGEgZmxhZyB0byB0cmFjayB2YWxpZGF0aW9uIGVycm9yc1xuXHRcdFx0XHRcdFx0bGV0IGhhc1ZIRXJyb3IgPSBmYWxzZTtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIHZhbHVlIGxpc3QgaXMgc2VhcmNoYWJsZSBhbmQgdmFsaWRhdGUgdGhlIHVwZGF0ZWQgZmllbGQgdmFsdWVzXG5cdFx0XHRcdFx0XHRpZiAodmFsdWVMaXN0ICYmIFZhbHVlTGlzdEhlbHBlci5pc1ZhbHVlTGlzdFNlYXJjaGFibGUodGFyZ2V0TWV0YVBhdGgsIHZhbHVlTGlzdCkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVzID0gYXdhaXQgcmVzb2x2ZVRva2VuVmFsdWUoXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiBbdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdIGFzIHN0cmluZ11cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHQvLyBVcGRhdGUgdGhlIGZpZWxkIHZhbHVlIGlmIGl0IGRpZmZlcnMgZnJvbSB0aGUgcmVzb2x2ZWQgdmFsdWVcblx0XHRcdFx0XHRcdFx0aWYgKCF2YWx1ZXNbMF0ubm9NYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRcdHVwZGF0ZWRGaWVsZHNbdXBkYXRlZEZpZWxkXSA9IHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2UgPSBcIlwiO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGhhc1ZIRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1ZIX0VSUk9SXCIsIHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gVXNlIGEgdGltZW91dCB0byBlbnN1cmUgdmFsaWRhdGlvbiBydW5zIGNvcnJlY3RseSBmb3IgdGhlIHVwZGF0ZWQgZmllbGRcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5zZXRWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yTWVzc2FnZS5sZW5ndGggPiAwIHx8IGhhc1ZIRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlSWQgPSBuZXdGaWVsZC5hZGRNZXNzYWdlKHsgdHlwZTogTWVzc2FnZVR5cGUuRXJyb3IsIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSB9KTtcblx0XHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIsIG1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIDIwMCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGluY29ycmVjdFZhbHVlc1t1cGRhdGVkRmllbGRdID0gdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdO1xuXHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSB0cnVlO1xuXHRcdFx0XHRcdFx0cHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGRcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPXt1cGRhdGVkRmllbGR9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCl9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWFkT25seT17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkPXtmYWxzZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGQgbWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH0gY29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfSByZWFkT25seT17dHJ1ZX0gLz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKSk7XG5cdFx0XHRcdCR2Qm94LmN1cnJlbnQ/LnNldE1vZGVsKHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbCgpKTtcblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0TW9kZWwodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIiksIFwidWlcIik7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMub25WYWxpZGF0ZUZpZWxkR3JvdXBzKCk7XG5cdFx0XHRcdH0sIDEwMDApO1xuXG5cdFx0XHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0gbmV3VmFsdWVzO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IGluY29ycmVjdFZhbHVlcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IHt9O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuc3RhdGUuaXNCdXN5ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0dGhpcy5zdGF0ZS5uZXdWYWx1ZXMgPSB7fTtcblx0XHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBEaWFsb2cge1xuXHRcdGNvbnN0IGVhc3lFZGl0RGVzY3JpcHRpb24gPSA8SW52aXNpYmxlVGV4dCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9IC8+O1xuXG5cdFx0Y29uc3QgJGVhc3lGaWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxTYXZlQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxDYW5jZWxCdXR0b24gPSBjcmVhdGVSZWZlcmVuY2U8QnV0dG9uPigpO1xuXHRcdGNvbnN0ICRlYXN5RmlsbENsZWFyQWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBkaWFsb2cgPSAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfVElUTEVcIil9XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0aG9yaXpvbnRhbFNjcm9sbGluZz17ZmFsc2V9XG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPXtmYWxzZX1cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMTEwMHB4XCJcblx0XHRcdFx0Y29udGVudEhlaWdodD17XCI4MDBweFwifVxuXHRcdFx0XHRlc2NhcGVIYW5kbGVyPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5vbkNhbmNlbCgpO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PEZsZXhCb3ggZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLlJvd30gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IHdpZHRoPXtcIjEwMCVcIn0gaGVpZ2h0PXtcIjEwMCVcIn0+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9e1wiNDAlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJpbnB1dEFyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLkNvbHVtbn1cblx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9XG5cdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8Rm9ybWF0dGVkVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0aHRtbFRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19ERVNDUklQVElPTlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0e2Vhc3lFZGl0RGVzY3JpcHRpb259XG5cdFx0XHRcdFx0XHRcdFx0PFRleHRBcmVhXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17dGhpcy5iaW5kU3RhdGUoXCJlbnRlcmVkVGV4dFwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bGl2ZUNoYW5nZT17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5jdXJyZW50bHlFbnRlcmVkVGV4dCA9IGUuZ2V0UGFyYW1ldGVyKFwidmFsdWVcIikgPz8gXCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1RFWFRBUkVBX1BMQUNFSE9MREVSXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cm93cz17MjB9XG5cdFx0XHRcdFx0XHRcdFx0XHRncm93aW5nPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdFx0Z3Jvd2luZ01heExpbmVzPXszMH1cblx0XHRcdFx0XHRcdFx0XHRcdG1heExlbmd0aD17TUFYX0xFTkdUSH1cblx0XHRcdFx0XHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXtlYXN5RWRpdERlc2NyaXB0aW9ufVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PFRleHRcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXRoOiBcIi9jdXJyZW50bHlFbnRlcmVkVGV4dFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2RlbDogXCIkY29tcG9uZW50U3RhdGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiB0aGlzLmZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMuYmluZCh0aGlzKVxuXHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBsYXlvdXREYXRhOiA8RmxleEl0ZW1EYXRhIGFsaWduU2VsZj1cIkVuZFwiIC8+IH19XG5cdFx0XHRcdFx0XHRcdFx0PC9UZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDxIQm94PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbGF5b3V0RGF0YTogPEZsZXhJdGVtRGF0YSBhbGlnblNlbGY9XCJFbmRcIiAvPiB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9CVVRUT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbmFibGVkPXtub3QoaXNFbXB0eSh0aGlzLmJpbmRTdGF0ZShcImN1cnJlbnRseUVudGVyZWRUZXh0XCIpKSl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uRWFzeUVkaXRQcmVzc2VkLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luRW5kXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19DTEVBUl9BTExcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuVHJhbnNwYXJlbnR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uQ2xlYXJBbGwuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVmPXskZWFzeUZpbGxDbGVhckFsbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0XHRcdD48L0J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHQ8L0hCb3g+XG5cdFx0XHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0XHRcdFx0PEZsZXhCb3hcblx0XHRcdFx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcInJldmlld0FyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0cmVmPXt0aGlzLiRyZXZpZXdBcmVhfVxuXHRcdFx0XHRcdFx0XHRcdHdpZHRoPXtcIjYwJVwifVxuXHRcdFx0XHRcdFx0XHRcdHJlbmRlclR5cGU9e1wiQmFyZVwifVxuXHRcdFx0XHRcdFx0XHRcdGJ1c3k9e3RoaXMuYmluZFN0YXRlKFwiaXNCdXN5XCIpfVxuXHRcdFx0XHRcdFx0XHRcdGRpcmVjdGlvbj17RmxleERpcmVjdGlvbi5Db2x1bW59XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwRmVFYXN5RmlsbFJldmlld0FyZWFcIn1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuTm9TZWFyY2hSZXN1bHRzfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfUkVWSUVXX1RJVExFXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb249e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19SRVZJRVdfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJJbml0aWFsXCIpfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PElsbHVzdHJhdGVkTWVzc2FnZVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uVHlwZT17SWxsdXN0cmF0ZWRNZXNzYWdlVHlwZS5Ob0VudHJpZXN9XG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25TaXplPXtJbGx1c3RyYXRlZE1lc3NhZ2VTaXplLkxhcmdlfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19OT19FTlRSSUVTX1RJVExFXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb249e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19OT19FTlRSSUVTX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiTm9FbnRyaWVzXCIpfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PElsbHVzdHJhdGVkTWVzc2FnZVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uVHlwZT17SWxsdXN0cmF0ZWRNZXNzYWdlVHlwZS5VbmFibGVUb0xvYWR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25TaXplPXtJbGx1c3RyYXRlZE1lc3NhZ2VTaXplLkxhcmdlfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19FUlJPUl9USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfRVJST1JfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJFcnJvclwiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRmb290ZXI6IChcblx0XHRcdFx0XHRcdDxPdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfU0FWRVwiKX1cblx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiRW1waGFzaXplZFwiXG5cdFx0XHRcdFx0XHRcdFx0ZW5hYmxlZD17YW5kKHRoaXMuYmluZFN0YXRlKFwiaGFzVmFsdWVzXCIpLCBub3QodGhpcy5iaW5kU3RhdGUoXCJoYXNFcnJvclwiKSkpfVxuXHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uQ29uZmlybS5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsU2F2ZUJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19DQU5DRUxcIil9XG5cdFx0XHRcdFx0XHRcdFx0dHlwZT1cIlRyYW5zcGFyZW50XCJcblx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNhbmNlbC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQ2FuY2VsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9PdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9EaWFsb2c+XG5cdFx0KTtcblx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoJGVhc3lGaWxsQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOmFuYWx5emVUZXh0XCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxTYXZlQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOnNhdmVcIik7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbENhbmNlbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpjYW5jZWxcIik7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbENsZWFyQWxsQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOmNsZWFyQWxsXCIpO1xuXHRcdHJldHVybiBkaWFsb2c7XG5cdH1cblxuXHRhc3luYyBfZ2V0VmFsdWVMaXN0KHByb3BlcnR5UGF0aDogc3RyaW5nKTogUHJvbWlzZTxWYWx1ZUxpc3RJbmZvIHwgdW5kZWZpbmVkPiB7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gdGhpcy5nZXRNZXRhTW9kZWwoKSE7XG5cdFx0Y29uc3QgdmFsdWVMaXN0cyA9IGF3YWl0IFZhbHVlTGlzdEhlbHBlci5nZXRWYWx1ZUxpc3RJbmZvKHVuZGVmaW5lZCwgcHJvcGVydHlQYXRoLCB1bmRlZmluZWQsIG1ldGFNb2RlbCk7XG5cdFx0cmV0dXJuIHZhbHVlTGlzdHNbMF07XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5REEsTUFBTUEsVUFBVSxHQUFHLElBQUk7RUFBQyxJQUdIQyxjQUFj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
636
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfTEVOR1RIIiwiRWFzeUZpbGxEaWFsb2ciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImRlZmluZVJlZmVyZW5jZSIsIl9kZWMzIiwiX2RlYzQiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJpZE9yUHJvcHMiLCJwcm9wcyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIl9vd25lckNvbXBvbmVudCIsInN0YXRlIiwibmV3VmFsdWVzIiwiaGFzVmFsdWVzIiwiaGFzRXJyb3IiLCJzdGF0ZVR5cGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIm9uQ29uZmlybSIsIl9lIiwibWFpblBhZ2VCaW5kaW5nQ29udGV4dCIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiYWxsUHJvcHMiLCJfYmluZGluZ0NvbnRleHQiLCJnZXRPYmplY3QiLCJuZXdWYWx1ZXNLZXkiLCJzdGFydHNXaXRoIiwic2V0UHJvcGVydHkiLCJwdXNoIiwiYXBwbHlVcGRhdGVzRm9yQ2hhbmdlIiwiZ2V0UGF0aCIsIlByb21pc2UiLCJhbGwiLCJyZWZyZXNoIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJjbG9zZSIsInZpZXciLCJwcm9wZXJ0eVBhdGhGb3JVcGRhdGUiLCJtZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm1ldGFDb250ZXh0IiwiZ2V0TWV0YUNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3QiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJ0YXJnZXRDb250ZXh0Iiwic2lkZUVmZmVjdHNQcm9taXNlcyIsInNpZGVFZmZlY3RzU2VydmljZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsInRhcmdldE1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJyZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlIiwicmVwbGFjZSIsInNsaWNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwiZmllbGRHcm91cElkcyIsImNvbXB1dGVGaWVsZEdyb3VwSWRzIiwidGFyZ2V0RW50aXR5VHlwZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRhcmdldE9iamVjdCIsImxlbmd0aCIsInBhZ2VDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCIsIl9zaWRlRWZmZWN0cyIsImdldFNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNpZGVFZmZlY3ROYW1lIiwic2lkZUVmZmVjdCIsInNpZGVFZmZlY3RzIiwiY29udGV4dCIsInVuZGVmaW5lZCIsIm9uQ2FuY2VsIiwib3BlbiIsIl9nZXRGaWVsZE1hcHBpbmciLCJkZWZpbml0aW9uUGFnZSIsImZpZWxkTWFwcGluZyIsInBhZ2VUYXJnZXQiLCJnZXRUYXJnZXQiLCJlbnRpdHlUeXBlIiwiX3R5cGUiLCJ0YXJnZXRUeXBlIiwiZW50aXR5UHJvcGVydHkiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiaXNJbW11dGFibGUiLCJpc0NvbXB1dGVkIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJnZXRMYWJlbCIsImRhdGFUeXBlIiwiZ2VuZXJhdGVMaXN0QmluZGluZyIsInBhdGgiLCJtb2RlbCIsInRyYW5zaWVudExpc3RCaW5kaW5nIiwiYmluZExpc3QiLCIkJHVwZGF0ZUdyb3VwSWQiLCJyZWZyZXNoSW50ZXJuYWwiLCJvblRodW1iUHJlc3MiLCJ0aHVtYlVwQnV0dG9uIiwidGh1bWJEb3duQnV0dG9uIiwic2V0RW5hYmxlZCIsIk1lc3NhZ2VUb2FzdCIsInNob3ciLCJnZXRUcmFuc2xhdGVkVGV4dCIsImZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMiLCJ2YWx1ZSIsIm9uQ2xlYXJBbGwiLCJoYXNJbmNvcnJlY3RWYWx1ZXMiLCJlbnRlcmVkVGV4dCIsImN1cnJlbnRseUVudGVyZWRUZXh0IiwiaW5jb3JyZWN0VmFsdWVzIiwib25WYWxpZGF0ZUZpZWxkR3JvdXBzIiwiYWxsRmllbGRzIiwiJHJldmlld0FyZWEiLCJjdXJyZW50IiwiZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZCIsInNvbWUiLCJmaWVsZCIsImRhdGEiLCJnZXRWYWx1ZVN0YXRlIiwib25GaWVsZENoYW5nZSIsImV2IiwiZ2V0U291cmNlIiwicmVtb3ZlTWVzc2FnZSIsIm9uRWFzeUVkaXRQcmVzc2VkIiwibWV0YVBhdGgiLCJnZXRPd25lclBhZ2VEZWZpbml0aW9uIiwiZWFzeUZpbGxMaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsIm9kYXRhTW9kZWwiLCJjcmVhdGUiLCJpc0J1c3kiLCJhaUNhbGxSZXN1bHQiLCJleHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCIsInN1Y2Nlc3MiLCJ1cGRhdGVkRmllbGRzIiwiZWRpdGFibGVGaWVsZHMiLCJnZXRFZGl0YWJsZUZpZWxkcyIsIiRzY3JvbGxDb250YWluZXIiLCJkZXN0cm95IiwicmV2aWV3QXJlYUZvcm0iLCJfanN4IiwiRm9ybSIsImVkaXRhYmxlIiwiY2xhc3MiLCJ2aXNpYmxlIiwiYmluZFN0YXRlIiwiY2hpbGRyZW4iLCJsYXlvdXQiLCJDb2x1bW5MYXlvdXQiLCJjb2x1bW5zTSIsImNvbHVtbnNMIiwiY29sdW1uc1hMIiwibGFiZWxDZWxsc0xhcmdlIiwiZW1wdHlDZWxsc0xhcmdlIiwiaW5jb3JyZWN0VmFsdWVzRm9ybSIsIndhcm5pbmdNZXNzYWdlIiwiTWVzc2FnZVN0cmlwIiwidGV4dCIsInNob3dJY29uIiwiVG9nZ2xlQnV0dG9uIiwiaWNvbiIsInRvb2x0aXAiLCJwcmVzcyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIiwiYWlOb3RpY2VUZXh0IiwiX2pzeHMiLCJIQm94IiwiYWxpZ25JdGVtcyIsImVxdWFsIiwiQUlMaW5rTm90aWNlIiwiVGV4dCIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lciIsIkZvcm1Db250YWluZXIiLCJ0aXRsZSIsIkNvcmVUaXRsZSIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJuZXdWYWx1ZXNGb3JtQ29udGFpbmVyIiwibmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJ1aUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRm9ybUNvbnRhaW5lciIsInNldE1vZGVsIiwiJHZCb3giLCJjcmVhdGVSZWZlcmVuY2UiLCJhZGRJdGVtIiwiU2Nyb2xsQ29udGFpbmVyIiwicmVmIiwidmVydGljYWwiLCJWQm94IiwiaXRlbXMiLCJsYXlvdXREYXRhIiwiRmxleEl0ZW1EYXRhIiwiYWxpZ25TZWxmIiwiVGl0bGUiLCJ1cGRhdGVkRmllbGQiLCJpc0VkaXRhYmxlIiwiYWRkRm9ybUVsZW1lbnQiLCJGb3JtRWxlbWVudCIsImxhYmVsIiwiRmllbGQiLCJjb250ZXh0UGF0aCIsImdldE93bmVyQ29udGV4dFBhdGgiLCJyZWFkT25seSIsInJlcXVpcmVkIiwibmV3RmllbGQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiX3JlcXVpcmVzVmFsaWRhdGlvbiIsInZhbGlkYXRlRmllbGRHcm91cCIsImJpbmQiLCJjaGFuZ2UiLCJmaWVsZHMiLCJtZXRhTW9kZWxPYmoiLCJ2YWx1ZUV4cHJlc3Npb24iLCJBbm5vdGF0aW9uSGVscGVyIiwiZm9ybWF0IiwicGFyc2VkQmluZGluZyIsIkJpbmRpbmdJbmZvIiwicGFyc2UiLCJlcnJvck1lc3NhZ2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZSIsIm1lc3NhZ2UiLCJ2YWx1ZUxpc3QiLCJfZ2V0VmFsdWVMaXN0IiwiaGFzVkhFcnJvciIsIlZhbHVlTGlzdEhlbHBlciIsImlzVmFsdWVMaXN0U2VhcmNoYWJsZSIsInZhbHVlcyIsInJlc29sdmVUb2tlblZhbHVlIiwib3BlcmF0b3IiLCJGaWx0ZXJPcGVyYXRvciIsIkVRIiwic2VsZWN0ZWRWYWx1ZXMiLCJub01hdGNoIiwic2V0VGltZW91dCIsInNldFZhbHVlIiwibWVzc2FnZUlkIiwiYWRkTWVzc2FnZSIsIk1lc3NhZ2VUeXBlIiwiRXJyb3IiLCJlYXN5RWRpdERlc2NyaXB0aW9uIiwiSW52aXNpYmxlVGV4dCIsIiRlYXN5RmlsbEJ1dHRvbiIsIiRlYXN5RmlsbFNhdmVCdXR0b24iLCIkZWFzeUZpbGxDYW5jZWxCdXR0b24iLCIkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbiIsImRpYWxvZyIsIkRpYWxvZyIsInJlc2l6YWJsZSIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsImNvbnRlbnRIZWlnaHQiLCJlc2NhcGVIYW5kbGVyIiwiYWZ0ZXJDbG9zZSIsIkZsZXhCb3giLCJkaXJlY3Rpb24iLCJGbGV4RGlyZWN0aW9uIiwiUm93IiwicmVuZGVyVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiaWQiLCJjcmVhdGVJZCIsIkNvbHVtbiIsImZpdENvbnRhaW5lciIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsIlRleHRBcmVhIiwibGl2ZUNoYW5nZSIsImdldFBhcmFtZXRlciIsInBsYWNlaG9sZGVyIiwicm93cyIsImdyb3dpbmciLCJncm93aW5nTWF4TGluZXMiLCJtYXhMZW5ndGgiLCJhcmlhTGFiZWxsZWRCeSIsImZvcm1hdHRlciIsIkJ1dHRvbiIsImVuYWJsZWQiLCJub3QiLCJpc0VtcHR5IiwiQnV0dG9uVHlwZSIsIlRyYW5zcGFyZW50IiwiYnVzeSIsIklsbHVzdHJhdGVkTWVzc2FnZSIsImlsbHVzdHJhdGlvblR5cGUiLCJJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlIiwiTm9TZWFyY2hSZXN1bHRzIiwiaWxsdXN0cmF0aW9uU2l6ZSIsIklsbHVzdHJhdGVkTWVzc2FnZVNpemUiLCJMYXJnZSIsIk5vRW50cmllcyIsIlVuYWJsZVRvTG9hZCIsImZvb3RlciIsIk92ZXJmbG93VG9vbGJhciIsIlRvb2xiYXJTcGFjZXIiLCJhbmQiLCJwcm9wZXJ0eVBhdGgiLCJ2YWx1ZUxpc3RzIiwiZ2V0VmFsdWVMaXN0SW5mbyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWxsRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGFuZCwgZXF1YWwsIGlzRW1wdHksIG5vdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVmZXJlbmNlLCBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgQUlMaW5rTm90aWNlIH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL0FJTm90aWNlXCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZFNpZGVFZmZlY3REaWN0aW9uYXJ5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25QYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2RlZmluaXRpb24vRkVEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCwgaXNDb21wdXRlZCwgaXNJbW11dGFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpZWxkXCI7XG5pbXBvcnQgeyByZXNvbHZlVG9rZW5WYWx1ZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2FpL0Vhc3lGaWx0ZXJEYXRhRmV0Y2hlclwiO1xuaW1wb3J0IFZhbHVlTGlzdEhlbHBlciwgeyB0eXBlIFZhbHVlTGlzdEluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvVmFsdWVMaXN0SGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgRmxleEl0ZW1EYXRhIGZyb20gXCJzYXAvbS9GbGV4SXRlbURhdGFcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgSEJveCBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlXCI7XG5pbXBvcnQgSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZVwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZVR5cGUgZnJvbSBcInNhcC9tL0lsbHVzdHJhdGVkTWVzc2FnZVR5cGVcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBTY3JvbGxDb250YWluZXIgZnJvbSBcInNhcC9tL1Njcm9sbENvbnRhaW5lclwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBUZXh0QXJlYSBmcm9tIFwic2FwL20vVGV4dEFyZWFcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcInNhcC9tL1RvZ2dsZUJ1dHRvblwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBGbGV4RGlyZWN0aW9uIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBCaW5kaW5nSW5mbyBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ0luZm9cIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgQ29yZVRpdGxlIGZyb20gXCJzYXAvdWkvY29yZS9UaXRsZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgQ29sdW1uTGF5b3V0IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vQ29sdW1uTGF5b3V0XCI7XG5pbXBvcnQgRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1cIjtcbmltcG9ydCBGb3JtQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUNvbnRhaW5lclwiO1xuaW1wb3J0IEZvcm1FbGVtZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUVsZW1lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCI7XG5cbmNvbnN0IE1BWF9MRU5HVEggPSAyMDAwO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLkVhc3lGaWxsRGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsbERpYWxvZyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8XG5cdERpYWxvZyxcblx0e1xuXHRcdGVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aXNCdXN5OiBib29sZWFuO1xuXHRcdGN1cnJlbnRseUVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRuZXdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdGhhc1ZhbHVlczogYm9vbGVhbjtcblx0XHRoYXNFcnJvcjogYm9vbGVhbjtcblx0XHRoYXNJbmNvcnJlY3RWYWx1ZXM6IGJvb2xlYW47XG5cdFx0c3RhdGVUeXBlOiBcIkluaXRpYWxcIiB8IFwiTm9FbnRyaWVzXCIgfCBcIkVycm9yXCIgfCBcIkhhc0VudHJpZXNcIjtcblx0fVxuPiB7XG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHQkcmV2aWV3QXJlYSE6IFJlZjxGbGV4Qm94PjtcblxuXHRAZGVmaW5lUmVmZXJlbmNlKClcblx0JHNjcm9sbENvbnRhaW5lciE6IFJlZjxGbGV4Qm94PjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcIkZ1bmN0aW9uXCIgfSlcblx0Z2V0RWRpdGFibGVGaWVsZHM/OiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIF9iaW5kaW5nQ29udGV4dD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IoaWRPclByb3BzOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8RWFzeUZpbGxEaWFsb2c+LCBwcm9wcz86IFByb3BlcnRpZXNPZjxFYXN5RmlsbERpYWxvZz4pIHtcblx0XHRzdXBlcihpZE9yUHJvcHMsIHByb3BzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdHN1cGVyLm9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50KTtcblx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJJbml0aWFsXCI7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRhc3luYyBvbkNvbmZpcm0oX2U6IEJ1dHRvbiRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gVmFsaWRhdGUgdGhlIGRhdGEgaGFuZGxpbmdcblx0XHRjb25zdCBtYWluUGFnZUJpbmRpbmdDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBhbGxQcm9wcyA9IFtdO1xuXHRcdGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuX2JpbmRpbmdDb250ZXh0Py5nZXRPYmplY3QoKSA/PyB0aGlzLnN0YXRlLm5ld1ZhbHVlcztcblx0XHRmb3IgKGNvbnN0IG5ld1ZhbHVlc0tleSBpbiBuZXdWYWx1ZXMpIHtcblx0XHRcdGlmIChuZXdWYWx1ZXNLZXkgIT09IFwiX19iaW5kaW5nSW5mb1wiICYmICFuZXdWYWx1ZXNLZXkuc3RhcnRzV2l0aChcIkAkXCIpKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV3VmFsdWVzW25ld1ZhbHVlc0tleV0gIT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRtYWluUGFnZUJpbmRpbmdDb250ZXh0Py5zZXRQcm9wZXJ0eShuZXdWYWx1ZXNLZXksIG5ld1ZhbHVlc1tuZXdWYWx1ZXNLZXldKTtcblx0XHRcdFx0XHRhbGxQcm9wcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBseVVwZGF0ZXNGb3JDaGFuZ2UodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKSwgbWFpblBhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKG5ld1ZhbHVlc0tleSkpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvcHMpO1xuXHRcdFx0bWFpblBhZ2VCaW5kaW5nQ29udGV4dC5yZWZyZXNoKCk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJGYWlsZWQgdG8gdXBkYXRlIGRhdGEgYWZ0ZXIgY2hhbmdlOlwiICsgZXJyKTtcblx0XHR9XG5cdFx0Ly8gQ2xvc2Ugbm9uZXRoZWxlc3Ncblx0XHR0aGlzLmNvbnRlbnQ/LmNsb3NlKCk7XG5cdH1cblxuXHRhc3luYyBhcHBseVVwZGF0ZXNGb3JDaGFuZ2UodmlldzogRkVWaWV3LCBwcm9wZXJ0eVBhdGhGb3JVcGRhdGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG1ldGFNb2RlbC5nZXRNZXRhQ29udGV4dChwcm9wZXJ0eVBhdGhGb3JVcGRhdGUpO1xuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KG1ldGFDb250ZXh0KTtcblx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBzaWRlRWZmZWN0c1Byb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzU2VydmljZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldykuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cblx0XHRcdC8vIFdlIGhhdmUgYSB0YXJnZXQgY29udGV4dCwgc28gd2UgY2FuIHJldHJpZXZlIHRoZSB1cGRhdGVkIHByb3BlcnR5XG5cdFx0XHRjb25zdCB0YXJnZXRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXRDb250ZXh0LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCByZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKHByb3BlcnR5UGF0aEZvclVwZGF0ZSkucmVwbGFjZSh0YXJnZXRNZXRhUGF0aCwgXCJcIikuc2xpY2UoMSk7XG5cdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goc2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhbcmVsYXRpdmVNZXRhUGF0aEZvclVwZGF0ZV0sIHRhcmdldENvbnRleHQsIFwiJGF1dG9cIikpO1xuXG5cdFx0XHQvLyBHZXQgdGhlIGZpZWxkR3JvdXBJZHMgY29ycmVzcG9uZGluZyB0byBwYXRoRm9yVXBkYXRlXG5cdFx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmNvbXB1dGVGaWVsZEdyb3VwSWRzKFxuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3QudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdC50YXJnZXRPYmplY3QhLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSB0aGUgc2lkZSBlZmZlY3RzIGZvciB0aGUgZmllbGRHcm91cElkc1xuXHRcdFx0aWYgKGZpZWxkR3JvdXBJZHMubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCA9IHBhZ2VDb250cm9sbGVyLl9zaWRlRWZmZWN0cy5nZXRTaWRlRWZmZWN0c01hcEZvckZpZWxkR3JvdXBzKFxuXHRcdFx0XHRcdGZpZWxkR3JvdXBJZHMsXG5cdFx0XHRcdFx0dGFyZ2V0Q29udGV4dFxuXHRcdFx0XHQpIGFzIEZpZWxkU2lkZUVmZmVjdERpY3Rpb25hcnk7XG5cdFx0XHRcdE9iamVjdC5rZXlzKHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCkuZm9yRWFjaCgoc2lkZUVmZmVjdE5hbWUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzaWRlRWZmZWN0ID0gc2lkZUVmZmVjdHNNYXBGb3JGaWVsZEdyb3VwW3NpZGVFZmZlY3ROYW1lXTtcblx0XHRcdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0XHRwYWdlQ29udHJvbGxlci5fc2lkZUVmZmVjdHMucmVxdWVzdFNpZGVFZmZlY3RzKHNpZGVFZmZlY3Quc2lkZUVmZmVjdHMsIHNpZGVFZmZlY3QuY29udGV4dCwgXCIkYXV0b1wiLCB1bmRlZmluZWQsIHRydWUpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHNpZGVFZmZlY3RzUHJvbWlzZXMpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiRmFpbGVkIHRvIHVwZGF0ZSBkYXRhIGFmdGVyIGNoYW5nZTpcIiArIGVycik7XG5cdFx0XHR0aHJvdyBlcnI7XG5cdFx0fVxuXHR9XG5cblx0b25DYW5jZWwoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0b3BlbigpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRlbnQ/Lm9wZW4oKTtcblx0fVxuXG5cdF9nZXRGaWVsZE1hcHBpbmcoZGVmaW5pdGlvblBhZ2U6IERlZmluaXRpb25QYWdlIHwgdW5kZWZpbmVkKTogRmllbGRNZXRhZGF0YSB7XG5cdFx0Y29uc3QgZmllbGRNYXBwaW5nOiBGaWVsZE1ldGFkYXRhID0ge307XG5cdFx0aWYgKGRlZmluaXRpb25QYWdlKSB7XG5cdFx0XHRjb25zdCBwYWdlVGFyZ2V0ID0gZGVmaW5pdGlvblBhZ2UuZ2V0TWV0YVBhdGgoKS5nZXRUYXJnZXQoKTtcblx0XHRcdGxldCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0c3dpdGNoIChwYWdlVGFyZ2V0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFbnRpdHlTZXRcIjpcblx0XHRcdFx0Y2FzZSBcIlNpbmdsZXRvblwiOlxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSBwYWdlVGFyZ2V0LmVudGl0eVR5cGU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRlbnRpdHlUeXBlID0gcGFnZVRhcmdldC50YXJnZXRUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZW50aXR5VHlwZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZW50aXR5UHJvcGVydHkgb2YgZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0IWlzSW1tdXRhYmxlKGVudGl0eVByb3BlcnR5KSAmJlxuXHRcdFx0XHRcdFx0IWlzQ29tcHV0ZWQoZW50aXR5UHJvcGVydHkpICYmXG5cdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUgJiZcblx0XHRcdFx0XHRcdCFlbnRpdHlQcm9wZXJ0eS50YXJnZXRUeXBlXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBJZiBub3QgaW1tdXRhYmxlLCBjb21wdXRlZCBvciBoaWRkZW4sIG9yIGEgY29tcGxleCB0eXBlIGFkZCB0byB0aGUgZmllbGQgbWFwcGluZ1xuXHRcdFx0XHRcdFx0ZmllbGRNYXBwaW5nW2VudGl0eVByb3BlcnR5Lm5hbWVdID0ge1xuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZ2V0TGFiZWwoZW50aXR5UHJvcGVydHkpID8/IGVudGl0eVByb3BlcnR5Lm5hbWUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlOiBlbnRpdHlQcm9wZXJ0eS50eXBlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmllbGRNYXBwaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBnZW5lcmF0ZUxpc3RCaW5kaW5nKHBhdGg6IHN0cmluZywgbW9kZWw6IE9EYXRhTW9kZWwpOiBPRGF0YUxpc3RCaW5kaW5nIHtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFx0cGF0aCxcblx0XHRcdHVuZGVmaW5lZCxcblxuXHRcdFx0W10sXG5cdFx0XHRbXSxcblx0XHRcdHtcblx0XHRcdFx0JCR1cGRhdGVHcm91cElkOiBcInN1Ym1pdExhdGVyXCJcblx0XHRcdH1cblx0XHQpO1xuXHRcdHRyYW5zaWVudExpc3RCaW5kaW5nLnJlZnJlc2hJbnRlcm5hbCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdC8qICovXG5cdFx0fTtcblx0XHRyZXR1cm4gdHJhbnNpZW50TGlzdEJpbmRpbmc7XG5cdH1cblxuXHRwcml2YXRlIG9uVGh1bWJQcmVzcyh0aHVtYlVwQnV0dG9uOiBUb2dnbGVCdXR0b24sIHRodW1iRG93bkJ1dHRvbjogVG9nZ2xlQnV0dG9uKTogdm9pZCB7XG5cdFx0dGh1bWJVcEJ1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTtcblx0XHR0aHVtYkRvd25CdXR0b24uc2V0RW5hYmxlZChmYWxzZSk7XG5cdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRkVFREJBQ0tfU0VOVFwiKSk7XG5cdH1cblxuXHRmb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9SRU1BSU5JTkdfQ0hBUkFDVEVSU1wiLCBbTUFYX0xFTkdUSCAtICh2YWx1ZT8ubGVuZ3RoID8/IDApXSk7XG5cdH1cblxuXHRvbkNsZWFyQWxsKCk6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0ge307XG5cdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLmhhc0luY29ycmVjdFZhbHVlcyA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuZW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSW5pdGlhbFwiO1xuXHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdH1cblxuXHRvblZhbGlkYXRlRmllbGRHcm91cHMoX2U/OiBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsRmllbGRzID0gKHRoaXMuJHJldmlld0FyZWEuY3VycmVudD8uZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZChcIkVhc3lGaWxsRmllbGRcIikgYXMgRW5oYW5jZVdpdGhVSTU8RmllbGQ+W10pID8/IFtdO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBhbGxGaWVsZHMuc29tZSgoZmllbGQ6IEVuaGFuY2VXaXRoVUk1PEZpZWxkPik6IGJvb2xlYW4gPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0ISFmaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIpIHx8XG5cdFx0XHRcdCghIShmaWVsZCBhcyB7IGdldFZhbHVlU3RhdGU/OiBGdW5jdGlvbiB9KS5nZXRWYWx1ZVN0YXRlICYmXG5cdFx0XHRcdFx0KGZpZWxkIGFzIHsgZ2V0VmFsdWVTdGF0ZT86IEZ1bmN0aW9uIH0pLmdldFZhbHVlU3RhdGU/LigpID09PSBcIkVycm9yXCIpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25GaWVsZENoYW5nZShldjogVUk1RXZlbnQ8e30sIEZpZWxkPik6IHZvaWQge1xuXHRcdGV2LmdldFNvdXJjZSgpLnJlbW92ZU1lc3NhZ2UoZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiKSk7XG5cdFx0ZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiLCB1bmRlZmluZWQpO1xuXHR9XG5cblx0YXN5bmMgb25FYXN5RWRpdFByZXNzZWQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gQ2FsbCB0aGUgQUkgc2VydmljZVxuXHRcdC8vIFByb2Nlc3MgdGhyb3VnaCBjaGF0IGNvbXBsZXRpb24gQVBJXG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLmdldE93bmVyUGFnZURlZmluaXRpb24oKTtcblx0XHRjb25zdCBmaWVsZE1hcHBpbmcgPSB0aGlzLl9nZXRGaWVsZE1hcHBpbmcobWV0YVBhdGgpO1xuXHRcdGNvbnN0IGVhc3lGaWxsTGlicmFyeSA9IGF3YWl0IGltcG9ydChcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCIpO1xuXHRcdGNvbnN0IG9kYXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IHRoaXMuZ2VuZXJhdGVMaXN0QmluZGluZyhcblx0XHRcdG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpKSxcblx0XHRcdHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsXG5cdFx0KTtcblx0XHR0aGlzLl9iaW5kaW5nQ29udGV4dCA9IHRyYW5zaWVudExpc3RCaW5kaW5nLmNyZWF0ZSh7fSwgdHJ1ZSk7XG5cblx0XHR0aGlzLnN0YXRlLmlzQnVzeSA9IHRydWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGFpQ2FsbFJlc3VsdCA9IGF3YWl0IGVhc3lGaWxsTGlicmFyeS5leHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCh0aGlzLnN0YXRlLmVudGVyZWRUZXh0LCBmaWVsZE1hcHBpbmcpO1xuXHRcdFx0dGhpcy5zdGF0ZS5pc0J1c3kgPSBmYWxzZTtcblx0XHRcdGlmIChhaUNhbGxSZXN1bHQuc3VjY2Vzcykge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkRmllbGRzID0gYWlDYWxsUmVzdWx0LmRhdGE7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh1cGRhdGVkRmllbGRzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5zdGF0ZS5zdGF0ZVR5cGUgPSBcIk5vRW50cmllc1wiO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSGFzRW50cmllc1wiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmhhc0Vycm9yID0gZmFsc2U7XG5cdFx0XHRcdGNvbnN0IGVkaXRhYmxlRmllbGRzID0gKGF3YWl0IHRoaXMuZ2V0RWRpdGFibGVGaWVsZHM/LigpKSA/PyB7fTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy4kc2Nyb2xsQ29udGFpbmVyLmN1cnJlbnQ/LmRlc3Ryb3koKTtcblxuXHRcdFx0XHRjb25zdCByZXZpZXdBcmVhRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17dHJ1ZX0gY2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpblRvcEJvdHRvbVwifSB2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX0+XG5cdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRsYXlvdXQ6IDxDb2x1bW5MYXlvdXQgY29sdW1uc009ezJ9IGNvbHVtbnNMPXsyfSBjb2x1bW5zWEw9ezJ9IGxhYmVsQ2VsbHNMYXJnZT17MX0gZW1wdHlDZWxsc0xhcmdlPXsxfSAvPlxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L0Zvcm0+XG5cdFx0XHRcdCkgYXMgRm9ybTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17ZmFsc2V9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BCb3R0b21cIn0gdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0bGF5b3V0OiA8Q29sdW1uTGF5b3V0IGNvbHVtbnNNPXsyfSBjb2x1bW5zTD17Mn0gY29sdW1uc1hMPXsyfSBsYWJlbENlbGxzTGFyZ2U9ezF9IGVtcHR5Q2VsbHNMYXJnZT17MX0gLz5cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Gb3JtPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB3YXJuaW5nTWVzc2FnZSA9IChcblx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfV0FSTklOR19NU0dcIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIldhcm5pbmdcIn1cblx0XHRcdFx0XHRcdHNob3dJY29uPXt0cnVlfVxuXHRcdFx0XHRcdFx0dmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9XG5cdFx0XHRcdFx0PjwvTWVzc2FnZVN0cmlwPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB0aHVtYlVwQnV0dG9uID0gKFxuXHRcdFx0XHRcdDxUb2dnbGVCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly90aHVtYi11cFwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX1VQXCIpfVxuXHRcdFx0XHRcdFx0dHlwZT17XCJUcmFuc3BhcmVudFwifVxuXHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub25UaHVtYlByZXNzKHRodW1iVXBCdXR0b24sIHRodW1iRG93bkJ1dHRvbik7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSh0aHVtYlVwQnV0dG9uLCBcInByZXNzXCIsIFwiZmU0OmVmOnRodW1iVXBcIik7XG5cdFx0XHRcdGNvbnN0IHRodW1iRG93bkJ1dHRvbiA9IChcblx0XHRcdFx0XHQ8VG9nZ2xlQnV0dG9uXG5cdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vdGh1bWItZG93blwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX0RPV05cIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIlRyYW5zcGFyZW50XCJ9XG5cdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5vblRodW1iUHJlc3ModGh1bWJVcEJ1dHRvbiwgdGh1bWJEb3duQnV0dG9uKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKHRodW1iRG93bkJ1dHRvbiwgXCJwcmVzc1wiLCBcImZlNDplZjp0aHVtYkRvd25cIik7XG5cdFx0XHRcdGNvbnN0IGFpTm90aWNlVGV4dCA9IChcblx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPXtcIkNlbnRlclwifSB2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJIYXNFbnRyaWVzXCIpfT5cblx0XHRcdFx0XHRcdDxBSUxpbmtOb3RpY2UgLz5cblx0XHRcdFx0XHRcdDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0FJX05PVElDRV9URVhUXCIpfSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwifSAvPlxuXHRcdFx0XHRcdFx0e3RodW1iVXBCdXR0b259LCB7dGh1bWJEb3duQnV0dG9ufVxuXHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyID0gKFxuXHRcdFx0XHRcdDxGb3JtQ29udGFpbmVyPnt7IHRpdGxlOiA8Q29yZVRpdGxlIHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1BSRVZJT1VTX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMiA9IChcblx0XHRcdFx0XHQ8Rm9ybUNvbnRhaW5lcj57eyB0aXRsZTogPENvcmVUaXRsZSB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9QUkVWSU9VU19WQUxVRVNcIil9IC8+IH19PC9Gb3JtQ29udGFpbmVyPlxuXHRcdFx0XHQpIGFzIEZvcm1Db250YWluZXI7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlc0Zvcm1Db250YWluZXIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgdWlDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIik/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL2Vhc3lFZGl0RGlhbG9nXCIpO1xuXG5cdFx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbChcInVpXCIpLnNldFByb3BlcnR5KFwiL2Vhc3lFZGl0RGlhbG9nXCIsIHt9KTtcblx0XHRcdFx0dWlDb250ZXh0LnNldFByb3BlcnR5KFwiaXNFZGl0YWJsZVwiLCB0cnVlKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lci5zZXRCaW5kaW5nQ29udGV4dCh1aUNvbnRleHQsIFwidWlcIik7XG5cblx0XHRcdFx0cmV2aWV3QXJlYUZvcm0uYWRkRm9ybUNvbnRhaW5lcihwcmV2aW91c1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRyZXZpZXdBcmVhRm9ybS5hZGRGb3JtQ29udGFpbmVyKG5ld1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtLmFkZEZvcm1Db250YWluZXIocHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGluY29ycmVjdFZhbHVlc0Zvcm0uYWRkRm9ybUNvbnRhaW5lcihuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyLnNldEJpbmRpbmdDb250ZXh0KHRoaXMuX2JpbmRpbmdDb250ZXh0KTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKT8uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvaW5jb3JyZWN0VmFsdWVzXCIpKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0TW9kZWwodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKSk7XG5cblx0XHRcdFx0Y29uc3QgJHZCb3ggPSBjcmVhdGVSZWZlcmVuY2U8VkJveD4oKTtcblx0XHRcdFx0dGhpcy4kcmV2aWV3QXJlYS5jdXJyZW50Py5hZGRJdGVtKFxuXHRcdFx0XHRcdDxTY3JvbGxDb250YWluZXIgcmVmPXt0aGlzLiRzY3JvbGxDb250YWluZXJ9IHZlcnRpY2FsPXt0cnVlfSBjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdDxWQm94IHJlZj17JHZCb3h9PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHthaU5vdGljZVRleHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9IQm94Pixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0ZJTExFRF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXZpZXdBcmVhRm9ybSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0lOQ09SUkVDVF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luVG9wQm90dG9tXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc0luY29ycmVjdFZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3YXJuaW5nTWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdDwvU2Nyb2xsQ29udGFpbmVyPlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGZvciAoY29uc3QgdXBkYXRlZEZpZWxkIGluIHVwZGF0ZWRGaWVsZHMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdGFibGVGaWVsZHNbdXBkYXRlZEZpZWxkXSAmJiBlZGl0YWJsZUZpZWxkc1t1cGRhdGVkRmllbGRdLmlzRWRpdGFibGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lci5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXS5kZXNjcmlwdGlvbn0+XG5cdFx0XHRcdFx0XHRcdFx0PEZpZWxkXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD17dXBkYXRlZEZpZWxkfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVhZE9ubHk9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZD17ZmFsc2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvRm9ybUVsZW1lbnQ+XG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuZXdGaWVsZCA9IHRoaXMuX2dldE93bmVyKCk/LnJ1bkFzT3duZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRcdDxGaWVsZFxuXHRcdFx0XHRcdFx0XHRcdFx0X3JlcXVpcmVzVmFsaWRhdGlvbj17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbGlkYXRlRmllbGRHcm91cD17dGhpcy5vblZhbGlkYXRlRmllbGRHcm91cHMuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdGZpZWxkR3JvdXBJZHM9e1wiRWFzeUZpbGxGaWVsZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNoYW5nZT17dGhpcy5vbkZpZWxkQ2hhbmdlLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0KSBhcyBGaWVsZDtcblx0XHRcdFx0XHRcdH0pIGFzIEVuaGFuY2VXaXRoVUk1PEZpZWxkPjtcblx0XHRcdFx0XHRcdG5ld1ZhbHVlc0Zvcm1Db250YWluZXIuYWRkRm9ybUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdDxGb3JtRWxlbWVudCBsYWJlbD17ZmllbGRNYXBwaW5nW3VwZGF0ZWRGaWVsZF0uZGVzY3JpcHRpb259Pnt7IGZpZWxkczogbmV3RmllbGQgfX08L0Zvcm1FbGVtZW50PlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdFx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5fYmluZGluZ0NvbnRleHQuZ2V0UGF0aCh1cGRhdGVkRmllbGQpKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbE9iaiA9IG1ldGFNb2RlbC5nZXRPYmplY3QodGFyZ2V0TWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQobWV0YU1vZGVsT2JqLCB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQ6IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YXJnZXRNZXRhUGF0aCkhXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGNvbnN0IHBhcnNlZEJpbmRpbmcgPSBCaW5kaW5nSW5mby5wYXJzZSh2YWx1ZUV4cHJlc3Npb24pO1xuXHRcdFx0XHRcdFx0bGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG5cdFx0XHRcdFx0XHRpZiAocGFyc2VkQmluZGluZyAmJiBwYXJzZWRCaW5kaW5nLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRwYXJzZWRCaW5kaW5nLnR5cGUudmFsaWRhdGVWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0pO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRmV0Y2ggdGhlIHZhbHVlIGxpc3QgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXRoXG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3QgPSBhd2FpdCB0aGlzLl9nZXRWYWx1ZUxpc3QodGFyZ2V0TWV0YVBhdGgpO1xuXG5cdFx0XHRcdFx0XHQvLyBJbml0aWFsaXplIGEgZmxhZyB0byB0cmFjayB2YWxpZGF0aW9uIGVycm9yc1xuXHRcdFx0XHRcdFx0bGV0IGhhc1ZIRXJyb3IgPSBmYWxzZTtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIHZhbHVlIGxpc3QgaXMgc2VhcmNoYWJsZSBhbmQgdmFsaWRhdGUgdGhlIHVwZGF0ZWQgZmllbGQgdmFsdWVzXG5cdFx0XHRcdFx0XHRpZiAodmFsdWVMaXN0ICYmIFZhbHVlTGlzdEhlbHBlci5pc1ZhbHVlTGlzdFNlYXJjaGFibGUodGFyZ2V0TWV0YVBhdGgsIHZhbHVlTGlzdCkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVzID0gYXdhaXQgcmVzb2x2ZVRva2VuVmFsdWUoXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiBbdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdIGFzIHN0cmluZ11cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHQvLyBVcGRhdGUgdGhlIGZpZWxkIHZhbHVlIGlmIGl0IGRpZmZlcnMgZnJvbSB0aGUgcmVzb2x2ZWQgdmFsdWVcblx0XHRcdFx0XHRcdFx0aWYgKCF2YWx1ZXNbMF0ubm9NYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRcdHVwZGF0ZWRGaWVsZHNbdXBkYXRlZEZpZWxkXSA9IHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2UgPSBcIlwiO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGhhc1ZIRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1ZIX0VSUk9SXCIsIHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gVXNlIGEgdGltZW91dCB0byBlbnN1cmUgdmFsaWRhdGlvbiBydW5zIGNvcnJlY3RseSBmb3IgdGhlIHVwZGF0ZWQgZmllbGRcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5zZXRWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yTWVzc2FnZS5sZW5ndGggPiAwIHx8IGhhc1ZIRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlSWQgPSBuZXdGaWVsZC5hZGRNZXNzYWdlKHsgdHlwZTogTWVzc2FnZVR5cGUuRXJyb3IsIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSB9KTtcblx0XHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIsIG1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIDIwMCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGluY29ycmVjdFZhbHVlc1t1cGRhdGVkRmllbGRdID0gdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdO1xuXHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSB0cnVlO1xuXHRcdFx0XHRcdFx0cHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGRcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPXt1cGRhdGVkRmllbGR9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCl9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWFkT25seT17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkPXtmYWxzZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGQgbWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH0gY29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfSByZWFkT25seT17dHJ1ZX0gLz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKSk7XG5cdFx0XHRcdCR2Qm94LmN1cnJlbnQ/LnNldE1vZGVsKHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbCgpKTtcblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0TW9kZWwodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIiksIFwidWlcIik7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMub25WYWxpZGF0ZUZpZWxkR3JvdXBzKCk7XG5cdFx0XHRcdH0sIDEwMDApO1xuXG5cdFx0XHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0gbmV3VmFsdWVzO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IGluY29ycmVjdFZhbHVlcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IHt9O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuc3RhdGUuaXNCdXN5ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0dGhpcy5zdGF0ZS5uZXdWYWx1ZXMgPSB7fTtcblx0XHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBEaWFsb2cge1xuXHRcdGNvbnN0IGVhc3lFZGl0RGVzY3JpcHRpb24gPSA8SW52aXNpYmxlVGV4dCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9IC8+O1xuXG5cdFx0Y29uc3QgJGVhc3lGaWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxTYXZlQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxDYW5jZWxCdXR0b24gPSBjcmVhdGVSZWZlcmVuY2U8QnV0dG9uPigpO1xuXHRcdGNvbnN0ICRlYXN5RmlsbENsZWFyQWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBkaWFsb2cgPSAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfVElUTEVcIil9XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0aG9yaXpvbnRhbFNjcm9sbGluZz17ZmFsc2V9XG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPXtmYWxzZX1cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMTEwMHB4XCJcblx0XHRcdFx0Y29udGVudEhlaWdodD17XCI4MDBweFwifVxuXHRcdFx0XHRlc2NhcGVIYW5kbGVyPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5vbkNhbmNlbCgpO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PEZsZXhCb3ggZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLlJvd30gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IHdpZHRoPXtcIjEwMCVcIn0gaGVpZ2h0PXtcIjEwMCVcIn0+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9e1wiNDAlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJpbnB1dEFyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLkNvbHVtbn1cblx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9XG5cdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0Zml0Q29udGFpbmVyPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0PEZvcm1hdHRlZFRleHRcblx0XHRcdFx0XHRcdFx0XHRcdGh0bWxUZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdHtlYXN5RWRpdERlc2NyaXB0aW9ufVxuXHRcdFx0XHRcdFx0XHRcdDxUZXh0QXJlYVxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU9e3RoaXMuYmluZFN0YXRlKFwiZW50ZXJlZFRleHRcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHRcdGxpdmVDaGFuZ2U9eyhlKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBlLmdldFBhcmFtZXRlcihcInZhbHVlXCIpID8/IFwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9URVhUQVJFQV9QTEFDRUhPTERFUlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdHJvd3M9ezIwfVxuXHRcdFx0XHRcdFx0XHRcdFx0Z3Jvd2luZz17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdGdyb3dpbmdNYXhMaW5lcz17MzB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXhMZW5ndGg9e01BWF9MRU5HVEh9XG5cdFx0XHRcdFx0XHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17ZWFzeUVkaXREZXNjcmlwdGlvbn1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxUZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGF0aDogXCIvY3VycmVudGx5RW50ZXJlZFRleHRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kZWw6IFwiJGNvbXBvbmVudFN0YXRlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvcm1hdHRlcjogdGhpcy5mb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzLmJpbmQodGhpcylcblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbGF5b3V0RGF0YTogPEZsZXhJdGVtRGF0YSBhbGlnblNlbGY9XCJFbmRcIiAvPiB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvVGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfQlVUVE9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vYWlcIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZW5hYmxlZD17bm90KGlzRW1wdHkodGhpcy5iaW5kU3RhdGUoXCJjdXJyZW50bHlFbnRlcmVkVGV4dFwiKSkpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkVhc3lFZGl0UHJlc3NlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkVuZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0PjwvQnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfQ0xFQVJfQUxMXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlPXtCdXR0b25UeXBlLlRyYW5zcGFyZW50fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNsZWFyQWxsLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQ2xlYXJBbGxCdXR0b259XG5cdFx0XHRcdFx0XHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0PC9IQm94PlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJyZXZpZXdBcmVhXCIpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17dGhpcy4kcmV2aWV3QXJlYX1cblx0XHRcdFx0XHRcdFx0XHR3aWR0aD17XCI2MCVcIn1cblx0XHRcdFx0XHRcdFx0XHRyZW5kZXJUeXBlPXtcIkJhcmVcIn1cblx0XHRcdFx0XHRcdFx0XHRidXN5PXt0aGlzLmJpbmRTdGF0ZShcImlzQnVzeVwiKX1cblx0XHRcdFx0XHRcdFx0XHRkaXJlY3Rpb249e0ZsZXhEaXJlY3Rpb24uQ29sdW1ufVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcEZlRWFzeUZpbGxSZXZpZXdBcmVhXCJ9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8SWxsdXN0cmF0ZWRNZXNzYWdlXG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25UeXBlPXtJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlLk5vU2VhcmNoUmVzdWx0c31cblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblNpemU9e0lsbHVzdHJhdGVkTWVzc2FnZVNpemUuTGFyZ2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZT17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX1JFVklFV19USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfUkVWSUVXX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiSW5pdGlhbFwiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuTm9FbnRyaWVzfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfTk9fRU5UUklFU19USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfTk9fRU5UUklFU19ERVNDUklQVElPTlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e2VxdWFsKHRoaXMuYmluZFN0YXRlKFwic3RhdGVUeXBlXCIpLCBcIk5vRW50cmllc1wiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuVW5hYmxlVG9Mb2FkfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfRVJST1JfVElUTEVcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbj17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX0VSUk9SX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiRXJyb3JcIil9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Zm9vdGVyOiAoXG5cdFx0XHRcdFx0XHQ8T3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdFx0XHQ8VG9vbGJhclNwYWNlciAvPlxuXHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX1NBVkVcIil9XG5cdFx0XHRcdFx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRcdFx0XHRcdGVuYWJsZWQ9e2FuZCh0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKSwgbm90KHRoaXMuYmluZFN0YXRlKFwiaGFzRXJyb3JcIikpKX1cblx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNvbmZpcm0uYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbFNhdmVCdXR0b259XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfQ0FOQ0VMXCIpfVxuXHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMub25DYW5jZWwuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbENhbmNlbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRGlhbG9nPlxuXHRcdCk7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjphbmFseXplVGV4dFwiKTtcblx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoJGVhc3lGaWxsU2F2ZUJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpzYXZlXCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxDYW5jZWxCdXR0b24uY3VycmVudCEsIFwicHJlc3NcIiwgXCJmYWk6ZWY6Y2FuY2VsXCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpjbGVhckFsbFwiKTtcblx0XHRyZXR1cm4gZGlhbG9nO1xuXHR9XG5cblx0YXN5bmMgX2dldFZhbHVlTGlzdChwcm9wZXJ0eVBhdGg6IHN0cmluZyk6IFByb21pc2U8VmFsdWVMaXN0SW5mbyB8IHVuZGVmaW5lZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdGNvbnN0IHZhbHVlTGlzdHMgPSBhd2FpdCBWYWx1ZUxpc3RIZWxwZXIuZ2V0VmFsdWVMaXN0SW5mbyh1bmRlZmluZWQsIHByb3BlcnR5UGF0aCwgdW5kZWZpbmVkLCBtZXRhTW9kZWwpO1xuXHRcdHJldHVybiB2YWx1ZUxpc3RzWzBdO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QSxDQUNjO1FBRW5CO01BQUMsQ0FDTSxDQUNSO01BQ0RwRixVQUFVLENBQUNDLG1CQUFtQixDQUFDaUYsZUFBZSxDQUFDcEksT0FBTyxFQUFHLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztNQUN2RmtELFVBQVUsQ0FBQ0MsbUJBQW1CLENBQUNrRixtQkFBbUIsQ0FBQ3JJLE9BQU8sRUFBRyxPQUFPLEVBQUUsYUFBYSxDQUFDO01BQ3BGa0QsVUFBVSxDQUFDQyxtQkFBbUIsQ0FBQ21GLHFCQUFxQixDQUFDdEksT0FBTyxFQUFHLE9BQU8sRUFBRSxlQUFlLENBQUM7TUFDeEZrRCxVQUFVLENBQUNDLG1CQUFtQixDQUFDb0YsdUJBQXVCLENBQUN2SSxPQUFPLEVBQUcsT0FBTyxFQUFFLGlCQUFpQixDQUFDO01BQzVGLE9BQU93SSxNQUFNO0lBQ2QsQ0FBQztJQUFBaFEsTUFBQSxDQUVLeU8sYUFBYSxHQUFuQixlQUFNQSxhQUFhQSxDQUFDMkUsWUFBb0IsRUFBc0M7TUFDN0UsTUFBTWpSLFNBQVMsR0FBRyxJQUFJLENBQUNFLFlBQVksQ0FBQyxDQUFFO01BQ3RDLE1BQU1nUixVQUFVLEdBQUcsTUFBTTFFLGVBQWUsQ0FBQzJFLGdCQUFnQixDQUFDN08sU0FBUyxFQUFFMk8sWUFBWSxFQUFFM08sU0FBUyxFQUFFdEMsU0FBUyxDQUFDO01BQ3hHLE9BQU9rUixVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFBQSxPQUFBM1UsY0FBQTtFQUFBLEVBN21CMEM2VSxhQUFhLEdBQUE1VCxXQUFBLEdBQUE2VCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLGtCQUFBcEIsS0FBQTtJQUFBNFUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFoVSxZQUFBLEdBQUE0VCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLHVCQUFBbEIsS0FBQTtJQUFBMFUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEvVCxZQUFBLEdBQUEyVCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLHdCQUFBakIsS0FBQTtJQUFBeVUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF4VSxPQUFBLE1BQUFELE1BQUE7RUFBQVcsUUFBQSxHQUFBcEIsY0FBQTtFQUFBLE9BQUFvQixRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -565,6 +565,7 @@ export default class EasyFillDialog extends BuildingBlock<
565
565
  direction={FlexDirection.Column}
566
566
  class={"sapUiContentPadding"}
567
567
  renderType={"Bare"}
568
+ fitContainer={true}
568
569
  >
569
570
  <FormattedText
570
571
  htmlText={this.getTranslatedText("C_EASYEDIT_DIALOG_DESCRIPTION")}
@@ -78,12 +78,14 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
78
78
  text: "{sap.fe.i18n>SUMMARIZE}",
79
79
  icon: "sap-icon://ai",
80
80
  type: ButtonType.Ghost,
81
- press: async () => {
81
+ press: async event => {
82
82
  try {
83
- await environmentService.prepareFeature("SmartSummarize");
83
+ await environmentService?.prepareFeature("SmartSummarize");
84
84
  const library = await __ui5_require_async("ux/eng/fioriai/reuse/summary/SmartSummary");
85
+ const triggerButton = event.getSource();
85
86
  await library.summarize({
86
- view: CommonUtils.getTargetView(this)
87
+ view: CommonUtils.getTargetView(this),
88
+ triggerElement: triggerButton
87
89
  });
88
90
  } catch (error) {
89
91
  Log.error("Summarization failed", error);
@@ -114,4 +116,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/ClassSupport", "sap/fe/core/CommonUt
114
116
  _exports = SummarizationButton;
115
117
  return _exports;
116
118
  }, false);
117
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdW1tYXJpemF0aW9uQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiZmVzclN0ZXBOYW1lIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImdldE92ZXJmbG93VG9vbGJhckNvbmZpZyIsImNhbk92ZXJmbG93IiwiZW52aXJvbm1lbnRTZXJ2aWNlIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJidXR0b24iLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsIlNtYXJ0U3VtbWFyaXplIiwiX2pzeCIsIkJ1dHRvbiIsImlkIiwiY3JlYXRlSWQiLCJ0ZXh0IiwiaWNvbiIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsInByZXNzIiwicHJlcGFyZUZlYXR1cmUiLCJsaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsInN1bW1hcml6ZSIsInZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJlcnJvciIsIkxvZyIsInNldExheW91dERhdGEiLCJPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIiwicHJpb3JpdHkiLCJPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eSIsIkhpZ2giLCJGRVNSSGVscGVyIiwic2V0U2VtYW50aWNTdGVwbmFtZSIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIlN1bW1hcml6YXRpb25CdXR0b24udHN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBMb2cgZnJvbSBcInNhcC9iYXNlL0xvZ1wiO1xuaW1wb3J0IHsgZGVmaW5lVUk1Q2xhc3MsIGltcGxlbWVudEludGVyZmFjZSwgcHJvcGVydHkgfSBmcm9tIFwic2FwL2ZlL2Jhc2UvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgQ29tbW9uVXRpbHMgZnJvbSBcInNhcC9mZS9jb3JlL0NvbW1vblV0aWxzXCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YSBmcm9tIFwic2FwL20vT3ZlcmZsb3dUb29sYmFyTGF5b3V0RGF0YVwiO1xuaW1wb3J0IHsgQnV0dG9uVHlwZSwgT3ZlcmZsb3dUb29sYmFyUHJpb3JpdHkgfSBmcm9tIFwic2FwL20vbGlicmFyeVwiO1xuaW1wb3J0IEZFU1JIZWxwZXIgZnJvbSBcInNhcC91aS9wZXJmb3JtYW5jZS90cmFjZS9GRVNSSGVscGVyXCI7XG5cbi8qKlxuICogU3VtbWFyaXphdGlvbiBidXR0b24gYnVpbGRpbmcgYmxvY2suXG4gKlxuICogSWYgdGhlIHN1bW1hcml6YXRpb24gZmVhdHVyZSBpcyBhdmFpbGFibGUsIHRoaXMgYnVpbGRpbmcgYmxvY2sgd2lsbCByZW5kZXIgYSBidXR0b24gdGhhdCB0cmlnZ2VycyB0aGUgc3VtbWFyaXphdGlvbiBmZWF0dXJlLlxuICovXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLlN1bW1hcml6YXRpb25CdXR0b25cIilcbmV4cG9ydCBkZWZhdWx0IGNsYXNzIFN1bW1hcml6YXRpb25CdXR0b24gZXh0ZW5kcyBCdWlsZGluZ0Jsb2NrIHtcblx0QGltcGxlbWVudEludGVyZmFjZShcInNhcC5tLklPdmVyZmxvd1Rvb2xiYXJDb250ZW50XCIpXG5cdF9faW1wbGVtZW50c19fc2FwX21fSU92ZXJmbG93VG9vbGJhckNvbnRlbnQgPSB0cnVlO1xuXHQvKipcblx0ICogVGhlIElEIG9mIHRoZSBidXR0b24uXG5cdCAqL1xuXHRAcHJvcGVydHkoeyB0eXBlOiBcInN0cmluZ1wiLCByZXF1aXJlZDogdHJ1ZSB9KVxuXHRwdWJsaWMgaWQhOiBzdHJpbmc7XG5cblx0ZmVzclN0ZXBOYW1lID0gXCJmZTQ6c3VtOnN1bW1hcml6ZVwiO1xuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRnZXRPdmVyZmxvd1Rvb2xiYXJDb25maWcoKTogb2JqZWN0IHtcblx0XHRyZXR1cm4ge1xuXHRcdFx0Y2FuT3ZlcmZsb3c6IHRydWVcblx0XHR9O1xuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBCdXR0b24gfCB1bmRlZmluZWQge1xuXHRcdGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IHRoaXMuZ2V0QXBwQ29tcG9uZW50KCk/LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCk7XG5cdFx0bGV0IGJ1dHRvbjtcblx0XHRpZiAoZW52aXJvbm1lbnRTZXJ2aWNlPy5lbnZpcm9ubWVudENhcGFiaWxpdGllcy5TbWFydFN1bW1hcml6ZSA9PT0gdHJ1ZSkge1xuXHRcdFx0YnV0dG9uID0gKFxuXHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJidXR0b25cIil9XG5cdFx0XHRcdFx0ZHQ6ZGVzaWdudGltZT1cIm5vdC1hZGFwdGFibGVcIlxuXHRcdFx0XHRcdHRleHQ9XCJ7c2FwLmZlLmkxOG4+U1VNTUFSSVpFfVwiXG5cdFx0XHRcdFx0aWNvbj1cInNhcC1pY29uOi8vYWlcIlxuXHRcdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuR2hvc3R9XG5cdFx0XHRcdFx0cHJlc3M9e2FzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcblx0XHRcdFx0XHRcdHRyeSB7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IGVudmlyb25tZW50U2VydmljZS5wcmVwYXJlRmVhdHVyZShcIlNtYXJ0U3VtbWFyaXplXCIpO1xuXHRcdFx0XHRcdFx0XHRjb25zdCBsaWJyYXJ5ID0gYXdhaXQgaW1wb3J0KFwidXgvZW5nL2Zpb3JpYWkvcmV1c2Uvc3VtbWFyeS9TbWFydFN1bW1hcnlcIik7XG5cdFx0XHRcdFx0XHRcdGF3YWl0IGxpYnJhcnkuc3VtbWFyaXplKHsgdmlldzogQ29tbW9uVXRpbHMuZ2V0VGFyZ2V0Vmlldyh0aGlzKSB9KTtcblx0XHRcdFx0XHRcdH0gY2F0Y2ggKGVycm9yKSB7XG5cdFx0XHRcdFx0XHRcdExvZy5lcnJvcihcIlN1bW1hcml6YXRpb24gZmFpbGVkXCIsIGVycm9yIGFzIEVycm9yKTtcblx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHR9fVxuXHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHQpO1xuXHRcdFx0dGhpcy5zZXRMYXlvdXREYXRhKDxPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIHByaW9yaXR5PXtPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eS5IaWdofSAvPik7XG5cdFx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoYnV0dG9uLCBcInByZXNzXCIsIHRoaXMuZmVzclN0ZXBOYW1lKTtcblx0XHR9XG5cdFx0cmV0dXJuIGJ1dHRvbjtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUFTQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkEsSUFNcUJBLG1CQUFtQixJQUFBQyxJQUFBLEdBRHZDQyxjQUFjLENBQUMsc0NBQXNDLENBQUMsRUFBQUMsS0FB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
119
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJTdW1tYXJpemF0aW9uQnV0dG9uIiwiX2RlYyIsImRlZmluZVVJNUNsYXNzIiwiX2RlYzIiLCJpbXBsZW1lbnRJbnRlcmZhY2UiLCJfZGVjMyIsInByb3BlcnR5IiwidHlwZSIsInJlcXVpcmVkIiwiX2NsYXNzIiwiX2NsYXNzMiIsIl9CdWlsZGluZ0Jsb2NrIiwiX3RoaXMiLCJfbGVuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiYXJncyIsIkFycmF5IiwiX2tleSIsImNhbGwiLCJfaW5pdGlhbGl6ZXJEZWZpbmVQcm9wZXJ0eSIsIl9kZXNjcmlwdG9yIiwiX2Rlc2NyaXB0b3IyIiwiZmVzclN0ZXBOYW1lIiwiX2V4cG9ydHMiLCJfaW5oZXJpdHNMb29zZSIsIl9wcm90byIsInByb3RvdHlwZSIsIm9uTWV0YWRhdGFBdmFpbGFibGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsImdldE92ZXJmbG93VG9vbGJhckNvbmZpZyIsImNhbk92ZXJmbG93IiwiZW52aXJvbm1lbnRTZXJ2aWNlIiwiZ2V0QXBwQ29tcG9uZW50IiwiZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMiLCJidXR0b24iLCJlbnZpcm9ubWVudENhcGFiaWxpdGllcyIsIlNtYXJ0U3VtbWFyaXplIiwiX2pzeCIsIkJ1dHRvbiIsImlkIiwiY3JlYXRlSWQiLCJ0ZXh0IiwiaWNvbiIsIkJ1dHRvblR5cGUiLCJHaG9zdCIsInByZXNzIiwiZXZlbnQiLCJwcmVwYXJlRmVhdHVyZSIsImxpYnJhcnkiLCJfX3VpNV9yZXF1aXJlX2FzeW5jIiwidHJpZ2dlckJ1dHRvbiIsImdldFNvdXJjZSIsInN1bW1hcml6ZSIsInZpZXciLCJDb21tb25VdGlscyIsImdldFRhcmdldFZpZXciLCJ0cmlnZ2VyRWxlbWVudCIsImVycm9yIiwiTG9nIiwic2V0TGF5b3V0RGF0YSIsIk92ZXJmbG93VG9vbGJhckxheW91dERhdGEiLCJwcmlvcml0eSIsIk92ZXJmbG93VG9vbGJhclByaW9yaXR5IiwiSGlnaCIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIiwiQnVpbGRpbmdCbG9jayIsIl9hcHBseURlY29yYXRlZERlc2NyaXB0b3IiLCJjb25maWd1cmFibGUiLCJlbnVtZXJhYmxlIiwid3JpdGFibGUiLCJpbml0aWFsaXplciJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiU3VtbWFyaXphdGlvbkJ1dHRvbi50c3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgeyBkZWZpbmVVSTVDbGFzcywgaW1wbGVtZW50SW50ZXJmYWNlLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCBDb21tb25VdGlscyBmcm9tIFwic2FwL2ZlL2NvcmUvQ29tbW9uVXRpbHNcIjtcbmltcG9ydCBCdWlsZGluZ0Jsb2NrIGZyb20gXCJzYXAvZmUvY29yZS9idWlsZGluZ0Jsb2Nrcy9CdWlsZGluZ0Jsb2NrXCI7XG5pbXBvcnQgQnV0dG9uIGZyb20gXCJzYXAvbS9CdXR0b25cIjtcbmltcG9ydCBPdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJMYXlvdXREYXRhXCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBPdmVyZmxvd1Rvb2xiYXJQcmlvcml0eSB9IGZyb20gXCJzYXAvbS9saWJyYXJ5XCI7XG5pbXBvcnQgdHlwZSBVSTVFbGVtZW50IGZyb20gXCJzYXAvdWkvY29yZS9FbGVtZW50XCI7XG5pbXBvcnQgRkVTUkhlbHBlciBmcm9tIFwic2FwL3VpL3BlcmZvcm1hbmNlL3RyYWNlL0ZFU1JIZWxwZXJcIjtcblxuLyoqXG4gKiBTdW1tYXJpemF0aW9uIGJ1dHRvbiBidWlsZGluZyBibG9jay5cbiAqXG4gKiBJZiB0aGUgc3VtbWFyaXphdGlvbiBmZWF0dXJlIGlzIGF2YWlsYWJsZSwgdGhpcyBidWlsZGluZyBibG9jayB3aWxsIHJlbmRlciBhIGJ1dHRvbiB0aGF0IHRyaWdnZXJzIHRoZSBzdW1tYXJpemF0aW9uIGZlYXR1cmUuXG4gKi9cbkBkZWZpbmVVSTVDbGFzcyhcInNhcC5mZS5tYWNyb3MuYWkuU3VtbWFyaXphdGlvbkJ1dHRvblwiKVxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgU3VtbWFyaXphdGlvbkJ1dHRvbiBleHRlbmRzIEJ1aWxkaW5nQmxvY2sge1xuXHRAaW1wbGVtZW50SW50ZXJmYWNlKFwic2FwLm0uSU92ZXJmbG93VG9vbGJhckNvbnRlbnRcIilcblx0X19pbXBsZW1lbnRzX19zYXBfbV9JT3ZlcmZsb3dUb29sYmFyQ29udGVudCA9IHRydWU7XG5cdC8qKlxuXHQgKiBUaGUgSUQgb2YgdGhlIGJ1dHRvbi5cblx0ICovXG5cdEBwcm9wZXJ0eSh7IHR5cGU6IFwic3RyaW5nXCIsIHJlcXVpcmVkOiB0cnVlIH0pXG5cdHB1YmxpYyBpZCE6IHN0cmluZztcblxuXHRmZXNyU3RlcE5hbWUgPSBcImZlNDpzdW06c3VtbWFyaXplXCI7XG5cblx0b25NZXRhZGF0YUF2YWlsYWJsZSgpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRlbnQgPSB0aGlzLmNyZWF0ZUNvbnRlbnQoKTtcblx0fVxuXG5cdGdldE92ZXJmbG93VG9vbGJhckNvbmZpZygpOiBvYmplY3Qge1xuXHRcdHJldHVybiB7XG5cdFx0XHRjYW5PdmVyZmxvdzogdHJ1ZVxuXHRcdH07XG5cdH1cblxuXHRjcmVhdGVDb250ZW50KCk6IEJ1dHRvbiB8IHVuZGVmaW5lZCB7XG5cdFx0Y29uc3QgZW52aXJvbm1lbnRTZXJ2aWNlID0gdGhpcy5nZXRBcHBDb21wb25lbnQoKT8uZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKTtcblx0XHRsZXQgYnV0dG9uO1xuXHRcdGlmIChlbnZpcm9ubWVudFNlcnZpY2U/LmVudmlyb25tZW50Q2FwYWJpbGl0aWVzLlNtYXJ0U3VtbWFyaXplID09PSB0cnVlKSB7XG5cdFx0XHRidXR0b24gPSAoXG5cdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcImJ1dHRvblwiKX1cblx0XHRcdFx0XHRkdDpkZXNpZ250aW1lPVwibm90LWFkYXB0YWJsZVwiXG5cdFx0XHRcdFx0dGV4dD1cIntzYXAuZmUuaTE4bj5TVU1NQVJJWkV9XCJcblx0XHRcdFx0XHRpY29uPVwic2FwLWljb246Ly9haVwiXG5cdFx0XHRcdFx0dHlwZT17QnV0dG9uVHlwZS5HaG9zdH1cblx0XHRcdFx0XHRwcmVzcz17YXN5bmMgKGV2ZW50KTogUHJvbWlzZTx2b2lkPiA9PiB7XG5cdFx0XHRcdFx0XHR0cnkge1xuXHRcdFx0XHRcdFx0XHRhd2FpdCBlbnZpcm9ubWVudFNlcnZpY2U/LnByZXBhcmVGZWF0dXJlKFwiU21hcnRTdW1tYXJpemVcIik7XG5cdFx0XHRcdFx0XHRcdGNvbnN0IGxpYnJhcnkgPSBhd2FpdCBpbXBvcnQoXCJ1eC9lbmcvZmlvcmlhaS9yZXVzZS9zdW1tYXJ5L1NtYXJ0U3VtbWFyeVwiKTtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdHJpZ2dlckJ1dHRvbjogVUk1RWxlbWVudCA9IGV2ZW50LmdldFNvdXJjZSgpO1xuXHRcdFx0XHRcdFx0XHRhd2FpdCBsaWJyYXJ5LnN1bW1hcml6ZSh7IHZpZXc6IENvbW1vblV0aWxzLmdldFRhcmdldFZpZXcodGhpcyksIHRyaWdnZXJFbGVtZW50OiB0cmlnZ2VyQnV0dG9uIH0pO1xuXHRcdFx0XHRcdFx0fSBjYXRjaCAoZXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0TG9nLmVycm9yKFwiU3VtbWFyaXphdGlvbiBmYWlsZWRcIiwgZXJyb3IgYXMgRXJyb3IpO1xuXHRcdFx0XHRcdFx0fVxuXHRcdFx0XHRcdH19XG5cdFx0XHRcdD48L0J1dHRvbj5cblx0XHRcdCk7XG5cdFx0XHR0aGlzLnNldExheW91dERhdGEoPE92ZXJmbG93VG9vbGJhckxheW91dERhdGEgcHJpb3JpdHk9e092ZXJmbG93VG9vbGJhclByaW9yaXR5LkhpZ2h9IC8+KTtcblx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZShidXR0b24sIFwicHJlc3NcIiwgdGhpcy5mZXNyU3RlcE5hbWUpO1xuXHRcdH1cblx0XHRyZXR1cm4gYnV0dG9uO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztFQVVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQSxJQU1xQkEsbUJBQW1CLElBQUFDLElBQUEsR0FEdkNDLGNBQWMsQ0FBQyxzQ0FBc0MsQ0FBQyxFQUFBQyxLQUFBLEdBRXJEQyxrQkFBa0IsQ0FBQywrQkFBK0IsQ0FBQyxFQUFBQyxLQUFBLEdBS25EQyxRQUFRLENBQUM7SUFBRUMsSUFBSSxFQUFFLFFBQVE7SUFBRUMsUUFBUSxFQUFFO0VBQUssQ0FBQyxDQUFDLEVBQUFQLElBQUEsQ0FBQVEsTUFBQSxJQUFBQyxPQUFBLDBCQUFBQyxjQUFBO0lBQUEsU0FBQVgsb0JBQUE7TUFBQSxJQUFBWSxLQUFBO01BQUEsU0FBQUMsSUFBQSxHQUFBQyxTQUFBLENBQUFDLE1BQUEsRUFBQUMsSUFBQSxPQUFBQyxLQUFBLENBQUFKLElBQUEsR0FBQUssSUFBQSxNQUFBQSxJQUFBLEdBQUFMLElBQUEsRUFBQUssSUFBQTtRQUFBRixJQUFBLENBQUFFLElBQUEsSUFBQUosU0FBQSxDQUFBSSxJQUFBO01BQUE7TUFBQU4sS0FBQSxHQUFBRCxjQUFBLENBQUFRLElBQUEsVUFBQUgsSUFBQTtNQUFBSSwwQkFBQSxDQUFBUixLQUFBLGlEQUFBUyxXQUFBLEVBQUFULEtBQUE7TUFIN0M7QUFDRDtBQUNBO01BRkNRLDBCQUFBLENBQUFSLEtBQUEsUUFBQVUsWUFBQSxFQUFBVixLQUFBO01BQUFBLEtBQUEsQ0FNQVcsWUFBWSxHQUFHLG1CQUFtQjtNQUFBLE9BQUFYLEtBQUE7SUFBQTtJQUFBWSxRQUFBLEdBQUF4QixtQkFBQTtJQUFBeUIsY0FBQSxDQUFBekIsbUJBQUEsRUFBQVcsY0FBQTtJQUFBLElBQUFlLE1BQUEsR0FBQTFCLG1CQUFBLENBQUEyQixTQUFBO0lBQUFELE1BQUEsQ0FFbENFLG1CQUFtQixH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