@sapui5/sap.fe.core 1.117.0 → 1.118.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/core/.library +1 -1
  3. package/src/sap/fe/core/AppStateHandler-dbg.js +1 -1
  4. package/src/sap/fe/core/AppStateHandler.ts +3 -3
  5. package/src/sap/fe/core/CommonUtils-dbg.js +4 -4
  6. package/src/sap/fe/core/CommonUtils.js +1 -1
  7. package/src/sap/fe/core/CommonUtils.js.map +1 -1
  8. package/src/sap/fe/core/CommonUtils.ts +3 -3
  9. package/src/sap/fe/core/ExtensionAPI-dbg.js +5 -10
  10. package/src/sap/fe/core/ExtensionAPI.js +1 -1
  11. package/src/sap/fe/core/ExtensionAPI.js.map +1 -1
  12. package/src/sap/fe/core/ExtensionAPI.ts +9 -14
  13. package/src/sap/fe/core/InsightsFormattersExtension-dbg.js +27 -0
  14. package/src/sap/fe/core/InsightsFormattersExtension.js +6 -0
  15. package/src/sap/fe/core/InsightsFormattersExtension.js.map +1 -0
  16. package/src/sap/fe/core/InsightsFormattersExtension.ts +15 -0
  17. package/src/sap/fe/core/controllerextensions/EditFlow-dbg.js +58 -44
  18. package/src/sap/fe/core/controllerextensions/EditFlow.js +1 -1
  19. package/src/sap/fe/core/controllerextensions/EditFlow.js.map +1 -1
  20. package/src/sap/fe/core/controllerextensions/EditFlow.ts +59 -51
  21. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation-dbg.js +2 -3
  22. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js +1 -1
  23. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.js.map +1 -1
  24. package/src/sap/fe/core/controllerextensions/IntentBasedNavigation.ts +1 -5
  25. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation-dbg.js +14 -14
  26. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js +1 -1
  27. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.js.map +1 -1
  28. package/src/sap/fe/core/controllerextensions/InternalIntentBasedNavigation.ts +16 -15
  29. package/src/sap/fe/core/controllerextensions/InternalRouting-dbg.js +6 -2
  30. package/src/sap/fe/core/controllerextensions/InternalRouting.js +1 -1
  31. package/src/sap/fe/core/controllerextensions/InternalRouting.js.map +1 -1
  32. package/src/sap/fe/core/controllerextensions/InternalRouting.ts +5 -1
  33. package/src/sap/fe/core/controllerextensions/Routing-dbg.js +3 -2
  34. package/src/sap/fe/core/controllerextensions/Routing.js +1 -1
  35. package/src/sap/fe/core/controllerextensions/Routing.js.map +1 -1
  36. package/src/sap/fe/core/controllerextensions/Routing.ts +3 -2
  37. package/src/sap/fe/core/controllerextensions/ViewState-dbg.js +4 -1
  38. package/src/sap/fe/core/controllerextensions/ViewState.js +1 -1
  39. package/src/sap/fe/core/controllerextensions/ViewState.js.map +1 -1
  40. package/src/sap/fe/core/controllerextensions/ViewState.ts +5 -2
  41. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper-dbg.js +99 -73
  42. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js +1 -1
  43. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.js.map +1 -1
  44. package/src/sap/fe/core/controllerextensions/editFlow/TransactionHelper.ts +116 -88
  45. package/src/sap/fe/core/controllerextensions/editFlow/draft-dbg.js +14 -3
  46. package/src/sap/fe/core/controllerextensions/editFlow/draft.js +1 -1
  47. package/src/sap/fe/core/controllerextensions/editFlow/draft.js.map +1 -1
  48. package/src/sap/fe/core/controllerextensions/editFlow/draft.ts +18 -1
  49. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling-dbg.js +3 -2
  50. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js +1 -1
  51. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.js.map +1 -1
  52. package/src/sap/fe/core/controllerextensions/messageHandler/messageHandling.ts +2 -1
  53. package/src/sap/fe/core/controls/ActionParameterDialog.fragment.xml +2 -2
  54. package/src/sap/fe/core/controls/NonComputedVisibleKeyFieldsDialog.fragment.xml +1 -1
  55. package/src/sap/fe/core/controls/filterbar/FilterContainer-dbg.js +4 -2
  56. package/src/sap/fe/core/controls/filterbar/FilterContainer.js +1 -1
  57. package/src/sap/fe/core/controls/filterbar/FilterContainer.js.map +1 -1
  58. package/src/sap/fe/core/controls/filterbar/FilterContainer.ts +2 -1
  59. package/src/sap/fe/core/controls/massEdit/MassEditField.fragment.xml +2 -2
  60. package/src/sap/fe/core/controls/massEdit/MassEditHandlers-dbg.js +5 -5
  61. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js +1 -1
  62. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.js.map +1 -1
  63. package/src/sap/fe/core/controls/massEdit/MassEditHandlers.ts +4 -4
  64. package/src/sap/fe/core/converters/ManifestSettings-dbg.js +1 -1
  65. package/src/sap/fe/core/converters/ManifestSettings.ts +15 -0
  66. package/src/sap/fe/core/converters/annotations/DataField-dbg.js +3 -3
  67. package/src/sap/fe/core/converters/annotations/DataField.js +1 -1
  68. package/src/sap/fe/core/converters/annotations/DataField.js.map +1 -1
  69. package/src/sap/fe/core/converters/annotations/DataField.ts +4 -4
  70. package/src/sap/fe/core/converters/controls/Common/DataVisualization-dbg.js +3 -2
  71. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js +1 -1
  72. package/src/sap/fe/core/converters/controls/Common/DataVisualization.js.map +1 -1
  73. package/src/sap/fe/core/converters/controls/Common/DataVisualization.ts +5 -3
  74. package/src/sap/fe/core/converters/controls/Common/Table-dbg.js +78 -54
  75. package/src/sap/fe/core/converters/controls/Common/Table.js +1 -1
  76. package/src/sap/fe/core/converters/controls/Common/Table.js.map +1 -1
  77. package/src/sap/fe/core/converters/controls/Common/Table.ts +82 -62
  78. package/src/sap/fe/core/converters/controls/ListReport/FilterBar-dbg.js +14 -5
  79. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js +1 -1
  80. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.js.map +1 -1
  81. package/src/sap/fe/core/converters/controls/ListReport/FilterBar.ts +16 -5
  82. package/src/sap/fe/core/formatters/StandardFormatter-dbg.js +14 -1
  83. package/src/sap/fe/core/formatters/StandardFormatter.js +1 -1
  84. package/src/sap/fe/core/formatters/StandardFormatter.js.map +1 -1
  85. package/src/sap/fe/core/formatters/StandardFormatter.ts +13 -0
  86. package/src/sap/fe/core/fpm/manifest.json +1 -1
  87. package/src/sap/fe/core/helpers/DeleteHelper-dbg.js +4 -1
  88. package/src/sap/fe/core/helpers/DeleteHelper.js +1 -1
  89. package/src/sap/fe/core/helpers/DeleteHelper.js.map +1 -1
  90. package/src/sap/fe/core/helpers/DeleteHelper.ts +3 -0
  91. package/src/sap/fe/core/helpers/MessageStrip-dbg.js +2 -2
  92. package/src/sap/fe/core/helpers/MessageStrip.js +1 -1
  93. package/src/sap/fe/core/helpers/MessageStrip.js.map +1 -1
  94. package/src/sap/fe/core/helpers/MessageStrip.ts +1 -1
  95. package/src/sap/fe/core/helpers/TitleHelper-dbg.js +6 -4
  96. package/src/sap/fe/core/helpers/TitleHelper.js +1 -1
  97. package/src/sap/fe/core/helpers/TitleHelper.js.map +1 -1
  98. package/src/sap/fe/core/helpers/TitleHelper.ts +16 -6
  99. package/src/sap/fe/core/helpers/ToES6Promise-dbg.js +14 -12
  100. package/src/sap/fe/core/helpers/ToES6Promise.js +1 -1
  101. package/src/sap/fe/core/helpers/ToES6Promise.js.map +1 -1
  102. package/src/sap/fe/core/helpers/ToES6Promise.ts +5 -5
  103. package/src/sap/fe/core/library-dbg.js +1 -1
  104. package/src/sap/fe/core/library-preload.js +36 -36
  105. package/src/sap/fe/core/library-preload.js.map +1 -1
  106. package/src/sap/fe/core/library.js +1 -1
  107. package/src/sap/fe/core/manifest.json +1 -1
  108. package/src/sap/fe/core/messagebundle_ca.properties +7 -1
  109. package/src/sap/fe/core/messagebundle_en_GB.properties +7 -1
  110. package/src/sap/fe/core/messagebundle_es.properties +7 -1
  111. package/src/sap/fe/core/messagebundle_es_MX.properties +7 -1
  112. package/src/sap/fe/core/messagebundle_fi.properties +7 -1
  113. package/src/sap/fe/core/messagebundle_fr_CA.properties +7 -1
  114. package/src/sap/fe/core/messagebundle_it.properties +7 -1
  115. package/src/sap/fe/core/messagebundle_ko.properties +7 -1
  116. package/src/sap/fe/core/messagebundle_nl.properties +7 -1
  117. package/src/sap/fe/core/messagebundle_no.properties +7 -1
  118. package/src/sap/fe/core/services/NavigationServiceFactory-dbg.js +3 -3
  119. package/src/sap/fe/core/services/NavigationServiceFactory.ts +6 -5
  120. package/src/sap/fe/core/templating/CommonFormatters-dbg.js +7 -6
  121. package/src/sap/fe/core/templating/CommonFormatters.js +1 -1
  122. package/src/sap/fe/core/templating/CommonFormatters.js.map +1 -1
  123. package/src/sap/fe/core/templating/CommonFormatters.ts +10 -5
  124. package/src/sap/fe/core/templating/DataModelPathHelper-dbg.js +19 -1
  125. package/src/sap/fe/core/templating/DataModelPathHelper.js +1 -1
  126. package/src/sap/fe/core/templating/DataModelPathHelper.js.map +1 -1
  127. package/src/sap/fe/core/templating/DataModelPathHelper.ts +23 -1
  128. package/src/sap/fe/core/templating/UIFormatters-dbg.js +28 -17
  129. package/src/sap/fe/core/templating/UIFormatters.js +1 -1
  130. package/src/sap/fe/core/templating/UIFormatters.js.map +1 -1
  131. package/src/sap/fe/core/templating/UIFormatters.ts +22 -20
  132. package/src/sap/fe/core/type/TypeUtil-dbg.js +0 -53
  133. package/src/sap/fe/core/type/TypeUtil.js +0 -6
  134. package/src/sap/fe/core/type/TypeUtil.js.map +0 -1
  135. package/src/sap/fe/core/type/TypeUtil.ts +0 -53
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sapui5/sap.fe.core",
3
- "version": "1.117.0",
3
+ "version": "1.118.0",
4
4
  "description": "SAPUI5 Library sap.fe.core",
5
5
  "keywords": [
6
6
  "sapui5",
@@ -6,7 +6,7 @@
6
6
  SAP UI development toolkit for HTML5 (SAPUI5)
7
7
  (c) Copyright 2009-2021 SAP SE. All rights reserved
8
8
  </copyright>
9
- <version>1.117.0</version>
9
+ <version>1.118.0</version>
10
10
 
11
11
  <documentation>UI5 library: sap.fe.core</documentation>
12
12
 
@@ -226,4 +226,4 @@ sap.ui.define(["sap/base/Log", "sap/base/util/deepEqual", "sap/fe/core/helpers/C
226
226
  */
227
227
  return AppStateHandler;
228
228
  }, true);
229
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiQXBwU3RhdGVIYW5kbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJvQXBwQ29tcG9uZW50IiwiX21DdXJyZW50QXBwU3RhdGUiLCJzSWQiLCJnZXRJZCIsIm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCIsImJOb1JvdXRlQ2hhbmdlIiwiTG9nIiwiaW5mbyIsImNyZWF0ZUFwcFN0YXRlIiwiY3JlYXRlQXBwUGFyYW1ldGVycyIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJyZXBsYWNlSGFzaCIsInNraXBNZXJnZSIsIm5hdmlnYXRpb25TZXJ2aWNlIiwiZ2V0TmF2aWdhdGlvblNlcnZpY2UiLCJyb3V0ZXJQcm94eSIsImdldFJvdXRlclByb3h5IiwiaGFzaCIsImdldEhhc2giLCJjb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiaXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImlubmVyQXBwU3RhdGUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsImFwcFN0YXRlRGF0YSIsImFwcFN0YXRlIiwiYXBwU3RhdGVLZXkiLCJkZWVwRXF1YWwiLCJzdG9yZUlubmVyQXBwU3RhdGVBc3luYyIsInNOZXdIYXNoIiwicmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJuYXZUb0hhc2giLCJ1bmRlZmluZWQiLCJvRXJyb3IiLCJlcnJvciIsImZpbmRBcHBTdGF0ZUluSGFzaCIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJpIiwibGVuZ3RoIiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJ2aWV3SWQiLCJuYXZUeXBlIiwia2V5IiwiaHlicmlkIiwiaUFwcFN0YXRlIiwia2V5cyIsImFwcGx5QXBwU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNoZWNrSWZMYXN0U2VlblJlY29yZCIsImxvY2siLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJ0b0VTNlByb21pc2UiLCJwYXJzZU5hdmlnYXRpb24iLCJjYXRjaCIsImFFcnJvckRhdGEiLCJ3YXJuaW5nIiwidGhlbiIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsIl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQiLCJhcHBseVZpZXdTdGF0ZSIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJCYXNlT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBTdGF0ZUhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBFcXVhbFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0b0VTNlByb21pc2UgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVG9FUzZQcm9taXNlXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbnR5cGUgQXBwU3RhdGUgPSB7XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgQXBwRGF0YSA9IHtcblx0b0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnQ7XG5cdG9TZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50O1xuXHRiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5OiBib29sZWFuO1xuXHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdGlBcHBTdGF0ZT86IHtcblx0XHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdH07XG59O1xuY29uc3QgU0tJUF9NRVJHRV9LRVkgPSBcInNraXBNZXJnZVwiO1xuZXhwb3J0IHR5cGUgSUFwcFN0YXRlID0ge1xuXHRhcHBTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEYXRhSW5mbyA9IHtcblx0YXBwU3RhdGVEYXRhOiB7IGFwcFN0YXRlOiBvYmplY3QgfTtcblx0YXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGw7XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcIilcbmNsYXNzIEFwcFN0YXRlSGFuZGxlciBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgc0lkOiBzdHJpbmc7XG5cblx0cHVibGljIG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblxuXHRwdWJsaWMgYk5vUm91dGVDaGFuZ2U6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBfbUN1cnJlbnRBcHBTdGF0ZT86IEFwcFN0YXRlID0ge307XG5cblx0bmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gYCR7b0FwcENvbXBvbmVudC5nZXRJZCgpfS9BcHBTdGF0ZUhhbmRsZXJgO1xuXHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0ID0gMDtcblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblxuXHRnZXRJZCgpIHtcblx0XHRyZXR1cm4gdGhpcy5zSWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICogUmVwbGFjZXMgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGFwcHN0YXRlIGJhc2VkIG9uIHJlcGxhY2VIYXNoXG5cdCAqXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIG5ldyBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5yZXBsYWNlSGFzaCBCb29sZWFuIHdoaWNoIGRldGVybWluZXMgdG8gcmVwbGFjZSB0aGUgaGFzaCB3aXRoIHRoZSBuZXcgZ2VuZXJhdGVkIGtleVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5za2lwTWVyZ2UgQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHNraXAgdGhlIGtleSB1c2VyIHNoaW5lIHRocm91Z2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGEgb3IgYXBwc3RhdGUga2V5IGJhc2VkIG9uIHJldHVybktleSBwcm9wZXJ0eVxuXHQgKi9cblx0YXN5bmMgY3JlYXRlQXBwU3RhdGUoY3JlYXRlQXBwUGFyYW1ldGVycz86IHsgcmVwbGFjZUhhc2g/OiBib29sZWFuOyBza2lwTWVyZ2U/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQgfCBBcHBEYXRhSW5mbz4ge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHJlcGxhY2VIYXNoID0gdHJ1ZSwgc2tpcE1lcmdlID0gZmFsc2UgfSA9IGNyZWF0ZUFwcFBhcmFtZXRlcnMgfHwge307XG5cblx0XHRjb25zdCBuYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpLFxuXHRcdFx0cm91dGVyUHJveHkgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKSxcblx0XHRcdGhhc2ggPSByb3V0ZXJQcm94eS5nZXRIYXNoKCksXG5cdFx0XHRjb250cm9sbGVyID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpLFxuXHRcdFx0aXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIWNvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiAke2NvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCl9YCk7XG5cdFx0fVxuXHRcdGxldCBpbm5lckFwcFN0YXRlID0gYXdhaXQgY29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKTtcblx0XHRpZiAoc2tpcE1lcmdlKSB7XG5cdFx0XHRpbm5lckFwcFN0YXRlID0geyAuLi5pbm5lckFwcFN0YXRlLCAuLi57IHNraXBNZXJnZSB9IH07XG5cdFx0fVxuXHRcdGNvbnN0IGFwcFN0YXRlRGF0YTogeyBhcHBTdGF0ZTogb2JqZWN0IH0gPSB7IGFwcFN0YXRlOiBpbm5lckFwcFN0YXRlIH07XG5cdFx0bGV0IGFwcFN0YXRlS2V5OiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblx0XHRpZiAoaW5uZXJBcHBTdGF0ZSAmJiAhZGVlcEVxdWFsKHRoaXMuX21DdXJyZW50QXBwU3RhdGUsIGlubmVyQXBwU3RhdGUpKSB7XG5cdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlID0gaW5uZXJBcHBTdGF0ZTtcblx0XHRcdHRyeSB7XG5cdFx0XHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0Kys7XG5cdFx0XHRcdGFwcFN0YXRlS2V5ID0gYXdhaXQgbmF2aWdhdGlvblNlcnZpY2Uuc3RvcmVJbm5lckFwcFN0YXRlQXN5bmMoYXBwU3RhdGVEYXRhLCB0cnVlLCB0cnVlKTtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogQXBwc3RhdGUgc3RvcmVkXCIpO1xuXHRcdFx0XHRpZiAocmVwbGFjZUhhc2ggPT09IHRydWUpIHtcblx0XHRcdFx0XHRjb25zdCBzTmV3SGFzaCA9IG5hdmlnYXRpb25TZXJ2aWNlLnJlcGxhY2VJbm5lckFwcFN0YXRlS2V5KGhhc2gsIGFwcFN0YXRlS2V5KTtcblx0XHRcdFx0XHR0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdC0tO1xuXHRcdFx0XHRcdGlmICh0aGlzLm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCA9PT0gMCAmJiBzTmV3SGFzaCAhPT0gaGFzaCkge1xuXHRcdFx0XHRcdFx0cm91dGVyUHJveHkubmF2VG9IYXNoKHNOZXdIYXNoLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCAhaXNTdGlja3lNb2RlKTtcblx0XHRcdFx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSB0cnVlO1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBuYXZUb0hhc2hcIik7XG5cdFx0XHRcdH1cblx0XHRcdH0gY2F0Y2ggKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3Iob0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHR9XG5cdFx0fSBlbHNlIHtcblx0XHRcdGFwcFN0YXRlS2V5ID0gcm91dGVyUHJveHkuZmluZEFwcFN0YXRlSW5IYXNoKGhhc2gpIGFzIHN0cmluZztcblx0XHR9XG5cdFx0cmV0dXJuIHtcblx0XHRcdGFwcFN0YXRlRGF0YTogYXBwU3RhdGVEYXRhLFxuXHRcdFx0YXBwU3RhdGVLZXk6IGFwcFN0YXRlS2V5XG5cdFx0fTtcblx0fVxuXG5cdF9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyhvQXBwRGF0YTogQXBwRGF0YSwgc05hdlR5cGU6IHN0cmluZyk6IE5hdmlnYXRpb25QYXJhbWV0ZXIge1xuXHRcdHJldHVybiBPYmplY3QuYXNzaWduKHt9LCBvQXBwRGF0YSwge1xuXHRcdFx0c2VsZWN0aW9uVmFyaWFudERlZmF1bHRzOiBvQXBwRGF0YS5vRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCxcblx0XHRcdHNlbGVjdGlvblZhcmlhbnQ6IG9BcHBEYXRhLm9TZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0cmVxdWlyZXNTdGFuZGFyZFZhcmlhbnQ6ICFvQXBwRGF0YS5iTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5LFxuXHRcdFx0bmF2aWdhdGlvblR5cGU6IHNOYXZUeXBlXG5cdFx0fSk7XG5cdH1cblxuXHRfY2hlY2tJZkxhc3RTZWVuUmVjb3JkKHZpZXc/OiBWaWV3KSB7XG5cdFx0Ly9nZXR0aW5nIHRoZSBpbnRlcm5hbCBtb2RlbCBjb250ZXh0IGluIG9yZGVyIHRvIGZldGNoIHRoZSB0ZWNobmljYWxrZXlzIG9mIGxhc3Qgc2VlbiByZWNvcmQgYW5kIGNsb3NlIGNvbHVtbiBmbGFnIHNldCBpbiB0aGUgaW50ZXJuYWxyb3V0aW5nIGZvciByZXRhaW5pbmcgc2V0dGluZ3MgaW4gcGVyc2lzdGVuY2UgbW9kZVxuXHRcdGNvbnN0IGludGVybmFsTW9kZWxDb250ZXh0ID0gdmlldyAmJiAodmlldy5nZXRCaW5kaW5nQ29udGV4dChcImludGVybmFsXCIpIGFzIEludGVybmFsTW9kZWxDb250ZXh0KTtcblx0XHRpZiAoaW50ZXJuYWxNb2RlbENvbnRleHQgJiYgaW50ZXJuYWxNb2RlbENvbnRleHQuZ2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIikgPT09IHRydWUpIHtcblx0XHRcdGNvbnN0IHRlY2huaWNhbEtleXNPYmplY3QgPSBpbnRlcm5hbE1vZGVsQ29udGV4dCAmJiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcInRlY2huaWNhbEtleXNPZkxhc3RTZWVuUmVjb3JkXCIpO1xuXHRcdFx0Y29uc3QgYmluZGluZ0NvbnRleHQgPSB2aWV3Py5nZXRCaW5kaW5nQ29udGV4dCgpIGFzIENvbnRleHQ7XG5cdFx0XHRjb25zdCBwYXRoID0gKGJpbmRpbmdDb250ZXh0ICYmIGJpbmRpbmdDb250ZXh0LmdldFBhdGgoKSkgfHwgXCJcIjtcblx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IGJpbmRpbmdDb250ZXh0Py5nZXRNb2RlbCgpLmdldE1ldGFNb2RlbCgpO1xuXHRcdFx0Y29uc3QgbWV0YVBhdGggPSBtZXRhTW9kZWw/LmdldE1ldGFQYXRoKHBhdGgpO1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5cyA9IG1ldGFNb2RlbD8uZ2V0T2JqZWN0KGAke21ldGFQYXRofS8kVHlwZS8kS2V5YCk7XG5cdFx0XHRmb3IgKGxldCBpID0gMDsgaSA8IHRlY2huaWNhbEtleXMubGVuZ3RoOyBpKyspIHtcblx0XHRcdFx0Y29uc3Qga2V5VmFsdWUgPSBiaW5kaW5nQ29udGV4dC5nZXRPYmplY3QoKVt0ZWNobmljYWxLZXlzW2ldXTtcblx0XHRcdFx0aWYgKGtleVZhbHVlICE9PSB0ZWNobmljYWxLZXlzT2JqZWN0W3RlY2huaWNhbEtleXNbaV1dKSB7XG5cdFx0XHRcdFx0aW50ZXJuYWxNb2RlbENvbnRleHQuc2V0UHJvcGVydHkoXCJmY2xDb2x1bW5DbG9zZWRcIiwgZmFsc2UpO1xuXHRcdFx0XHRcdHJldHVybiB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0XHQvL3RoZSByZWNvcmQgb3BlbmVkIGlzIG5vdCB0aGUgbGFzdCBzZWVuIG9uZSA6IG5vIG5lZWQgdG8gcGVyc2lzdCB0aGUgY2hhbmdlcywgcmVzZXQgdG8gZGVmYXVsdCBpbnN0ZWFkXG5cdFx0fVxuXHRcdHJldHVybiBmYWxzZTtcblx0fVxuXG5cdF9nZXRBcHBTdGF0ZURhdGEob0FwcERhdGE6IEFwcERhdGEsIHZpZXdJZD86IHN0cmluZywgbmF2VHlwZT86IHN0cmluZykge1xuXHRcdGxldCBrZXkgPSBcIlwiLFxuXHRcdFx0aSA9IDA7XG5cdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gbmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyBvQXBwRGF0YS5pQXBwU3RhdGUgOiBvQXBwRGF0YTtcblxuXHRcdGlmIChhcHBTdGF0ZURhdGE/LmFwcFN0YXRlKSB7XG5cdFx0XHRmb3IgKGkgPSAwOyBpIDwgT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKS5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRpZiAoT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXSA9PT0gdmlld0lkKSB7XG5cdFx0XHRcdFx0a2V5ID0gT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXTtcblx0XHRcdFx0XHRicmVhaztcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRpZiAoYXBwU3RhdGVEYXRhPy5hcHBTdGF0ZSkge1xuXHRcdFx0cmV0dXJuIHtcblx0XHRcdFx0W09iamVjdC5rZXlzKGFwcFN0YXRlRGF0YS5hcHBTdGF0ZSlbaV1dOiBhcHBTdGF0ZURhdGEuYXBwU3RhdGVba2V5XSB8fCB7fVxuXHRcdFx0fTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQXBwbGllcyBhbiBhcHBzdGF0ZSBieSBmZXRjaGluZyBhcHBkYXRhIGFuZCBwYXNzaW5nIGl0IHRvIF9hcHBseUFwcHN0YXRlVG9QYWdlLlxuXHQgKlxuXHQgKiBAcGFyYW0gdmlld0lkXG5cdCAqIEBwYXJhbSB2aWV3XG5cdCAqIEByZXR1cm5zIEEgcHJvbWlzZSBmb3IgYXN5bmMgaGFuZGxpbmdcblx0ICovXG5cdGFzeW5jIGFwcGx5QXBwU3RhdGUodmlld0lkPzogc3RyaW5nLCB2aWV3PzogVmlldykge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuXHRcdH1cblxuXHRcdGNvbnN0IGNoZWNrSWZMYXN0U2VlblJlY29yZCA9IHRoaXMuX2NoZWNrSWZMYXN0U2VlblJlY29yZCh2aWV3KTtcblx0XHRpZiAoY2hlY2tJZkxhc3RTZWVuUmVjb3JkID09PSB0cnVlKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMpO1xuXHRcdC8vIERvbmUgZm9yIGJ1c3kgaW5kaWNhdG9yXG5cdFx0QnVzeUxvY2tlci5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRjb25zdCBvTmF2aWdhdGlvblNlcnZpY2UgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0TmF2aWdhdGlvblNlcnZpY2UoKTtcblx0XHQvLyBUT0RPIG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSBzaG91bGQgcmV0dXJuIEVTNiBwcm9taXNlIGluc3RlYWQgalF1ZXJ5LnByb21pc2Vcblx0XHRyZXR1cm4gdG9FUzZQcm9taXNlKG9OYXZpZ2F0aW9uU2VydmljZS5wYXJzZU5hdmlnYXRpb24oKSlcblx0XHRcdC5jYXRjaChmdW5jdGlvbiAoYUVycm9yRGF0YTogdW5rbm93bltdKSB7XG5cdFx0XHRcdGlmICghYUVycm9yRGF0YSkge1xuXHRcdFx0XHRcdGFFcnJvckRhdGEgPSBbXTtcblx0XHRcdFx0fVxuXHRcdFx0XHRMb2cud2FybmluZyhcIkFQUFNUQVRFOiBQYXJzZSBOYXZpZ2F0aW9uIGZhaWxlZFwiLCBhRXJyb3JEYXRhWzBdIGFzIHN0cmluZyk7XG5cdFx0XHRcdHJldHVybiBbXG5cdFx0XHRcdFx0e1xuXHRcdFx0XHRcdFx0LyogYXBwIGRhdGEgKi9cblx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdGFFcnJvckRhdGFbMV0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsyXVxuXHRcdFx0XHRdO1xuXHRcdFx0fSlcblx0XHRcdC50aGVuKChhUmVzdWx0czogdW5rbm93bltdKSA9PiB7XG5cdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZG9uZVwiKTtcblxuXHRcdFx0XHQvLyBhUmVzdWx0c1sxXSA9PiBvU3RhcnR1cFBhcmFtZXRlcnMgKG5vdCBldmFsdWF0ZWQpXG5cdFx0XHRcdGNvbnN0IG9BcHBEYXRhID0gKGFSZXN1bHRzWzBdIHx8IHt9KSBhcyBBcHBEYXRhLFxuXHRcdFx0XHRcdHNOYXZUeXBlID0gKGFSZXN1bHRzWzJdIGFzIHN0cmluZykgfHwgTmF2VHlwZS5pbml0aWFsLFxuXHRcdFx0XHRcdG9Sb290Q29udHJvbGxlciA9IHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpLmdldENvbnRyb2xsZXIoKTtcblx0XHRcdFx0Ly8gYXBwbHkgdGhlIGFwcHN0YXRlIGRlcGVuZGluZyB1cG9uIHRoZSB2aWV3IChMUi9PUClcblx0XHRcdFx0Y29uc3QgYXBwU3RhdGVEYXRhID0gdGhpcy5fZ2V0QXBwU3RhdGVEYXRhKG9BcHBEYXRhLCB2aWV3SWQsIHNOYXZUeXBlKTtcblx0XHRcdFx0Ly8gZmV0Y2ggdGhlIHNraXBNZXJnZSBmbGFnIGZyb20gYXBwU3RhdGUgZm9yIHNhdmUgYXMgdGlsZVxuXHRcdFx0XHRjb25zdCBza2lwTWVyZ2U6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBvQXBwRGF0YT8uYXBwU3RhdGU/LltTS0lQX01FUkdFX0tFWV07XG5cdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPSBzTmF2VHlwZSA9PT0gTmF2VHlwZS5pQXBwU3RhdGUgfHwgc05hdlR5cGUgPT09IE5hdlR5cGUuaHlicmlkID8gYXBwU3RhdGVEYXRhIDogdW5kZWZpbmVkO1xuXG5cdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZSkge1xuXHRcdFx0XHRcdHRocm93IG5ldyBFcnJvcihgdmlld1N0YXRlIGV4dGVuc2lvbiByZXF1aXJlZCBmb3IgY29udHJvbGxlciAke29Sb290Q29udHJvbGxlci5nZXRNZXRhZGF0YSgpLmdldE5hbWUoKX1gKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRpZiAoKCFvQXBwRGF0YSB8fCBPYmplY3Qua2V5cyhvQXBwRGF0YSkubGVuZ3RoID09PSAwKSAmJiBzTmF2VHlwZSA9PSBOYXZUeXBlLmlBcHBTdGF0ZSkge1xuXHRcdFx0XHRcdGlmICghb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5fZ2V0SW5pdGlhbFN0YXRlQXBwbGllZCgpKSB7XG5cdFx0XHRcdFx0XHRvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9zZXRJbml0aWFsU3RhdGVBcHBsaWVkKCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdHJldHVybiB7fTtcblx0XHRcdFx0fVxuXHRcdFx0XHRyZXR1cm4gb1Jvb3RDb250cm9sbGVyLnZpZXdTdGF0ZS5hcHBseVZpZXdTdGF0ZShcblx0XHRcdFx0XHR0aGlzLl9tQ3VycmVudEFwcFN0YXRlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+LFxuXHRcdFx0XHRcdHRoaXMuX2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhLCBzTmF2VHlwZSksXG5cdFx0XHRcdFx0c2tpcE1lcmdlXG5cdFx0XHRcdCk7XG5cdFx0XHR9KVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChvRXJyb3I6IHVua25vd24pIHtcblx0XHRcdFx0TG9nLmVycm9yKFwiYXBwU3RhdGUgY291bGQgbm90IGJlIGFwcGxpZWRcIiwgb0Vycm9yIGFzIHN0cmluZyk7XG5cdFx0XHRcdHRocm93IG9FcnJvcjtcblx0XHRcdH0pXG5cdFx0XHQuZmluYWxseSgoKSA9PiB7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMpO1xuXHRcdFx0XHRCdXN5TG9ja2VyLnVubG9jayh0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um9vdENvbnRyb2woKSk7XG5cdFx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBUbyBjaGVjayBpcyByb3V0ZSBpcyBjaGFuZ2VkIGJ5IGNoYW5nZSBpbiB0aGUgaUFQUFN0YXRlLlxuXHQgKlxuXHQgKiBAcmV0dXJucyBgdHJ1ZWAgaWYgdGhlIHJvdXRlIGhhcyBjaG5hZ2VkXG5cdCAqL1xuXHRjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwKCkge1xuXHRcdHJldHVybiB0aGlzLmJOb1JvdXRlQ2hhbmdlO1xuXHR9XG5cblx0LyoqXG5cdCAqIFJlc2V0IHRoZSByb3V0ZSBjaGFuZ2VkIGJ5IGlBUFBTdGF0ZS5cblx0ICovXG5cdHJlc2V0Um91dGVDaGFuZ2VkQnlJQXBwKCkge1xuXHRcdGlmICh0aGlzLmJOb1JvdXRlQ2hhbmdlKSB7XG5cdFx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0fVxuXHR9XG59XG5cbi8qKlxuICogQGdsb2JhbFxuICovXG5leHBvcnQgZGVmYXVsdCBBcHBTdGF0ZUhhbmRsZXI7XG4iXSwibWFwcGluZ3MiOiI7QUFBQTtBQUFBO0FBQUE7Ozs7Ozs7O0VBZUEsTUFBTUEsT0FBTyxHQUFHQyxPQUFPLENBQUNELE9BQU87RUFjL0IsTUFBTUUsY0FBYyxHQUFHLFdBQVc7RUFBQyxJQVc3QkMsZUFBZSxXQURwQkMsY0FBYyxDQUFDLDZCQUE2QixDQUFDO0lBQUE7SUFZN0MseUJBQVlDLGFBQTJCLEVBQUU7TUFBQTtNQUN4Qyw4QkFBTztNQUFDLE1BTERDLGlCQUFpQixHQUFjLENBQUMs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
229
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJOYXZUeXBlIiwibGlicmFyeSIsIlNLSVBfTUVSR0VfS0VZIiwiQXBwU3RhdGVIYW5kbGVyIiwiZGVmaW5lVUk1Q2xhc3MiLCJvQXBwQ29tcG9uZW50IiwiX21DdXJyZW50QXBwU3RhdGUiLCJzSWQiLCJnZXRJZCIsIm5iU2ltdWx0YW5lb3VzQ3JlYXRlUmVxdWVzdCIsImJOb1JvdXRlQ2hhbmdlIiwiTG9nIiwiaW5mbyIsImNyZWF0ZUFwcFN0YXRlIiwiY3JlYXRlQXBwUGFyYW1ldGVycyIsImdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzIiwiZ2V0Q2FwYWJpbGl0aWVzIiwiQXBwU3RhdGUiLCJCdXN5TG9ja2VyIiwiaXNMb2NrZWQiLCJyZXBsYWNlSGFzaCIsInNraXBNZXJnZSIsIm5hdmlnYXRpb25TZXJ2aWNlIiwiZ2V0TmF2aWdhdGlvblNlcnZpY2UiLCJyb3V0ZXJQcm94eSIsImdldFJvdXRlclByb3h5IiwiaGFzaCIsImdldEhhc2giLCJjb250cm9sbGVyIiwiZ2V0Um9vdENvbnRyb2wiLCJnZXRDb250cm9sbGVyIiwiaXNTdGlja3lNb2RlIiwiTW9kZWxIZWxwZXIiLCJpc1N0aWNreVNlc3Npb25TdXBwb3J0ZWQiLCJnZXRNZXRhTW9kZWwiLCJ2aWV3U3RhdGUiLCJFcnJvciIsImdldE1ldGFkYXRhIiwiZ2V0TmFtZSIsImlubmVyQXBwU3RhdGUiLCJyZXRyaWV2ZVZpZXdTdGF0ZSIsImFwcFN0YXRlRGF0YSIsImFwcFN0YXRlIiwiYXBwU3RhdGVLZXkiLCJkZWVwRXF1YWwiLCJzdG9yZUlubmVyQXBwU3RhdGVBc3luYyIsInNOZXdIYXNoIiwicmVwbGFjZUlubmVyQXBwU3RhdGVLZXkiLCJuYXZUb0hhc2giLCJ1bmRlZmluZWQiLCJvRXJyb3IiLCJlcnJvciIsImZpbmRBcHBTdGF0ZUluSGFzaCIsIl9jcmVhdGVOYXZpZ2F0aW9uUGFyYW1ldGVycyIsIm9BcHBEYXRhIiwic05hdlR5cGUiLCJPYmplY3QiLCJhc3NpZ24iLCJzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHMiLCJvRGVmYXVsdGVkU2VsZWN0aW9uVmFyaWFudCIsInNlbGVjdGlvblZhcmlhbnQiLCJvU2VsZWN0aW9uVmFyaWFudCIsInJlcXVpcmVzU3RhbmRhcmRWYXJpYW50IiwiYk5hdlNlbFZhckhhc0RlZmF1bHRzT25seSIsIm5hdmlnYXRpb25UeXBlIiwiX2NoZWNrSWZMYXN0U2VlblJlY29yZCIsInZpZXciLCJpbnRlcm5hbE1vZGVsQ29udGV4dCIsImdldEJpbmRpbmdDb250ZXh0IiwiZ2V0UHJvcGVydHkiLCJ0ZWNobmljYWxLZXlzT2JqZWN0IiwiYmluZGluZ0NvbnRleHQiLCJwYXRoIiwiZ2V0UGF0aCIsIm1ldGFNb2RlbCIsImdldE1vZGVsIiwibWV0YVBhdGgiLCJnZXRNZXRhUGF0aCIsInRlY2huaWNhbEtleXMiLCJnZXRPYmplY3QiLCJpIiwibGVuZ3RoIiwia2V5VmFsdWUiLCJzZXRQcm9wZXJ0eSIsIl9nZXRBcHBTdGF0ZURhdGEiLCJ2aWV3SWQiLCJuYXZUeXBlIiwia2V5IiwiaHlicmlkIiwiaUFwcFN0YXRlIiwia2V5cyIsImFwcGx5QXBwU3RhdGUiLCJQcm9taXNlIiwicmVzb2x2ZSIsImNoZWNrSWZMYXN0U2VlblJlY29yZCIsImxvY2siLCJvTmF2aWdhdGlvblNlcnZpY2UiLCJ0b0VTNlByb21pc2UiLCJwYXJzZU5hdmlnYXRpb24iLCJjYXRjaCIsImFFcnJvckRhdGEiLCJ3YXJuaW5nIiwidGhlbiIsImFSZXN1bHRzIiwiaW5pdGlhbCIsIm9Sb290Q29udHJvbGxlciIsIl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkIiwiX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQiLCJhcHBseVZpZXdTdGF0ZSIsImZpbmFsbHkiLCJ1bmxvY2siLCJjaGVja0lmUm91dGVDaGFuZ2VkQnlJQXBwIiwicmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAiLCJCYXNlT2JqZWN0Il0sInNvdXJjZVJvb3QiOiIuIiwic291cmNlcyI6WyJBcHBTdGF0ZUhhbmRsZXIudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IExvZyBmcm9tIFwic2FwL2Jhc2UvTG9nXCI7XG5pbXBvcnQgZGVlcEVxdWFsIGZyb20gXCJzYXAvYmFzZS91dGlsL2RlZXBFcXVhbFwiO1xuaW1wb3J0IHR5cGUgQXBwQ29tcG9uZW50IGZyb20gXCJzYXAvZmUvY29yZS9BcHBDb21wb25lbnRcIjtcbmltcG9ydCB0eXBlIHsgTmF2aWdhdGlvblBhcmFtZXRlciB9IGZyb20gXCJzYXAvZmUvY29yZS9jb250cm9sbGVyZXh0ZW5zaW9ucy9WaWV3U3RhdGVcIjtcbmltcG9ydCB7IGRlZmluZVVJNUNsYXNzIH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvQ2xhc3NTdXBwb3J0XCI7XG5pbXBvcnQgdHlwZSB7IEludGVybmFsTW9kZWxDb250ZXh0IH0gZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcbmltcG9ydCB0b0VTNlByb21pc2UgZnJvbSBcInNhcC9mZS9jb3JlL2hlbHBlcnMvVG9FUzZQcm9taXNlXCI7XG5pbXBvcnQgbGlicmFyeSBmcm9tIFwic2FwL2ZlL25hdmlnYXRpb24vbGlicmFyeVwiO1xuaW1wb3J0IHR5cGUgeyBTZWxlY3Rpb25WYXJpYW50IH0gZnJvbSBcInNhcC9mZS9uYXZpZ2F0aW9uL1NlbGVjdGlvblZhcmlhbnRcIjtcbmltcG9ydCBCYXNlT2JqZWN0IGZyb20gXCJzYXAvdWkvYmFzZS9PYmplY3RcIjtcbmltcG9ydCB0eXBlIFZpZXcgZnJvbSBcInNhcC91aS9jb3JlL212Yy9WaWV3XCI7XG5pbXBvcnQgdHlwZSBDb250ZXh0IGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvQ29udGV4dFwiO1xuaW1wb3J0IEJ1c3lMb2NrZXIgZnJvbSBcIi4vY29udHJvbGxlcmV4dGVuc2lvbnMvQnVzeUxvY2tlclwiO1xuaW1wb3J0IE1vZGVsSGVscGVyIGZyb20gXCIuL2hlbHBlcnMvTW9kZWxIZWxwZXJcIjtcblxuY29uc3QgTmF2VHlwZSA9IGxpYnJhcnkuTmF2VHlwZTtcbnR5cGUgQXBwU3RhdGUgPSB7XG5cdHNraXBNZXJnZT86IGJvb2xlYW47XG5cdFtrZXk6IHN0cmluZ106IHVua25vd247XG59O1xuZXhwb3J0IHR5cGUgQXBwRGF0YSA9IHtcblx0b0RlZmF1bHRlZFNlbGVjdGlvblZhcmlhbnQ6IFNlbGVjdGlvblZhcmlhbnQ7XG5cdG9TZWxlY3Rpb25WYXJpYW50OiBTZWxlY3Rpb25WYXJpYW50O1xuXHRiTmF2U2VsVmFySGFzRGVmYXVsdHNPbmx5OiBib29sZWFuO1xuXHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdGlBcHBTdGF0ZT86IHtcblx0XHRhcHBTdGF0ZTogQXBwU3RhdGU7XG5cdH07XG59O1xuY29uc3QgU0tJUF9NRVJHRV9LRVkgPSBcInNraXBNZXJnZVwiO1xuZXhwb3J0IHR5cGUgSUFwcFN0YXRlID0ge1xuXHRhcHBTdGF0ZTogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG59O1xuXG5leHBvcnQgdHlwZSBBcHBEYXRhSW5mbyA9IHtcblx0YXBwU3RhdGVEYXRhOiB7IGFwcFN0YXRlOiBvYmplY3QgfCB1bmRlZmluZWQgfTtcblx0YXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGw7XG59O1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUuY29yZS5BcHBTdGF0ZUhhbmRsZXJcIilcbmNsYXNzIEFwcFN0YXRlSGFuZGxlciBleHRlbmRzIEJhc2VPYmplY3Qge1xuXHRwdWJsaWMgc0lkOiBzdHJpbmc7XG5cblx0cHVibGljIG9BcHBDb21wb25lbnQ6IEFwcENvbXBvbmVudDtcblxuXHRwdWJsaWMgYk5vUm91dGVDaGFuZ2U6IGJvb2xlYW47XG5cblx0cHJpdmF0ZSBfbUN1cnJlbnRBcHBTdGF0ZT86IEFwcFN0YXRlID0ge307XG5cblx0bmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0OiBudW1iZXI7XG5cblx0Y29uc3RydWN0b3Iob0FwcENvbXBvbmVudDogQXBwQ29tcG9uZW50KSB7XG5cdFx0c3VwZXIoKTtcblx0XHR0aGlzLm9BcHBDb21wb25lbnQgPSBvQXBwQ29tcG9uZW50O1xuXHRcdHRoaXMuc0lkID0gYCR7b0FwcENvbXBvbmVudC5nZXRJZCgpfS9BcHBTdGF0ZUhhbmRsZXJgO1xuXHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0ID0gMDtcblx0XHR0aGlzLmJOb1JvdXRlQ2hhbmdlID0gZmFsc2U7XG5cdFx0TG9nLmluZm8oXCJBUFBTVEFURSA6IEFwcHN0YXRlIGhhbmRsZXIgaW5pdGlhbGl6ZWRcIik7XG5cdH1cblxuXHRnZXRJZCgpIHtcblx0XHRyZXR1cm4gdGhpcy5zSWQ7XG5cdH1cblxuXHQvKipcblx0ICogQ3JlYXRlcyBvciB1cGRhdGVzIHRoZSBhcHBzdGF0ZS5cblx0ICogUmVwbGFjZXMgdGhlIGhhc2ggd2l0aCB0aGUgbmV3IGFwcHN0YXRlIGJhc2VkIG9uIHJlcGxhY2VIYXNoXG5cdCAqXG5cdCAqIEBwYXJhbSBjcmVhdGVBcHBQYXJhbWV0ZXJzIFBhcmFtZXRlcnMgZm9yIGNyZWF0aW5nIG5ldyBhcHBzdGF0ZVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5yZXBsYWNlSGFzaCBCb29sZWFuIHdoaWNoIGRldGVybWluZXMgdG8gcmVwbGFjZSB0aGUgaGFzaCB3aXRoIHRoZSBuZXcgZ2VuZXJhdGVkIGtleVxuXHQgKiBAcGFyYW0gY3JlYXRlQXBwUGFyYW1ldGVycy5za2lwTWVyZ2UgQm9vbGVhbiB3aGljaCBkZXRlcm1pbmVzIHRvIHNraXAgdGhlIGtleSB1c2VyIHNoaW5lIHRocm91Z2hcblx0ICogQHJldHVybnMgQSBwcm9taXNlIHJlc29sdmluZyB0aGUgc3RvcmVkIGRhdGEgb3IgYXBwc3RhdGUga2V5IGJhc2VkIG9uIHJldHVybktleSBwcm9wZXJ0eVxuXHQgKi9cblx0YXN5bmMgY3JlYXRlQXBwU3RhdGUoY3JlYXRlQXBwUGFyYW1ldGVycz86IHsgcmVwbGFjZUhhc2g/OiBib29sZWFuOyBza2lwTWVyZ2U/OiBib29sZWFuIH0pOiBQcm9taXNlPHZvaWQgfCBBcHBEYXRhSW5mbz4ge1xuXHRcdGlmICghdGhpcy5vQXBwQ29tcG9uZW50LmdldEVudmlyb25tZW50Q2FwYWJpbGl0aWVzKCkuZ2V0Q2FwYWJpbGl0aWVzKCkuQXBwU3RhdGUgfHwgQnVzeUxvY2tlci5pc0xvY2tlZCh0aGlzKSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHRjb25zdCB7IHJlcGxhY2VIYXNoID0gdHJ1ZSwgc2tpcE1lcmdlID0gZmFsc2UgfSA9IGNyZWF0ZUFwcFBhcmFtZXRlcnMgfHwge307XG5cblx0XHRjb25zdCBuYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpLFxuXHRcdFx0cm91dGVyUHJveHkgPSB0aGlzLm9BcHBDb21wb25lbnQuZ2V0Um91dGVyUHJveHkoKSxcblx0XHRcdGhhc2ggPSByb3V0ZXJQcm94eS5nZXRIYXNoKCksXG5cdFx0XHRjb250cm9sbGVyID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpLFxuXHRcdFx0aXNTdGlja3lNb2RlID0gTW9kZWxIZWxwZXIuaXNTdGlja3lTZXNzaW9uU3VwcG9ydGVkKHRoaXMub0FwcENvbXBvbmVudC5nZXRNZXRhTW9kZWwoKSk7XG5cblx0XHRpZiAoIWNvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHR0aHJvdyBuZXcgRXJyb3IoYHZpZXdTdGF0ZSBjb250cm9sbGVyIGV4dGVuc2lvbiBub3QgYXZhaWxhYmxlIGZvciBjb250cm9sbGVyOiAke2NvbnRyb2xsZXIuZ2V0TWV0YWRhdGEoKS5nZXROYW1lKCl9YCk7XG5cdFx0fVxuXHRcdGxldCBpbm5lckFwcFN0YXRlID0gYXdhaXQgY29udHJvbGxlci52aWV3U3RhdGUucmV0cmlldmVWaWV3U3RhdGUoKTtcblx0XHRpZiAoc2tpcE1lcmdlKSB7XG5cdFx0XHRpbm5lckFwcFN0YXRlID0geyAuLi5pbm5lckFwcFN0YXRlLCAuLi57IHNraXBNZXJnZSB9IH07XG5cdFx0fVxuXHRcdGNvbnN0IGFwcFN0YXRlRGF0YSA9IHsgYXBwU3RhdGU6IGlubmVyQXBwU3RhdGUgfTtcblx0XHRsZXQgYXBwU3RhdGVLZXk6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXHRcdGlmIChpbm5lckFwcFN0YXRlICYmICFkZWVwRXF1YWwodGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSwgaW5uZXJBcHBTdGF0ZSkpIHtcblx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgPSBpbm5lckFwcFN0YXRlIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdFx0dHJ5IHtcblx0XHRcdFx0dGhpcy5uYlNpbXVsdGFuZW91c0NyZWF0ZVJlcXVlc3QrKztcblx0XHRcdFx0YXBwU3RhdGVLZXkgPSBhd2FpdCBuYXZpZ2F0aW9uU2VydmljZS5zdG9yZUlubmVyQXBwU3RhdGVBc3luYyhhcHBTdGF0ZURhdGEsIHRydWUsIHRydWUpO1xuXHRcdFx0XHRMb2cuaW5mbyhcIkFQUFNUQVRFOiBBcHBzdGF0ZSBzdG9yZWRcIik7XG5cdFx0XHRcdGlmIChyZXBsYWNlSGFzaCA9PT0gdHJ1ZSkge1xuXHRcdFx0XHRcdGNvbnN0IHNOZXdIYXNoID0gbmF2aWdhdGlvblNlcnZpY2UucmVwbGFjZUlubmVyQXBwU3RhdGVLZXkoaGFzaCwgYXBwU3RhdGVLZXkpO1xuXHRcdFx0XHRcdHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0LS07XG5cdFx0XHRcdFx0aWYgKHRoaXMubmJTaW11bHRhbmVvdXNDcmVhdGVSZXF1ZXN0ID09PSAwICYmIHNOZXdIYXNoICE9PSBoYXNoKSB7XG5cdFx0XHRcdFx0XHRyb3V0ZXJQcm94eS5uYXZUb0hhc2goc05ld0hhc2gsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsICFpc1N0aWNreU1vZGUpO1xuXHRcdFx0XHRcdFx0dGhpcy5iTm9Sb3V0ZUNoYW5nZSA9IHRydWU7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHRcdExvZy5pbmZvKFwiQVBQU1RBVEU6IG5hdlRvSGFzaFwiKTtcblx0XHRcdFx0fVxuXHRcdFx0fSBjYXRjaCAob0Vycm9yOiB1bmtub3duKSB7XG5cdFx0XHRcdExvZy5lcnJvcihvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdH1cblx0XHR9IGVsc2Uge1xuXHRcdFx0YXBwU3RhdGVLZXkgPSByb3V0ZXJQcm94eS5maW5kQXBwU3RhdGVJbkhhc2goaGFzaCkgYXMgc3RyaW5nO1xuXHRcdH1cblx0XHRyZXR1cm4ge1xuXHRcdFx0YXBwU3RhdGVEYXRhOiBhcHBTdGF0ZURhdGEsXG5cdFx0XHRhcHBTdGF0ZUtleTogYXBwU3RhdGVLZXlcblx0XHR9O1xuXHR9XG5cblx0X2NyZWF0ZU5hdmlnYXRpb25QYXJhbWV0ZXJzKG9BcHBEYXRhOiBBcHBEYXRhLCBzTmF2VHlwZTogc3RyaW5nKTogTmF2aWdhdGlvblBhcmFtZXRlciB7XG5cdFx0cmV0dXJuIE9iamVjdC5hc3NpZ24oe30sIG9BcHBEYXRhLCB7XG5cdFx0XHRzZWxlY3Rpb25WYXJpYW50RGVmYXVsdHM6IG9BcHBEYXRhLm9EZWZhdWx0ZWRTZWxlY3Rpb25WYXJpYW50LFxuXHRcdFx0c2VsZWN0aW9uVmFyaWFudDogb0FwcERhdGEub1NlbGVjdGlvblZhcmlhbnQsXG5cdFx0XHRyZXF1aXJlc1N0YW5kYXJkVmFyaWFudDogIW9BcHBEYXRhLmJOYXZTZWxWYXJIYXNEZWZhdWx0c09ubHksXG5cdFx0XHRuYXZpZ2F0aW9uVHlwZTogc05hdlR5cGVcblx0XHR9KTtcblx0fVxuXG5cdF9jaGVja0lmTGFzdFNlZW5SZWNvcmQodmlldz86IFZpZXcpIHtcblx0XHQvL2dldHRpbmcgdGhlIGludGVybmFsIG1vZGVsIGNvbnRleHQgaW4gb3JkZXIgdG8gZmV0Y2ggdGhlIHRlY2huaWNhbGtleXMgb2YgbGFzdCBzZWVuIHJlY29yZCBhbmQgY2xvc2UgY29sdW1uIGZsYWcgc2V0IGluIHRoZSBpbnRlcm5hbHJvdXRpbmcgZm9yIHJldGFpbmluZyBzZXR0aW5ncyBpbiBwZXJzaXN0ZW5jZSBtb2RlXG5cdFx0Y29uc3QgaW50ZXJuYWxNb2RlbENvbnRleHQgPSB2aWV3ICYmICh2aWV3LmdldEJpbmRpbmdDb250ZXh0KFwiaW50ZXJuYWxcIikgYXMgSW50ZXJuYWxNb2RlbENvbnRleHQpO1xuXHRcdGlmIChpbnRlcm5hbE1vZGVsQ29udGV4dCAmJiBpbnRlcm5hbE1vZGVsQ29udGV4dC5nZXRQcm9wZXJ0eShcImZjbENvbHVtbkNsb3NlZFwiKSA9PT0gdHJ1ZSkge1xuXHRcdFx0Y29uc3QgdGVjaG5pY2FsS2V5c09iamVjdCA9IGludGVybmFsTW9kZWxDb250ZXh0ICYmIGludGVybmFsTW9kZWxDb250ZXh0LmdldFByb3BlcnR5KFwidGVjaG5pY2FsS2V5c09mTGFzdFNlZW5SZWNvcmRcIik7XG5cdFx0XHRjb25zdCBiaW5kaW5nQ29udGV4dCA9IHZpZXc/LmdldEJpbmRpbmdDb250ZXh0KCkgYXMgQ29udGV4dDtcblx0XHRcdGNvbnN0IHBhdGggPSAoYmluZGluZ0NvbnRleHQgJiYgYmluZGluZ0NvbnRleHQuZ2V0UGF0aCgpKSB8fCBcIlwiO1xuXHRcdFx0Y29uc3QgbWV0YU1vZGVsID0gYmluZGluZ0NvbnRleHQ/LmdldE1vZGVsKCkuZ2V0TWV0YU1vZGVsKCk7XG5cdFx0XHRjb25zdCBtZXRhUGF0aCA9IG1ldGFNb2RlbD8uZ2V0TWV0YVBhdGgocGF0aCk7XG5cdFx0XHRjb25zdCB0ZWNobmljYWxLZXlzID0gbWV0YU1vZGVsPy5nZXRPYmplY3QoYCR7bWV0YVBhdGh9LyRUeXBlLyRLZXlgKTtcblx0XHRcdGZvciAobGV0IGkgPSAwOyBpIDwgdGVjaG5pY2FsS2V5cy5sZW5ndGg7IGkrKykge1xuXHRcdFx0XHRjb25zdCBrZXlWYWx1ZSA9IGJpbmRpbmdDb250ZXh0LmdldE9iamVjdCgpW3RlY2huaWNhbEtleXNbaV1dO1xuXHRcdFx0XHRpZiAoa2V5VmFsdWUgIT09IHRlY2huaWNhbEtleXNPYmplY3RbdGVjaG5pY2FsS2V5c1tpXV0pIHtcblx0XHRcdFx0XHRpbnRlcm5hbE1vZGVsQ29udGV4dC5zZXRQcm9wZXJ0eShcImZjbENvbHVtbkNsb3NlZFwiLCBmYWxzZSk7XG5cdFx0XHRcdFx0cmV0dXJuIHRydWU7XG5cdFx0XHRcdH1cblx0XHRcdH1cblx0XHRcdC8vdGhlIHJlY29yZCBvcGVuZWQgaXMgbm90IHRoZSBsYXN0IHNlZW4gb25lIDogbm8gbmVlZCB0byBwZXJzaXN0IHRoZSBjaGFuZ2VzLCByZXNldCB0byBkZWZhdWx0IGluc3RlYWRcblx0XHR9XG5cdFx0cmV0dXJuIGZhbHNlO1xuXHR9XG5cblx0X2dldEFwcFN0YXRlRGF0YShvQXBwRGF0YTogQXBwRGF0YSwgdmlld0lkPzogc3RyaW5nLCBuYXZUeXBlPzogc3RyaW5nKSB7XG5cdFx0bGV0IGtleSA9IFwiXCIsXG5cdFx0XHRpID0gMDtcblx0XHRjb25zdCBhcHBTdGF0ZURhdGEgPSBuYXZUeXBlID09PSBOYXZUeXBlLmh5YnJpZCA/IG9BcHBEYXRhLmlBcHBTdGF0ZSA6IG9BcHBEYXRhO1xuXG5cdFx0aWYgKGFwcFN0YXRlRGF0YT8uYXBwU3RhdGUpIHtcblx0XHRcdGZvciAoaSA9IDA7IGkgPCBPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpLmxlbmd0aDsgaSsrKSB7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldID09PSB2aWV3SWQpIHtcblx0XHRcdFx0XHRrZXkgPSBPYmplY3Qua2V5cyhhcHBTdGF0ZURhdGEuYXBwU3RhdGUpW2ldO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXHRcdGlmIChhcHBTdGF0ZURhdGE/LmFwcFN0YXRlKSB7XG5cdFx0XHRyZXR1cm4ge1xuXHRcdFx0XHRbT2JqZWN0LmtleXMoYXBwU3RhdGVEYXRhLmFwcFN0YXRlKVtpXV06IGFwcFN0YXRlRGF0YS5hcHBTdGF0ZVtrZXldIHx8IHt9XG5cdFx0XHR9O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBsaWVzIGFuIGFwcHN0YXRlIGJ5IGZldGNoaW5nIGFwcGRhdGEgYW5kIHBhc3NpbmcgaXQgdG8gX2FwcGx5QXBwc3RhdGVUb1BhZ2UuXG5cdCAqXG5cdCAqIEBwYXJhbSB2aWV3SWRcblx0ICogQHBhcmFtIHZpZXdcblx0ICogQHJldHVybnMgQSBwcm9taXNlIGZvciBhc3luYyBoYW5kbGluZ1xuXHQgKi9cblx0YXN5bmMgYXBwbHlBcHBTdGF0ZSh2aWV3SWQ/OiBzdHJpbmcsIHZpZXc/OiBWaWV3KSB7XG5cdFx0aWYgKCF0aGlzLm9BcHBDb21wb25lbnQuZ2V0RW52aXJvbm1lbnRDYXBhYmlsaXRpZXMoKS5nZXRDYXBhYmlsaXRpZXMoKS5BcHBTdGF0ZSB8fCBCdXN5TG9ja2VyLmlzTG9ja2VkKHRoaXMpKSB7XG5cdFx0XHRyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG5cdFx0fVxuXG5cdFx0Y29uc3QgY2hlY2tJZkxhc3RTZWVuUmVjb3JkID0gdGhpcy5fY2hlY2tJZkxhc3RTZWVuUmVjb3JkKHZpZXcpO1xuXHRcdGlmIChjaGVja0lmTGFzdFNlZW5SZWNvcmQgPT09IHRydWUpIHtcblx0XHRcdHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcblx0XHR9XG5cblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcyk7XG5cdFx0Ly8gRG9uZSBmb3IgYnVzeSBpbmRpY2F0b3Jcblx0XHRCdXN5TG9ja2VyLmxvY2sodGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkpO1xuXHRcdGNvbnN0IG9OYXZpZ2F0aW9uU2VydmljZSA9IHRoaXMub0FwcENvbXBvbmVudC5nZXROYXZpZ2F0aW9uU2VydmljZSgpO1xuXHRcdC8vIFRPRE8gb05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpIHNob3VsZCByZXR1cm4gRVM2IHByb21pc2UgaW5zdGVhZCBqUXVlcnkucHJvbWlzZVxuXHRcdHJldHVybiB0b0VTNlByb21pc2Uob05hdmlnYXRpb25TZXJ2aWNlLnBhcnNlTmF2aWdhdGlvbigpKVxuXHRcdFx0LmNhdGNoKGZ1bmN0aW9uIChhRXJyb3JEYXRhOiB1bmtub3duW10pIHtcblx0XHRcdFx0aWYgKCFhRXJyb3JEYXRhKSB7XG5cdFx0XHRcdFx0YUVycm9yRGF0YSA9IFtdO1xuXHRcdFx0XHR9XG5cdFx0XHRcdExvZy53YXJuaW5nKFwiQVBQU1RBVEU6IFBhcnNlIE5hdmlnYXRpb24gZmFpbGVkXCIsIGFFcnJvckRhdGFbMF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0cmV0dXJuIFtcblx0XHRcdFx0XHR7XG5cdFx0XHRcdFx0XHQvKiBhcHAgZGF0YSAqL1xuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdFx0YUVycm9yRGF0YVsxXSxcblx0XHRcdFx0XHRhRXJyb3JEYXRhWzJdXG5cdFx0XHRcdF07XG5cdFx0XHR9KVxuXHRcdFx0LnRoZW4oKGFSZXN1bHRzOiB1bmtub3duW10pID0+IHtcblx0XHRcdFx0TG9nLmluZm8oXCJBUFBTVEFURTogUGFyc2UgTmF2aWdhdGlvbiBkb25lXCIpO1xuXG5cdFx0XHRcdC8vIGFSZXN1bHRzWzFdID0+IG9TdGFydHVwUGFyYW1ldGVycyAobm90IGV2YWx1YXRlZClcblx0XHRcdFx0Y29uc3Qgb0FwcERhdGEgPSAoYVJlc3VsdHNbMF0gfHwge30pIGFzIEFwcERhdGEsXG5cdFx0XHRcdFx0c05hdlR5cGUgPSAoYVJlc3VsdHNbMl0gYXMgc3RyaW5nKSB8fCBOYXZUeXBlLmluaXRpYWwsXG5cdFx0XHRcdFx0b1Jvb3RDb250cm9sbGVyID0gdGhpcy5vQXBwQ29tcG9uZW50LmdldFJvb3RDb250cm9sKCkuZ2V0Q29udHJvbGxlcigpO1xuXHRcdFx0XHQvLyBhcHBseSB0aGUgYXBwc3RhdGUgZGVwZW5kaW5nIHVwb24gdGhlIHZpZXcgKExSL09QKVxuXHRcdFx0XHRjb25zdCBhcHBTdGF0ZURhdGEgPSB0aGlzLl9nZXRBcHBTdGF0ZURhdGEob0FwcERhdGEsIHZpZXdJZCwgc05hdlR5cGUpO1xuXHRcdFx0XHQvLyBmZXRjaCB0aGUgc2tpcE1lcmdlIGZsYWcgZnJvbSBhcHBTdGF0ZSBmb3Igc2F2ZSBhcyB0aWxlXG5cdFx0XHRcdGNvbnN0IHNraXBNZXJnZTogYm9vbGVhbiB8IHVuZGVmaW5lZCA9IG9BcHBEYXRhPy5hcHBTdGF0ZT8uW1NLSVBfTUVSR0VfS0VZXTtcblx0XHRcdFx0dGhpcy5fbUN1cnJlbnRBcHBTdGF0ZSA9IHNOYXZUeXBlID09PSBOYXZUeXBlLmlBcHBTdGF0ZSB8fCBzTmF2VHlwZSA9PT0gTmF2VHlwZS5oeWJyaWQgPyBhcHBTdGF0ZURhdGEgOiB1bmRlZmluZWQ7XG5cblx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlKSB7XG5cdFx0XHRcdFx0dGhyb3cgbmV3IEVycm9yKGB2aWV3U3RhdGUgZXh0ZW5zaW9uIHJlcXVpcmVkIGZvciBjb250cm9sbGVyICR7b1Jvb3RDb250cm9sbGVyLmdldE1ldGFkYXRhKCkuZ2V0TmFtZSgpfWApO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGlmICgoIW9BcHBEYXRhIHx8IE9iamVjdC5rZXlzKG9BcHBEYXRhKS5sZW5ndGggPT09IDApICYmIHNOYXZUeXBlID09IE5hdlR5cGUuaUFwcFN0YXRlKSB7XG5cdFx0XHRcdFx0aWYgKCFvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLl9nZXRJbml0aWFsU3RhdGVBcHBsaWVkKCkpIHtcblx0XHRcdFx0XHRcdG9Sb290Q29udHJvbGxlci52aWV3U3RhdGUuX3NldEluaXRpYWxTdGF0ZUFwcGxpZWQoKTtcblx0XHRcdFx0XHR9XG5cdFx0XHRcdFx0cmV0dXJuIHt9O1xuXHRcdFx0XHR9XG5cdFx0XHRcdHJldHVybiBvUm9vdENvbnRyb2xsZXIudmlld1N0YXRlLmFwcGx5Vmlld1N0YXRlKFxuXHRcdFx0XHRcdHRoaXMuX21DdXJyZW50QXBwU3RhdGUgYXMgUmVjb3JkPHN0cmluZywgdW5rbm93bj4sXG5cdFx0XHRcdFx0dGhpcy5fY3JlYXRlTmF2aWdhdGlvblBhcmFtZXRlcnMob0FwcERhdGEsIHNOYXZUeXBlKSxcblx0XHRcdFx0XHRza2lwTWVyZ2Vcblx0XHRcdFx0KTtcblx0XHRcdH0pXG5cdFx0XHQuY2F0Y2goZnVuY3Rpb24gKG9FcnJvcjogdW5rbm93bikge1xuXHRcdFx0XHRMb2cuZXJyb3IoXCJhcHBTdGF0ZSBjb3VsZCBub3QgYmUgYXBwbGllZFwiLCBvRXJyb3IgYXMgc3RyaW5nKTtcblx0XHRcdFx0dGhyb3cgb0Vycm9yO1xuXHRcdFx0fSlcblx0XHRcdC5maW5hbGx5KCgpID0+IHtcblx0XHRcdFx0QnVzeUxvY2tlci51bmxvY2sodGhpcyk7XG5cdFx0XHRcdEJ1c3lMb2NrZXIudW5sb2NrKHRoaXMub0FwcENvbXBvbmVudC5nZXRSb290Q29udHJvbCgpKTtcblx0XHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRvIGNoZWNrIGlzIHJvdXRlIGlzIGNoYW5nZWQgYnkgY2hhbmdlIGluIHRoZSBpQVBQU3RhdGUuXG5cdCAqXG5cdCAqIEByZXR1cm5zIGB0cnVlYCBpZiB0aGUgcm91dGUgaGFzIGNobmFnZWRcblx0ICovXG5cdGNoZWNrSWZSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0cmV0dXJuIHRoaXMuYk5vUm91dGVDaGFuZ2U7XG5cdH1cblxuXHQvKipcblx0ICogUmVzZXQgdGhlIHJvdXRlIGNoYW5nZWQgYnkgaUFQUFN0YXRlLlxuXHQgKi9cblx0cmVzZXRSb3V0ZUNoYW5nZWRCeUlBcHAoKSB7XG5cdFx0aWYgKHRoaXMuYk5vUm91dGVDaGFuZ2UpIHtcblx0XHRcdHRoaXMuYk5vUm91dGVDaGFuZ2UgPSBmYWxzZTtcblx0XHR9XG5cdH1cbn1cblxuLyoqXG4gKiBAZ2xvYmFsXG4gKi9cbmV4cG9ydCBkZWZhdWx0IEFwcFN0YXRlSGFuZGxlcjtcbiJdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQUE7QUFBQTs7Ozs7Ozs7RUFlQSxNQUFNQSxPQUFPLEdBQUdDLE9BQU8sQ0FBQ0QsT0FBTztFQWMvQixNQUFNRSxjQUFjLEdBQUcsV0FBVztFQUFDLElBVzdCQyxlQUFlLFdBRHBCQyxjQUFjLENBQUMsNkJBQTZCLENBQUM7SUFBQTtJQVk3Qyx5QkFBWUMsYUFBMkIsRUFBRTtNQUFBO01BQ3hDLDhCQUFPO01BQUMsTUFMREMs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
@@ -33,7 +33,7 @@ export type IAppState = {
33
33
  };
34
34
 
35
35
  export type AppDataInfo = {
36
- appStateData: { appState: object };
36
+ appStateData: { appState: object | undefined };
37
37
  appStateKey: string | null;
38
38
  };
39
39
 
@@ -90,10 +90,10 @@ class AppStateHandler extends BaseObject {
90
90
  if (skipMerge) {
91
91
  innerAppState = { ...innerAppState, ...{ skipMerge } };
92
92
  }
93
- const appStateData: { appState: object } = { appState: innerAppState };
93
+ const appStateData = { appState: innerAppState };
94
94
  let appStateKey: string | null = null;
95
95
  if (innerAppState && !deepEqual(this._mCurrentAppState, innerAppState)) {
96
- this._mCurrentAppState = innerAppState;
96
+ this._mCurrentAppState = innerAppState as Record<string, unknown>;
97
97
  try {
98
98
  this.nbSimultaneousCreateRequest++;
99
99
  appStateKey = await navigationService.storeInnerAppStateAsync(appStateData, true, true);