@sapui5/sap.fe.core 1.141.2 → 1.142.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +4 -1
  3. package/src/sap/fe/core/ActionRuntime.js +48 -23
  4. package/src/sap/fe/core/ActionRuntime.ts +61 -35
  5. package/src/sap/fe/core/AppComponent.js +76 -6
  6. package/src/sap/fe/core/AppComponent.ts +94 -8
  7. package/src/sap/fe/core/AppStateHandler.js +9 -8
  8. package/src/sap/fe/core/AppStateHandler.ts +13 -9
  9. package/src/sap/fe/core/BaseController.js +8 -5
  10. package/src/sap/fe/core/BaseController.ts +6 -1
  11. package/src/sap/fe/core/CommonUtils.js +4 -123
  12. package/src/sap/fe/core/CommonUtils.ts +3 -172
  13. package/src/sap/fe/core/ExtensionAPI.js +3 -10
  14. package/src/sap/fe/core/ExtensionAPI.ts +2 -14
  15. package/src/sap/fe/core/PageController.js +64 -43
  16. package/src/sap/fe/core/PageController.ts +62 -47
  17. package/src/sap/fe/core/TemplateComponent.js +20 -1
  18. package/src/sap/fe/core/TemplateComponent.ts +24 -2
  19. package/src/sap/fe/core/buildingBlocks/BuildingBlock.js +37 -24
  20. package/src/sap/fe/core/buildingBlocks/BuildingBlock.ts +47 -31
  21. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.js +1 -1
  22. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockSupport.ts +4 -0
  23. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.js +4 -1
  24. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplateProcessor.ts +3 -0
  25. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.js +4 -1
  26. package/src/sap/fe/core/buildingBlocks/templating/BuildingBlockTemplatingBase.ts +4 -0
  27. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.js +7 -5
  28. package/src/sap/fe/core/controllerextensions/BaseControllerExtension.ts +22 -2
  29. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.js +82 -39
  30. package/src/sap/fe/core/controllerextensions/CollaborativeDraft.ts +91 -54
  31. package/src/sap/fe/core/controllerextensions/EditFlow.js +25 -3
  32. package/src/sap/fe/core/controllerextensions/EditFlow.ts +27 -3
  33. package/src/sap/fe/core/controllerextensions/InlineEditFlow.js +9 -7
  34. package/src/sap/fe/core/controllerextensions/InlineEditFlow.ts +17 -5
  35. package/src/sap/fe/core/controllerextensions/InternalRouting.js +37 -18
  36. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +49 -17
  37. package/src/sap/fe/core/controllerextensions/KPIManagement.js +30 -15
  38. package/src/sap/fe/core/controllerextensions/KPIManagement.ts +32 -14
  39. package/src/sap/fe/core/controllerextensions/MessageHandler.js +9 -10
  40. package/src/sap/fe/core/controllerextensions/MessageHandler.ts +8 -9
  41. package/src/sap/fe/core/controllerextensions/Paginator.js +2 -2
  42. package/src/sap/fe/core/controllerextensions/Paginator.ts +1 -1
  43. package/src/sap/fe/core/controllerextensions/Placeholder.js +10 -2
  44. package/src/sap/fe/core/controllerextensions/Placeholder.ts +5 -1
  45. package/src/sap/fe/core/controllerextensions/Recommendations.js +3 -3
  46. package/src/sap/fe/core/controllerextensions/Recommendations.ts +2 -2
  47. package/src/sap/fe/core/controllerextensions/Routing.js +9 -5
  48. package/src/sap/fe/core/controllerextensions/Routing.ts +7 -7
  49. package/src/sap/fe/core/controllerextensions/Share.js +5 -5
  50. package/src/sap/fe/core/controllerextensions/Share.ts +4 -4
  51. package/src/sap/fe/core/controllerextensions/SideEffects.js +1 -1
  52. package/src/sap/fe/core/controllerextensions/SideEffects.ts +17 -2
  53. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.js +2 -2
  54. package/src/sap/fe/core/controllerextensions/collaboration/ActivityBase.ts +1 -1
  55. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.js +3 -3
  56. package/src/sap/fe/core/controllerextensions/editFlow/NotApplicableContextDialog.tsx +3 -2
  57. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +33 -11
  58. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +45 -14
  59. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +37 -3
  60. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +41 -8
  61. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.js +10 -4
  62. package/src/sap/fe/core/controllerextensions/editFlow/draftDataLossPopup.ts +6 -1
  63. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.js +7 -7
  64. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataOperation.ts +6 -5
  65. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.js +2 -2
  66. package/src/sap/fe/core/controllerextensions/editFlow/operations/ODataStrictHandling.ts +1 -1
  67. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.js +2 -1
  68. package/src/sap/fe/core/controllerextensions/editFlow/operations/OperationParameters.ts +1 -0
  69. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +10 -6
  70. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +6 -5
  71. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.js +11 -9
  72. package/src/sap/fe/core/controllerextensions/routing/RouterProxy.ts +22 -9
  73. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.js +9 -4
  74. package/src/sap/fe/core/controls/DataLossOrDraftDiscard/DraftDataLossDialog.tsx +10 -4
  75. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.js +31 -2
  76. package/src/sap/fe/core/controls/Recommendations/ConfirmRecommendationDialog.tsx +34 -1
  77. package/src/sap/fe/core/converters/ManifestSettings.js +7 -1
  78. package/src/sap/fe/core/converters/ManifestSettings.ts +37 -0
  79. package/src/sap/fe/core/converters/ManifestWrapper.js +29 -9
  80. package/src/sap/fe/core/converters/ManifestWrapper.ts +29 -11
  81. package/src/sap/fe/core/converters/annotations/DataField.js +46 -19
  82. package/src/sap/fe/core/converters/annotations/DataField.ts +93 -19
  83. package/src/sap/fe/core/converters/common/AnnotationConverter.js +88 -35
  84. package/src/sap/fe/core/converters/controls/Common/Action.js +57 -20
  85. package/src/sap/fe/core/converters/controls/Common/Action.ts +71 -21
  86. package/src/sap/fe/core/converters/controls/Common/Chart.js +13 -3
  87. package/src/sap/fe/core/converters/controls/Common/Chart.ts +20 -4
  88. package/src/sap/fe/core/converters/controls/Common/Form.js +18 -3
  89. package/src/sap/fe/core/converters/controls/Common/Form.ts +23 -1
  90. package/src/sap/fe/core/converters/controls/Common/Table.js +89 -57
  91. package/src/sap/fe/core/converters/controls/Common/Table.ts +110 -56
  92. package/src/sap/fe/core/converters/controls/Common/filter/FilterRestrictions.js +243 -0
  93. package/src/sap/fe/core/converters/controls/Common/filter/FilterRestrictions.ts +309 -0
  94. package/src/sap/fe/core/converters/controls/Common/table/Columns.js +142 -58
  95. package/src/sap/fe/core/converters/controls/Common/table/Columns.ts +172 -78
  96. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.js +12 -18
  97. package/src/sap/fe/core/converters/controls/Common/table/StandardActions.ts +13 -27
  98. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +7 -16
  99. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +6 -17
  100. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.js +16 -5
  101. package/src/sap/fe/core/converters/controls/ObjectPage/SubSection.ts +16 -5
  102. package/src/sap/fe/core/converters/helpers/Aggregation.js +12 -2
  103. package/src/sap/fe/core/converters/helpers/Aggregation.ts +11 -1
  104. package/src/sap/fe/core/converters/helpers/DataFieldHelper.js +27 -3
  105. package/src/sap/fe/core/converters/helpers/DataFieldHelper.ts +28 -1
  106. package/src/sap/fe/core/converters/helpers/ID.js +3 -1
  107. package/src/sap/fe/core/converters/helpers/ID.ts +1 -0
  108. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.js +5 -2
  109. package/src/sap/fe/core/converters/objectPage/HeaderAndFooterAction.ts +7 -1
  110. package/src/sap/fe/core/converters/templates/ListReportConverter.js +11 -3
  111. package/src/sap/fe/core/converters/templates/ListReportConverter.ts +12 -4
  112. package/src/sap/fe/core/converters/templates/ObjectPageConverter.js +19 -8
  113. package/src/sap/fe/core/converters/templates/ObjectPageConverter.ts +18 -7
  114. package/src/sap/fe/core/designtime/AnnotationBasedChanges.js +8 -3
  115. package/src/sap/fe/core/designtime/AnnotationBasedChanges.ts +7 -2
  116. package/src/sap/fe/core/formatters/FPMFormatter.js +2 -2
  117. package/src/sap/fe/core/formatters/FPMFormatter.ts +1 -1
  118. package/src/sap/fe/core/fpm/Component.js +8 -1
  119. package/src/sap/fe/core/fpm/Component.ts +8 -0
  120. package/src/sap/fe/core/fpm/manifest.json +1 -1
  121. package/src/sap/fe/core/helpers/AppStartupHelper.js +79 -25
  122. package/src/sap/fe/core/helpers/AppStartupHelper.ts +91 -32
  123. package/src/sap/fe/core/helpers/ManifestHelper.js +6 -3
  124. package/src/sap/fe/core/helpers/ManifestHelper.ts +3 -0
  125. package/src/sap/fe/core/helpers/MetaModelFunction.js +12 -3
  126. package/src/sap/fe/core/helpers/MetaModelFunction.ts +11 -3
  127. package/src/sap/fe/core/helpers/ModelHelper.js +48 -9
  128. package/src/sap/fe/core/helpers/ModelHelper.ts +55 -10
  129. package/src/sap/fe/core/helpers/TypeGuards.js +12 -2
  130. package/src/sap/fe/core/helpers/TypeGuards.ts +10 -1
  131. package/src/sap/fe/core/helpers/WebSocket.js +6 -7
  132. package/src/sap/fe/core/helpers/WebSocket.ts +10 -6
  133. package/src/sap/fe/core/library.js +30 -3
  134. package/src/sap/fe/core/library.ts +28 -1
  135. package/src/sap/fe/core/messagebundle.properties +8 -1
  136. package/src/sap/fe/core/messagebundle_ar.properties +7 -0
  137. package/src/sap/fe/core/messagebundle_bg.properties +10 -3
  138. package/src/sap/fe/core/messagebundle_ca.properties +7 -0
  139. package/src/sap/fe/core/messagebundle_cnr.properties +7 -0
  140. package/src/sap/fe/core/messagebundle_cs.properties +7 -0
  141. package/src/sap/fe/core/messagebundle_cy.properties +8 -1
  142. package/src/sap/fe/core/messagebundle_da.properties +7 -0
  143. package/src/sap/fe/core/messagebundle_de.properties +7 -0
  144. package/src/sap/fe/core/messagebundle_el.properties +7 -0
  145. package/src/sap/fe/core/messagebundle_en.properties +8 -1
  146. package/src/sap/fe/core/messagebundle_en_GB.properties +7 -0
  147. package/src/sap/fe/core/messagebundle_en_US_saprigi.properties +5 -0
  148. package/src/sap/fe/core/messagebundle_es.properties +8 -1
  149. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -0
  150. package/src/sap/fe/core/messagebundle_et.properties +7 -0
  151. package/src/sap/fe/core/messagebundle_fi.properties +7 -0
  152. package/src/sap/fe/core/messagebundle_fr.properties +16 -9
  153. package/src/sap/fe/core/messagebundle_fr_CA.properties +7 -0
  154. package/src/sap/fe/core/messagebundle_hi.properties +8 -1
  155. package/src/sap/fe/core/messagebundle_hr.properties +7 -0
  156. package/src/sap/fe/core/messagebundle_hu.properties +7 -0
  157. package/src/sap/fe/core/messagebundle_id.properties +7 -0
  158. package/src/sap/fe/core/messagebundle_it.properties +7 -0
  159. package/src/sap/fe/core/messagebundle_iw.properties +7 -0
  160. package/src/sap/fe/core/messagebundle_ja.properties +8 -1
  161. package/src/sap/fe/core/messagebundle_kk.properties +7 -0
  162. package/src/sap/fe/core/messagebundle_ko.properties +7 -0
  163. package/src/sap/fe/core/messagebundle_lt.properties +7 -0
  164. package/src/sap/fe/core/messagebundle_lv.properties +7 -0
  165. package/src/sap/fe/core/messagebundle_mk.properties +7 -0
  166. package/src/sap/fe/core/messagebundle_ms.properties +7 -0
  167. package/src/sap/fe/core/messagebundle_nl.properties +7 -0
  168. package/src/sap/fe/core/messagebundle_no.properties +7 -0
  169. package/src/sap/fe/core/messagebundle_pl.properties +7 -0
  170. package/src/sap/fe/core/messagebundle_pt.properties +7 -0
  171. package/src/sap/fe/core/messagebundle_pt_PT.properties +7 -0
  172. package/src/sap/fe/core/messagebundle_ro.properties +7 -0
  173. package/src/sap/fe/core/messagebundle_ru.properties +7 -0
  174. package/src/sap/fe/core/messagebundle_sh.properties +7 -0
  175. package/src/sap/fe/core/messagebundle_sk.properties +7 -0
  176. package/src/sap/fe/core/messagebundle_sl.properties +7 -0
  177. package/src/sap/fe/core/messagebundle_sr.properties +7 -0
  178. package/src/sap/fe/core/messagebundle_sv.properties +7 -0
  179. package/src/sap/fe/core/messagebundle_th.properties +7 -0
  180. package/src/sap/fe/core/messagebundle_tr.properties +7 -0
  181. package/src/sap/fe/core/messagebundle_uk.properties +7 -0
  182. package/src/sap/fe/core/messagebundle_vi.properties +7 -0
  183. package/src/sap/fe/core/messagebundle_zh_CN.properties +8 -1
  184. package/src/sap/fe/core/messagebundle_zh_TW.properties +7 -0
  185. package/src/sap/fe/core/rootView/Fcl.controller.js +21 -7
  186. package/src/sap/fe/core/rootView/Fcl.controller.ts +28 -6
  187. package/src/sap/fe/core/rootView/RootViewBaseController.js +96 -88
  188. package/src/sap/fe/core/rootView/RootViewBaseController.ts +106 -96
  189. package/src/sap/fe/core/services/EnvironmentServiceFactory.js +14 -10
  190. package/src/sap/fe/core/services/EnvironmentServiceFactory.ts +15 -10
  191. package/src/sap/fe/core/services/RoutingServiceFactory.js +16 -7
  192. package/src/sap/fe/core/services/RoutingServiceFactory.ts +23 -10
  193. package/src/sap/fe/core/services/SideEffectsServiceFactory.js +9 -7
  194. package/src/sap/fe/core/services/SideEffectsServiceFactory.ts +13 -8
  195. package/src/sap/fe/core/services/TemplatedViewServiceFactory.js +62 -6
  196. package/src/sap/fe/core/services/TemplatedViewServiceFactory.ts +74 -11
  197. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.js +33 -15
  198. package/src/sap/fe/core/services/collaborativeDraftServiceFactory.ts +31 -11
  199. package/src/sap/fe/core/templating/DisplayModeFormatter.js +4 -5
  200. package/src/sap/fe/core/templating/DisplayModeFormatter.ts +4 -6
  201. package/src/sap/fe/core/templating/UIFormatters.js +17 -2
  202. package/src/sap/fe/core/templating/UIFormatters.ts +25 -1
  203. package/src/sap/fe/core/types/sap.fe.core-auto-ext.d.js +10 -0
  204. package/src/sap/fe/core/types/sap.fe.core-auto-ext.d.ts +369 -0
  205. package/src/sap/fe/core/types/sap.fe.core-manual-ext.d.js +9 -0
  206. package/src/sap/fe/core/types/sap.fe.core-manual-ext.d.ts +49 -0
  207. package/ui5.yaml +2 -0
@@ -183,7 +183,7 @@ const ModelHelper = {
183
183
  const oMetaModel = oContext.getModel().getMetaModel();
184
184
  const getRootPath = function (sPath: string, model: ODataModel, firstIteration = true): string | undefined {
185
185
  const sIterationPath = firstIteration ? sPath : new RegExp(/.*(?=\/)/).exec(sPath)?.[0]; // *Regex to get the ancestor
186
- if (sIterationPath && sIterationPath !== "/") {
186
+ if (oMetaModel && sIterationPath && sIterationPath !== "/") {
187
187
  const sEntityPath = oMetaModel.getMetaPath(sIterationPath);
188
188
  const mDataModel = MetaModelConverter.getInvolvedDataModelObjects(oMetaModel.getContext(sEntityPath));
189
189
  if (
@@ -286,6 +286,30 @@ const ModelHelper = {
286
286
  */
287
287
 
288
288
  enhanceInternalJSONModel: function (oInternalModel: JSONModel): void {
289
+ const fnSetProperty = oInternalModel.setProperty.bind(oInternalModel);
290
+ oInternalModel.setProperty = function (
291
+ propertyPath: string,
292
+ value: unknown,
293
+ oContext: Context | undefined,
294
+ bAsyncUpdate: boolean
295
+ ): boolean {
296
+ if (oContext && oContext.getObject() === undefined) {
297
+ // initialize
298
+ fnSetProperty(oContext.getPath(), {});
299
+ }
300
+ const propertyPathSplit = propertyPath.split("/");
301
+ let path = oContext?.getPath().replace(/\/$/, "") ?? ""; // Remove slash if it is at the end
302
+ // let's ensure that sub objects are initialized
303
+ const startIndex = propertyPath.startsWith("/") ? 1 : 0;
304
+ for (let i = startIndex; i < propertyPathSplit.length - 1; i++) {
305
+ path = `${path}/${propertyPathSplit[i]}`;
306
+ if (this.getProperty(path, oContext) === undefined) {
307
+ // initialize
308
+ fnSetProperty(path, {});
309
+ }
310
+ }
311
+ return fnSetProperty(propertyPath, value, oContext, bAsyncUpdate);
312
+ };
289
313
  const fnBindContext = oInternalModel.bindContext;
290
314
  oInternalModel.bindContext = function (
291
315
  sPath: string,
@@ -573,7 +597,12 @@ const ModelHelper = {
573
597
  localAnnotationModel.getProperty = function (path, context: ODataV4Context): unknown {
574
598
  const [propertyName, annotationType] = path.split("@$ui5.fe.");
575
599
 
576
- if (context && context.isTransient() !== true && annotationType === "@Common/ExternalID") {
600
+ if (
601
+ context &&
602
+ context.isTransient() !== true &&
603
+ (context.getIndex() === undefined || context.getIndex()! >= 0) &&
604
+ annotationType === "@Common/ExternalID"
605
+ ) {
577
606
  const contextObject = context.getObject();
578
607
  if (contextObject) {
579
608
  const metaPath = new MetaPath<EntitySet>(
@@ -624,11 +653,17 @@ const ModelHelper = {
624
653
  const propertiesToRequest = [externalIdPropPath.substring(0, externalIdPropPath.lastIndexOf("/"))];
625
654
  const textProperty = metaPath.getMetaPathForPath<Property>(metaPath.getPath() + "/" + externalIdPropPath)?.getTarget()
626
655
  .annotations.Common?.Text;
656
+ if (value === null) {
657
+ context.setProperty(externalIdPropPath, {});
658
+ }
627
659
  if (isPathAnnotationExpression(textProperty)) {
628
660
  const textPropPath = textProperty.path;
629
661
  if (textPropPath.includes("/")) {
630
662
  propertiesToRequest.push(textPropPath);
631
663
  }
664
+ if (value === null) {
665
+ context.setProperty(textPropPath, {});
666
+ }
632
667
  }
633
668
  (context as ODataV4Context)
634
669
  .requestSideEffects(propertiesToRequest)
@@ -1015,14 +1050,13 @@ const ModelHelper = {
1015
1050
  const placeholderDescriptionKey = localModelPath + "@$ui5.fe.recommendations.placeholderDescription";
1016
1051
  const typeAheadValuesKey = localModelPath + "@$ui5.fe.recommendations.typeAheadValues";
1017
1052
 
1018
- recommendationObj[typeAheadValuesKey] = [];
1019
-
1020
1053
  for (const propertyRecommendation of propertyRecommendations) {
1021
1054
  if (propertyRecommendation.RecommendedFieldIsSuggestion) {
1022
1055
  recommendationObj[placeholderValueKey] = propertyRecommendation.RecommendedFieldValue;
1023
1056
  recommendationObj[placeholderDescriptionKey] = propertyRecommendation.RecommendedFieldDescription;
1024
1057
  }
1025
1058
  if (propertyRecommendation.RecommendedFieldValue) {
1059
+ recommendationObj[typeAheadValuesKey] = recommendationObj[typeAheadValuesKey] || [];
1026
1060
  (recommendationObj[typeAheadValuesKey] as string[]).push(propertyRecommendation.RecommendedFieldValue);
1027
1061
  }
1028
1062
  }
@@ -1033,11 +1067,22 @@ const ModelHelper = {
1033
1067
  }
1034
1068
  recommendationObj["recommendationContext"] = currentContext;
1035
1069
  if (!this._compareRecommendations(recommendationObj, rejectedRecommendations[currentContext.getPath()] || {})) {
1036
- Object.keys(recommendationObj).forEach((key) => {
1037
- const fullPath = currentContext.getPath(key);
1038
- // Set the final value at the last path
1039
- localAnnotationModel.setProperty(fullPath, recommendationObj[key], currentContext, false);
1040
- });
1070
+ // Get existing data from the local annotation model for the current context path
1071
+ const existingData = localAnnotationModel.getProperty(currentContext.getPath()) || {};
1072
+
1073
+ // Remove all keys that include "@$ui5.fe.recommendations" from existing data
1074
+ const cleanedExistingData: Record<string, unknown> = {};
1075
+ for (const key in existingData) {
1076
+ if (!key.includes("@$ui5.fe.recommendations")) {
1077
+ cleanedExistingData[key] = existingData[key];
1078
+ }
1079
+ }
1080
+
1081
+ // Merge cleaned existing data with new recommendation data
1082
+ const mergedData = { ...cleanedExistingData, ...recommendationObj };
1083
+
1084
+ // make sure to set the recommendations on the current context path so that old recommendations are overridden and some stale data is not shown.
1085
+ localAnnotationModel.setProperty(currentContext.getPath(), mergedData, currentContext, false);
1041
1086
  }
1042
1087
  }
1043
1088
  },
@@ -1111,7 +1156,7 @@ type RecommendationDetails = {
1111
1156
  };
1112
1157
 
1113
1158
  export type InternalModelContext = { getModel(): JSONModel } & BaseContext & {
1114
- setProperty(sPath: string, vValue: unknown): void;
1159
+ setProperty(sPath: string, vValue: unknown, context?: Context, asyncUpdate?: boolean): void;
1115
1160
  };
1116
1161
 
1117
1162
  export default ModelHelper;
@@ -130,6 +130,16 @@ sap.ui.define([], function () {
130
130
  return serviceObject?._type === "Property";
131
131
  }
132
132
 
133
+ /**
134
+ * Checks whether the argument is an {@link ActionParameter}.
135
+ * @param serviceObject The object to be checked.
136
+ * @returns Whether the argument is a {@link ActionParameter}.
137
+ */
138
+ _exports.isProperty = isProperty;
139
+ function isActionParameter(serviceObject) {
140
+ return serviceObject?._type === "ActionParameter";
141
+ }
142
+
133
143
  /**
134
144
  * Checks whether the argument is a {@link NavigationProperty}.
135
145
  *
@@ -138,7 +148,7 @@ sap.ui.define([], function () {
138
148
  * @param serviceObject The object to be checked.
139
149
  * @returns Whether the argument is a {@link NavigationProperty}.
140
150
  */
141
- _exports.isProperty = isProperty;
151
+ _exports.isActionParameter = isActionParameter;
142
152
  function isNavigationProperty(serviceObject) {
143
153
  return serviceObject?._type === "NavigationProperty";
144
154
  }
@@ -205,4 +215,4 @@ sap.ui.define([], function () {
205
215
  _exports.isAction = isAction;
206
216
  return _exports;
207
217
  }, false);
208
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Z1bGZpbGxlZCIsInAiLCJzdGF0dXMiLCJfZXhwb3J0cyIsImlzUmVqZWN0ZWQiLCJpc0NvbnRleHQiLCJwb3RlbnRpYWxDb250ZXh0IiwiaXNBIiwiaXNGdW5jdGlvbkFycmF5IiwicG90ZW50aWFsRnVuY3Rpb25BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImV2ZXJ5IiwiaXRlbSIsImlzQW5ub3RhdGlvbk9mVHlwZSIsInBvdGVudGlhbEFubm90YXRpb25UeXBlIiwidHlwZU5hbWUiLCJpbmNsdWRlcyIsIiRUeXBlIiwiaXNBbm5vdGF0aW9uT2ZUZXJtIiwicG90ZW50aWFsQW5ub3RhdGlvbiIsInRlcm1OYW1lIiwidGVybSIsImlzQW5ub3RhdGlvblRlcm0iLCJoYXNPd25Qcm9wZXJ0eSIsImlzU2VydmljZU9iamVjdCIsInNlcnZpY2VPYmplY3QiLCJpc0NvbXBsZXhUeXBlIiwiX3R5cGUiLCJpc1R5cGVEZWZpbml0aW9uIiwiaXNFbnRpdHlDb250YWluZXIiLCJpc0VudGl0eVNldCIsImlzU2luZ2xldG9uIiwiaXNFbnRpdHlUeXBlIiwiaXNQcm9wZXJ0eSIsImlzTmF2aWdhdGlvblByb3BlcnR5IiwiaXNTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc0NvbGxlY3Rpb24iLCJpc011bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5IiwiaXNQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb24iLCJleHByZXNzaW9uIiwidHlwZSIsImlzQW5ub3RhdGlvblBhdGgiLCJpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24iLCJpc0FjdGlvbiJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiVHlwZUd1YXJkcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7XG5cdEFubm90YXRpb25UZXJtLFxuXHRDb21wbGV4VHlwZSxcblx0RW50aXR5Q29udGFpbmVyLFxuXHRFbnRpdHlTZXQsXG5cdEVudGl0eVR5cGUsXG5cdE11bHRpcGxlTmF2aWdhdGlvblByb3BlcnR5LFxuXHROYXZpZ2F0aW9uUHJvcGVydHksXG5cdFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbixcblx0UHJvcGVydHksXG5cdFByb3BlcnR5UGF0aCxcblx0U2VydmljZU9iamVjdCxcblx0U2luZ2xlTmF2aWdhdGlvblByb3BlcnR5LFxuXHRTaW5nbGV0b24sXG5cdFR5cGVEZWZpbml0aW9uXG59IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlc1wiO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb24sIEFubm90YXRpb25QYXRoIH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzL0VkbVwiO1xuaW1wb3J0IHR5cGUgQ29udGV4dCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L0NvbnRleHRcIjtcblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVsZmlsbGVkPFQ+KHA6IFByb21pc2VTZXR0bGVkUmVzdWx0PFQ+KTogcCBpcyBQcm9taXNlRnVsZmlsbGVkUmVzdWx0PFQ+IHtcblx0cmV0dXJuIHAuc3RhdHVzID09PSBcImZ1bGZpbGxlZFwiO1xufVxuZXhwb3J0IGZ1bmN0aW9uIGlzUmVqZWN0ZWQ8VD4ocDogUHJvbWlzZVNldHRsZWRSZXN1bHQ8VD4pOiBwIGlzIFByb21pc2VSZWplY3RlZFJlc3VsdCB7XG5cdHJldHVybiBwLnN0YXR1cyA9PT0gXCJyZWplY3RlZFwiO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNDb250ZXh0KHBvdGVudGlhbENvbnRleHQ6IENvbnRleHQgfCB1bmtub3duIHwgdW5kZWZpbmVkKTogcG90ZW50aWFsQ29udGV4dCBpcyBDb250ZXh0IHtcblx0cmV0dXJuIChwb3RlbnRpYWxDb250ZXh0IGFzIENvbnRleHQpPy5pc0E/LjxDb250ZXh0PihcInNhcC51aS5tb2RlbC5Db250ZXh0XCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNGdW5jdGlvbkFycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXk6IEZ1bmN0aW9uW10gfCB1bmtub3duKTogcG90ZW50aWFsRnVuY3Rpb25BcnJheSBpcyBGdW5jdGlvbltdIHtcblx0cmV0dXJuIChcblx0XHRBcnJheS5pc0FycmF5KHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkpICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5sZW5ndGggPiAwICYmXG5cdFx0cG90ZW50aWFsRnVuY3Rpb25BcnJheS5ldmVyeSgoaXRlbSkgPT4gdHlwZW9mIGl0ZW0gPT09IFwiZnVuY3Rpb25cIilcblx0KTtcbn1cblxudHlwZSBBbm5vdGF0aW9uVHlwZSA9IHtcblx0JFR5cGU/OiBzdHJpbmc7XG5cdGZ1bGx5UXVhbGlmaWVkTmFtZT86IHN0cmluZztcbn07XG5leHBvcnQgdHlwZSBfQW5ub3RhdGlvblRlcm0gPSB7XG5cdHRlcm06IHN0cmluZztcblx0cXVhbGlmaWVyPzogc3RyaW5nO1xufTtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZS5cbiAqIEBwYXJhbSBwb3RlbnRpYWxBbm5vdGF0aW9uVHlwZSBUaGUgYW5ub3RhdGlvbiB0byBjaGVja1xuICogQHBhcmFtIHR5cGVOYW1lIFRoZSB0eXBlIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdHlwZVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uT2ZUeXBlPFQgZXh0ZW5kcyBvYmplY3QgJiBBbm5vdGF0aW9uVHlwZT4oXG5cdHBvdGVudGlhbEFubm90YXRpb25UeXBlOiB1bmtub3duLFxuXHR0eXBlTmFtZTogVFtcIiRUeXBlXCJdIHwgVFtcIiRUeXBlXCJdW11cbik6IHBvdGVudGlhbEFubm90YXRpb25UeXBlIGlzIFQge1xuXHRpZiAoQXJyYXkuaXNBcnJheSh0eXBlTmFtZSkpIHtcblx0XHRyZXR1cm4gdHlwZU5hbWUuaW5jbHVkZXMoKHBvdGVudGlhbEFubm90YXRpb25UeXBlIGFzIEFubm90YXRpb25UeXBlKT8uJFR5cGUpO1xuXHR9XG5cdHJldHVybiAocG90ZW50aWFsQW5ub3RhdGlvblR5cGUgYXMgQW5ub3RhdGlvblR5cGUpPy4kVHlwZSA9PT0gdHlwZU5hbWU7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIGFubm90YXRpb24gb2YgdGhlIGdpdmVuIHRlcm0uXG4gKiBAcGFyYW0gcG90ZW50aWFsQW5ub3RhdGlvbiBUaGUgYW5ub3RhdGlvbiB0byBjaGVja1xuICogQHBhcmFtIHRlcm1OYW1lIFRoZSB0ZXJtIHRvIGNoZWNrIGZvclxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4gYW5ub3RhdGlvbiBvZiB0aGUgZ2l2ZW4gdGVybVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uT2ZUZXJtPFQgZXh0ZW5kcyBvYmplY3QgJiBfQW5ub3RhdGlvblRlcm0+KFxuXHRwb3RlbnRpYWxBbm5vdGF0aW9uOiB1bmtub3duLFxuXHR0ZXJtTmFtZTogVFtcInRlcm1cIl1cbik6IHBvdGVudGlhbEFubm90YXRpb24gaXMgQW5ub3RhdGlvblRlcm08VD4ge1xuXHRyZXR1cm4gKHBvdGVudGlhbEFubm90YXRpb24gYXMgX0Fubm90YXRpb25UZXJtKT8udGVybSA9PT0gdGVybU5hbWU7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Fubm90YXRpb25UZXJtKHBvdGVudGlhbEFubm90YXRpb246IHVua25vd24pOiBwb3RlbnRpYWxBbm5vdGF0aW9uIGlzIF9Bbm5vdGF0aW9uVGVybSB7XG5cdHJldHVybiAocG90ZW50aWFsQW5ub3RhdGlvbiBhcyBfQW5ub3RhdGlvblRlcm0pLmhhc093blByb3BlcnR5KFwidGVybVwiKTtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTZXJ2aWNlT2JqZWN0fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2VydmljZU9iamVjdChzZXJ2aWNlT2JqZWN0OiB1bmtub3duIHwgdW5kZWZpbmVkKTogc2VydmljZU9iamVjdCBpcyBTZXJ2aWNlT2JqZWN0IHtcblx0cmV0dXJuIHNlcnZpY2VPYmplY3Q/Lmhhc093blByb3BlcnR5KFwiX3R5cGVcIikgPz8gZmFsc2U7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIENvbXBsZXhUeXBlfS5cbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIENvbXBsZXhUeXBlfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQ29tcGxleFR5cGUoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgQ29tcGxleFR5cGUge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgQ29tcGxleFR5cGUpPy5fdHlwZSA9PT0gXCJDb21wbGV4VHlwZVwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBUeXBlRGVmaW5pdGlvbn0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBUeXBlRGVmaW5pdGlvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1R5cGVEZWZpbml0aW9uKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFR5cGVEZWZpbml0aW9uIHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIFR5cGVEZWZpbml0aW9uKT8uX3R5cGUgPT09IFwiVHlwZURlZmluaXRpb25cIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eUNvbnRhaW5lcn0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiB7QGxpbmsgRW50aXR5Q29udGFpbmVyfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW50aXR5Q29udGFpbmVyKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEVudGl0eUNvbnRhaW5lciB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBFbnRpdHlDb250YWluZXIpPy5fdHlwZSA9PT0gXCJFbnRpdHlDb250YWluZXJcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eVNldH0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiB7QGxpbmsgRW50aXR5U2V0fS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzRW50aXR5U2V0KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEVudGl0eVNldCB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBFbnRpdHlTZXQpPy5fdHlwZSA9PT0gXCJFbnRpdHlTZXRcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2luZ2xldG9ufS5cbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZXRvbn1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzU2luZ2xldG9uKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFNpbmdsZXRvbiB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBTaW5nbGV0b24pPy5fdHlwZSA9PT0gXCJTaW5nbGV0b25cIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eVR5cGV9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eVR5cGV9XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eVR5cGUoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgRW50aXR5VHlwZSB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBFbnRpdHlUeXBlKT8uX3R5cGUgPT09IFwiRW50aXR5VHlwZVwiO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQcm9wZXJ0eX0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBQcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5KHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIFByb3BlcnR5IHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIFByb3BlcnR5KT8uX3R5cGUgPT09IFwiUHJvcGVydHlcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTmF2aWdhdGlvblByb3BlcnR5fS5cbiAqXG4gKiBIaW50OiBUaGVyZSBhcmUgYWxzbyB0aGUgbW9yZSBzcGVjaWZpYyBmdW5jdGlvbnMge0BsaW5rIGlzU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5fSBhbmQge0BsaW5rIGlzTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LiBUaGVzZSBjYW4gYmVcbiAqIHVzZWQgdG8gY2hlY2sgZm9yIHRvLW9uZSBhbmQgdG8tbWFueSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIE5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgTmF2aWdhdGlvblByb3BlcnR5KT8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHkoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5IHtcblx0cmV0dXJuIGlzTmF2aWdhdGlvblByb3BlcnR5KHNlcnZpY2VPYmplY3QpICYmICFzZXJ2aWNlT2JqZWN0LmlzQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdHJldHVybiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0KSAmJiBzZXJ2aWNlT2JqZWN0LmlzQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUGF0aEFubm90YXRpb25FeHByZXNzaW9ufS5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+KT8udHlwZSA9PT0gXCJQYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIEFubm90YXRpb25QYXRoRXhwcmVzc2lvbn0uXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb259LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uUGF0aDxUPihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBBbm5vdGF0aW9uUGF0aDxUPiB7XG5cdHJldHVybiAoZXhwcmVzc2lvbiBhcyBBbm5vdGF0aW9uUGF0aDxUPik/LnR5cGUgPT09IFwiQW5ub3RhdGlvblBhdGhcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHlQYXRofS5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5UGF0aH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24oZXhwcmVzc2lvbjogdW5rbm93bik6IGV4cHJlc3Npb24gaXMgUHJvcGVydHlQYXRoIHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIFByb3BlcnR5UGF0aCk/LnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBBY3Rpb259LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEFjdGlvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGlvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBBY3Rpb24ge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgQWN0aW9uKT8uX3R5cGUgPT09IFwiQWN0aW9uXCI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBbUJPLFNBQVNBLFdBQVdBLENBQUlDLENBQTBCLEVBQWtDO0lBQzFGLE9BQU9BLENBQUMsQ0FBQ0MsTUFBTSxLQUFLLFdBQVc7RUFDaEM7RUFBQ0MsUUFBQSxDQUFBSCxXQUFBLEdBQUFBLFdBQUE7RUFDTSxTQUFTSSxVQUFVQSxDQUFJSCxDQUEwQixFQUE4QjtJQUNyRixPQUFPQSxDQUFDLENBQUNDLE1BQU0sS0FBSyxVQUFVO0VBQy9CO0VBQUNDLFFBQUEsQ0FBQUMsVUFBQSxHQUFBQSxVQUFBO0VBRU0sU0FBU0MsU0FBU0EsQ0FBQ0MsZ0JBQStDLEVBQStCO0lBQ3ZHLE9BQVFBLGdCQUFnQixFQUFjQyxHQUFHLEdBQVksc0JBQXNCLENBQUM7RUFDN0U7RUFBQ0osUUFBQSxDQUFBRSxTQUFBLEdBQUFBLFNBQUE7RUFFTSxTQUFTRyxlQUFlQSxDQUFDQyxzQkFBNEMsRUFBd0M7SUFDbkgsT0FDQ0MsS0FBSyxDQUFDQyxPQUFPLENBQUNGLHNCQUFzQixDQUFDLElBQ3JDQSxzQkFBc0IsQ0FBQ0csTUFBTSxHQUFHLENBQUMsSUFDakNILHNCQUFzQixDQUFDSSxLQUFLLENBQUVDLElBQUksSUFBSyxPQUFPQSxJQUFJLEtBQUssVUFBVSxDQUFDO0VBRXBFO0VBQUNYLFFBQUEsQ0FBQUssZUFBQSxHQUFBQSxlQUFBO0VBV0Q7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBQ08sU0FBU08sa0JBQWtCQSxDQUNqQ0MsdUJBQWdDLEVBQ2hDQyxRQUFtQyxFQUNKO0lBQy9CLElBQUlQLEtBQUssQ0FBQ0MsT0FBTyxDQUFDTSxRQUFRLENBQUMsRUFBRTtNQUM1QixPQUFPQSxRQUFRLENBQUNDLFFBQVEsQ0FBRUYsdUJBQXVCLEVBQXFCRyxLQUFLLENBQUM7SUFDN0U7SUFDQSxPQUFRSCx1QkFBdUIsRUFBcUJHLEtBQUssS0FBS0YsUUFBUTtFQUN2RTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFMQWQsUUFBQSxDQUFBWSxrQkFBQSxHQUFBQSxrQkFBQTtFQU1PLFNBQVNLLGtCQUFrQkEsQ0FDakNDLG1CQUE0QixFQUM1QkMsUUFBbUIsRUFDd0I7SUFDM0MsT0FBUUQsbUJBQW1CLEVBQXNCRSxJQUFJLEtBQUtELFFBQVE7RUFDbkU7RUFBQ25CLFFBQUEsQ0FBQWlCLGtCQUFBLEdBQUFBLGtCQUFBO0VBRU0sU0FBU0ksZ0JBQWdCQSxDQUFDSCxtQkFBNEIsRUFBMEM7SUFDdEcsT0FBUUEsbUJBQW1CLENBQXFCSSxjQUFjLENBQUMsTUFBTSxDQUFDO0VBQ3ZFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQXRCLFFBQUEsQ0FBQXFCLGdCQUFBLEdBQUFBLGdCQUFBO0VBS08sU0FBU0UsZUFBZUEsQ0FBQ0MsYUFBa0MsRUFBa0M7SUFDbkcsT0FBT0EsYUFBYSxFQUFFRixjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSztFQUN2RDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkF0QixRQUFBLENBQUF1QixlQUFBLEdBQUFBLGVBQUE7RUFLTyxTQUFTRSxhQUFhQSxDQUFDRCxhQUFzQixFQUFnQztJQUNuRixPQUFRQSxhQUFhLEVBQWtCRSxLQUFLLEtBQUssYUFBYTtFQUMvRDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkExQixRQUFBLENBQUF5QixhQUFBLEdBQUFBLGFBQUE7RUFLTyxTQUFTRSxnQkFBZ0JBLENBQUNILGFBQXNCLEVBQW1DO0lBQ3pGLE9BQVFBLGFBQWEsRUFBcUJFLEtBQUssS0FBSyxnQkFBZ0I7RUFDckU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBMUIsUUFBQSxDQUFBMkIsZ0JBQUEsR0FBQUEsZ0JBQUE7RUFLTyxTQUFTQyxpQkFBaUJBLENBQUNKLGFBQXNCLEVBQW9DO0lBQzNGLE9BQVFBLGFBQWEsRUFBc0JFLEtBQUssS0FBSyxpQkFBaUI7RUFDdkU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBMUIsUUFBQSxDQUFBNEIsaUJBQUEsR0FBQUEsaUJBQUE7RUFLTyxTQUFTQyxXQUFXQSxDQUFDTCxhQUFzQixFQUE4QjtJQUMvRSxPQUFRQSxhQUFhLEVBQWdCRSxLQUFLLEtBQUssV0FBVztFQUMzRDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkExQixRQUFBLENBQUE2QixXQUFBLEdBQUFBLFdBQUE7RUFLTyxTQUFTQyxXQUFXQSxDQUFDTixhQUFzQixFQUE4QjtJQUMvRSxPQUFRQSxhQUFhLEVBQWdCRSxLQUFLLEtBQUssV0FBVztFQUMzRDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkExQixRQUFBLENBQUE4QixXQUFBLEdBQUFBLFdBQUE7RUFLTyxTQUFTQyxZQUFZQSxDQUFDUCxhQUFzQixFQUErQjtJQUNqRixPQUFRQSxhQUFhLEVBQWlCRSxLQUFLLEtBQUssWUFBWTtFQUM3RDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkExQixRQUFBLENBQUErQixZQUFBLEdBQUFBLFlBQUE7RUFLTyxTQUFTQyxVQUFVQSxDQUFDUixhQUFzQixFQUE2QjtJQUM3RSxPQUFRQSxhQUFhLEVBQWVFLEtBQUssS0FBSyxVQUFVO0VBQ3pEOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFQQTFCLFFBQUEsQ0FBQWdDLFVBQUEsR0FBQUEsVUFBQTtFQVFPLFNBQVNDLG9CQUFvQkEsQ0FBQ1QsYUFBc0IsRUFBdUM7SUFDakcsT0FBUUEsYUFBYSxFQUF5QkUsS0FBSyxLQUFLLG9CQUFvQjtFQUM3RTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkExQixRQUFBLENBQUFpQyxvQkFBQSxHQUFBQSxvQkFBQTtFQUtPLFNBQVNDLDBCQUEwQkEsQ0FBQ1YsYUFBc0IsRUFBNkM7SUFDN0csT0FBT1Msb0JBQW9CLENBQUNULGFBQWEsQ0FBQyxJQUFJLENBQUNBLGFBQWEsQ0FBQ1csWUFBWTtFQUMxRTs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkFuQyxRQUFBLENBQUFrQywwQkFBQSxHQUFBQSwwQkFBQTtFQUtPLFNBQVNFLDRCQUE0QkEsQ0FBQ1osYUFBc0IsRUFBK0M7SUFDakgsT0FBT1Msb0JBQW9CLENBQUNULGFBQWEsQ0FBQyxJQUFJQSxhQUFhLENBQUNXLFlBQVk7RUFDekU7O0VBRUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBbkMsUUFBQSxDQUFBb0MsNEJBQUEsR0FBQUEsNEJBQUE7RUFLTyxTQUFTQywwQkFBMEJBLENBQUlDLFVBQW1CLEVBQTZDO0lBQzdHLE9BQVFBLFVBQVUsRUFBa0NDLElBQUksS0FBSyxNQUFNO0VBQ3BFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQXZDLFFBQUEsQ0FBQXFDLDBCQUFBLEdBQUFBLDBCQUFBO0VBS08sU0FBU0csZ0JBQWdCQSxDQUFJRixVQUFtQixFQUFtQztJQUN6RixPQUFRQSxVQUFVLEVBQXdCQyxJQUFJLEtBQUssZ0JBQWdCO0VBQ3BFOztFQUVBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQXZDLFFBQUEsQ0FBQXdDLGdCQUFBLEdBQUFBLGdCQUFBO0VBS08sU0FBU0Msd0JBQXdCQSxDQUFDSCxVQUFtQixFQUE4QjtJQUN6RixPQUFRQSxVQUFVLEVBQW1CQyxJQUFJLEtBQUssY0FBYztFQUM3RDs7RUFFQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkF2QyxRQUFBLENBQUF5Qyx3QkFBQSxHQUFBQSx3QkFBQTtFQUtPLFNBQVNDLFFBQVFBLENBQUNsQixhQUFzQixFQUEyQjtJQUN6RSxPQUFRQSxhQUFhLEVBQWFFLEtBQUssS0FBSyxRQUFRO0VBQ3JEO0VBQUMxQixRQUFBLENBQUEwQyxRQUFBLEdBQUFBLFFBQUE7RUFBQSxPQUFBMUMsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJpc0Z1bGZpbGxlZCIsInAiLCJzdGF0dXMiLCJfZXhwb3J0cyIsImlzUmVqZWN0ZWQiLCJpc0NvbnRleHQiLCJwb3RlbnRpYWxDb250ZXh0IiwiaXNBIiwiaXNGdW5jdGlvbkFycmF5IiwicG90ZW50aWFsRnVuY3Rpb25BcnJheSIsIkFycmF5IiwiaXNBcnJheSIsImxlbmd0aCIsImV2ZXJ5IiwiaXRlbSIsImlzQW5ub3RhdGlvbk9mVHlwZSIsInBvdGVudGlhbEFubm90YXRpb25UeXBlIiwidHlwZU5hbWUiLCJpbmNsdWRlcyIsIiRUeXBlIiwiaXNBbm5vdGF0aW9uT2ZUZXJtIiwicG90ZW50aWFsQW5ub3RhdGlvbiIsInRlcm1OYW1lIiwidGVybSIsImlzQW5ub3RhdGlvblRlcm0iLCJoYXNPd25Qcm9wZXJ0eSIsImlzU2VydmljZU9iamVjdCIsInNlcnZpY2VPYmplY3QiLCJpc0NvbXBsZXhUeXBlIiwiX3R5cGUiLCJpc1R5cGVEZWZpbml0aW9uIiwiaXNFbnRpdHlDb250YWluZXIiLCJpc0VudGl0eVNldCIsImlzU2luZ2xldG9uIiwiaXNFbnRpdHlUeXBlIiwiaXNQcm9wZXJ0eSIsImlzQWN0aW9uUGFyYW1ldGVyIiwiaXNOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc1NpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eSIsImlzQ29sbGVjdGlvbiIsImlzTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHkiLCJpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbiIsImV4cHJlc3Npb24iLCJ0eXBlIiwiaXNBbm5vdGF0aW9uUGF0aCIsImlzUHJvcGVydHlQYXRoRXhwcmVzc2lvbiIsImlzQWN0aW9uIl0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJUeXBlR3VhcmRzLnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHtcblx0QW5ub3RhdGlvblRlcm0sXG5cdENvbXBsZXhUeXBlLFxuXHRFbnRpdHlDb250YWluZXIsXG5cdEVudGl0eVNldCxcblx0RW50aXR5VHlwZSxcblx0TXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHksXG5cdE5hdmlnYXRpb25Qcm9wZXJ0eSxcblx0UGF0aEFubm90YXRpb25FeHByZXNzaW9uLFxuXHRQcm9wZXJ0eSxcblx0UHJvcGVydHlQYXRoLFxuXHRTZXJ2aWNlT2JqZWN0LFxuXHRTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHksXG5cdFNpbmdsZXRvbixcblx0VHlwZURlZmluaXRpb25cbn0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgdHlwZSB7IEFjdGlvbiwgQWN0aW9uUGFyYW1ldGVyLCBBbm5vdGF0aW9uUGF0aCB9IGZyb20gXCJAc2FwLXV4L3ZvY2FidWxhcmllcy10eXBlcy9FZG1cIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Db250ZXh0XCI7XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bGZpbGxlZDxUPihwOiBQcm9taXNlU2V0dGxlZFJlc3VsdDxUPik6IHAgaXMgUHJvbWlzZUZ1bGZpbGxlZFJlc3VsdDxUPiB7XG5cdHJldHVybiBwLnN0YXR1cyA9PT0gXCJmdWxmaWxsZWRcIjtcbn1cbmV4cG9ydCBmdW5jdGlvbiBpc1JlamVjdGVkPFQ+KHA6IFByb21pc2VTZXR0bGVkUmVzdWx0PFQ+KTogcCBpcyBQcm9taXNlUmVqZWN0ZWRSZXN1bHQge1xuXHRyZXR1cm4gcC5zdGF0dXMgPT09IFwicmVqZWN0ZWRcIjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzQ29udGV4dChwb3RlbnRpYWxDb250ZXh0OiBDb250ZXh0IHwgdW5rbm93biB8IHVuZGVmaW5lZCk6IHBvdGVudGlhbENvbnRleHQgaXMgQ29udGV4dCB7XG5cdHJldHVybiAocG90ZW50aWFsQ29udGV4dCBhcyBDb250ZXh0KT8uaXNBPy48Q29udGV4dD4oXCJzYXAudWkubW9kZWwuQ29udGV4dFwiKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRnVuY3Rpb25BcnJheShwb3RlbnRpYWxGdW5jdGlvbkFycmF5OiBGdW5jdGlvbltdIHwgdW5rbm93bik6IHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkgaXMgRnVuY3Rpb25bXSB7XG5cdHJldHVybiAoXG5cdFx0QXJyYXkuaXNBcnJheShwb3RlbnRpYWxGdW5jdGlvbkFycmF5KSAmJlxuXHRcdHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkubGVuZ3RoID4gMCAmJlxuXHRcdHBvdGVudGlhbEZ1bmN0aW9uQXJyYXkuZXZlcnkoKGl0ZW0pID0+IHR5cGVvZiBpdGVtID09PSBcImZ1bmN0aW9uXCIpXG5cdCk7XG59XG5cbnR5cGUgQW5ub3RhdGlvblR5cGUgPSB7XG5cdCRUeXBlPzogc3RyaW5nO1xuXHRmdWxseVF1YWxpZmllZE5hbWU/OiBzdHJpbmc7XG59O1xuZXhwb3J0IHR5cGUgX0Fubm90YXRpb25UZXJtID0ge1xuXHR0ZXJtOiBzdHJpbmc7XG5cdHF1YWxpZmllcj86IHN0cmluZztcbn07XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIGFubm90YXRpb24gb2YgdGhlIGdpdmVuIHR5cGUuXG4gKiBAcGFyYW0gcG90ZW50aWFsQW5ub3RhdGlvblR5cGUgVGhlIGFubm90YXRpb24gdG8gY2hlY2tcbiAqIEBwYXJhbSB0eXBlTmFtZSBUaGUgdHlwZSB0byBjaGVjayBmb3JcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIGFubm90YXRpb24gb2YgdGhlIGdpdmVuIHR5cGVcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQW5ub3RhdGlvbk9mVHlwZTxUIGV4dGVuZHMgb2JqZWN0ICYgQW5ub3RhdGlvblR5cGU+KFxuXHRwb3RlbnRpYWxBbm5vdGF0aW9uVHlwZTogdW5rbm93bixcblx0dHlwZU5hbWU6IFRbXCIkVHlwZVwiXSB8IFRbXCIkVHlwZVwiXVtdXG4pOiBwb3RlbnRpYWxBbm5vdGF0aW9uVHlwZSBpcyBUIHtcblx0aWYgKEFycmF5LmlzQXJyYXkodHlwZU5hbWUpKSB7XG5cdFx0cmV0dXJuIHR5cGVOYW1lLmluY2x1ZGVzKChwb3RlbnRpYWxBbm5vdGF0aW9uVHlwZSBhcyBBbm5vdGF0aW9uVHlwZSk/LiRUeXBlKTtcblx0fVxuXHRyZXR1cm4gKHBvdGVudGlhbEFubm90YXRpb25UeXBlIGFzIEFubm90YXRpb25UeXBlKT8uJFR5cGUgPT09IHR5cGVOYW1lO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhbiBhbm5vdGF0aW9uIG9mIHRoZSBnaXZlbiB0ZXJtLlxuICogQHBhcmFtIHBvdGVudGlhbEFubm90YXRpb24gVGhlIGFubm90YXRpb24gdG8gY2hlY2tcbiAqIEBwYXJhbSB0ZXJtTmFtZSBUaGUgdGVybSB0byBjaGVjayBmb3JcbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIGFubm90YXRpb24gb2YgdGhlIGdpdmVuIHRlcm1cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQW5ub3RhdGlvbk9mVGVybTxUIGV4dGVuZHMgb2JqZWN0ICYgX0Fubm90YXRpb25UZXJtPihcblx0cG90ZW50aWFsQW5ub3RhdGlvbjogdW5rbm93bixcblx0dGVybU5hbWU6IFRbXCJ0ZXJtXCJdXG4pOiBwb3RlbnRpYWxBbm5vdGF0aW9uIGlzIEFubm90YXRpb25UZXJtPFQ+IHtcblx0cmV0dXJuIChwb3RlbnRpYWxBbm5vdGF0aW9uIGFzIF9Bbm5vdGF0aW9uVGVybSk/LnRlcm0gPT09IHRlcm1OYW1lO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uVGVybShwb3RlbnRpYWxBbm5vdGF0aW9uOiB1bmtub3duKTogcG90ZW50aWFsQW5ub3RhdGlvbiBpcyBfQW5ub3RhdGlvblRlcm0ge1xuXHRyZXR1cm4gKHBvdGVudGlhbEFubm90YXRpb24gYXMgX0Fubm90YXRpb25UZXJtKS5oYXNPd25Qcm9wZXJ0eShcInRlcm1cIik7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNlcnZpY2VPYmplY3R9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgU2VydmljZU9iamVjdH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NlcnZpY2VPYmplY3Qoc2VydmljZU9iamVjdDogdW5rbm93biB8IHVuZGVmaW5lZCk6IHNlcnZpY2VPYmplY3QgaXMgU2VydmljZU9iamVjdCB7XG5cdHJldHVybiBzZXJ2aWNlT2JqZWN0Py5oYXNPd25Qcm9wZXJ0eShcIl90eXBlXCIpID8/IGZhbHNlO1xufVxuXG4vKipcbiAqIENoZWNrcyB3aGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBDb21wbGV4VHlwZX0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBDb21wbGV4VHlwZX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0NvbXBsZXhUeXBlKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIENvbXBsZXhUeXBlIHtcblx0cmV0dXJuIChzZXJ2aWNlT2JqZWN0IGFzIENvbXBsZXhUeXBlKT8uX3R5cGUgPT09IFwiQ29tcGxleFR5cGVcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgVHlwZURlZmluaXRpb259LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgVHlwZURlZmluaXRpb259LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNUeXBlRGVmaW5pdGlvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBUeXBlRGVmaW5pdGlvbiB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBUeXBlRGVmaW5pdGlvbik/Ll90eXBlID09PSBcIlR5cGVEZWZpbml0aW9uXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlDb250YWluZXJ9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eUNvbnRhaW5lcn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eUNvbnRhaW5lcihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBFbnRpdHlDb250YWluZXIge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgRW50aXR5Q29udGFpbmVyKT8uX3R5cGUgPT09IFwiRW50aXR5Q29udGFpbmVyXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlTZXR9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEVudGl0eVNldH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0VudGl0eVNldChzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBFbnRpdHlTZXQge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgRW50aXR5U2V0KT8uX3R5cGUgPT09IFwiRW50aXR5U2V0XCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZXRvbn0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGV0b259XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1NpbmdsZXRvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBTaW5nbGV0b24ge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgU2luZ2xldG9uKT8uX3R5cGUgPT09IFwiU2luZ2xldG9uXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlUeXBlfS5cbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBFbnRpdHlUeXBlfVxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNFbnRpdHlUeXBlKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEVudGl0eVR5cGUge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgRW50aXR5VHlwZSk/Ll90eXBlID09PSBcIkVudGl0eVR5cGVcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHl9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNQcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBQcm9wZXJ0eSB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBQcm9wZXJ0eSk/Ll90eXBlID09PSBcIlByb3BlcnR5XCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBBY3Rpb25QYXJhbWV0ZXJ9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgQWN0aW9uUGFyYW1ldGVyfS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzQWN0aW9uUGFyYW1ldGVyKHNlcnZpY2VPYmplY3Q6IHVua25vd24pOiBzZXJ2aWNlT2JqZWN0IGlzIEFjdGlvblBhcmFtZXRlciB7XG5cdHJldHVybiAoc2VydmljZU9iamVjdCBhcyBBY3Rpb25QYXJhbWV0ZXIpPy5fdHlwZSA9PT0gXCJBY3Rpb25QYXJhbWV0ZXJcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTmF2aWdhdGlvblByb3BlcnR5fS5cbiAqXG4gKiBIaW50OiBUaGVyZSBhcmUgYWxzbyB0aGUgbW9yZSBzcGVjaWZpYyBmdW5jdGlvbnMge0BsaW5rIGlzU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5fSBhbmQge0BsaW5rIGlzTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LiBUaGVzZSBjYW4gYmVcbiAqIHVzZWQgdG8gY2hlY2sgZm9yIHRvLW9uZSBhbmQgdG8tbWFueSBuYXZpZ2F0aW9uIHByb3BlcnRpZXMsIHJlc3BlY3RpdmVseS5cbiAqIEBwYXJhbSBzZXJ2aWNlT2JqZWN0IFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIE5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBOYXZpZ2F0aW9uUHJvcGVydHkge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgTmF2aWdhdGlvblByb3BlcnR5KT8uX3R5cGUgPT09IFwiTmF2aWdhdGlvblByb3BlcnR5XCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFNpbmdsZU5hdmlnYXRpb25Qcm9wZXJ0eX0uXG4gKiBAcGFyYW0gc2VydmljZU9iamVjdCBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNTaW5nbGVOYXZpZ2F0aW9uUHJvcGVydHkoc2VydmljZU9iamVjdDogdW5rbm93bik6IHNlcnZpY2VPYmplY3QgaXMgU2luZ2xlTmF2aWdhdGlvblByb3BlcnR5IHtcblx0cmV0dXJuIGlzTmF2aWdhdGlvblByb3BlcnR5KHNlcnZpY2VPYmplY3QpICYmICFzZXJ2aWNlT2JqZWN0LmlzQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgTXVsdGlwbGVOYXZpZ2F0aW9uUHJvcGVydHl9LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBNdWx0aXBsZU5hdmlnYXRpb25Qcm9wZXJ0eSB7XG5cdHJldHVybiBpc05hdmlnYXRpb25Qcm9wZXJ0eShzZXJ2aWNlT2JqZWN0KSAmJiBzZXJ2aWNlT2JqZWN0LmlzQ29sbGVjdGlvbjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUGF0aEFubm90YXRpb25FeHByZXNzaW9ufS5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFBhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1BhdGhBbm5vdGF0aW9uRXhwcmVzc2lvbjxUPihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBQYXRoQW5ub3RhdGlvbkV4cHJlc3Npb248VD4ge1xuXHRyZXR1cm4gKGV4cHJlc3Npb24gYXMgUGF0aEFubm90YXRpb25FeHByZXNzaW9uPFQ+KT8udHlwZSA9PT0gXCJQYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIEFubm90YXRpb25QYXRoRXhwcmVzc2lvbn0uXG4gKiBAcGFyYW0gZXhwcmVzc2lvbiBUaGUgb2JqZWN0IHRvIGJlIGNoZWNrZWQuXG4gKiBAcmV0dXJucyBXaGV0aGVyIHRoZSBhcmd1bWVudCBpcyBhIHtAbGluayBBbm5vdGF0aW9uUGF0aEV4cHJlc3Npb259LlxuICovXG5leHBvcnQgZnVuY3Rpb24gaXNBbm5vdGF0aW9uUGF0aDxUPihleHByZXNzaW9uOiB1bmtub3duKTogZXhwcmVzc2lvbiBpcyBBbm5vdGF0aW9uUGF0aDxUPiB7XG5cdHJldHVybiAoZXhwcmVzc2lvbiBhcyBBbm5vdGF0aW9uUGF0aDxUPik/LnR5cGUgPT09IFwiQW5ub3RhdGlvblBhdGhcIjtcbn1cblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciB0aGUgYXJndW1lbnQgaXMgYSB7QGxpbmsgUHJvcGVydHlQYXRofS5cbiAqIEBwYXJhbSBleHByZXNzaW9uIFRoZSBvYmplY3QgdG8gYmUgY2hlY2tlZC5cbiAqIEByZXR1cm5zIFdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGEge0BsaW5rIFByb3BlcnR5UGF0aH0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc1Byb3BlcnR5UGF0aEV4cHJlc3Npb24oZXhwcmVzc2lvbjogdW5rbm93bik6IGV4cHJlc3Npb24gaXMgUHJvcGVydHlQYXRoIHtcblx0cmV0dXJuIChleHByZXNzaW9uIGFzIFByb3BlcnR5UGF0aCk/LnR5cGUgPT09IFwiUHJvcGVydHlQYXRoXCI7XG59XG5cbi8qKlxuICogQ2hlY2tzIHdoZXRoZXIgdGhlIGFyZ3VtZW50IGlzIGFuIHtAbGluayBBY3Rpb259LlxuICogQHBhcmFtIHNlcnZpY2VPYmplY3QgVGhlIG9iamVjdCB0byBiZSBjaGVja2VkLlxuICogQHJldHVybnMgV2hldGhlciB0aGUgYXJndW1lbnQgaXMgYW4ge0BsaW5rIEFjdGlvbn0uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpc0FjdGlvbihzZXJ2aWNlT2JqZWN0OiB1bmtub3duKTogc2VydmljZU9iamVjdCBpcyBBY3Rpb24ge1xuXHRyZXR1cm4gKHNlcnZpY2VPYmplY3QgYXMgQWN0aW9uKT8uX3R5cGUgPT09IFwiQWN0aW9uXCI7XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7O0VBbUJPLFNBQVNBLFdBQVdBLENBQUlDLENBQTBCLEVBQWtDO0lBQzFGLE9BQU9BLENBQUMsQ0FBQ0MsTUFBTSxLQUFLLFdBQVc7RUFDaEM7RUFBQ0MsUUFBQSxDQUFBSCxXQUFBLEdBQUFBLFdBQUE7RUFDTSxTQUFTSSxVQUFVQSxDQUFJSCxDQUEwQixFQUE4QjtJQUNyRixPQUFPQSxDQUFDLENBQUNDLE1BQU0sS0FBSyxVQUFVO0VBQy9CO0VBQUNDLFFBQUEsQ0FBQUMsVUFBQSxHQUFBQSxVQUFBO0VBRU0sU0FBU0MsU0FBU0EsQ0FBQ0MsZ0JBQStDLEVBQStCO0lBQ3ZHLE9BQVFBLGdCQUFnQixFQUFjQyxHQUFHLEdBQVksc0JBQXNCLENBQUM7RUFDN0U7RUFBQ0osUUFBQSxDQUFBRSxTQUFBLEdBQUFBLFNBQUE7RUFFTSxTQUFTRyxlQUFlQSxDQUFDQyxzQkFBNEMsRUFBd0M7SUFDbkgsT0FDQ0Ms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
@@ -14,7 +14,7 @@ import type {
14
14
  Singleton,
15
15
  TypeDefinition
16
16
  } from "@sap-ux/vocabularies-types";
17
- import type { Action, AnnotationPath } from "@sap-ux/vocabularies-types/Edm";
17
+ import type { Action, ActionParameter, AnnotationPath } from "@sap-ux/vocabularies-types/Edm";
18
18
  import type Context from "sap/ui/model/odata/v4/Context";
19
19
 
20
20
  export function isFulfilled<T>(p: PromiseSettledResult<T>): p is PromiseFulfilledResult<T> {
@@ -150,6 +150,15 @@ export function isProperty(serviceObject: unknown): serviceObject is Property {
150
150
  return (serviceObject as Property)?._type === "Property";
151
151
  }
152
152
 
153
+ /**
154
+ * Checks whether the argument is an {@link ActionParameter}.
155
+ * @param serviceObject The object to be checked.
156
+ * @returns Whether the argument is a {@link ActionParameter}.
157
+ */
158
+ export function isActionParameter(serviceObject: unknown): serviceObject is ActionParameter {
159
+ return (serviceObject as ActionParameter)?._type === "ActionParameter";
160
+ }
161
+
153
162
  /**
154
163
  * Checks whether the argument is a {@link NavigationProperty}.
155
164
  *
@@ -22,8 +22,8 @@ sap.ui.define(["sap/ui/core/ws/SapPcpWebSocket"], function (SapPcpWebSocket) {
22
22
  return ChannelType;
23
23
  }({});
24
24
  _exports.ChannelType = ChannelType;
25
- function createWebSocket(channelType, model, additionalParameters) {
26
- const hostLocation = window.location;
25
+ function createWebSocket(channelType, appComponent, additionalParameters) {
26
+ const model = appComponent.getModel();
27
27
  const serviceUrl = model.getServiceUrl();
28
28
  const socketBaseURL = getWebSocketBaseUrl(model);
29
29
  if (!socketBaseURL) {
@@ -35,12 +35,11 @@ sap.ui.define(["sap/ui/core/ws/SapPcpWebSocket"], function (SapPcpWebSocket) {
35
35
  // Support useBackendUrl for local testing
36
36
  const useBackendUrl = new URLSearchParams(window.location.search).get("useBackendUrl");
37
37
  if (useBackendUrl) {
38
- socketURI = useBackendUrl.replace("https", "wss");
38
+ socketURI = `${useBackendUrl.replace("https", "wss")}${(socketBaseURL.startsWith("/") ? "" : "/") + socketBaseURL}`;
39
39
  } else {
40
- socketURI = hostLocation.protocol === "https:" ? "wss:" : "ws:";
41
- socketURI += `//${hostLocation.host}`;
40
+ socketURI = appComponent.getManifestObject().resolveUri(socketBaseURL);
42
41
  }
43
- socketURI += `${(socketBaseURL.startsWith("/") ? "" : "/") + socketBaseURL}?${channelUrl}relatedService=${serviceUrl}`;
42
+ socketURI += `?${channelUrl}relatedService=${serviceUrl}`;
44
43
  if (additionalParameters) {
45
44
  for (const p in additionalParameters) {
46
45
  socketURI += `&${p}=${encodeURI(additionalParameters[p])}`;
@@ -70,4 +69,4 @@ sap.ui.define(["sap/ui/core/ws/SapPcpWebSocket"], function (SapPcpWebSocket) {
70
69
  _exports.getWebSocketChannelUrl = getWebSocketChannelUrl;
71
70
  return _exports;
72
71
  }, false);
73
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXRUJTT0NLRVRfU1RBVFVTIiwiX2V4cG9ydHMiLCJDaGFubmVsVHlwZSIsImNyZWF0ZVdlYlNvY2tldCIsImNoYW5uZWxUeXBlIiwibW9kZWwiLCJhZGRpdGlvbmFsUGFyYW1ldGVycyIsImhvc3RMb2NhdGlvbiIsIndpbmRvdyIsImxvY2F0aW9uIiwic2VydmljZVVybCIsImdldFNlcnZpY2VVcmwiLCJzb2NrZXRCYXNlVVJMIiwiZ2V0V2ViU29ja2V0QmFzZVVybCIsIkVycm9yIiwiY2hhbm5lbFVybCIsImdldFdlYlNvY2tldENoYW5uZWxVcmwiLCJzb2NrZXRVUkkiLCJ1c2VCYWNrZW5kVXJsIiwiVVJMU2VhcmNoUGFyYW1zIiwic2VhcmNoIiwiZ2V0IiwicmVwbGFjZSIsInByb3RvY29sIiwiaG9zdCIsInN0YXJ0c1dpdGgiLCJwIiwiZW5jb2RlVVJJIiwiU2FwUGNwV2ViU29ja2V0IiwiU1VQUE9SVEVEX1BST1RPQ09MUyIsInYxMCIsImdldE1ldGFNb2RlbCIsImdldE9iamVjdCIsIkNvbGxhYm9yYXRpb25EcmFmdCIsIlNpZGVFZmZlY3RzRXZlbnRzIiwiY2hhbm5lbE5hbWUiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIldlYlNvY2tldC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgU2FwUGNwV2ViU29ja2V0LCB7IFNVUFBPUlRFRF9QUk9UT0NPTFMgfSBmcm9tIFwic2FwL3VpL2NvcmUvd3MvU2FwUGNwV2ViU29ja2V0XCI7XG5pbXBvcnQgdHlwZSBPRGF0YU1vZGVsIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFNb2RlbFwiO1xuXG5leHBvcnQgZW51bSBXRUJTT0NLRVRfU1RBVFVTIHtcblx0Q0xPU0VEID0gMCxcblx0Q0xPU0lORyA9IDEsXG5cdENPTk5FQ1RJTkcgPSAyLFxuXHRDT05ORUNURUQgPSAzLFxuXHRFUlJPUiA9IDRcbn1cblxuZXhwb3J0IGVudW0gQ2hhbm5lbFR5cGUge1xuXHRDb2xsYWJvcmF0aW9uRHJhZnQgPSBcIkNvbGxhYm9yYXRpb25EcmFmdFwiLFxuXHRTaWRlRWZmZWN0c0V2ZW50cyA9IFwiU2lkZUVmZmVjdHNFdmVudHNcIlxufVxuXG5leHBvcnQgdHlwZSBXZWJTb2NrZXRQYXJhbWV0ZXIgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViU29ja2V0KGNoYW5uZWxUeXBlOiBDaGFubmVsVHlwZSwgbW9kZWw6IE9EYXRhTW9kZWwsIGFkZGl0aW9uYWxQYXJhbWV0ZXJzPzogV2ViU29ja2V0UGFyYW1ldGVyKTogU2FwUGNwV2ViU29ja2V0IHtcblx0Y29uc3QgaG9zdExvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uO1xuXHRjb25zdCBzZXJ2aWNlVXJsID0gbW9kZWwuZ2V0U2VydmljZVVybCgpO1xuXHRjb25zdCBzb2NrZXRCYXNlVVJMID0gZ2V0V2ViU29ja2V0QmFzZVVybChtb2RlbCk7XG5cdGlmICghc29ja2V0QmFzZVVSTCkge1xuXHRcdHRocm93IEVycm9yKFwiV2ViU29ja2V0IEJhc2UgVVJMIGFubm90YXRpb24gbm90IGZvdW5kXCIpO1xuXHR9XG5cblx0Y29uc3QgY2hhbm5lbFVybCA9IGdldFdlYlNvY2tldENoYW5uZWxVcmwoY2hhbm5lbFR5cGUsIG1vZGVsKTtcblx0bGV0IHNvY2tldFVSSTtcblxuXHQvLyBTdXBwb3J0IHVzZUJhY2tlbmRVcmwgZm9yIGxvY2FsIHRlc3Rpbmdcblx0Y29uc3QgdXNlQmFja2VuZFVybCA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCkuZ2V0KFwidXNlQmFja2VuZFVybFwiKTtcblx0aWYgKHVzZUJhY2tlbmRVcmwpIHtcblx0XHRzb2NrZXRVUkkgPSB1c2VCYWNrZW5kVXJsLnJlcGxhY2UoXCJodHRwc1wiLCBcIndzc1wiKTtcblx0fSBlbHNlIHtcblx0XHRzb2NrZXRVUkkgPSBob3N0TG9jYXRpb24ucHJvdG9jb2wgPT09IFwiaHR0cHM6XCIgPyBcIndzczpcIiA6IFwid3M6XCI7XG5cdFx0c29ja2V0VVJJICs9IGAvLyR7aG9zdExvY2F0aW9uLmhvc3R9YDtcblx0fVxuXG5cdHNvY2tldFVSSSArPSBgJHsoc29ja2V0QmFzZVVSTC5zdGFydHNXaXRoKFwiL1wiKSA/IFwiXCIgOiBcIi9cIikgKyBzb2NrZXRCYXNlVVJMfT8ke2NoYW5uZWxVcmx9cmVsYXRlZFNlcnZpY2U9JHtzZXJ2aWNlVXJsfWA7XG5cblx0aWYgKGFkZGl0aW9uYWxQYXJhbWV0ZXJzKSB7XG5cdFx0Zm9yIChjb25zdCBwIGluIGFkZGl0aW9uYWxQYXJhbWV0ZXJzKSB7XG5cdFx0XHRzb2NrZXRVUkkgKz0gYCYke3B9PSR7ZW5jb2RlVVJJKGFkZGl0aW9uYWxQYXJhbWV0ZXJzW3BdKX1gO1xuXHRcdH1cblx0fVxuXHRyZXR1cm4gbmV3IFNhcFBjcFdlYlNvY2tldChzb2NrZXRVUkksIFtTVVBQT1JURURfUFJPVE9DT0xTLnYxMF0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2ViU29ja2V0QmFzZVVybChtb2RlbDogT0RhdGFNb2RlbCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cdHJldHVybiBtb2RlbC5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoXCIvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5XZWJTb2NrZXRCYXNlVVJMXCIpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0V2ViU29ja2V0Q2hhbm5lbFVybChjaGFubmVsVHlwZTogQ2hhbm5lbFR5cGUsIG1vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0aWYgKCFnZXRXZWJTb2NrZXRCYXNlVXJsKG1vZGVsKSkge1xuXHRcdHJldHVybiBcIlwiO1xuXHR9XG5cblx0c3dpdGNoIChjaGFubmVsVHlwZSkge1xuXHRcdGNhc2UgQ2hhbm5lbFR5cGUuQ29sbGFib3JhdGlvbkRyYWZ0OlxuXHRcdFx0Ly8gY3VycmVudGx5IGNvbGxhYm9yYXRpb24gZHJhZnQgZG9lcyBub3QgbmVlZCBhIGNoYW5uZWwgKG1pZ2h0IGNoYW5nZSBsYXRlcilcblx0XHRcdHJldHVybiBcIlwiO1xuXHRcdGNhc2UgQ2hhbm5lbFR5cGUuU2lkZUVmZmVjdHNFdmVudHM6XG5cdFx0XHQvLyB0aGUgc2VydmljZSBuZWVkIGEgV2ViU29ja2V0Q2hhbm5lbCBhbm5vdGF0ZWQgd2l0aCBhICNzaWRlRWZmZWN0cyBxdWFsaWZpZXJcblx0XHRcdGNvbnN0IGNoYW5uZWxOYW1lID0gbW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0T2JqZWN0KFwiL0Bjb20uc2FwLnZvY2FidWxhcmllcy5Db21tb24udjEuV2ViU29ja2V0Q2hhbm5lbCNzaWRlRWZmZWN0c1wiKTtcblx0XHRcdHJldHVybiBgc2lkZUVmZmVjdHM9JHtjaGFubmVsTmFtZX0mYDtcblx0fVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7TUFHWUEsZ0JBQWdCLDBCQUFoQkEsZ0JBQWdCO0lBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtJQUFoQkEsZ0JBQWdCLENBQWhCQSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixDQUFoQkEsZ0JBQWdCO0lBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtJQUFoQkEsZ0JBQWdCLENBQWhCQSxnQkFBZ0I7SUFBQSxPQUFoQkEsZ0JBQWdCO0VBQUE7RUFBQUMsUUFBQSxDQUFBRCxnQkFBQSxHQUFBQSxnQkFBQTtFQUFBLElBUWhCRSxXQUFXLDBCQUFYQSxXQUFXO0lBQVhBLFdBQVc7SUFBWEEsV0FBVztJQUFBLE9BQVhBLFdBQVc7RUFBQTtFQUFBRCxRQUFBLENBQUFDLFdBQUEsR0FBQUEsV0FBQTtFQU9oQixTQUFTQyxlQUFlQSxDQUFDQyxXQUF3QixFQUFFQyxLQUFpQixFQUFFQyxvQkFBeUMsRUFBbUI7SUFDeEksTUFBTUMsWUFBWSxHQUFHQyxNQUFNLENBQUNDLFFBQVE7SUFDcEMsTUFBTUMsVUFBVSxHQUFHTCxLQUFLLENBQUNNLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLE1BQU1DLGFBQWEsR0FBR0MsbUJBQW1CLENBQUNSLEtBQUssQ0FBQztJQUNoRCxJQUFJLENBQUNPLGFBQWEsRUFBRTtNQUNuQixNQUFNRSxLQUFLLENBQUMseUNBQXlDLENBQUM7SUFDdkQ7SUFFQSxNQUFNQyxVQUFVLEdBQUdDLHNCQUFzQixDQUFDWixXQUFXLEVBQUVDLEtBQUssQ0FBQztJQUM3RCxJQUFJWSxTQUFTOztJQUViO0lBQ0EsTUFBTUMsYUFBYSxHQUFHLElBQUlDLGVBQWUsQ0FBQ1gsTUFBTSxDQUFDQyxRQUFRLENBQUNXLE1BQU0sQ0FBQyxDQUFDQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQ3RGLElBQUlILGFBQWEsRUFBRTtNQUNsQkQsU0FBUyxHQUFHQyxhQUFhLENBQUNJLE9BQU8sQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDO0lBQ2xELENBQUMsTUFBTTtNQUNOTCxTQUFTLEdBQUdWLFlBQVksQ0FBQ2dCLFFBQVEsS0FBSyxRQUFRLEdBQUcsTUFBTSxHQUFHLEtBQUs7TUFDL0ROLFNBQVMsSUFBSSxLQUFLVixZQUFZLENBQUNpQixJQUFJLEVBQUU7SUFDdEM7SUFFQVAsU0FBUyxJQUFJLEdBQUcsQ0FBQ0wsYUFBYSxDQUFDYSxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLEdBQUcsSUFBSWIsYUFBYSxJQUFJRyxVQUFVLGtCQUFrQkwsVUFBVSxFQUFFO0lBRXRILElBQUlKLG9CQUFvQixFQUFFO01BQ3pCLEtBQUssTUFBTW9CLENBQUMsSUFBSXBCLG9CQUFvQixFQUFFO1FBQ3JDVyxTQUFTLElBQUksSUFBSVMsQ0FBQyxJQUFJQyxTQUFTLENBQUNyQixvQkFBb0IsQ0FBQ29CLENBQUMsQ0FBQyxDQUFDLEVBQUU7TUFDM0Q7SUFDRDtJQUNBLE9BQU8sSUFBSUUsZUFBZSxDQUFDWCxTQUFTLEVBQUUsQ0FBQ1ksbUJBQW1CLENBQUNDLEdBQUcsQ0FBQyxDQUFDO0VBQ2pFO0VBQUM3QixRQUFBLENBQUFFLGVBQUEsR0FBQUEsZUFBQTtFQUVNLFNBQVNVLG1CQUFtQkEsQ0FBQ1IsS0FBaUIsRUFBc0I7SUFDMUUsT0FBT0EsS0FBSyxDQUFDMEIsWUFBWSxDQUFDLENBQUMsQ0FBQ0MsU0FBUyxDQUFDLG1EQUFtRCxDQUFDO0VBQzNGO0VBQUMvQixRQUFBLENBQUFZLG1CQUFBLEdBQUFBLG1CQUFBO0VBRU0sU0FBU0csc0JBQXNCQSxDQUFDWixXQUF3QixFQUFFQyxLQUFpQixFQUFzQjtJQUN2RyxJQUFJLENBQUNRLG1CQUFtQixDQUFDUixLQUFLLENBQUMsRUFBRTtNQUNoQyxPQUFPLEVBQUU7SUFDVjtJQUVBLFFBQVFELFdBQVc7TUFDbEIsS0FBS0YsV0FBVyxDQUFDK0Isa0JBQWtCO1FBQ2xDO1FBQ0EsT0FBTyxFQUFFO01BQ1YsS0FBSy9CLFdBQVcsQ0FBQ2dDLGlCQUFpQjtRQUNqQztRQUNBLE1BQU1DLFdBQVcsR0FBRzlCLEtBQUssQ0FBQzBCLFlBQVksQ0FBQyxDQUFDLENBQUNDLFNBQVMsQ0FBQywrREFBK0QsQ0FBQztRQUNuSCxPQUFPLGVBQWVHLFdBQVcsR0FBRztJQUN0QztFQUNEO0VBQUNsQyxRQUFBLENBQUFlLHNCQUFBLEdBQUFBLHNCQUFBO0VBQUEsT0FBQWYsUUFBQTtBQUFBIiwiaWdub3JlTGlzdCI6W119
72
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJXRUJTT0NLRVRfU1RBVFVTIiwiX2V4cG9ydHMiLCJDaGFubmVsVHlwZSIsImNyZWF0ZVdlYlNvY2tldCIsImNoYW5uZWxUeXBlIiwiYXBwQ29tcG9uZW50IiwiYWRkaXRpb25hbFBhcmFtZXRlcnMiLCJtb2RlbCIsImdldE1vZGVsIiwic2VydmljZVVybCIsImdldFNlcnZpY2VVcmwiLCJzb2NrZXRCYXNlVVJMIiwiZ2V0V2ViU29ja2V0QmFzZVVybCIsIkVycm9yIiwiY2hhbm5lbFVybCIsImdldFdlYlNvY2tldENoYW5uZWxVcmwiLCJzb2NrZXRVUkkiLCJ1c2VCYWNrZW5kVXJsIiwiVVJMU2VhcmNoUGFyYW1zIiwid2luZG93IiwibG9jYXRpb24iLCJzZWFyY2giLCJnZXQiLCJyZXBsYWNlIiwic3RhcnRzV2l0aCIsImdldE1hbmlmZXN0T2JqZWN0IiwicmVzb2x2ZVVyaSIsInAiLCJlbmNvZGVVUkkiLCJTYXBQY3BXZWJTb2NrZXQiLCJTVVBQT1JURURfUFJPVE9DT0xTIiwidjEwIiwiZ2V0TWV0YU1vZGVsIiwiZ2V0T2JqZWN0IiwiQ29sbGFib3JhdGlvbkRyYWZ0IiwiU2lkZUVmZmVjdHNFdmVudHMiLCJjaGFubmVsTmFtZSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsiV2ViU29ja2V0LnRzIl0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBTYXBQY3BXZWJTb2NrZXQsIHsgU1VQUE9SVEVEX1BST1RPQ09MUyB9IGZyb20gXCJzYXAvdWkvY29yZS93cy9TYXBQY3BXZWJTb2NrZXRcIjtcbmltcG9ydCB0eXBlIE9EYXRhTW9kZWwgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9PRGF0YU1vZGVsXCI7XG5pbXBvcnQgdHlwZSBBcHBDb21wb25lbnQgZnJvbSBcIi4uL0FwcENvbXBvbmVudFwiO1xuXG5leHBvcnQgZW51bSBXRUJTT0NLRVRfU1RBVFVTIHtcblx0Q0xPU0VEID0gMCxcblx0Q0xPU0lORyA9IDEsXG5cdENPTk5FQ1RJTkcgPSAyLFxuXHRDT05ORUNURUQgPSAzLFxuXHRFUlJPUiA9IDRcbn1cblxuZXhwb3J0IGVudW0gQ2hhbm5lbFR5cGUge1xuXHRDb2xsYWJvcmF0aW9uRHJhZnQgPSBcIkNvbGxhYm9yYXRpb25EcmFmdFwiLFxuXHRTaWRlRWZmZWN0c0V2ZW50cyA9IFwiU2lkZUVmZmVjdHNFdmVudHNcIlxufVxuXG5leHBvcnQgdHlwZSBXZWJTb2NrZXRQYXJhbWV0ZXIgPSBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlV2ViU29ja2V0KFxuXHRjaGFubmVsVHlwZTogQ2hhbm5lbFR5cGUsXG5cdGFwcENvbXBvbmVudDogQXBwQ29tcG9uZW50LFxuXHRhZGRpdGlvbmFsUGFyYW1ldGVycz86IFdlYlNvY2tldFBhcmFtZXRlclxuKTogU2FwUGNwV2ViU29ja2V0IHtcblx0Y29uc3QgbW9kZWwgPSBhcHBDb21wb25lbnQuZ2V0TW9kZWwoKTtcblx0Y29uc3Qgc2VydmljZVVybCA9IG1vZGVsLmdldFNlcnZpY2VVcmwoKTtcblx0Y29uc3Qgc29ja2V0QmFzZVVSTCA9IGdldFdlYlNvY2tldEJhc2VVcmwobW9kZWwpO1xuXHRpZiAoIXNvY2tldEJhc2VVUkwpIHtcblx0XHR0aHJvdyBFcnJvcihcIldlYlNvY2tldCBCYXNlIFVSTCBhbm5vdGF0aW9uIG5vdCBmb3VuZFwiKTtcblx0fVxuXG5cdGNvbnN0IGNoYW5uZWxVcmwgPSBnZXRXZWJTb2NrZXRDaGFubmVsVXJsKGNoYW5uZWxUeXBlLCBtb2RlbCk7XG5cdGxldCBzb2NrZXRVUkk7XG5cblx0Ly8gU3VwcG9ydCB1c2VCYWNrZW5kVXJsIGZvciBsb2NhbCB0ZXN0aW5nXG5cdGNvbnN0IHVzZUJhY2tlbmRVcmwgPSBuZXcgVVJMU2VhcmNoUGFyYW1zKHdpbmRvdy5sb2NhdGlvbi5zZWFyY2gpLmdldChcInVzZUJhY2tlbmRVcmxcIik7XG5cdGlmICh1c2VCYWNrZW5kVXJsKSB7XG5cdFx0c29ja2V0VVJJID0gYCR7dXNlQmFja2VuZFVybC5yZXBsYWNlKFwiaHR0cHNcIiwgXCJ3c3NcIil9JHsoc29ja2V0QmFzZVVSTC5zdGFydHNXaXRoKFwiL1wiKSA/IFwiXCIgOiBcIi9cIikgKyBzb2NrZXRCYXNlVVJMfWA7XG5cdH0gZWxzZSB7XG5cdFx0c29ja2V0VVJJID0gYXBwQ29tcG9uZW50LmdldE1hbmlmZXN0T2JqZWN0KCkucmVzb2x2ZVVyaShzb2NrZXRCYXNlVVJMKTtcblx0fVxuXG5cdHNvY2tldFVSSSArPSBgPyR7Y2hhbm5lbFVybH1yZWxhdGVkU2VydmljZT0ke3NlcnZpY2VVcmx9YDtcblxuXHRpZiAoYWRkaXRpb25hbFBhcmFtZXRlcnMpIHtcblx0XHRmb3IgKGNvbnN0IHAgaW4gYWRkaXRpb25hbFBhcmFtZXRlcnMpIHtcblx0XHRcdHNvY2tldFVSSSArPSBgJiR7cH09JHtlbmNvZGVVUkkoYWRkaXRpb25hbFBhcmFtZXRlcnNbcF0pfWA7XG5cdFx0fVxuXHR9XG5cdHJldHVybiBuZXcgU2FwUGNwV2ViU29ja2V0KHNvY2tldFVSSSwgW1NVUFBPUlRFRF9QUk9UT0NPTFMudjEwXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWJTb2NrZXRCYXNlVXJsKG1vZGVsOiBPRGF0YU1vZGVsKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcblx0cmV0dXJuIG1vZGVsLmdldE1ldGFNb2RlbCgpLmdldE9iamVjdChcIi9AY29tLnNhcC52b2NhYnVsYXJpZXMuQ29tbW9uLnYxLldlYlNvY2tldEJhc2VVUkxcIik7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRXZWJTb2NrZXRDaGFubmVsVXJsKGNoYW5uZWxUeXBlOiBDaGFubmVsVHlwZSwgbW9kZWw6IE9EYXRhTW9kZWwpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuXHRpZiAoIWdldFdlYlNvY2tldEJhc2VVcmwobW9kZWwpKSB7XG5cdFx0cmV0dXJuIFwiXCI7XG5cdH1cblxuXHRzd2l0Y2ggKGNoYW5uZWxUeXBlKSB7XG5cdFx0Y2FzZSBDaGFubmVsVHlwZS5Db2xsYWJvcmF0aW9uRHJhZnQ6XG5cdFx0XHQvLyBjdXJyZW50bHkgY29sbGFib3JhdGlvbiBkcmFmdCBkb2VzIG5vdCBuZWVkIGEgY2hhbm5lbCAobWlnaHQgY2hhbmdlIGxhdGVyKVxuXHRcdFx0cmV0dXJuIFwiXCI7XG5cdFx0Y2FzZSBDaGFubmVsVHlwZS5TaWRlRWZmZWN0c0V2ZW50czpcblx0XHRcdC8vIHRoZSBzZXJ2aWNlIG5lZWQgYSBXZWJTb2NrZXRDaGFubmVsIGFubm90YXRlZCB3aXRoIGEgI3NpZGVFZmZlY3RzIHF1YWxpZmllclxuXHRcdFx0Y29uc3QgY2hhbm5lbE5hbWUgPSBtb2RlbC5nZXRNZXRhTW9kZWwoKS5nZXRPYmplY3QoXCIvQGNvbS5zYXAudm9jYWJ1bGFyaWVzLkNvbW1vbi52MS5XZWJTb2NrZXRDaGFubmVsI3NpZGVFZmZlY3RzXCIpO1xuXHRcdFx0cmV0dXJuIGBzaWRlRWZmZWN0cz0ke2NoYW5uZWxOYW1lfSZgO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztNQUlZQSxnQkFBZ0IsMEJBQWhCQSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixDQUFoQkEsZ0JBQWdCO0lBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtJQUFoQkEsZ0JBQWdCLENBQWhCQSxnQkFBZ0I7SUFBaEJBLGdCQUFnQixDQUFoQkEsZ0JBQWdCO0lBQWhCQSxnQkFBZ0IsQ0FBaEJBLGdCQUFnQjtJQUFBLE9BQWhCQSxnQkFBZ0I7RUFBQTtFQUFBQyxRQUFBLENBQUFELGdCQUFBLEdBQUFBLGdCQUFBO0VBQUEsSUFRaEJFLFdBQVcsMEJBQVhBLFdBQVc7SUFBWEEsV0FBVztJQUFYQSxXQUFXO0lBQUEsT0FBWEEsV0FBVztFQUFBO0VBQUFELFFBQUEsQ0FBQUMsV0FBQSxHQUFBQSxXQUFBO0VBT2hCLFNBQVNDLGVBQWVBLENBQzlCQyxXQUF3QixFQUN4QkMsWUFBMEIsRUFDMUJDLG9CQUF5QyxFQUN2QjtJQUNsQixNQUFNQyxLQUFLLEdBQUdGLFlBQVksQ0FBQ0csUUFBUSxDQUFDLENBQUM7SUFDckMsTUFBTUMsVUFBVSxHQUFHRixLQUFLLENBQUNHLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLE1BQU1DLGFBQWEsR0FBR0MsbUJBQW1CLENBQUNMLEtBQUssQ0FBQztJQUNoRCxJQUFJLENBQUNJLGFBQWEsRUFBRTtNQUNuQixNQUFNRSxLQUFLLENBQUMseUNBQXlDLENBQUM7SUFDdkQ7SUFFQSxNQUFNQyxVQUFVLEdBQUdDLHNCQUFzQixDQUFDWCxXQUFXLEVBQUVHLEtBQUssQ0FBQztJQUM3RCxJQUFJUyxTQUFTOztJQUViO0lBQ0EsTUFBTUMsYUFBYSxHQUFHLElBQUlDLGVBQWUsQ0FBQ0MsTUFBTSxDQUFDQyxRQUFRLENBQUNDLE1BQU0sQ0FBQyxDQUFDQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBQ3RGLElBQUlMLGFBQWEsRUFBRTtNQUNsQkQsU0FBUyxHQUFHLEdBQUdDLGFBQWEsQ0FBQ00sT0FBTyxDQUFDLE9BQU8sRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDWixhQUFhLENBQUNhLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEdBQUcsR0FBRyxJQUFJYixhQUFhLEVBQUU7SUFDcEgsQ0FBQyxNQUFNO01BQ05LLFNBQVMsR0FBR1gsWUFBWSxDQUFDb0IsaUJBQWlCLENBQUMsQ0FBQyxDQUFDQyxVQUFVLENBQUNmLGFBQWEsQ0FBQztJQUN2RTtJQUVBSyxTQUFTLElBQUksSUFBSUYsVUFBVSxrQkFBa0JMLFVBQVUsRUFBRTtJQUV6RCxJQUFJSCxvQkFBb0IsRUFBRTtNQUN6QixLQUFLLE1BQU1xQixDQUFDLElBQUlyQixvQkFBb0IsRUFBRTtRQUNyQ1UsU0FBUyxJQUFJLElBQUlXLENBQUMsSUFBSUMsU0FBUyxDQUFDdEIsb0JBQW9CLENBQUNxQixDQUFDLENBQUMsQ0FBQyxFQUFFO01BQzNEO0lBQ0Q7SUFDQSxPQUFPLElBQUlFLGVBQWUsQ0FBQ2IsU0FBUyxFQUFFLENBQUNjLG1CQUFtQixDQUFDQyxHQUFHLENBQUMsQ0FBQztFQUNqRTtFQUFDOUIsUUFBQSxDQUFBRSxlQUFBLEdBQUFBLGVBQUE7RUFFTSxTQUFTUyxtQkFBbUJBLENBQUNMLEtBQWlCLEVBQXNCO0lBQzFFLE9BQU9BLEtBQUssQ0FBQ3lCLFlBQVksQ0FBQyxDQUFDLENBQUNDLFNBQVMsQ0FBQyxtREFBbUQsQ0FBQztFQUMzRjtFQUFDaEMsUUFBQSxDQUFBVyxtQkFBQSxHQUFBQSxtQkFBQTtFQUVNLFNBQVNHLHNCQUFzQkEsQ0FBQ1gsV0FBd0IsRUFBRUcsS0FBaUIsRUFBc0I7SUFDdkcsSUFBSSxDQUFDSyxtQkFBbUIsQ0FBQ0wsS0FBSyxDQUFDLEVBQUU7TUFDaEMsT0FBTyxFQUFFO0lBQ1Y7SUFFQSxRQUFRSCxXQUFXO01BQ2xCLEtBQUtGLFdBQVcsQ0FBQ2dDLGtCQUFrQjtRQUNsQztRQUNBLE9BQU8sRUFBRTtNQUNWLEtBQUtoQyxXQUFXLENBQUNpQyxpQkFBaUI7UUFDakM7UUFDQSxNQUFNQyxXQUFXLEdBQUc3QixLQUFLLENBQUN5QixZQUFZLENBQUMsQ0FBQyxDQUFDQyxTQUFTLENBQUMsK0RBQStELENBQUM7UUFDbkgsT0FBTyxlQUFlRyxXQUFXLEdBQUc7SUFDdEM7RUFDRDtFQUFDbkMsUUFBQSxDQUFBYyxzQkFBQSxHQUFBQSxzQkFBQTtFQUFBLE9BQUFkLFFBQUE7QUFBQSIsImlnbm9yZUxpc3QiOltdfQ==
@@ -1,5 +1,6 @@
1
1
  import SapPcpWebSocket, { SUPPORTED_PROTOCOLS } from "sap/ui/core/ws/SapPcpWebSocket";
2
2
  import type ODataModel from "sap/ui/model/odata/v4/ODataModel";
3
+ import type AppComponent from "../AppComponent";
3
4
 
4
5
  export enum WEBSOCKET_STATUS {
5
6
  CLOSED = 0,
@@ -16,8 +17,12 @@ export enum ChannelType {
16
17
 
17
18
  export type WebSocketParameter = Record<string, string>;
18
19
 
19
- export function createWebSocket(channelType: ChannelType, model: ODataModel, additionalParameters?: WebSocketParameter): SapPcpWebSocket {
20
- const hostLocation = window.location;
20
+ export function createWebSocket(
21
+ channelType: ChannelType,
22
+ appComponent: AppComponent,
23
+ additionalParameters?: WebSocketParameter
24
+ ): SapPcpWebSocket {
25
+ const model = appComponent.getModel();
21
26
  const serviceUrl = model.getServiceUrl();
22
27
  const socketBaseURL = getWebSocketBaseUrl(model);
23
28
  if (!socketBaseURL) {
@@ -30,13 +35,12 @@ export function createWebSocket(channelType: ChannelType, model: ODataModel, add
30
35
  // Support useBackendUrl for local testing
31
36
  const useBackendUrl = new URLSearchParams(window.location.search).get("useBackendUrl");
32
37
  if (useBackendUrl) {
33
- socketURI = useBackendUrl.replace("https", "wss");
38
+ socketURI = `${useBackendUrl.replace("https", "wss")}${(socketBaseURL.startsWith("/") ? "" : "/") + socketBaseURL}`;
34
39
  } else {
35
- socketURI = hostLocation.protocol === "https:" ? "wss:" : "ws:";
36
- socketURI += `//${hostLocation.host}`;
40
+ socketURI = appComponent.getManifestObject().resolveUri(socketBaseURL);
37
41
  }
38
42
 
39
- socketURI += `${(socketBaseURL.startsWith("/") ? "" : "/") + socketBaseURL}?${channelUrl}relatedService=${serviceUrl}`;
43
+ socketURI += `?${channelUrl}relatedService=${serviceUrl}`;
40
44
 
41
45
  if (additionalParameters) {
42
46
  for (const p in additionalParameters) {
@@ -40,13 +40,13 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/CriticalityFormatter", "s
40
40
  const thisLib = Library.init({
41
41
  name: "sap.fe.core",
42
42
  apiVersion: 2,
43
- dependencies: ["sap.ui.core", "sap.fe.base", "sap.fe.navigation", "sap.fe.placeholder", "sap.f"],
43
+ dependencies: ["sap.ui.core", "sap.fe.base", "sap.fe.navigation", "sap.fe.placeholder", "sap.f", "sap.ui.fl"],
44
44
  types: ["sap.fe.core.CreationMode", "sap.fe.core.VariantManagement"],
45
45
  interfaces: [],
46
46
  controls: [],
47
47
  elements: [],
48
48
  // eslint-disable-next-line no-template-curly-in-string
49
- version: "1.141.2",
49
+ version: "1.142.1",
50
50
  noLibraryCSS: true,
51
51
  extensions: {
52
52
  //Configuration used for rule loading of Support Assistant
@@ -226,6 +226,33 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/CriticalityFormatter", "s
226
226
  */
227
227
  OnBeforeCreateFailed: "onBeforeCreateFailed"
228
228
  };
229
+
230
+ /**
231
+ * Preferred action status values.
232
+ * @readonly
233
+ * @enum {string}
234
+ */
235
+ thisLib.PreferredActionStatusType = {
236
+ /**
237
+ * Initial state, no preferred action has been evaluated.
238
+ * @constant
239
+ * @type {string}
240
+ */
241
+ NotSet: "notSet",
242
+ /**
243
+ * Preferred action can be performed (conditions are met).
244
+ * @constant
245
+ * @type {string}
246
+ */
247
+ CanPerform: "canPerform",
248
+ /**
249
+ * Preferred action has been executed and should not be triggered again.
250
+ * @constant
251
+ * @type {string}
252
+ */
253
+ AlreadyPerformed: "alreadyPerformed"
254
+ };
255
+
229
256
  /**
230
257
  * Available values for programming model.
231
258
  * @readonly
@@ -454,4 +481,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/core/formatters/CriticalityFormatter", "s
454
481
  ServiceFactoryRegistry.register("sap.fe.core.services.InlineEditService", new InlineEditServiceFactory());
455
482
  return thisLib;
456
483
  }, false);
457
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZU5hbWVzcGFjZSIsIl9leHBvcnRzIiwiZmVDb3JlTmFtZXNwYWNlIiwiZmVDZXh0TmFtZXNwYWNlIiwiZmVGcG1OYW1lc3BhY2UiLCJ0aGlzTGliIiwiTGlicmFyeSIsImluaXQiLCJuYW1lIiwiYXBpVmVyc2lvbiIsImRlcGVuZGVuY2llcyIsInR5cGVzIiwiaW50ZXJmYWNlcyIsImNvbnRyb2xzIiwiZWxlbWVudHMiLCJ2ZXJzaW9uIiwibm9MaWJyYXJ5Q1NTIiwiZXh0ZW5zaW9ucyIsInB1YmxpY1J1bGVzIiwiaW50ZXJuYWxSdWxlcyIsIkludm9jYXRpb25Hcm91cGluZyIsIklzb2xhdGVkIiwiQ2hhbmdlU2V0IiwiQ3JlYXRpb25Nb2RlIiwiTmV3UGFnZSIsIlN5bmMiLCJBc3luYyIsIkRlZmVycmVkIiwiSW5saW5lIiwiQ3JlYXRpb25Sb3ciLCJJbmxpbmVDcmVhdGlvblJvd3MiLCJFeHRlcm5hbCIsIkNyZWF0aW9uRGlhbG9nIiwiRGF0YVR5cGUiLCJyZWdpc3RlckVudW0iLCJWYXJpYW50TWFuYWdlbWVudCIsIk5vbmUiLCJQYWdlIiwiQ29udHJvbCIsIkNvbnN0YW50cyIsIkNhbmNlbEFjdGlvbkRpYWxvZyIsIkNhbmNlbERpc2NhcmREcmFmdCIsIkFjdGlvbkV4ZWN1dGlvbkZhaWxlZCIsIkNyZWF0aW9uRmFpbGVkIiwiT25CZWZvcmVDcmVhdGVGYWlsZWQiLCJQcm9ncmFtbWluZ01vZGVsIiwiRHJhZnQiLCJTdGlja3kiLCJOb25EcmFmdCIsIkRyYWZ0U3RhdHVzIiwiU2F2aW5nIiwiU2F2ZWQiLCJDbGVhciIsIkVkaXRNb2RlIiwiRGlzcGxheSIsIkVkaXRhYmxlIiwiVGVtcGxhdGVDb250ZW50VmlldyIsIkh5YnJpZCIsIkNoYXJ0IiwiVGFibGUiLCJJbml0aWFsTG9hZE1vZGUiLCJTdGFydHVwTW9kZSIsIk5vcm1hbCIsIkRlZXBsaW5rIiwiQ3JlYXRlIiwiQXV0b0NyZWF0ZSIsIkNvbnRleHROYXZpZ2F0aW9uVHlwZSIsIkluaXRpYWxMb2FkVHlwZSIsImNyZWF0ZVR5cGUiLCJkZWZhdWx0VmFsdWUiLCJBdXRvIiwiaXNWYWxpZCIsInZWYWx1ZSIsIkxvZyIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJoYXNPd25Qcm9wZXJ0eSIsInNldE5vcm1hbGl6ZXIiLCJEaXNhYmxlZCIsIkVuYWJsZWQiLCJTZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5IiwicmVnaXN0ZXIiLCJUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkiLCJSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkiLCJDYWNoZUhhbmRsZXJTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnkiLCJWaWV3UHJlbG9hZGVyU2VydmljZUZhY3RvcnkiLCJOYXZpZ2F0aW9uU2VydmljZSIsIlJvdXRpbmdTZXJ2aWNlRmFjdG9yeSIsIlNpZGVFZmZlY3RzU2VydmljZUZhY3RvcnkiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsIkVudmlyb25tZW50U2VydmljZUZhY3RvcnkiLCJBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5IiwiQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkiLCJUZWxlbWV0cnlTZXJ2aWNlRmFjdG9yeSIsIlZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5IiwiQ29udGV4dFNoYXJpbmdTZXJ2aWNlRmFjdG9yeSIsIklubGluZUVkaXRTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsibGlicmFyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvQ3JpdGljYWxpdHlGb3JtYXR0ZXJcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRlBNRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1Njb3BlXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1N0YW5kYXJkRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1ZhbHVlRm9ybWF0dGVyXCI7XG5cbmltcG9ydCBcInNhcC9mZS9iYXNlL2xpYnJhcnlcIjtcbmltcG9ydCBBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9Bc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NhY2hlSGFuZGxlclNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0Vudmlyb25tZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBJbmxpbmVFZGl0U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0lubGluZUVkaXRTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IE5hdmlnYXRpb25TZXJ2aWNlIGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9OYXZpZ2F0aW9uU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1Jlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFJvdXRpbmdTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvUm91dGluZ1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgU2hlbGxTZXJ2aWNlc0ZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NoZWxsU2VydmljZXNGYWN0b3J5XCI7XG5pbXBvcnQgU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFRlbGVtZXRyeVNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9UZWxlbWV0cnlTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvdHlwZS9EYXRlXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0RhdGVUaW1lV2l0aFRpbWV6b25lXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0VtYWlsXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0Zpc2NhbERhdGVcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL3R5cGUvSW5wdXRNYXNrXCI7XG5pbXBvcnQgXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvZmUvcGxhY2Vob2xkZXIvbGlicmFyeVwiO1xuaW1wb3J0IERhdGFUeXBlIGZyb20gXCJzYXAvdWkvYmFzZS9EYXRhVHlwZVwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5UmVnaXN0cnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlSZWdpc3RyeVwiO1xuaW1wb3J0IENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnkgZnJvbSBcIi4vc2VydmljZXMvQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbnRleHRTaGFyaW5nU2VydmljZUZhY3RvcnkgZnJvbSBcIi4vc2VydmljZXMvQ29udGV4dFNoYXJpbmdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlRmFjdG9yeSBmcm9tIFwiLi9zZXJ2aWNlcy9WYWx1ZUhlbHBIaXN0b3J5U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IFZpZXdQcmVsb2FkZXJTZXJ2aWNlRmFjdG9yeSB9IGZyb20gXCIuL3NlcnZpY2VzL1ZpZXdQcmVsb2FkZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5IGZyb20gXCIuL3NlcnZpY2VzL2NvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5XCI7XG5cbi8qKlxuICogUm9vdCBuYW1lc3BhY2UgZm9yIGFsbCB0aGUgbGlicmFyaWVzIHJlbGF0ZWQgdG8gU0FQIEZpb3JpIGVsZW1lbnRzLlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVOYW1lc3BhY2UgPSBcInNhcC5mZVwiO1xuLyoqXG4gKiBMaWJyYXJ5IHByb3ZpZGluZyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBydW50aW1lIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVDb3JlTmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZVwiO1xuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNvbnRyb2xsZXIgZXh0ZW5zaW9ucyB1c2VkIGludGVybmFsbHkgaW4gU0FQIEZpb3JpIGVsZW1lbnRzIGV4cG9zaW5nIGEgbWV0aG9kIHRoYXQgeW91IGNhbiBvdmVycmlkZSB0byBhbGxvdyBtb3JlIGZsZXhpYmlsaXR5LlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVDZXh0TmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9uc1wiO1xuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNsYXNzZXMgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIGZvciB0aGUgRmxleGlibGUgUHJvZ3JhbW1pbmcgTW9kZWxcbiAqIEBuYW1lc3BhY2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZlRnBtTmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZS5mcG1cIjtcblxuY29uc3QgdGhpc0xpYiA9IExpYnJhcnkuaW5pdCh7XG5cdG5hbWU6IFwic2FwLmZlLmNvcmVcIixcblx0YXBpVmVyc2lvbjogMixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiLCBcInNhcC5mZS5iYXNlXCIsIFwic2FwLmZlLm5hdmlnYXRpb25cIiwgXCJzYXAuZmUucGxhY2Vob2xkZXJcIiwgXCJzYXAuZlwiXSxcblx0dHlwZXM6IFtcInNhcC5mZS5jb3JlLkNyZWF0aW9uTW9kZVwiLCBcInNhcC5mZS5jb3JlLlZhcmlhbnRNYW5hZ2VtZW50XCJdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZSxcblx0ZXh0ZW5zaW9uczoge1xuXHRcdC8vQ29uZmlndXJhdGlvbiB1c2VkIGZvciBydWxlIGxvYWRpbmcgb2YgU3VwcG9ydCBBc3Npc3RhbnRcblx0XHRcInNhcC51aS5zdXBwb3J0XCI6IHtcblx0XHRcdHB1YmxpY1J1bGVzOiB0cnVlLFxuXHRcdFx0aW50ZXJuYWxSdWxlczogdHJ1ZVxuXHRcdH1cblx0fVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxufSkgYXMgYW55O1xuXG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIGludm9jYXRpb24gZ3JvdXBpbmcuXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbnRoaXNMaWIuSW52b2NhdGlvbkdyb3VwaW5nID0ge1xuXHQvKipcblx0ICogSXNvbGF0ZWQuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJc29sYXRlZDogXCJJc29sYXRlZFwiLFxuXHQvKipcblx0ICogQ2hhbmdlU2V0LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2hhbmdlU2V0OiBcIkNoYW5nZVNldFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBjcmVhdGlvbiBtb2RlLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLkNyZWF0aW9uTW9kZSA9IHtcblx0LyoqXG5cdCAqIE5ldyBQYWdlLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0TmV3UGFnZTogXCJOZXdQYWdlXCIsXG5cdC8qKlxuXHQgKiBTeW5jLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U3luYzogXCJTeW5jXCIsXG5cdC8qKlxuXHQgKiBBc3luYy5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEFzeW5jOiBcIkFzeW5jXCIsXG5cdC8qKlxuXHQgKiBEZWZlcnJlZC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERlZmVycmVkOiBcIkRlZmVycmVkXCIsXG5cdC8qKlxuXHQgKiBJbmxpbmUuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmU6IFwiSW5saW5lXCIsXG5cdC8qKlxuXHQgKiBDcmVhdGlvbiByb3cuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDcmVhdGlvblJvdzogXCJDcmVhdGlvblJvd1wiLFxuXHQvKipcblx0ICogSW5saW5lIGNyZWF0aW9uIHJvd3MuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmVDcmVhdGlvblJvd3M6IFwiSW5saW5lQ3JlYXRpb25Sb3dzXCIsXG5cdC8qKlxuXHQgKiBFeHRlcm5hbCAoYnkgb3V0Ym91bmQgbmF2aWdhdGlvbikuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRFeHRlcm5hbDogXCJFeHRlcm5hbFwiLFxuXHQvKipcblx0ICogQ3JlYXRpb24gZGlhbG9nLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q3JlYXRpb25EaWFsb2c6IFwiQ3JlYXRpb25EaWFsb2dcIlxufTtcblxuRGF0YVR5cGUucmVnaXN0ZXJFbnVtKFwic2FwLmZlLmNvcmUuQ3JlYXRpb25Nb2RlXCIsIHRoaXNMaWIuQ3JlYXRpb25Nb2RlKTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgVmFyaWFudCBNYW5hZ2VtZW50LlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlZhcmlhbnRNYW5hZ2VtZW50ID0ge1xuXHQvKipcblx0ICogTm8gdmFyaWFudCBtYW5hZ2VtZW50IGF0IGFsbC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbmU6IFwiTm9uZVwiLFxuXG5cdC8qKlxuXHQgKiBPbmUgdmFyaWFudCBjb25maWd1cmF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFBhZ2U6IFwiUGFnZVwiLFxuXG5cdC8qKlxuXHQgKiBWYXJpYW50IG1hbmFnZW1lbnQgb24gY29udHJvbCBsZXZlbC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENvbnRyb2w6IFwiQ29udHJvbFwiXG59O1xuRGF0YVR5cGUucmVnaXN0ZXJFbnVtKFwic2FwLmZlLmNvcmUuVmFyaWFudE1hbmFnZW1lbnRcIiwgdGhpc0xpYi5WYXJpYW50TWFuYWdlbWVudCk7XG4vKipcbiAqIEF2YWlsYWJsZSBjb25zdGFudHMuXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbnRoaXNMaWIuQ29uc3RhbnRzID0ge1xuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgY2FuY2VsbGluZyBvZiBhbiBhY3Rpb24gZGlhbG9nLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2FuY2VsQWN0aW9uRGlhbG9nOiBcImNhbmNlbFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgY2FuY2VsbGluZyB0aGUgZGlzY2FyZCBkcmFmdC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENhbmNlbERpc2NhcmREcmFmdDogXCJjYW5jZWxEaXNjYXJkRHJhZnRcIixcblx0Lypcblx0ICogSW5kaWNhdGVzIGZhaWx1cmUgcmV0dXJuZWQgZnJvbSBiYWNrZW5kIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGFuIGFjdGlvblxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QWN0aW9uRXhlY3V0aW9uRmFpbGVkOiBcImFjdGlvbkV4ZWN1dGlvbkZhaWxlZFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgZmFpbHVyZSByZXR1cm5lZCBmcm9tIGJhY2tlbmQgZHVyaW5nIGNyZWF0aW9uIG9mIGEgYnVzaW5lc3Mgb2JqZWN0ICh2aWEgZGlyZWN0IFBPU1QpXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDcmVhdGlvbkZhaWxlZDogXCJjcmVhdGlvbkZhaWxlZFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgZmFpbHVyZSByZXR1cm5lZCBmcm9tIG9uQmVmb3JlQ3JlYXRlIEVkaXQgRmxvdyBob29rIGNhbGxlZCBiZWZvcmUgY3JlYXRpb24gb2YgYSBidXNpbmVzcyBvYmplY3Rcblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE9uQmVmb3JlQ3JlYXRlRmFpbGVkOiBcIm9uQmVmb3JlQ3JlYXRlRmFpbGVkXCJcbn07XG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIHByb2dyYW1taW5nIG1vZGVsLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlByb2dyYW1taW5nTW9kZWwgPSB7XG5cdC8qXG5cdCAqIERyYWZ0LlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RHJhZnQ6IFwiRHJhZnRcIixcblx0LyoqXG5cdCAqIFN0aWNreS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFN0aWNreTogXCJTdGlja3lcIixcblx0LyoqXG5cdCAqIE5vbkRyYWZ0LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Tm9uRHJhZnQ6IFwiTm9uRHJhZnRcIlxufTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgZHJhZnQgc3RhdHVzLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLkRyYWZ0U3RhdHVzID0ge1xuXHQvKipcblx0ICogU2F2aW5nLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U2F2aW5nOiBcIlNhdmluZ1wiLFxuXHQvKipcblx0ICogU2F2ZWQuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRTYXZlZDogXCJTYXZlZFwiLFxuXHQvKipcblx0ICogQ2xlYXIuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDbGVhcjogXCJDbGVhclwiXG59O1xuLyoqXG4gKiBFZGl0IG1vZGUgdmFsdWVzLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLkVkaXRNb2RlID0ge1xuXHQvKipcblx0ICogVmlldyBpcyBjdXJyZW50bHkgZGlzcGxheWluZyBvbmx5LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RGlzcGxheTogXCJEaXNwbGF5XCIsXG5cdC8qKlxuXHQgKiBWaWV3IGlzIGN1cnJlbnRseSBlZGl0YWJsZS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEVkaXRhYmxlOiBcIkVkaXRhYmxlXCJcbn07XG4vKipcbiAqIFRlbXBsYXRlIHZpZXdzLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlRlbXBsYXRlQ29udGVudFZpZXcgPSB7XG5cdC8qKlxuXHQgKiBIeWJyaWQuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0SHlicmlkOiBcIkh5YnJpZFwiLFxuXHQvKipcblx0ICogQ2hhcnQuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Q2hhcnQ6IFwiQ2hhcnRcIixcblx0LyoqXG5cdCAqIFRhYmxlLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdFRhYmxlOiBcIlRhYmxlXCJcbn07XG4vKipcbiAqIFBvc3NpYmxlIGluaXRpYWwgbG9hZCAoZmlyc3QgYXBwIHN0YXJ0dXApIG1vZGVzIGZvciBhIExpc3RSZXBvcnQuXG4gKiBAZW51bSB7c3RyaW5nfVxuICogQHJlYWRvbmx5XG4gKiBAcHVibGljXG4gKiBAc2luY2UgMS44Ni4wXG4gKi9cbmV4cG9ydCBlbnVtIEluaXRpYWxMb2FkTW9kZSB7XG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgYmUgbG9hZGVkIGluaXRpYWxseS5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0RW5hYmxlZCA9IFwiRW5hYmxlZFwiLFxuXG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgbm90IGJlIGxvYWRlZCBpbml0aWFsbHkuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERpc2FibGVkID0gXCJEaXNhYmxlZFwiLFxuXG5cdC8qKlxuXHQgKiBEYXRhIHdpbGwgYmUgbG9hZGVkIGluaXRpYWxseSBpZiBmaWx0ZXJzIGFyZSBzZXQuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEF1dG8gPSBcIkF1dG9cIlxufVxudGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUgPSBJbml0aWFsTG9hZE1vZGU7XG5cbi8qKlxuICogVmFsdWUgb2YgdGhlIHN0YXJ0dXAgbW9kZVxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlN0YXJ0dXBNb2RlID0ge1xuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgbm9ybWFsbHkuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Tm9ybWFsOiBcIk5vcm1hbFwiLFxuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgd2l0aCBzdGFydHVwIGtleXMgKGRlZXBsaW5rKS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHREZWVwbGluazogXCJEZWVwbGlua1wiLFxuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgaW4gJ2NyZWF0ZScgbW9kZS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRDcmVhdGU6IFwiQ3JlYXRlXCIsXG5cdC8qKlxuXHQgKiBBcHAgaGFzIGJlZW4gc3RhcnRlZCBpbiAnYXV0byBjcmVhdGUnIG1vZGUgd2hpY2ggbWVhbnMgdG8gc2tpcCBhbnkgZGlhbG9ncyBvbiBzdGFydHVwXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0QXV0b0NyZWF0ZTogXCJBdXRvQ3JlYXRlXCJcbn07XG5cbi8qKlxuICogUG9zc2libGUgbmF2aWdhdGlvbiBtb2RlcyBmb3IgYSBwYWdpbmF0aW9uLlxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQHB1YmxpY1xuICogQHNpbmNlIDEuMTM4LjBcbiAqL1xuXG5leHBvcnQgZW51bSBDb250ZXh0TmF2aWdhdGlvblR5cGUge1xuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlcmUgaXMgbm8gbmF2aWdhdGlvbi5cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Tm9uZSA9IFwiTm9uZVwiLFxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyB0byBhIHN1Ym9iamVjdCBwYWdlIHdpdGhpbiB0aGUgc2FtZSBhcHBsaWNhdGlvbi5cblx0ICogIEBwdWJsaWNcblx0ICovXG5cdEludGVybmFsID0gXCJJbnRlcm5hbFwiLFxuXG5cdC8qKlxuXHQgKiBJbmRpY2F0ZXMgdGhhdCB0aGUgbmF2aWdhdGlvbiBpcyB0byBhbiBleHRlcm5hbCBhcHBsaWNhdGlvbi5cblx0ICogIEBwdWJsaWNcblx0ICovXG5cdEV4dGVybmFsID0gXCJFeHRlcm5hbFwiXG59XG5cbnRoaXNMaWIuQ29udGV4dE5hdmlnYXRpb25UeXBlID0gQ29udGV4dE5hdmlnYXRpb25UeXBlO1xuXG4vLyBleHBsaWNpdCB0eXBlIHRvIGhhbmRsZSBiYWNrd2FyZCBjb21wYXRpYmlsaXR5IHdpdGggYm9vbGVhbiB2YWx1ZXNcbmNvbnN0IEluaXRpYWxMb2FkVHlwZSA9IERhdGFUeXBlLmNyZWF0ZVR5cGUoXCJzYXAuZmUuY29yZS5Jbml0aWFsTG9hZE1vZGVcIiwge1xuXHRkZWZhdWx0VmFsdWU6IHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkF1dG8sXG5cdGlzVmFsaWQ6IGZ1bmN0aW9uICh2VmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0XHRpZiAodHlwZW9mIHZWYWx1ZSA9PT0gXCJib29sZWFuXCIpIHtcblx0XHRcdExvZy53YXJuaW5nKFxuXHRcdFx0XHRcIkRFUFJFQ0FURUQ6IGJvb2xlYW4gdmFsdWUgbm90IGFsbG93ZWQgZm9yICdpbml0aWFsTG9hZCcgbWFuaWZlc3Qgc2V0dGluZyAtIHN1cHBvcnRlZCB2YWx1ZXMgYXJlOiBEaXNhYmxlZHxFbmFibGVkfEF1dG9cIlxuXHRcdFx0KTtcblx0XHR9XG5cdFx0cmV0dXJuIHZWYWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZWYWx1ZSA9PT0gbnVsbCB8fCB0eXBlb2YgdlZhbHVlID09PSBcImJvb2xlYW5cIiB8fCB0aGlzTGliLkluaXRpYWxMb2FkTW9kZS5oYXNPd25Qcm9wZXJ0eSh2VmFsdWUpO1xuXHR9XG59KTtcbi8vIG5vcm1hbGl6ZSBhIHZhbHVlLCB0YWtpbmcgY2FyZSBvZiBib29sZWFuIHR5cGVcbkluaXRpYWxMb2FkVHlwZS5zZXROb3JtYWxpemVyKGZ1bmN0aW9uICh2VmFsdWU6IHN0cmluZyB8IGJvb2xlYW4gfCB1bmRlZmluZWQpIHtcblx0aWYgKCF2VmFsdWUpIHtcblx0XHQvLyB1bmRlZmluZWQsIG51bGwgb3IgZmFsc2Vcblx0XHRyZXR1cm4gdGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUuRGlzYWJsZWQ7XG5cdH1cblx0cmV0dXJuIHZWYWx1ZSA9PT0gdHJ1ZSA/IHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkVuYWJsZWQgOiB2VmFsdWU7XG59KTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5UZW1wbGF0ZWRWaWV3U2VydmljZVwiLCBuZXcgVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJlc291cmNlTW9kZWxTZXJ2aWNlXCIsIG5ldyBSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ2FjaGVIYW5kbGVyU2VydmljZVwiLCBuZXcgQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlXCIsIG5ldyBDb2xsYWJvcmF0aW9uTWFuYWdlclNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlZpZXdQcmVsb2FkZXJTZXJ2aWNlXCIsIG5ldyBWaWV3UHJlbG9hZGVyU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuTmF2aWdhdGlvblNlcnZpY2VcIiwgbmV3IE5hdmlnYXRpb25TZXJ2aWNlKCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlJvdXRpbmdTZXJ2aWNlXCIsIG5ldyBSb3V0aW5nU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuU2lkZUVmZmVjdHNTZXJ2aWNlXCIsIG5ldyBTaWRlRWZmZWN0c1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNoZWxsU2VydmljZXNcIiwgbmV3IFNoZWxsU2VydmljZXNGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkVudmlyb25tZW50U2VydmljZVwiLCBuZXcgRW52aXJvbm1lbnRTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Bc3luY0NvbXBvbmVudFNlcnZpY2VcIiwgbmV3IEFzeW5jQ29tcG9uZW50U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZVwiLCBuZXcgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuVGVsZW1ldHJ5U2VydmljZVwiLCBuZXcgVGVsZW1ldHJ5U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuVmFsdWVIZWxwSGlzdG9yeVNlcnZpY2VcIiwgbmV3IFZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Db2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlXCIsIG5ldyBDb2xsYWJvcmF0aXZlRHJhZnRTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Db250ZXh0U2hhcmluZ1NlcnZpY2VcIiwgbmV3IENvbnRleHRTaGFyaW5nU2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuSW5saW5lRWRpdFNlcnZpY2VcIiwgbmV3IElubGluZUVkaXRTZXJ2aWNlRmFjdG9yeSgpKTtcblxuZXhwb3J0IHR5cGUgQ29yZUxpYiA9IHtcblx0SW52b2NhdGlvbkdyb3VwaW5nOiB7XG5cdFx0Q2hhbmdlU2V0OiBcIkNoYW5nZVNldFwiO1xuXHRcdElzb2xhdGVkOiBcIklzb2xhdGVkXCI7XG5cdH07XG59O1xuZXhwb3J0IGRlZmF1bHQgdGhpc0xpYjtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7RUFxQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUNPLE1BQU1BLFdBQVcsR0FBRyxRQUFRO0VBQ25DO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFKQUMsUUFBQSxDQUFBRCxXQUFBLEdBQUFBLFdBQUE7RUFLTyxNQUFNRSxlQUFlLEdBQUcsYUFBYTtFQUM1QztBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkFELFFBQUEsQ0FBQUMsZUFBQSxHQUFBQSxlQUFBO0VBS08sTUFBTUMsZUFBZSxHQUFHLGtDQUFrQztFQUNqRTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkFGLFFBQUEsQ0FBQUUsZUFBQSxH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
484
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJmZU5hbWVzcGFjZSIsIl9leHBvcnRzIiwiZmVDb3JlTmFtZXNwYWNlIiwiZmVDZXh0TmFtZXNwYWNlIiwiZmVGcG1OYW1lc3BhY2UiLCJ0aGlzTGliIiwiTGlicmFyeSIsImluaXQiLCJuYW1lIiwiYXBpVmVyc2lvbiIsImRlcGVuZGVuY2llcyIsInR5cGVzIiwiaW50ZXJmYWNlcyIsImNvbnRyb2xzIiwiZWxlbWVudHMiLCJ2ZXJzaW9uIiwibm9MaWJyYXJ5Q1NTIiwiZXh0ZW5zaW9ucyIsInB1YmxpY1J1bGVzIiwiaW50ZXJuYWxSdWxlcyIsIkludm9jYXRpb25Hcm91cGluZyIsIklzb2xhdGVkIiwiQ2hhbmdlU2V0IiwiQ3JlYXRpb25Nb2RlIiwiTmV3UGFnZSIsIlN5bmMiLCJBc3luYyIsIkRlZmVycmVkIiwiSW5saW5lIiwiQ3JlYXRpb25Sb3ciLCJJbmxpbmVDcmVhdGlvblJvd3MiLCJFeHRlcm5hbCIsIkNyZWF0aW9uRGlhbG9nIiwiRGF0YVR5cGUiLCJyZWdpc3RlckVudW0iLCJWYXJpYW50TWFuYWdlbWVudCIsIk5vbmUiLCJQYWdlIiwiQ29udHJvbCIsIkNvbnN0YW50cyIsIkNhbmNlbEFjdGlvbkRpYWxvZyIsIkNhbmNlbERpc2NhcmREcmFmdCIsIkFjdGlvbkV4ZWN1dGlvbkZhaWxlZCIsIkNyZWF0aW9uRmFpbGVkIiwiT25CZWZvcmVDcmVhdGVGYWlsZWQiLCJQcmVmZXJyZWRBY3Rpb25TdGF0dXNUeXBlIiwiTm90U2V0IiwiQ2FuUGVyZm9ybSIsIkFscmVhZHlQZXJmb3JtZWQiLCJQcm9ncmFtbWluZ01vZGVsIiwiRHJhZnQiLCJTdGlja3kiLCJOb25EcmFmdCIsIkRyYWZ0U3RhdHVzIiwiU2F2aW5nIiwiU2F2ZWQiLCJDbGVhciIsIkVkaXRNb2RlIiwiRGlzcGxheSIsIkVkaXRhYmxlIiwiVGVtcGxhdGVDb250ZW50VmlldyIsIkh5YnJpZCIsIkNoYXJ0IiwiVGFibGUiLCJJbml0aWFsTG9hZE1vZGUiLCJTdGFydHVwTW9kZSIsIk5vcm1hbCIsIkRlZXBsaW5rIiwiQ3JlYXRlIiwiQXV0b0NyZWF0ZSIsIkNvbnRleHROYXZpZ2F0aW9uVHlwZSIsIkluaXRpYWxMb2FkVHlwZSIsImNyZWF0ZVR5cGUiLCJkZWZhdWx0VmFsdWUiLCJBdXRvIiwiaXNWYWxpZCIsInZWYWx1ZSIsIkxvZyIsIndhcm5pbmciLCJ1bmRlZmluZWQiLCJoYXNPd25Qcm9wZXJ0eSIsInNldE5vcm1hbGl6ZXIiLCJEaXNhYmxlZCIsIkVuYWJsZWQiLCJTZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5IiwicmVnaXN0ZXIiLCJUZW1wbGF0ZWRWaWV3U2VydmljZUZhY3RvcnkiLCJSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkiLCJDYWNoZUhhbmRsZXJTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnkiLCJWaWV3UHJlbG9hZGVyU2VydmljZUZhY3RvcnkiLCJOYXZpZ2F0aW9uU2VydmljZSIsIlJvdXRpbmdTZXJ2aWNlRmFjdG9yeSIsIlNpZGVFZmZlY3RzU2VydmljZUZhY3RvcnkiLCJTaGVsbFNlcnZpY2VzRmFjdG9yeSIsIkVudmlyb25tZW50U2VydmljZUZhY3RvcnkiLCJBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5IiwiQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkiLCJUZWxlbWV0cnlTZXJ2aWNlRmFjdG9yeSIsIlZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlRmFjdG9yeSIsIkNvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5IiwiQ29udGV4dFNoYXJpbmdTZXJ2aWNlRmFjdG9yeSIsIklubGluZUVkaXRTZXJ2aWNlRmFjdG9yeSJdLCJzb3VyY2VSb290IjoiLiIsInNvdXJjZXMiOlsibGlicmFyeS50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvQ3JpdGljYWxpdHlGb3JtYXR0ZXJcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL2Zvcm1hdHRlcnMvRlBNRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1Njb3BlXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1N0YW5kYXJkRm9ybWF0dGVyXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS9mb3JtYXR0ZXJzL1ZhbHVlRm9ybWF0dGVyXCI7XG5cbmltcG9ydCBcInNhcC9mZS9iYXNlL2xpYnJhcnlcIjtcbmltcG9ydCBBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9Bc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgQ2FjaGVIYW5kbGVyU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NhY2hlSGFuZGxlclNlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgQ29sbGFib3JhdGl2ZVRvb2xzU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0NvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0Vudmlyb25tZW50U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBJbmxpbmVFZGl0U2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL0lubGluZUVkaXRTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IE5hdmlnYXRpb25TZXJ2aWNlIGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9OYXZpZ2F0aW9uU2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCBSZXNvdXJjZU1vZGVsU2VydmljZUZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1Jlc291cmNlTW9kZWxTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFJvdXRpbmdTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvUm91dGluZ1NlcnZpY2VGYWN0b3J5XCI7XG5pbXBvcnQgU2hlbGxTZXJ2aWNlc0ZhY3RvcnkgZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1NoZWxsU2VydmljZXNGYWN0b3J5XCI7XG5pbXBvcnQgU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeSBmcm9tIFwic2FwL2ZlL2NvcmUvc2VydmljZXMvU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFRlbGVtZXRyeVNlcnZpY2VGYWN0b3J5IGZyb20gXCJzYXAvZmUvY29yZS9zZXJ2aWNlcy9UZWxlbWV0cnlTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IHsgVGVtcGxhdGVkVmlld1NlcnZpY2VGYWN0b3J5IH0gZnJvbSBcInNhcC9mZS9jb3JlL3NlcnZpY2VzL1RlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFwic2FwL2ZlL2NvcmUvdHlwZS9EYXRlXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0RhdGVUaW1lV2l0aFRpbWV6b25lXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0VtYWlsXCI7XG5pbXBvcnQgXCJzYXAvZmUvY29yZS90eXBlL0Zpc2NhbERhdGVcIjtcbmltcG9ydCBcInNhcC9mZS9jb3JlL3R5cGUvSW5wdXRNYXNrXCI7XG5pbXBvcnQgXCJzYXAvZmUvbmF2aWdhdGlvbi9saWJyYXJ5XCI7XG5pbXBvcnQgXCJzYXAvZmUvcGxhY2Vob2xkZXIvbGlicmFyeVwiO1xuaW1wb3J0IERhdGFUeXBlIGZyb20gXCJzYXAvdWkvYmFzZS9EYXRhVHlwZVwiO1xuaW1wb3J0IExpYnJhcnkgZnJvbSBcInNhcC91aS9jb3JlL0xpYlwiO1xuaW1wb3J0IFwic2FwL3VpL2NvcmUvbGlicmFyeVwiO1xuaW1wb3J0IFNlcnZpY2VGYWN0b3J5UmVnaXN0cnkgZnJvbSBcInNhcC91aS9jb3JlL3NlcnZpY2UvU2VydmljZUZhY3RvcnlSZWdpc3RyeVwiO1xuaW1wb3J0IENvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZUZhY3RvcnkgZnJvbSBcIi4vc2VydmljZXMvQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbnRleHRTaGFyaW5nU2VydmljZUZhY3RvcnkgZnJvbSBcIi4vc2VydmljZXMvQ29udGV4dFNoYXJpbmdTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IFZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlRmFjdG9yeSBmcm9tIFwiLi9zZXJ2aWNlcy9WYWx1ZUhlbHBIaXN0b3J5U2VydmljZUZhY3RvcnlcIjtcbmltcG9ydCB7IFZpZXdQcmVsb2FkZXJTZXJ2aWNlRmFjdG9yeSB9IGZyb20gXCIuL3NlcnZpY2VzL1ZpZXdQcmVsb2FkZXJTZXJ2aWNlRmFjdG9yeVwiO1xuaW1wb3J0IENvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5IGZyb20gXCIuL3NlcnZpY2VzL2NvbGxhYm9yYXRpdmVEcmFmdFNlcnZpY2VGYWN0b3J5XCI7XG5cbi8qKlxuICogUm9vdCBuYW1lc3BhY2UgZm9yIGFsbCB0aGUgbGlicmFyaWVzIHJlbGF0ZWQgdG8gU0FQIEZpb3JpIGVsZW1lbnRzLlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVOYW1lc3BhY2UgPSBcInNhcC5mZVwiO1xuLyoqXG4gKiBMaWJyYXJ5IHByb3ZpZGluZyB0aGUgY29yZSBmdW5jdGlvbmFsaXR5IG9mIHRoZSBydW50aW1lIGZvciBTQVAgRmlvcmkgZWxlbWVudHMgZm9yIE9EYXRhIFY0LlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVDb3JlTmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZVwiO1xuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNvbnRyb2xsZXIgZXh0ZW5zaW9ucyB1c2VkIGludGVybmFsbHkgaW4gU0FQIEZpb3JpIGVsZW1lbnRzIGV4cG9zaW5nIGEgbWV0aG9kIHRoYXQgeW91IGNhbiBvdmVycmlkZSB0byBhbGxvdyBtb3JlIGZsZXhpYmlsaXR5LlxuICogQG5hbWVzcGFjZVxuICogQHB1YmxpY1xuICovXG5leHBvcnQgY29uc3QgZmVDZXh0TmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZS5jb250cm9sbGVyZXh0ZW5zaW9uc1wiO1xuLyoqXG4gKiBDb2xsZWN0aW9uIG9mIGNsYXNzZXMgcHJvdmlkZWQgYnkgU0FQIEZpb3JpIGVsZW1lbnRzIGZvciB0aGUgRmxleGlibGUgUHJvZ3JhbW1pbmcgTW9kZWxcbiAqIEBuYW1lc3BhY2VcbiAqIEBwdWJsaWNcbiAqL1xuZXhwb3J0IGNvbnN0IGZlRnBtTmFtZXNwYWNlID0gXCJzYXAuZmUuY29yZS5mcG1cIjtcblxuY29uc3QgdGhpc0xpYiA9IExpYnJhcnkuaW5pdCh7XG5cdG5hbWU6IFwic2FwLmZlLmNvcmVcIixcblx0YXBpVmVyc2lvbjogMixcblx0ZGVwZW5kZW5jaWVzOiBbXCJzYXAudWkuY29yZVwiLCBcInNhcC5mZS5iYXNlXCIsIFwic2FwLmZlLm5hdmlnYXRpb25cIiwgXCJzYXAuZmUucGxhY2Vob2xkZXJcIiwgXCJzYXAuZlwiLCBcInNhcC51aS5mbFwiXSxcblx0dHlwZXM6IFtcInNhcC5mZS5jb3JlLkNyZWF0aW9uTW9kZVwiLCBcInNhcC5mZS5jb3JlLlZhcmlhbnRNYW5hZ2VtZW50XCJdLFxuXHRpbnRlcmZhY2VzOiBbXSxcblx0Y29udHJvbHM6IFtdLFxuXHRlbGVtZW50czogW10sXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby10ZW1wbGF0ZS1jdXJseS1pbi1zdHJpbmdcblx0dmVyc2lvbjogXCIke3ZlcnNpb259XCIsXG5cdG5vTGlicmFyeUNTUzogdHJ1ZSxcblx0ZXh0ZW5zaW9uczoge1xuXHRcdC8vQ29uZmlndXJhdGlvbiB1c2VkIGZvciBydWxlIGxvYWRpbmcgb2YgU3VwcG9ydCBBc3Npc3RhbnRcblx0XHRcInNhcC51aS5zdXBwb3J0XCI6IHtcblx0XHRcdHB1YmxpY1J1bGVzOiB0cnVlLFxuXHRcdFx0aW50ZXJuYWxSdWxlczogdHJ1ZVxuXHRcdH1cblx0fVxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxufSkgYXMgYW55O1xuXG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIGludm9jYXRpb24gZ3JvdXBpbmcuXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbnRoaXNMaWIuSW52b2NhdGlvbkdyb3VwaW5nID0ge1xuXHQvKipcblx0ICogSXNvbGF0ZWQuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJc29sYXRlZDogXCJJc29sYXRlZFwiLFxuXHQvKipcblx0ICogQ2hhbmdlU2V0LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2hhbmdlU2V0OiBcIkNoYW5nZVNldFwiXG59O1xuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBjcmVhdGlvbiBtb2RlLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLkNyZWF0aW9uTW9kZSA9IHtcblx0LyoqXG5cdCAqIE5ldyBQYWdlLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0TmV3UGFnZTogXCJOZXdQYWdlXCIsXG5cdC8qKlxuXHQgKiBTeW5jLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U3luYzogXCJTeW5jXCIsXG5cdC8qKlxuXHQgKiBBc3luYy5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEFzeW5jOiBcIkFzeW5jXCIsXG5cdC8qKlxuXHQgKiBEZWZlcnJlZC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERlZmVycmVkOiBcIkRlZmVycmVkXCIsXG5cdC8qKlxuXHQgKiBJbmxpbmUuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmU6IFwiSW5saW5lXCIsXG5cdC8qKlxuXHQgKiBDcmVhdGlvbiByb3cuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDcmVhdGlvblJvdzogXCJDcmVhdGlvblJvd1wiLFxuXHQvKipcblx0ICogSW5saW5lIGNyZWF0aW9uIHJvd3MuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRJbmxpbmVDcmVhdGlvblJvd3M6IFwiSW5saW5lQ3JlYXRpb25Sb3dzXCIsXG5cdC8qKlxuXHQgKiBFeHRlcm5hbCAoYnkgb3V0Ym91bmQgbmF2aWdhdGlvbikuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRFeHRlcm5hbDogXCJFeHRlcm5hbFwiLFxuXHQvKipcblx0ICogQ3JlYXRpb24gZGlhbG9nLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q3JlYXRpb25EaWFsb2c6IFwiQ3JlYXRpb25EaWFsb2dcIlxufTtcblxuRGF0YVR5cGUucmVnaXN0ZXJFbnVtKFwic2FwLmZlLmNvcmUuQ3JlYXRpb25Nb2RlXCIsIHRoaXNMaWIuQ3JlYXRpb25Nb2RlKTtcbi8qKlxuICogQXZhaWxhYmxlIHZhbHVlcyBmb3IgVmFyaWFudCBNYW5hZ2VtZW50LlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlZhcmlhbnRNYW5hZ2VtZW50ID0ge1xuXHQvKipcblx0ICogTm8gdmFyaWFudCBtYW5hZ2VtZW50IGF0IGFsbC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbmU6IFwiTm9uZVwiLFxuXG5cdC8qKlxuXHQgKiBPbmUgdmFyaWFudCBjb25maWd1cmF0aW9uIGZvciB0aGUgd2hvbGUgcGFnZS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFBhZ2U6IFwiUGFnZVwiLFxuXG5cdC8qKlxuXHQgKiBWYXJpYW50IG1hbmFnZW1lbnQgb24gY29udHJvbCBsZXZlbC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENvbnRyb2w6IFwiQ29udHJvbFwiXG59O1xuRGF0YVR5cGUucmVnaXN0ZXJFbnVtKFwic2FwLmZlLmNvcmUuVmFyaWFudE1hbmFnZW1lbnRcIiwgdGhpc0xpYi5WYXJpYW50TWFuYWdlbWVudCk7XG4vKipcbiAqIEF2YWlsYWJsZSBjb25zdGFudHMuXG4gKiBAcmVhZG9ubHlcbiAqIEBlbnVtIHtzdHJpbmd9XG4gKi9cbnRoaXNMaWIuQ29uc3RhbnRzID0ge1xuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgY2FuY2VsbGluZyBvZiBhbiBhY3Rpb24gZGlhbG9nLlxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2FuY2VsQWN0aW9uRGlhbG9nOiBcImNhbmNlbFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgY2FuY2VsbGluZyB0aGUgZGlzY2FyZCBkcmFmdC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdENhbmNlbERpc2NhcmREcmFmdDogXCJjYW5jZWxEaXNjYXJkRHJhZnRcIixcblx0Lypcblx0ICogSW5kaWNhdGVzIGZhaWx1cmUgcmV0dXJuZWQgZnJvbSBiYWNrZW5kIGR1cmluZyB0aGUgZXhlY3V0aW9uIG9mIGFuIGFjdGlvblxuXHQgKlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0QWN0aW9uRXhlY3V0aW9uRmFpbGVkOiBcImFjdGlvbkV4ZWN1dGlvbkZhaWxlZFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgZmFpbHVyZSByZXR1cm5lZCBmcm9tIGJhY2tlbmQgZHVyaW5nIGNyZWF0aW9uIG9mIGEgYnVzaW5lc3Mgb2JqZWN0ICh2aWEgZGlyZWN0IFBPU1QpXG5cdCAqXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRDcmVhdGlvbkZhaWxlZDogXCJjcmVhdGlvbkZhaWxlZFwiLFxuXHQvKlxuXHQgKiBJbmRpY2F0ZXMgZmFpbHVyZSByZXR1cm5lZCBmcm9tIG9uQmVmb3JlQ3JlYXRlIEVkaXQgRmxvdyBob29rIGNhbGxlZCBiZWZvcmUgY3JlYXRpb24gb2YgYSBidXNpbmVzcyBvYmplY3Rcblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE9uQmVmb3JlQ3JlYXRlRmFpbGVkOiBcIm9uQmVmb3JlQ3JlYXRlRmFpbGVkXCJcbn07XG5cbi8qKlxuICogUHJlZmVycmVkIGFjdGlvbiBzdGF0dXMgdmFsdWVzLlxuICogQHJlYWRvbmx5XG4gKiBAZW51bSB7c3RyaW5nfVxuICovXG50aGlzTGliLlByZWZlcnJlZEFjdGlvblN0YXR1c1R5cGUgPSB7XG5cdC8qKlxuXHQgKiBJbml0aWFsIHN0YXRlLCBubyBwcmVmZXJyZWQgYWN0aW9uIGhhcyBiZWVuIGV2YWx1YXRlZC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHROb3RTZXQ6IFwibm90U2V0XCIsXG5cdC8qKlxuXHQgKiBQcmVmZXJyZWQgYWN0aW9uIGNhbiBiZSBwZXJmb3JtZWQgKGNvbmRpdGlvbnMgYXJlIG1ldCkuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Q2FuUGVyZm9ybTogXCJjYW5QZXJmb3JtXCIsXG5cdC8qKlxuXHQgKiBQcmVmZXJyZWQgYWN0aW9uIGhhcyBiZWVuIGV4ZWN1dGVkIGFuZCBzaG91bGQgbm90IGJlIHRyaWdnZXJlZCBhZ2Fpbi5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRBbHJlYWR5UGVyZm9ybWVkOiBcImFscmVhZHlQZXJmb3JtZWRcIlxufTtcblxuLyoqXG4gKiBBdmFpbGFibGUgdmFsdWVzIGZvciBwcm9ncmFtbWluZyBtb2RlbC5cbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqL1xudGhpc0xpYi5Qcm9ncmFtbWluZ01vZGVsID0ge1xuXHQvKlxuXHQgKiBEcmFmdC5cblx0ICpcblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERyYWZ0OiBcIkRyYWZ0XCIsXG5cdC8qKlxuXHQgKiBTdGlja3kuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRTdGlja3k6IFwiU3RpY2t5XCIsXG5cdC8qKlxuXHQgKiBOb25EcmFmdC5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbkRyYWZ0OiBcIk5vbkRyYWZ0XCJcbn07XG4vKipcbiAqIEF2YWlsYWJsZSB2YWx1ZXMgZm9yIGRyYWZ0IHN0YXR1cy5cbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqL1xudGhpc0xpYi5EcmFmdFN0YXR1cyA9IHtcblx0LyoqXG5cdCAqIFNhdmluZy5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdFNhdmluZzogXCJTYXZpbmdcIixcblx0LyoqXG5cdCAqIFNhdmVkLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0U2F2ZWQ6IFwiU2F2ZWRcIixcblx0LyoqXG5cdCAqIENsZWFyLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICogQHB1YmxpY1xuXHQgKi9cblx0Q2xlYXI6IFwiQ2xlYXJcIlxufTtcbi8qKlxuICogRWRpdCBtb2RlIHZhbHVlcy5cbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqL1xudGhpc0xpYi5FZGl0TW9kZSA9IHtcblx0LyoqXG5cdCAqIFZpZXcgaXMgY3VycmVudGx5IGRpc3BsYXlpbmcgb25seS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdERpc3BsYXk6IFwiRGlzcGxheVwiLFxuXHQvKipcblx0ICogVmlldyBpcyBjdXJyZW50bHkgZWRpdGFibGUuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRFZGl0YWJsZTogXCJFZGl0YWJsZVwiXG59O1xuLyoqXG4gKiBUZW1wbGF0ZSB2aWV3cy5cbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqL1xudGhpc0xpYi5UZW1wbGF0ZUNvbnRlbnRWaWV3ID0ge1xuXHQvKipcblx0ICogSHlicmlkLlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdEh5YnJpZDogXCJIeWJyaWRcIixcblx0LyoqXG5cdCAqIENoYXJ0LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdENoYXJ0OiBcIkNoYXJ0XCIsXG5cdC8qKlxuXHQgKiBUYWJsZS5cblx0ICogQGNvbnN0YW50XG5cdCAqIEB0eXBlIHtzdHJpbmd9XG5cdCAqL1xuXHRUYWJsZTogXCJUYWJsZVwiXG59O1xuLyoqXG4gKiBQb3NzaWJsZSBpbml0aWFsIGxvYWQgKGZpcnN0IGFwcCBzdGFydHVwKSBtb2RlcyBmb3IgYSBMaXN0UmVwb3J0LlxuICogQGVudW0ge3N0cmluZ31cbiAqIEByZWFkb25seVxuICogQHB1YmxpY1xuICogQHNpbmNlIDEuODYuMFxuICovXG5leHBvcnQgZW51bSBJbml0aWFsTG9hZE1vZGUge1xuXHQvKipcblx0ICogRGF0YSB3aWxsIGJlIGxvYWRlZCBpbml0aWFsbHkuXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdEVuYWJsZWQgPSBcIkVuYWJsZWRcIixcblxuXHQvKipcblx0ICogRGF0YSB3aWxsIG5vdCBiZSBsb2FkZWQgaW5pdGlhbGx5LlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHREaXNhYmxlZCA9IFwiRGlzYWJsZWRcIixcblxuXHQvKipcblx0ICogRGF0YSB3aWxsIGJlIGxvYWRlZCBpbml0aWFsbHkgaWYgZmlsdGVycyBhcmUgc2V0LlxuXHQgKiBAcHVibGljXG5cdCAqL1xuXHRBdXRvID0gXCJBdXRvXCJcbn1cbnRoaXNMaWIuSW5pdGlhbExvYWRNb2RlID0gSW5pdGlhbExvYWRNb2RlO1xuXG4vKipcbiAqIFZhbHVlIG9mIHRoZSBzdGFydHVwIG1vZGVcbiAqIEByZWFkb25seVxuICogQGVudW0ge3N0cmluZ31cbiAqL1xudGhpc0xpYi5TdGFydHVwTW9kZSA9IHtcblx0LyoqXG5cdCAqIEFwcCBoYXMgYmVlbiBzdGFydGVkIG5vcm1hbGx5LlxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdE5vcm1hbDogXCJOb3JtYWxcIixcblx0LyoqXG5cdCAqIEFwcCBoYXMgYmVlbiBzdGFydGVkIHdpdGggc3RhcnR1cCBrZXlzIChkZWVwbGluaykuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0RGVlcGxpbms6IFwiRGVlcGxpbmtcIixcblx0LyoqXG5cdCAqIEFwcCBoYXMgYmVlbiBzdGFydGVkIGluICdjcmVhdGUnIG1vZGUuXG5cdCAqIEBjb25zdGFudFxuXHQgKiBAdHlwZSB7c3RyaW5nfVxuXHQgKi9cblx0Q3JlYXRlOiBcIkNyZWF0ZVwiLFxuXHQvKipcblx0ICogQXBwIGhhcyBiZWVuIHN0YXJ0ZWQgaW4gJ2F1dG8gY3JlYXRlJyBtb2RlIHdoaWNoIG1lYW5zIHRvIHNraXAgYW55IGRpYWxvZ3Mgb24gc3RhcnR1cFxuXHQgKiBAY29uc3RhbnRcblx0ICogQHR5cGUge3N0cmluZ31cblx0ICovXG5cdEF1dG9DcmVhdGU6IFwiQXV0b0NyZWF0ZVwiXG59O1xuXG4vKipcbiAqIFBvc3NpYmxlIG5hdmlnYXRpb24gbW9kZXMgZm9yIGEgcGFnaW5hdGlvbi5cbiAqIEBlbnVtIHtzdHJpbmd9XG4gKiBAcmVhZG9ubHlcbiAqIEBwdWJsaWNcbiAqIEBzaW5jZSAxLjEzOC4wXG4gKi9cblxuZXhwb3J0IGVudW0gQ29udGV4dE5hdmlnYXRpb25UeXBlIHtcblx0LyoqXG5cdCAqIEluZGljYXRlcyB0aGF0IHRoZXJlIGlzIG5vIG5hdmlnYXRpb24uXG5cdCAqIEBwdWJsaWNcblx0ICovXG5cdE5vbmUgPSBcIk5vbmVcIixcblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIG5hdmlnYXRpb24gaXMgdG8gYSBzdWJvYmplY3QgcGFnZSB3aXRoaW4gdGhlIHNhbWUgYXBwbGljYXRpb24uXG5cdCAqICBAcHVibGljXG5cdCAqL1xuXHRJbnRlcm5hbCA9IFwiSW50ZXJuYWxcIixcblxuXHQvKipcblx0ICogSW5kaWNhdGVzIHRoYXQgdGhlIG5hdmlnYXRpb24gaXMgdG8gYW4gZXh0ZXJuYWwgYXBwbGljYXRpb24uXG5cdCAqICBAcHVibGljXG5cdCAqL1xuXHRFeHRlcm5hbCA9IFwiRXh0ZXJuYWxcIlxufVxuXG50aGlzTGliLkNvbnRleHROYXZpZ2F0aW9uVHlwZSA9IENvbnRleHROYXZpZ2F0aW9uVHlwZTtcblxuLy8gZXhwbGljaXQgdHlwZSB0byBoYW5kbGUgYmFja3dhcmQgY29tcGF0aWJpbGl0eSB3aXRoIGJvb2xlYW4gdmFsdWVzXG5jb25zdCBJbml0aWFsTG9hZFR5cGUgPSBEYXRhVHlwZS5jcmVhdGVUeXBlKFwic2FwLmZlLmNvcmUuSW5pdGlhbExvYWRNb2RlXCIsIHtcblx0ZGVmYXVsdFZhbHVlOiB0aGlzTGliLkluaXRpYWxMb2FkTW9kZS5BdXRvLFxuXHRpc1ZhbGlkOiBmdW5jdGlvbiAodlZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG5cdFx0aWYgKHR5cGVvZiB2VmFsdWUgPT09IFwiYm9vbGVhblwiKSB7XG5cdFx0XHRMb2cud2FybmluZyhcblx0XHRcdFx0XCJERVBSRUNBVEVEOiBib29sZWFuIHZhbHVlIG5vdCBhbGxvd2VkIGZvciAnaW5pdGlhbExvYWQnIG1hbmlmZXN0IHNldHRpbmcgLSBzdXBwb3J0ZWQgdmFsdWVzIGFyZTogRGlzYWJsZWR8RW5hYmxlZHxBdXRvXCJcblx0XHRcdCk7XG5cdFx0fVxuXHRcdHJldHVybiB2VmFsdWUgPT09IHVuZGVmaW5lZCB8fCB2VmFsdWUgPT09IG51bGwgfHwgdHlwZW9mIHZWYWx1ZSA9PT0gXCJib29sZWFuXCIgfHwgdGhpc0xpYi5Jbml0aWFsTG9hZE1vZGUuaGFzT3duUHJvcGVydHkodlZhbHVlKTtcblx0fVxufSk7XG4vLyBub3JtYWxpemUgYSB2YWx1ZSwgdGFraW5nIGNhcmUgb2YgYm9vbGVhbiB0eXBlXG5Jbml0aWFsTG9hZFR5cGUuc2V0Tm9ybWFsaXplcihmdW5jdGlvbiAodlZhbHVlOiBzdHJpbmcgfCBib29sZWFuIHwgdW5kZWZpbmVkKSB7XG5cdGlmICghdlZhbHVlKSB7XG5cdFx0Ly8gdW5kZWZpbmVkLCBudWxsIG9yIGZhbHNlXG5cdFx0cmV0dXJuIHRoaXNMaWIuSW5pdGlhbExvYWRNb2RlLkRpc2FibGVkO1xuXHR9XG5cdHJldHVybiB2VmFsdWUgPT09IHRydWUgPyB0aGlzTGliLkluaXRpYWxMb2FkTW9kZS5FbmFibGVkIDogdlZhbHVlO1xufSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuVGVtcGxhdGVkVmlld1NlcnZpY2VcIiwgbmV3IFRlbXBsYXRlZFZpZXdTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5SZXNvdXJjZU1vZGVsU2VydmljZVwiLCBuZXcgUmVzb3VyY2VNb2RlbFNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkNhY2hlSGFuZGxlclNlcnZpY2VcIiwgbmV3IENhY2hlSGFuZGxlclNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkNvbGxhYm9yYXRpb25NYW5hZ2VyU2VydmljZVwiLCBuZXcgQ29sbGFib3JhdGlvbk1hbmFnZXJTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5WaWV3UHJlbG9hZGVyU2VydmljZVwiLCBuZXcgVmlld1ByZWxvYWRlclNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLk5hdmlnYXRpb25TZXJ2aWNlXCIsIG5ldyBOYXZpZ2F0aW9uU2VydmljZSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5Sb3V0aW5nU2VydmljZVwiLCBuZXcgUm91dGluZ1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlNpZGVFZmZlY3RzU2VydmljZVwiLCBuZXcgU2lkZUVmZmVjdHNTZXJ2aWNlRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5TaGVsbFNlcnZpY2VzXCIsIG5ldyBTaGVsbFNlcnZpY2VzRmFjdG9yeSgpKTtcblNlcnZpY2VGYWN0b3J5UmVnaXN0cnkucmVnaXN0ZXIoXCJzYXAuZmUuY29yZS5zZXJ2aWNlcy5FbnZpcm9ubWVudFNlcnZpY2VcIiwgbmV3IEVudmlyb25tZW50U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQXN5bmNDb21wb25lbnRTZXJ2aWNlXCIsIG5ldyBBc3luY0NvbXBvbmVudFNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLkNvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VcIiwgbmV3IENvbGxhYm9yYXRpdmVUb29sc1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlRlbGVtZXRyeVNlcnZpY2VcIiwgbmV3IFRlbGVtZXRyeVNlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLlZhbHVlSGVscEhpc3RvcnlTZXJ2aWNlXCIsIG5ldyBWYWx1ZUhlbHBIaXN0b3J5U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ29sbGFib3JhdGl2ZURyYWZ0U2VydmljZVwiLCBuZXcgQ29sbGFib3JhdGl2ZURyYWZ0U2VydmljZUZhY3RvcnkoKSk7XG5TZXJ2aWNlRmFjdG9yeVJlZ2lzdHJ5LnJlZ2lzdGVyKFwic2FwLmZlLmNvcmUuc2VydmljZXMuQ29udGV4dFNoYXJpbmdTZXJ2aWNlXCIsIG5ldyBDb250ZXh0U2hhcmluZ1NlcnZpY2VGYWN0b3J5KCkpO1xuU2VydmljZUZhY3RvcnlSZWdpc3RyeS5yZWdpc3RlcihcInNhcC5mZS5jb3JlLnNlcnZpY2VzLklubGluZUVkaXRTZXJ2aWNlXCIsIG5ldyBJbmxpbmVFZGl0U2VydmljZUZhY3RvcnkoKSk7XG5cbmV4cG9ydCB0eXBlIENvcmVMaWIgPSB7XG5cdEludm9jYXRpb25Hcm91cGluZzoge1xuXHRcdENoYW5nZVNldDogXCJDaGFuZ2VTZXRcIjtcblx0XHRJc29sYXRlZDogXCJJc29sYXRlZFwiO1xuXHR9O1xufTtcbmV4cG9ydCBkZWZhdWx0IHRoaXNMaWI7XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7O0VBcUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7RUFDTyxNQUFNQSxXQUFXLEdBQUcsUUFBUTtFQUNuQztBQUNBO0FBQ0E7QUFDQTtBQUNBO0VBSkFDLFFBQUEsQ0FBQUQsV0FBQSxHQUFBQSxXQUFBO0VBS08sTUFBTUUsZUFBZSxHQUFHLGFBQWE7RUFDNUM7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBRCxRQUFBLENBQUFDLGVBQUEsR0FBQUEsZUFBQTtFQUtPLE1BQU1DLGVBQWUsR0FBRyxrQ0FBa0M7RUFDakU7QUFDQTtBQUNBO0FBQ0E7QUFDQTtFQUpBRixRQUFBLENBQUFFLGVBQUEsR0FBQUEsZUFBQTtFQUtPLE1BQU1DLGNBQWMsR0FBRyxpQkFBaUI7RUFBQ0gsUUFBQSxDQUFBRyxjQUFBLEdBQUFBLGNBQUE7RUFFaEQsTUFBTUMsT0FBTyxHQUFHQyxPQUFPLENBQUNDLElBQUksQ0FBQztJQUM1QkMsSUFBSSxFQUFFLGFBQWE7SUFDbkJDLFVBQVUsRUFBRSxDQUFDO0lBQ2JDLFlBQVksRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLEVBQUUsbUJBQW1CLEVBQUUsb0JBQW9CLEVBQUUsT0FBTyxFQUFFLFdBQVcsQ0FB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
@@ -63,7 +63,7 @@ export const feFpmNamespace = "sap.fe.core.fpm";
63
63
  const thisLib = Library.init({
64
64
  name: "sap.fe.core",
65
65
  apiVersion: 2,
66
- dependencies: ["sap.ui.core", "sap.fe.base", "sap.fe.navigation", "sap.fe.placeholder", "sap.f"],
66
+ dependencies: ["sap.ui.core", "sap.fe.base", "sap.fe.navigation", "sap.fe.placeholder", "sap.f", "sap.ui.fl"],
67
67
  types: ["sap.fe.core.CreationMode", "sap.fe.core.VariantManagement"],
68
68
  interfaces: [],
69
69
  controls: [],
@@ -252,6 +252,33 @@ thisLib.Constants = {
252
252
  */
253
253
  OnBeforeCreateFailed: "onBeforeCreateFailed"
254
254
  };
255
+
256
+ /**
257
+ * Preferred action status values.
258
+ * @readonly
259
+ * @enum {string}
260
+ */
261
+ thisLib.PreferredActionStatusType = {
262
+ /**
263
+ * Initial state, no preferred action has been evaluated.
264
+ * @constant
265
+ * @type {string}
266
+ */
267
+ NotSet: "notSet",
268
+ /**
269
+ * Preferred action can be performed (conditions are met).
270
+ * @constant
271
+ * @type {string}
272
+ */
273
+ CanPerform: "canPerform",
274
+ /**
275
+ * Preferred action has been executed and should not be triggered again.
276
+ * @constant
277
+ * @type {string}
278
+ */
279
+ AlreadyPerformed: "alreadyPerformed"
280
+ };
281
+
255
282
  /**
256
283
  * Available values for programming model.
257
284
  * @readonly
@@ -363,7 +363,7 @@ C_TRANSACTION_HELPER_SAPFE_ACTION_CREATE_BUTTON_CREATE=Create
363
363
  C_ACTION_PARTIAL_FRAGMENT_SAPFE_CONTINUE_ANYWAY=Continue Anyway
364
364
 
365
365
  # XFLD,100: Text for Partial Processing
366
- C_ACTION_PARTIAL_FRAGMENT_SAPFE_BOUND_ACTION=One selected object can''t be processed.
366
+ C_ACTION_PARTIAL_FRAGMENT_SAPFE_BOUND_ACTION=One selected object can't be processed.
367
367
 
368
368
  # XFLD,100: Text for Partial Processing
369
369
  C_ACTION_PARTIAL_FRAGMENT_SAPFE_BOUND_ACTION_PLURAL={0} selected objects can''t be processed.
@@ -862,3 +862,10 @@ C_INLINE_EDIT_DRAFT_EXISTS=You can't edit this object at the moment. \n\
862
862
 
863
863
  # Aria Text for the Form
864
864
  C_FORM_ARIA_TEXT={0} form
865
+ # ----------------------Accessibility----------------------
866
+
867
+ # AI Actions Suffix
868
+ C_ACCESSIBILITY_AI_ACTION_ARIA_TEXT=AI generated response
869
+
870
+ # YMSG: view details link text for message strip
871
+ C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGE_STRIP_LINK_TEXT=View details
@@ -547,3 +547,10 @@ C_INLINE_EDIT_BEFORENAVIGATION_DISCARD_TOL=\u0633\u064A\u062A\u0645 \u0641\u0642
547
547
  C_INLINE_EDIT_BEFORENAVIGATION_MESSAGE=\u0644\u0642\u062F \u0623\u062C\u0631\u064A\u062A \u062A\u063A\u064A\u064A\u0631\u0627\u062A \u0639\u0644\u0649 \u062D\u0642\u0644 \u0648\u0627\u062D\u062F \u0639\u0644\u0649 \u0627\u0644\u0623\u0642\u0644. \u0645\u0627 \u0627\u0644\u0630\u064A \u062A\u0631\u064A\u062F \u0641\u0639\u0644\u0647\u061F
548
548
 
549
549
  C_INLINE_EDIT_DRAFT_EXISTS=\u0644\u0627 \u064A\u0645\u0643\u0646\u0643 \u062A\u062D\u0631\u064A\u0631 \u0647\u0630\u0627 \u0627\u0644\u0643\u0627\u0626\u0646 \u0641\u064A \u0627\u0644\u0648\u0642\u062A \u0627\u0644\u062D\u0627\u0644\u064A.\n\u064A\u062A\u0645 \u062A\u062D\u0631\u064A\u0631\u0647 \u0628\u0627\u0644\u0641\u0639\u0644. \u0627\u0644\u0631\u062C\u0627\u0621 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629 \u0645\u0631\u0629 \u0623\u062E\u0631\u0649 \u0644\u0627\u062D\u0642\u064B\u0627.
550
+
551
+
552
+ C_FORM_ARIA_TEXT=\u0627\u0644\u0646\u0645\u0648\u0630\u062C {0}
553
+
554
+ C_ACCESSIBILITY_AI_ACTION_ARIA_TEXT=\u0627\u0644\u0627\u0633\u062A\u062C\u0627\u0628\u0629 \u0645\u064F\u0646\u0634\u0623\u0629 \u0628\u0648\u0627\u0633\u0637\u0629 \u0627\u0644\u0630\u0643\u0627\u0621 \u0627\u0644\u0627\u0635\u0637\u0646\u0627\u0639\u064A
555
+
556
+ C_MESSAGE_HANDLING_SAPFE_ERROR_MESSAGE_STRIP_LINK_TEXT=\u0639\u0631\u0636 \u0627\u0644\u062A\u0641\u0627\u0635\u064A\u0644