@sapui5/sap.fe.macros 1.141.2 → 1.143.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (257) hide show
  1. package/package.json +1 -1
  2. package/src/sap/fe/macros/.library +1 -1
  3. package/src/sap/fe/macros/Breadcrumbs.js +4 -10
  4. package/src/sap/fe/macros/Breadcrumbs.tsx +2 -8
  5. package/src/sap/fe/macros/Chart.js +34 -23
  6. package/src/sap/fe/macros/Chart.tsx +25 -11
  7. package/src/sap/fe/macros/CollaborativeDraftHandler.js +47 -36
  8. package/src/sap/fe/macros/CollaborativeDraftHandler.tsx +50 -31
  9. package/src/sap/fe/macros/CollectionBindingInfo.js +8 -2
  10. package/src/sap/fe/macros/CollectionBindingInfo.ts +11 -6
  11. package/src/sap/fe/macros/CommonHelper.js +14 -24
  12. package/src/sap/fe/macros/CommonHelper.ts +18 -25
  13. package/src/sap/fe/macros/ConditionalSwitch.js +1 -2
  14. package/src/sap/fe/macros/ConditionalSwitch.tsx +0 -1
  15. package/src/sap/fe/macros/ConditionalSwitchProperty.js +1 -3
  16. package/src/sap/fe/macros/ConditionalSwitchProperty.tsx +0 -2
  17. package/src/sap/fe/macros/Field.js +34 -17
  18. package/src/sap/fe/macros/Field.ts +64 -32
  19. package/src/sap/fe/macros/FooterContent.js +7 -3
  20. package/src/sap/fe/macros/FooterContent.tsx +8 -13
  21. package/src/sap/fe/macros/KPITag.js +6 -6
  22. package/src/sap/fe/macros/KPITag.tsx +8 -6
  23. package/src/sap/fe/macros/MacroAPI.js +4 -3
  24. package/src/sap/fe/macros/MacroAPI.ts +3 -3
  25. package/src/sap/fe/macros/MessageButton.js +4 -3
  26. package/src/sap/fe/macros/MessageButton.tsx +7 -3
  27. package/src/sap/fe/macros/MicroChart.js +12 -7
  28. package/src/sap/fe/macros/MicroChart.tsx +9 -3
  29. package/src/sap/fe/macros/MultiValueField.js +22 -36
  30. package/src/sap/fe/macros/MultiValueField.tsx +34 -66
  31. package/src/sap/fe/macros/RichTextEditor.js +3 -4
  32. package/src/sap/fe/macros/RichTextEditor.tsx +2 -3
  33. package/src/sap/fe/macros/Share.js +7 -7
  34. package/src/sap/fe/macros/Share.tsx +9 -6
  35. package/src/sap/fe/macros/Status.js +39 -11
  36. package/src/sap/fe/macros/Status.tsx +25 -5
  37. package/src/sap/fe/macros/ValueHelp.js +5 -2
  38. package/src/sap/fe/macros/ValueHelp.tsx +5 -0
  39. package/src/sap/fe/macros/ai/EasyFillDialog.js +2 -1
  40. package/src/sap/fe/macros/ai/EasyFillDialog.tsx +1 -0
  41. package/src/sap/fe/macros/ai/EasyFilterBar.js +7 -34
  42. package/src/sap/fe/macros/ai/EasyFilterBar.tsx +6 -35
  43. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.js +31 -7
  44. package/src/sap/fe/macros/ai/EasyFilterDataFetcher.ts +33 -6
  45. package/src/sap/fe/macros/ai/SummarizationButton.js +6 -4
  46. package/src/sap/fe/macros/ai/SummarizationButton.tsx +5 -3
  47. package/src/sap/fe/macros/chart/Action.js +25 -2
  48. package/src/sap/fe/macros/chart/Action.ts +13 -0
  49. package/src/sap/fe/macros/chart/ActionGroup.js +25 -2
  50. package/src/sap/fe/macros/chart/ActionGroup.ts +13 -0
  51. package/src/sap/fe/macros/chart/ChartDelegate.js +29 -8
  52. package/src/sap/fe/macros/chart/ChartDelegate.ts +46 -14
  53. package/src/sap/fe/macros/chart/MdcChartTemplate.js +58 -12
  54. package/src/sap/fe/macros/chart/MdcChartTemplate.tsx +75 -13
  55. package/src/sap/fe/macros/chart/OverflowGroup.js +62 -0
  56. package/src/sap/fe/macros/chart/OverflowGroup.ts +22 -0
  57. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.js +7 -7
  58. package/src/sap/fe/macros/controls/BuildingBlockObjectProperty.ts +3 -2
  59. package/src/sap/fe/macros/controls/FileWrapper.js +11 -5
  60. package/src/sap/fe/macros/controls/FileWrapper.ts +10 -4
  61. package/src/sap/fe/macros/controls/FilterBar.js +39 -3
  62. package/src/sap/fe/macros/controls/FilterBar.ts +42 -1
  63. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.js +3 -1
  64. package/src/sap/fe/macros/controls/NumberWithUnitOrCurrency.tsx +2 -0
  65. package/src/sap/fe/macros/controls/RadioButtons.js +18 -5
  66. package/src/sap/fe/macros/controls/RadioButtons.tsx +10 -1
  67. package/src/sap/fe/macros/coreUI/CreateDialog.js +3 -3
  68. package/src/sap/fe/macros/coreUI/CreateDialog.tsx +2 -2
  69. package/src/sap/fe/macros/coreUI/OperationParameterDialog.js +40 -12
  70. package/src/sap/fe/macros/coreUI/OperationParameterDialog.tsx +48 -9
  71. package/src/sap/fe/macros/draftIndicator/DraftIndicator.js +4 -2
  72. package/src/sap/fe/macros/draftIndicator/DraftIndicator.tsx +3 -1
  73. package/src/sap/fe/macros/field/FieldFormatOptions.js +4 -4
  74. package/src/sap/fe/macros/field/FieldFormatOptions.ts +2 -2
  75. package/src/sap/fe/macros/field/FieldHelper.js +4 -3
  76. package/src/sap/fe/macros/field/FieldHelper.ts +7 -1
  77. package/src/sap/fe/macros/field/FieldRuntime.js +44 -9
  78. package/src/sap/fe/macros/field/FieldRuntime.ts +72 -8
  79. package/src/sap/fe/macros/field/FieldRuntimeHelper.js +3 -34
  80. package/src/sap/fe/macros/field/FieldRuntimeHelper.ts +28 -53
  81. package/src/sap/fe/macros/field/FieldTemplating.js +5 -4
  82. package/src/sap/fe/macros/field/FieldTemplating.ts +6 -4
  83. package/src/sap/fe/macros/filter/FilterFieldHelper.js +6 -4
  84. package/src/sap/fe/macros/filter/FilterFieldHelper.ts +7 -2
  85. package/src/sap/fe/macros/filter/FilterUtils.js +130 -40
  86. package/src/sap/fe/macros/filter/FilterUtils.ts +167 -45
  87. package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.js +2 -2
  88. package/src/sap/fe/macros/filterBar/ExtendedSemanticDateOperators.ts +1 -1
  89. package/src/sap/fe/macros/filterBar/FilterBar.block.js +4 -3
  90. package/src/sap/fe/macros/filterBar/FilterBar.block.tsx +19 -8
  91. package/src/sap/fe/macros/filterBar/FilterBarAPI.js +15 -9
  92. package/src/sap/fe/macros/filterBar/FilterBarAPI.ts +36 -17
  93. package/src/sap/fe/macros/filterBar/FilterBarDelegate.js +21 -10
  94. package/src/sap/fe/macros/filterBar/FilterBarDelegate.ts +81 -63
  95. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.js +376 -0
  96. package/src/sap/fe/macros/filterBar/UOMValidationDelegate.ts +463 -0
  97. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.js +4 -3
  98. package/src/sap/fe/macros/filterBar/mixin/FilterBarAPIStateHandler.ts +3 -2
  99. package/src/sap/fe/macros/form/Form.block.js +27 -2
  100. package/src/sap/fe/macros/form/Form.block.ts +31 -11
  101. package/src/sap/fe/macros/form/FormActionButtons.fragment.xml +13 -3
  102. package/src/sap/fe/macros/form/FormContainer.block.js +110 -63
  103. package/src/sap/fe/macros/form/FormContainer.block.ts +121 -64
  104. package/src/sap/fe/macros/formatters/TableFormatter.js +13 -10
  105. package/src/sap/fe/macros/formatters/TableFormatter.ts +11 -9
  106. package/src/sap/fe/macros/formatters/VisualFilterFormatter.js +6 -4
  107. package/src/sap/fe/macros/formatters/VisualFilterFormatter.ts +5 -5
  108. package/src/sap/fe/macros/inlineEdit/InlineEdit.js +5 -5
  109. package/src/sap/fe/macros/inlineEdit/InlineEdit.ts +4 -4
  110. package/src/sap/fe/macros/insights/InsightsService.js +3 -2
  111. package/src/sap/fe/macros/insights/InsightsService.ts +2 -1
  112. package/src/sap/fe/macros/internal/DataPoint.js +7 -8
  113. package/src/sap/fe/macros/internal/DataPoint.tsx +6 -9
  114. package/src/sap/fe/macros/internal/field/DisplayStyle.js +8 -6
  115. package/src/sap/fe/macros/internal/field/DisplayStyle.tsx +7 -8
  116. package/src/sap/fe/macros/internal/field/EditStyle.js +9 -20
  117. package/src/sap/fe/macros/internal/field/EditStyle.tsx +17 -41
  118. package/src/sap/fe/macros/internal/field/FieldBlockStructure.js +2 -2
  119. package/src/sap/fe/macros/internal/field/FieldBlockStructure.tsx +1 -1
  120. package/src/sap/fe/macros/internal/field/FieldStructure.js +1 -2
  121. package/src/sap/fe/macros/internal/field/FieldStructure.tsx +0 -2
  122. package/src/sap/fe/macros/internal/field/FieldStructureHelper.js +7 -7
  123. package/src/sap/fe/macros/internal/field/FieldStructureHelper.ts +17 -11
  124. package/src/sap/fe/macros/internal/helpers/DataPointTemplating.js +6 -2
  125. package/src/sap/fe/macros/internal/helpers/DataPointTemplating.ts +5 -1
  126. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.js +9 -6
  127. package/src/sap/fe/macros/internal/valuehelp/AdditionalValueFormatter.ts +7 -5
  128. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.js +4 -4
  129. package/src/sap/fe/macros/internal/valuehelp/TableDelegate.ts +6 -6
  130. package/src/sap/fe/macros/internal/valuehelp/ValueListDialogTable.fragment.xml +5 -2
  131. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.js +2 -2
  132. package/src/sap/fe/macros/internal/valuehelp/ValueListHelper.ts +2 -1
  133. package/src/sap/fe/macros/library.js +5 -6
  134. package/src/sap/fe/macros/{library.ts → library.tsx} +3 -1
  135. package/src/sap/fe/macros/mdc/adapter/StateHelper.js +15 -5
  136. package/src/sap/fe/macros/mdc/adapter/StateHelper.ts +21 -5
  137. package/src/sap/fe/macros/messagebundle.properties +13 -5
  138. package/src/sap/fe/macros/messagebundle_ar.properties +12 -3
  139. package/src/sap/fe/macros/messagebundle_bg.properties +13 -4
  140. package/src/sap/fe/macros/messagebundle_ca.properties +12 -3
  141. package/src/sap/fe/macros/messagebundle_cnr.properties +12 -3
  142. package/src/sap/fe/macros/messagebundle_cs.properties +11 -2
  143. package/src/sap/fe/macros/messagebundle_cy.properties +12 -3
  144. package/src/sap/fe/macros/messagebundle_da.properties +12 -3
  145. package/src/sap/fe/macros/messagebundle_de.properties +16 -7
  146. package/src/sap/fe/macros/messagebundle_el.properties +13 -4
  147. package/src/sap/fe/macros/messagebundle_en.properties +13 -4
  148. package/src/sap/fe/macros/messagebundle_en_GB.properties +13 -4
  149. package/src/sap/fe/macros/messagebundle_en_US_saprigi.properties +13 -4
  150. package/src/sap/fe/macros/messagebundle_es.properties +12 -3
  151. package/src/sap/fe/macros/messagebundle_es_MX.properties +12 -3
  152. package/src/sap/fe/macros/messagebundle_et.properties +12 -3
  153. package/src/sap/fe/macros/messagebundle_fi.properties +12 -3
  154. package/src/sap/fe/macros/messagebundle_fr.properties +12 -3
  155. package/src/sap/fe/macros/messagebundle_fr_CA.properties +12 -3
  156. package/src/sap/fe/macros/messagebundle_hi.properties +12 -3
  157. package/src/sap/fe/macros/messagebundle_hr.properties +13 -4
  158. package/src/sap/fe/macros/messagebundle_hu.properties +12 -3
  159. package/src/sap/fe/macros/messagebundle_id.properties +18 -9
  160. package/src/sap/fe/macros/messagebundle_it.properties +12 -3
  161. package/src/sap/fe/macros/messagebundle_iw.properties +12 -3
  162. package/src/sap/fe/macros/messagebundle_ja.properties +12 -3
  163. package/src/sap/fe/macros/messagebundle_kk.properties +11 -2
  164. package/src/sap/fe/macros/messagebundle_ko.properties +13 -4
  165. package/src/sap/fe/macros/messagebundle_lt.properties +12 -3
  166. package/src/sap/fe/macros/messagebundle_lv.properties +12 -3
  167. package/src/sap/fe/macros/messagebundle_mk.properties +12 -3
  168. package/src/sap/fe/macros/messagebundle_ms.properties +12 -3
  169. package/src/sap/fe/macros/messagebundle_nl.properties +12 -3
  170. package/src/sap/fe/macros/messagebundle_no.properties +12 -3
  171. package/src/sap/fe/macros/messagebundle_pl.properties +12 -3
  172. package/src/sap/fe/macros/messagebundle_pt.properties +12 -3
  173. package/src/sap/fe/macros/messagebundle_pt_PT.properties +12 -3
  174. package/src/sap/fe/macros/messagebundle_ro.properties +13 -4
  175. package/src/sap/fe/macros/messagebundle_ru.properties +12 -3
  176. package/src/sap/fe/macros/messagebundle_sh.properties +12 -3
  177. package/src/sap/fe/macros/messagebundle_sk.properties +12 -3
  178. package/src/sap/fe/macros/messagebundle_sl.properties +13 -4
  179. package/src/sap/fe/macros/messagebundle_sr.properties +12 -3
  180. package/src/sap/fe/macros/messagebundle_sv.properties +12 -3
  181. package/src/sap/fe/macros/messagebundle_th.properties +11 -2
  182. package/src/sap/fe/macros/messagebundle_tr.properties +12 -3
  183. package/src/sap/fe/macros/messagebundle_uk.properties +12 -3
  184. package/src/sap/fe/macros/messagebundle_vi.properties +13 -4
  185. package/src/sap/fe/macros/messagebundle_zh_CN.properties +12 -3
  186. package/src/sap/fe/macros/messagebundle_zh_TW.properties +12 -3
  187. package/src/sap/fe/macros/messages/MessageButton.js +21 -12
  188. package/src/sap/fe/macros/messages/MessageButton.ts +21 -11
  189. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.js +7 -3
  190. package/src/sap/fe/macros/multivaluefield/MultiValueFieldDelegate.ts +8 -2
  191. package/src/sap/fe/macros/quickView/QuickView.js +5 -4
  192. package/src/sap/fe/macros/quickView/QuickView.tsx +10 -3
  193. package/src/sap/fe/macros/richtexteditor/ButtonGroup.js +2 -2
  194. package/src/sap/fe/macros/richtexteditor/ButtonGroup.ts +2 -2
  195. package/src/sap/fe/macros/table/Action.js +21 -5
  196. package/src/sap/fe/macros/table/Action.ts +14 -4
  197. package/src/sap/fe/macros/table/ActionGroup.js +15 -2
  198. package/src/sap/fe/macros/table/ActionGroup.ts +8 -0
  199. package/src/sap/fe/macros/table/ActionGroupOverride.js +14 -2
  200. package/src/sap/fe/macros/table/ActionGroupOverride.ts +7 -0
  201. package/src/sap/fe/macros/table/ActionOverride.js +14 -2
  202. package/src/sap/fe/macros/table/ActionOverride.ts +7 -0
  203. package/src/sap/fe/macros/table/ActionsTemplating.js +16 -2
  204. package/src/sap/fe/macros/table/ActionsTemplating.tsx +15 -0
  205. package/src/sap/fe/macros/table/Column.js +3 -2
  206. package/src/sap/fe/macros/table/Column.ts +1 -1
  207. package/src/sap/fe/macros/table/MdcTableTemplate.js +96 -18
  208. package/src/sap/fe/macros/table/MdcTableTemplate.tsx +136 -17
  209. package/src/sap/fe/macros/table/OverflowGroups.js +59 -0
  210. package/src/sap/fe/macros/table/OverflowGroups.ts +27 -0
  211. package/src/sap/fe/macros/table/Table.block.js +74 -30
  212. package/src/sap/fe/macros/table/Table.block.tsx +77 -14
  213. package/src/sap/fe/macros/table/TableAPI.js +175 -132
  214. package/src/sap/fe/macros/table/TableAPI.ts +67 -30
  215. package/src/sap/fe/macros/table/TableDefinition.js +20 -3
  216. package/src/sap/fe/macros/table/TableDefinition.ts +18 -2
  217. package/src/sap/fe/macros/table/TableEventHandlerProvider.js +6 -3
  218. package/src/sap/fe/macros/table/TableEventHandlerProvider.ts +12 -9
  219. package/src/sap/fe/macros/table/TableHelper.js +5 -2
  220. package/src/sap/fe/macros/table/TableHelper.ts +5 -2
  221. package/src/sap/fe/macros/table/TableRuntime.js +25 -13
  222. package/src/sap/fe/macros/table/TableRuntime.ts +31 -17
  223. package/src/sap/fe/macros/table/TableSizeHelper.js +4 -4
  224. package/src/sap/fe/macros/table/TableSizeHelper.ts +6 -11
  225. package/src/sap/fe/macros/table/Utils.js +9 -3
  226. package/src/sap/fe/macros/table/Utils.ts +14 -8
  227. package/src/sap/fe/macros/table/delegates/TableDelegate.js +72 -29
  228. package/src/sap/fe/macros/table/delegates/TableDelegate.ts +114 -123
  229. package/src/sap/fe/macros/table/massEdit/MassEditDialog.js +41 -15
  230. package/src/sap/fe/macros/table/massEdit/MassEditDialog.tsx +41 -22
  231. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.js +15 -6
  232. package/src/sap/fe/macros/table/massEdit/MassEditDialogHelper.tsx +14 -5
  233. package/src/sap/fe/macros/table/massEdit/MassEditField.js +1 -1
  234. package/src/sap/fe/macros/table/massEdit/MassEditField.tsx +3 -6
  235. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.js +2 -3
  236. package/src/sap/fe/macros/table/mixin/ContextMenuHandler.ts +3 -2
  237. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.js +42 -14
  238. package/src/sap/fe/macros/table/mixin/EmptyRowsHandler.ts +49 -19
  239. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.js +7 -9
  240. package/src/sap/fe/macros/table/mixin/TableAPIStateHandler.ts +7 -8
  241. package/src/sap/fe/macros/table/mixin/TableExport.js +1 -1
  242. package/src/sap/fe/macros/table/mixin/TableExport.ts +3 -3
  243. package/src/sap/fe/macros/table/mixin/TableHierarchy.js +3 -4
  244. package/src/sap/fe/macros/table/mixin/TableHierarchy.ts +2 -3
  245. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.js +5 -4
  246. package/src/sap/fe/macros/table/uploadTable/UploadTableRuntime.ts +6 -3
  247. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.js +17 -10
  248. package/src/sap/fe/macros/valuehelp/ValueHelpDelegate.ts +24 -9
  249. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.js +4 -4
  250. package/src/sap/fe/macros/visualfilters/InteractiveChartHelper.ts +3 -3
  251. package/src/sap/fe/macros/visualfilters/VisualFilter.js +20 -2
  252. package/src/sap/fe/macros/visualfilters/VisualFilter.tsx +28 -6
  253. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.js +6 -3
  254. package/src/sap/fe/macros/visualfilters/VisualFilterRuntime.ts +4 -3
  255. package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.js +3 -3
  256. package/src/sap/fe/macros/visualfilters/fragments/InteractiveCharts.tsx +10 -4
  257. package/src/sap/fe/macros/visualfilters/fragments/InteractiveDonutChart.fragment.xml +1 -1
@@ -509,6 +509,7 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
509
509
  direction: FlexDirection.Column,
510
510
  class: "sapUiContentPadding",
511
511
  renderType: "Bare",
512
+ fitContainer: true,
512
513
  children: [_jsx(FormattedText, {
513
514
  htmlText: this.getTranslatedText("C_EASYEDIT_DIALOG_DESCRIPTION"),
514
515
  class: "sapUiTinyMarginBottom"
@@ -632,4 +633,4 @@ sap.ui.define(["sap/base/Log", "sap/fe/base/BindingToolkit", "sap/fe/base/ClassS
632
633
  _exports = EasyFillDialog;
633
634
  return _exports;
634
635
  }, false);
635
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfTEVOR1RIIiwiRWFzeUZpbGxEaWFsb2ciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImRlZmluZVJlZmVyZW5jZSIsIl9kZWMzIiwiX2RlYzQiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJpZE9yUHJvcHMiLCJwcm9wcyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIl9vd25lckNvbXBvbmVudCIsInN0YXRlIiwibmV3VmFsdWVzIiwiaGFzVmFsdWVzIiwiaGFzRXJyb3IiLCJzdGF0ZVR5cGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIm9uQ29uZmlybSIsIl9lIiwibWFpblBhZ2VCaW5kaW5nQ29udGV4dCIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiYWxsUHJvcHMiLCJfYmluZGluZ0NvbnRleHQiLCJnZXRPYmplY3QiLCJuZXdWYWx1ZXNLZXkiLCJzdGFydHNXaXRoIiwic2V0UHJvcGVydHkiLCJwdXNoIiwiYXBwbHlVcGRhdGVzRm9yQ2hhbmdlIiwiZ2V0UGF0aCIsIlByb21pc2UiLCJhbGwiLCJyZWZyZXNoIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJjbG9zZSIsInZpZXciLCJwcm9wZXJ0eVBhdGhGb3JVcGRhdGUiLCJtZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm1ldGFDb250ZXh0IiwiZ2V0TWV0YUNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3QiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJ0YXJnZXRDb250ZXh0Iiwic2lkZUVmZmVjdHNQcm9taXNlcyIsInNpZGVFZmZlY3RzU2VydmljZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsInRhcmdldE1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJyZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlIiwicmVwbGFjZSIsInNsaWNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwiZmllbGRHcm91cElkcyIsImNvbXB1dGVGaWVsZEdyb3VwSWRzIiwidGFyZ2V0RW50aXR5VHlwZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRhcmdldE9iamVjdCIsImxlbmd0aCIsInBhZ2VDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCIsIl9zaWRlRWZmZWN0cyIsImdldFNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNpZGVFZmZlY3ROYW1lIiwic2lkZUVmZmVjdCIsInNpZGVFZmZlY3RzIiwiY29udGV4dCIsInVuZGVmaW5lZCIsIm9uQ2FuY2VsIiwib3BlbiIsIl9nZXRGaWVsZE1hcHBpbmciLCJkZWZpbml0aW9uUGFnZSIsImZpZWxkTWFwcGluZyIsInBhZ2VUYXJnZXQiLCJnZXRUYXJnZXQiLCJlbnRpdHlUeXBlIiwiX3R5cGUiLCJ0YXJnZXRUeXBlIiwiZW50aXR5UHJvcGVydHkiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiaXNJbW11dGFibGUiLCJpc0NvbXB1dGVkIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJnZXRMYWJlbCIsImRhdGFUeXBlIiwiZ2VuZXJhdGVMaXN0QmluZGluZyIsInBhdGgiLCJtb2RlbCIsInRyYW5zaWVudExpc3RCaW5kaW5nIiwiYmluZExpc3QiLCIkJHVwZGF0ZUdyb3VwSWQiLCJyZWZyZXNoSW50ZXJuYWwiLCJvblRodW1iUHJlc3MiLCJ0aHVtYlVwQnV0dG9uIiwidGh1bWJEb3duQnV0dG9uIiwic2V0RW5hYmxlZCIsIk1lc3NhZ2VUb2FzdCIsInNob3ciLCJnZXRUcmFuc2xhdGVkVGV4dCIsImZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMiLCJ2YWx1ZSIsIm9uQ2xlYXJBbGwiLCJoYXNJbmNvcnJlY3RWYWx1ZXMiLCJlbnRlcmVkVGV4dCIsImN1cnJlbnRseUVudGVyZWRUZXh0IiwiaW5jb3JyZWN0VmFsdWVzIiwib25WYWxpZGF0ZUZpZWxkR3JvdXBzIiwiYWxsRmllbGRzIiwiJHJldmlld0FyZWEiLCJjdXJyZW50IiwiZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZCIsInNvbWUiLCJmaWVsZCIsImRhdGEiLCJnZXRWYWx1ZVN0YXRlIiwib25GaWVsZENoYW5nZSIsImV2IiwiZ2V0U291cmNlIiwicmVtb3ZlTWVzc2FnZSIsIm9uRWFzeUVkaXRQcmVzc2VkIiwibWV0YVBhdGgiLCJnZXRPd25lclBhZ2VEZWZpbml0aW9uIiwiZWFzeUZpbGxMaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsIm9kYXRhTW9kZWwiLCJjcmVhdGUiLCJpc0J1c3kiLCJhaUNhbGxSZXN1bHQiLCJleHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCIsInN1Y2Nlc3MiLCJ1cGRhdGVkRmllbGRzIiwiZWRpdGFibGVGaWVsZHMiLCJnZXRFZGl0YWJsZUZpZWxkcyIsIiRzY3JvbGxDb250YWluZXIiLCJkZXN0cm95IiwicmV2aWV3QXJlYUZvcm0iLCJfanN4IiwiRm9ybSIsImVkaXRhYmxlIiwiY2xhc3MiLCJ2aXNpYmxlIiwiYmluZFN0YXRlIiwiY2hpbGRyZW4iLCJsYXlvdXQiLCJDb2x1bW5MYXlvdXQiLCJjb2x1bW5zTSIsImNvbHVtbnNMIiwiY29sdW1uc1hMIiwibGFiZWxDZWxsc0xhcmdlIiwiZW1wdHlDZWxsc0xhcmdlIiwiaW5jb3JyZWN0VmFsdWVzRm9ybSIsIndhcm5pbmdNZXNzYWdlIiwiTWVzc2FnZVN0cmlwIiwidGV4dCIsInNob3dJY29uIiwiVG9nZ2xlQnV0dG9uIiwiaWNvbiIsInRvb2x0aXAiLCJwcmVzcyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIiwiYWlOb3RpY2VUZXh0IiwiX2pzeHMiLCJIQm94IiwiYWxpZ25JdGVtcyIsImVxdWFsIiwiQUlMaW5rTm90aWNlIiwiVGV4dCIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lciIsIkZvcm1Db250YWluZXIiLCJ0aXRsZSIsIkNvcmVUaXRsZSIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJuZXdWYWx1ZXNGb3JtQ29udGFpbmVyIiwibmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJ1aUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRm9ybUNvbnRhaW5lciIsInNldE1vZGVsIiwiJHZCb3giLCJjcmVhdGVSZWZlcmVuY2UiLCJhZGRJdGVtIiwiU2Nyb2xsQ29udGFpbmVyIiwicmVmIiwidmVydGljYWwiLCJWQm94IiwiaXRlbXMiLCJsYXlvdXREYXRhIiwiRmxleEl0ZW1EYXRhIiwiYWxpZ25TZWxmIiwiVGl0bGUiLCJ1cGRhdGVkRmllbGQiLCJpc0VkaXRhYmxlIiwiYWRkRm9ybUVsZW1lbnQiLCJGb3JtRWxlbWVudCIsImxhYmVsIiwiRmllbGQiLCJjb250ZXh0UGF0aCIsImdldE93bmVyQ29udGV4dFBhdGgiLCJyZWFkT25seSIsInJlcXVpcmVkIiwibmV3RmllbGQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiX3JlcXVpcmVzVmFsaWRhdGlvbiIsInZhbGlkYXRlRmllbGRHcm91cCIsImJpbmQiLCJjaGFuZ2UiLCJmaWVsZHMiLCJtZXRhTW9kZWxPYmoiLCJ2YWx1ZUV4cHJlc3Npb24iLCJBbm5vdGF0aW9uSGVscGVyIiwiZm9ybWF0IiwicGFyc2VkQmluZGluZyIsIkJpbmRpbmdJbmZvIiwicGFyc2UiLCJlcnJvck1lc3NhZ2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZSIsIm1lc3NhZ2UiLCJ2YWx1ZUxpc3QiLCJfZ2V0VmFsdWVMaXN0IiwiaGFzVkhFcnJvciIsIlZhbHVlTGlzdEhlbHBlciIsImlzVmFsdWVMaXN0U2VhcmNoYWJsZSIsInZhbHVlcyIsInJlc29sdmVUb2tlblZhbHVlIiwib3BlcmF0b3IiLCJGaWx0ZXJPcGVyYXRvciIsIkVRIiwic2VsZWN0ZWRWYWx1ZXMiLCJub01hdGNoIiwic2V0VGltZW91dCIsInNldFZhbHVlIiwibWVzc2FnZUlkIiwiYWRkTWVzc2FnZSIsIk1lc3NhZ2VUeXBlIiwiRXJyb3IiLCJlYXN5RWRpdERlc2NyaXB0aW9uIiwiSW52aXNpYmxlVGV4dCIsIiRlYXN5RmlsbEJ1dHRvbiIsIiRlYXN5RmlsbFNhdmVCdXR0b24iLCIkZWFzeUZpbGxDYW5jZWxCdXR0b24iLCIkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbiIsImRpYWxvZyIsIkRpYWxvZyIsInJlc2l6YWJsZSIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsImNvbnRlbnRIZWlnaHQiLCJlc2NhcGVIYW5kbGVyIiwiYWZ0ZXJDbG9zZSIsIkZsZXhCb3giLCJkaXJlY3Rpb24iLCJGbGV4RGlyZWN0aW9uIiwiUm93IiwicmVuZGVyVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiaWQiLCJjcmVhdGVJZCIsIkNvbHVtbiIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsIlRleHRBcmVhIiwibGl2ZUNoYW5nZSIsImdldFBhcmFtZXRlciIsInBsYWNlaG9sZGVyIiwicm93cyIsImdyb3dpbmciLCJncm93aW5nTWF4TGluZXMiLCJtYXhMZW5ndGgiLCJhcmlhTGFiZWxsZWRCeSIsImZvcm1hdHRlciIsIkJ1dHRvbiIsImVuYWJsZWQiLCJub3QiLCJpc0VtcHR5IiwiQnV0dG9uVHlwZSIsIlRyYW5zcGFyZW50IiwiYnVzeSIsIklsbHVzdHJhdGVkTWVzc2FnZSIsImlsbHVzdHJhdGlvblR5cGUiLCJJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlIiwiTm9TZWFyY2hSZXN1bHRzIiwiaWxsdXN0cmF0aW9uU2l6ZSIsIklsbHVzdHJhdGVkTWVzc2FnZVNpemUiLCJMYXJnZSIsIk5vRW50cmllcyIsIlVuYWJsZVRvTG9hZCIsImZvb3RlciIsIk92ZXJmbG93VG9vbGJhciIsIlRvb2xiYXJTcGFjZXIiLCJhbmQiLCJwcm9wZXJ0eVBhdGgiLCJ2YWx1ZUxpc3RzIiwiZ2V0VmFsdWVMaXN0SW5mbyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWxsRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGFuZCwgZXF1YWwsIGlzRW1wdHksIG5vdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVmZXJlbmNlLCBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgQUlMaW5rTm90aWNlIH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL0FJTm90aWNlXCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZFNpZGVFZmZlY3REaWN0aW9uYXJ5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25QYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2RlZmluaXRpb24vRkVEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCwgaXNDb21wdXRlZCwgaXNJbW11dGFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpZWxkXCI7XG5pbXBvcnQgeyByZXNvbHZlVG9rZW5WYWx1ZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2FpL0Vhc3lGaWx0ZXJEYXRhRmV0Y2hlclwiO1xuaW1wb3J0IFZhbHVlTGlzdEhlbHBlciwgeyB0eXBlIFZhbHVlTGlzdEluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvVmFsdWVMaXN0SGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgRmxleEl0ZW1EYXRhIGZyb20gXCJzYXAvbS9GbGV4SXRlbURhdGFcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgSEJveCBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlXCI7XG5pbXBvcnQgSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZVwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZVR5cGUgZnJvbSBcInNhcC9tL0lsbHVzdHJhdGVkTWVzc2FnZVR5cGVcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBTY3JvbGxDb250YWluZXIgZnJvbSBcInNhcC9tL1Njcm9sbENvbnRhaW5lclwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBUZXh0QXJlYSBmcm9tIFwic2FwL20vVGV4dEFyZWFcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcInNhcC9tL1RvZ2dsZUJ1dHRvblwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBGbGV4RGlyZWN0aW9uIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBCaW5kaW5nSW5mbyBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ0luZm9cIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgQ29yZVRpdGxlIGZyb20gXCJzYXAvdWkvY29yZS9UaXRsZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgQ29sdW1uTGF5b3V0IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vQ29sdW1uTGF5b3V0XCI7XG5pbXBvcnQgRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1cIjtcbmltcG9ydCBGb3JtQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUNvbnRhaW5lclwiO1xuaW1wb3J0IEZvcm1FbGVtZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUVsZW1lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCI7XG5cbmNvbnN0IE1BWF9MRU5HVEggPSAyMDAwO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLkVhc3lGaWxsRGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsbERpYWxvZyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8XG5cdERpYWxvZyxcblx0e1xuXHRcdGVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aXNCdXN5OiBib29sZWFuO1xuXHRcdGN1cnJlbnRseUVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRuZXdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdGhhc1ZhbHVlczogYm9vbGVhbjtcblx0XHRoYXNFcnJvcjogYm9vbGVhbjtcblx0XHRoYXNJbmNvcnJlY3RWYWx1ZXM6IGJvb2xlYW47XG5cdFx0c3RhdGVUeXBlOiBcIkluaXRpYWxcIiB8IFwiTm9FbnRyaWVzXCIgfCBcIkVycm9yXCIgfCBcIkhhc0VudHJpZXNcIjtcblx0fVxuPiB7XG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHQkcmV2aWV3QXJlYSE6IFJlZjxGbGV4Qm94PjtcblxuXHRAZGVmaW5lUmVmZXJlbmNlKClcblx0JHNjcm9sbENvbnRhaW5lciE6IFJlZjxGbGV4Qm94PjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcIkZ1bmN0aW9uXCIgfSlcblx0Z2V0RWRpdGFibGVGaWVsZHM/OiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIF9iaW5kaW5nQ29udGV4dD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IoaWRPclByb3BzOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8RWFzeUZpbGxEaWFsb2c+LCBwcm9wcz86IFByb3BlcnRpZXNPZjxFYXN5RmlsbERpYWxvZz4pIHtcblx0XHRzdXBlcihpZE9yUHJvcHMsIHByb3BzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdHN1cGVyLm9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50KTtcblx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJJbml0aWFsXCI7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRhc3luYyBvbkNvbmZpcm0oX2U6IEJ1dHRvbiRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gVmFsaWRhdGUgdGhlIGRhdGEgaGFuZGxpbmdcblx0XHRjb25zdCBtYWluUGFnZUJpbmRpbmdDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBhbGxQcm9wcyA9IFtdO1xuXHRcdGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuX2JpbmRpbmdDb250ZXh0Py5nZXRPYmplY3QoKSA/PyB0aGlzLnN0YXRlLm5ld1ZhbHVlcztcblx0XHRmb3IgKGNvbnN0IG5ld1ZhbHVlc0tleSBpbiBuZXdWYWx1ZXMpIHtcblx0XHRcdGlmIChuZXdWYWx1ZXNLZXkgIT09IFwiX19iaW5kaW5nSW5mb1wiICYmICFuZXdWYWx1ZXNLZXkuc3RhcnRzV2l0aChcIkAkXCIpKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV3VmFsdWVzW25ld1ZhbHVlc0tleV0gIT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRtYWluUGFnZUJpbmRpbmdDb250ZXh0Py5zZXRQcm9wZXJ0eShuZXdWYWx1ZXNLZXksIG5ld1ZhbHVlc1tuZXdWYWx1ZXNLZXldKTtcblx0XHRcdFx0XHRhbGxQcm9wcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBseVVwZGF0ZXNGb3JDaGFuZ2UodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKSwgbWFpblBhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKG5ld1ZhbHVlc0tleSkpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvcHMpO1xuXHRcdFx0bWFpblBhZ2VCaW5kaW5nQ29udGV4dC5yZWZyZXNoKCk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJGYWlsZWQgdG8gdXBkYXRlIGRhdGEgYWZ0ZXIgY2hhbmdlOlwiICsgZXJyKTtcblx0XHR9XG5cdFx0Ly8gQ2xvc2Ugbm9uZXRoZWxlc3Ncblx0XHR0aGlzLmNvbnRlbnQ/LmNsb3NlKCk7XG5cdH1cblxuXHRhc3luYyBhcHBseVVwZGF0ZXNGb3JDaGFuZ2UodmlldzogRkVWaWV3LCBwcm9wZXJ0eVBhdGhGb3JVcGRhdGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG1ldGFNb2RlbC5nZXRNZXRhQ29udGV4dChwcm9wZXJ0eVBhdGhGb3JVcGRhdGUpO1xuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KG1ldGFDb250ZXh0KTtcblx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBzaWRlRWZmZWN0c1Byb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzU2VydmljZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldykuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cblx0XHRcdC8vIFdlIGhhdmUgYSB0YXJnZXQgY29udGV4dCwgc28gd2UgY2FuIHJldHJpZXZlIHRoZSB1cGRhdGVkIHByb3BlcnR5XG5cdFx0XHRjb25zdCB0YXJnZXRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXRDb250ZXh0LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCByZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKHByb3BlcnR5UGF0aEZvclVwZGF0ZSkucmVwbGFjZSh0YXJnZXRNZXRhUGF0aCwgXCJcIikuc2xpY2UoMSk7XG5cdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goc2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhbcmVsYXRpdmVNZXRhUGF0aEZvclVwZGF0ZV0sIHRhcmdldENvbnRleHQsIFwiJGF1dG9cIikpO1xuXG5cdFx0XHQvLyBHZXQgdGhlIGZpZWxkR3JvdXBJZHMgY29ycmVzcG9uZGluZyB0byBwYXRoRm9yVXBkYXRlXG5cdFx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmNvbXB1dGVGaWVsZEdyb3VwSWRzKFxuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3QudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdC50YXJnZXRPYmplY3QhLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSB0aGUgc2lkZSBlZmZlY3RzIGZvciB0aGUgZmllbGRHcm91cElkc1xuXHRcdFx0aWYgKGZpZWxkR3JvdXBJZHMubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCA9IHBhZ2VDb250cm9sbGVyLl9zaWRlRWZmZWN0cy5nZXRTaWRlRWZmZWN0c01hcEZvckZpZWxkR3JvdXBzKFxuXHRcdFx0XHRcdGZpZWxkR3JvdXBJZHMsXG5cdFx0XHRcdFx0dGFyZ2V0Q29udGV4dFxuXHRcdFx0XHQpIGFzIEZpZWxkU2lkZUVmZmVjdERpY3Rpb25hcnk7XG5cdFx0XHRcdE9iamVjdC5rZXlzKHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCkuZm9yRWFjaCgoc2lkZUVmZmVjdE5hbWUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzaWRlRWZmZWN0ID0gc2lkZUVmZmVjdHNNYXBGb3JGaWVsZEdyb3VwW3NpZGVFZmZlY3ROYW1lXTtcblx0XHRcdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0XHRwYWdlQ29udHJvbGxlci5fc2lkZUVmZmVjdHMucmVxdWVzdFNpZGVFZmZlY3RzKHNpZGVFZmZlY3Quc2lkZUVmZmVjdHMsIHNpZGVFZmZlY3QuY29udGV4dCwgXCIkYXV0b1wiLCB1bmRlZmluZWQsIHRydWUpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHNpZGVFZmZlY3RzUHJvbWlzZXMpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiRmFpbGVkIHRvIHVwZGF0ZSBkYXRhIGFmdGVyIGNoYW5nZTpcIiArIGVycik7XG5cdFx0XHR0aHJvdyBlcnI7XG5cdFx0fVxuXHR9XG5cblx0b25DYW5jZWwoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0b3BlbigpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRlbnQ/Lm9wZW4oKTtcblx0fVxuXG5cdF9nZXRGaWVsZE1hcHBpbmcoZGVmaW5pdGlvblBhZ2U6IERlZmluaXRpb25QYWdlIHwgdW5kZWZpbmVkKTogRmllbGRNZXRhZGF0YSB7XG5cdFx0Y29uc3QgZmllbGRNYXBwaW5nOiBGaWVsZE1ldGFkYXRhID0ge307XG5cdFx0aWYgKGRlZmluaXRpb25QYWdlKSB7XG5cdFx0XHRjb25zdCBwYWdlVGFyZ2V0ID0gZGVmaW5pdGlvblBhZ2UuZ2V0TWV0YVBhdGgoKS5nZXRUYXJnZXQoKTtcblx0XHRcdGxldCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0c3dpdGNoIChwYWdlVGFyZ2V0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFbnRpdHlTZXRcIjpcblx0XHRcdFx0Y2FzZSBcIlNpbmdsZXRvblwiOlxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSBwYWdlVGFyZ2V0LmVudGl0eVR5cGU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRlbnRpdHlUeXBlID0gcGFnZVRhcmdldC50YXJnZXRUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZW50aXR5VHlwZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZW50aXR5UHJvcGVydHkgb2YgZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0IWlzSW1tdXRhYmxlKGVudGl0eVByb3BlcnR5KSAmJlxuXHRcdFx0XHRcdFx0IWlzQ29tcHV0ZWQoZW50aXR5UHJvcGVydHkpICYmXG5cdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUgJiZcblx0XHRcdFx0XHRcdCFlbnRpdHlQcm9wZXJ0eS50YXJnZXRUeXBlXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBJZiBub3QgaW1tdXRhYmxlLCBjb21wdXRlZCBvciBoaWRkZW4sIG9yIGEgY29tcGxleCB0eXBlIGFkZCB0byB0aGUgZmllbGQgbWFwcGluZ1xuXHRcdFx0XHRcdFx0ZmllbGRNYXBwaW5nW2VudGl0eVByb3BlcnR5Lm5hbWVdID0ge1xuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZ2V0TGFiZWwoZW50aXR5UHJvcGVydHkpID8/IGVudGl0eVByb3BlcnR5Lm5hbWUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlOiBlbnRpdHlQcm9wZXJ0eS50eXBlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmllbGRNYXBwaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBnZW5lcmF0ZUxpc3RCaW5kaW5nKHBhdGg6IHN0cmluZywgbW9kZWw6IE9EYXRhTW9kZWwpOiBPRGF0YUxpc3RCaW5kaW5nIHtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFx0cGF0aCxcblx0XHRcdHVuZGVmaW5lZCxcblxuXHRcdFx0W10sXG5cdFx0XHRbXSxcblx0XHRcdHtcblx0XHRcdFx0JCR1cGRhdGVHcm91cElkOiBcInN1Ym1pdExhdGVyXCJcblx0XHRcdH1cblx0XHQpO1xuXHRcdHRyYW5zaWVudExpc3RCaW5kaW5nLnJlZnJlc2hJbnRlcm5hbCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdC8qICovXG5cdFx0fTtcblx0XHRyZXR1cm4gdHJhbnNpZW50TGlzdEJpbmRpbmc7XG5cdH1cblxuXHRwcml2YXRlIG9uVGh1bWJQcmVzcyh0aHVtYlVwQnV0dG9uOiBUb2dnbGVCdXR0b24sIHRodW1iRG93bkJ1dHRvbjogVG9nZ2xlQnV0dG9uKTogdm9pZCB7XG5cdFx0dGh1bWJVcEJ1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTtcblx0XHR0aHVtYkRvd25CdXR0b24uc2V0RW5hYmxlZChmYWxzZSk7XG5cdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRkVFREJBQ0tfU0VOVFwiKSk7XG5cdH1cblxuXHRmb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9SRU1BSU5JTkdfQ0hBUkFDVEVSU1wiLCBbTUFYX0xFTkdUSCAtICh2YWx1ZT8ubGVuZ3RoID8/IDApXSk7XG5cdH1cblxuXHRvbkNsZWFyQWxsKCk6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0ge307XG5cdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLmhhc0luY29ycmVjdFZhbHVlcyA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuZW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSW5pdGlhbFwiO1xuXHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdH1cblxuXHRvblZhbGlkYXRlRmllbGRHcm91cHMoX2U/OiBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsRmllbGRzID0gKHRoaXMuJHJldmlld0FyZWEuY3VycmVudD8uZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZChcIkVhc3lGaWxsRmllbGRcIikgYXMgRW5oYW5jZVdpdGhVSTU8RmllbGQ+W10pID8/IFtdO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBhbGxGaWVsZHMuc29tZSgoZmllbGQ6IEVuaGFuY2VXaXRoVUk1PEZpZWxkPik6IGJvb2xlYW4gPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0ISFmaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIpIHx8XG5cdFx0XHRcdCghIShmaWVsZCBhcyB7IGdldFZhbHVlU3RhdGU/OiBGdW5jdGlvbiB9KS5nZXRWYWx1ZVN0YXRlICYmXG5cdFx0XHRcdFx0KGZpZWxkIGFzIHsgZ2V0VmFsdWVTdGF0ZT86IEZ1bmN0aW9uIH0pLmdldFZhbHVlU3RhdGU/LigpID09PSBcIkVycm9yXCIpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25GaWVsZENoYW5nZShldjogVUk1RXZlbnQ8e30sIEZpZWxkPik6IHZvaWQge1xuXHRcdGV2LmdldFNvdXJjZSgpLnJlbW92ZU1lc3NhZ2UoZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiKSk7XG5cdFx0ZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiLCB1bmRlZmluZWQpO1xuXHR9XG5cblx0YXN5bmMgb25FYXN5RWRpdFByZXNzZWQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gQ2FsbCB0aGUgQUkgc2VydmljZVxuXHRcdC8vIFByb2Nlc3MgdGhyb3VnaCBjaGF0IGNvbXBsZXRpb24gQVBJXG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLmdldE93bmVyUGFnZURlZmluaXRpb24oKTtcblx0XHRjb25zdCBmaWVsZE1hcHBpbmcgPSB0aGlzLl9nZXRGaWVsZE1hcHBpbmcobWV0YVBhdGgpO1xuXHRcdGNvbnN0IGVhc3lGaWxsTGlicmFyeSA9IGF3YWl0IGltcG9ydChcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCIpO1xuXHRcdGNvbnN0IG9kYXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IHRoaXMuZ2VuZXJhdGVMaXN0QmluZGluZyhcblx0XHRcdG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpKSxcblx0XHRcdHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsXG5cdFx0KTtcblx0XHR0aGlzLl9iaW5kaW5nQ29udGV4dCA9IHRyYW5zaWVudExpc3RCaW5kaW5nLmNyZWF0ZSh7fSwgdHJ1ZSk7XG5cblx0XHR0aGlzLnN0YXRlLmlzQnVzeSA9IHRydWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGFpQ2FsbFJlc3VsdCA9IGF3YWl0IGVhc3lGaWxsTGlicmFyeS5leHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCh0aGlzLnN0YXRlLmVudGVyZWRUZXh0LCBmaWVsZE1hcHBpbmcpO1xuXHRcdFx0dGhpcy5zdGF0ZS5pc0J1c3kgPSBmYWxzZTtcblx0XHRcdGlmIChhaUNhbGxSZXN1bHQuc3VjY2Vzcykge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkRmllbGRzID0gYWlDYWxsUmVzdWx0LmRhdGE7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh1cGRhdGVkRmllbGRzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5zdGF0ZS5zdGF0ZVR5cGUgPSBcIk5vRW50cmllc1wiO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSGFzRW50cmllc1wiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmhhc0Vycm9yID0gZmFsc2U7XG5cdFx0XHRcdGNvbnN0IGVkaXRhYmxlRmllbGRzID0gKGF3YWl0IHRoaXMuZ2V0RWRpdGFibGVGaWVsZHM/LigpKSA/PyB7fTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy4kc2Nyb2xsQ29udGFpbmVyLmN1cnJlbnQ/LmRlc3Ryb3koKTtcblxuXHRcdFx0XHRjb25zdCByZXZpZXdBcmVhRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17dHJ1ZX0gY2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpblRvcEJvdHRvbVwifSB2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX0+XG5cdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRsYXlvdXQ6IDxDb2x1bW5MYXlvdXQgY29sdW1uc009ezJ9IGNvbHVtbnNMPXsyfSBjb2x1bW5zWEw9ezJ9IGxhYmVsQ2VsbHNMYXJnZT17MX0gZW1wdHlDZWxsc0xhcmdlPXsxfSAvPlxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L0Zvcm0+XG5cdFx0XHRcdCkgYXMgRm9ybTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17ZmFsc2V9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BCb3R0b21cIn0gdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0bGF5b3V0OiA8Q29sdW1uTGF5b3V0IGNvbHVtbnNNPXsyfSBjb2x1bW5zTD17Mn0gY29sdW1uc1hMPXsyfSBsYWJlbENlbGxzTGFyZ2U9ezF9IGVtcHR5Q2VsbHNMYXJnZT17MX0gLz5cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Gb3JtPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB3YXJuaW5nTWVzc2FnZSA9IChcblx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfV0FSTklOR19NU0dcIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIldhcm5pbmdcIn1cblx0XHRcdFx0XHRcdHNob3dJY29uPXt0cnVlfVxuXHRcdFx0XHRcdFx0dmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9XG5cdFx0XHRcdFx0PjwvTWVzc2FnZVN0cmlwPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB0aHVtYlVwQnV0dG9uID0gKFxuXHRcdFx0XHRcdDxUb2dnbGVCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly90aHVtYi11cFwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX1VQXCIpfVxuXHRcdFx0XHRcdFx0dHlwZT17XCJUcmFuc3BhcmVudFwifVxuXHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub25UaHVtYlByZXNzKHRodW1iVXBCdXR0b24sIHRodW1iRG93bkJ1dHRvbik7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSh0aHVtYlVwQnV0dG9uLCBcInByZXNzXCIsIFwiZmU0OmVmOnRodW1iVXBcIik7XG5cdFx0XHRcdGNvbnN0IHRodW1iRG93bkJ1dHRvbiA9IChcblx0XHRcdFx0XHQ8VG9nZ2xlQnV0dG9uXG5cdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vdGh1bWItZG93blwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX0RPV05cIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIlRyYW5zcGFyZW50XCJ9XG5cdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5vblRodW1iUHJlc3ModGh1bWJVcEJ1dHRvbiwgdGh1bWJEb3duQnV0dG9uKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKHRodW1iRG93bkJ1dHRvbiwgXCJwcmVzc1wiLCBcImZlNDplZjp0aHVtYkRvd25cIik7XG5cdFx0XHRcdGNvbnN0IGFpTm90aWNlVGV4dCA9IChcblx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPXtcIkNlbnRlclwifSB2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJIYXNFbnRyaWVzXCIpfT5cblx0XHRcdFx0XHRcdDxBSUxpbmtOb3RpY2UgLz5cblx0XHRcdFx0XHRcdDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0FJX05PVElDRV9URVhUXCIpfSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwifSAvPlxuXHRcdFx0XHRcdFx0e3RodW1iVXBCdXR0b259LCB7dGh1bWJEb3duQnV0dG9ufVxuXHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyID0gKFxuXHRcdFx0XHRcdDxGb3JtQ29udGFpbmVyPnt7IHRpdGxlOiA8Q29yZVRpdGxlIHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1BSRVZJT1VTX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMiA9IChcblx0XHRcdFx0XHQ8Rm9ybUNvbnRhaW5lcj57eyB0aXRsZTogPENvcmVUaXRsZSB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9QUkVWSU9VU19WQUxVRVNcIil9IC8+IH19PC9Gb3JtQ29udGFpbmVyPlxuXHRcdFx0XHQpIGFzIEZvcm1Db250YWluZXI7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlc0Zvcm1Db250YWluZXIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgdWlDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIik/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL2Vhc3lFZGl0RGlhbG9nXCIpO1xuXG5cdFx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbChcInVpXCIpLnNldFByb3BlcnR5KFwiL2Vhc3lFZGl0RGlhbG9nXCIsIHt9KTtcblx0XHRcdFx0dWlDb250ZXh0LnNldFByb3BlcnR5KFwiaXNFZGl0YWJsZVwiLCB0cnVlKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lci5zZXRCaW5kaW5nQ29udGV4dCh1aUNvbnRleHQsIFwidWlcIik7XG5cblx0XHRcdFx0cmV2aWV3QXJlYUZvcm0uYWRkRm9ybUNvbnRhaW5lcihwcmV2aW91c1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRyZXZpZXdBcmVhRm9ybS5hZGRGb3JtQ29udGFpbmVyKG5ld1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtLmFkZEZvcm1Db250YWluZXIocHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGluY29ycmVjdFZhbHVlc0Zvcm0uYWRkRm9ybUNvbnRhaW5lcihuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyLnNldEJpbmRpbmdDb250ZXh0KHRoaXMuX2JpbmRpbmdDb250ZXh0KTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKT8uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvaW5jb3JyZWN0VmFsdWVzXCIpKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0TW9kZWwodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKSk7XG5cblx0XHRcdFx0Y29uc3QgJHZCb3ggPSBjcmVhdGVSZWZlcmVuY2U8VkJveD4oKTtcblx0XHRcdFx0dGhpcy4kcmV2aWV3QXJlYS5jdXJyZW50Py5hZGRJdGVtKFxuXHRcdFx0XHRcdDxTY3JvbGxDb250YWluZXIgcmVmPXt0aGlzLiRzY3JvbGxDb250YWluZXJ9IHZlcnRpY2FsPXt0cnVlfSBjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdDxWQm94IHJlZj17JHZCb3h9PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHthaU5vdGljZVRleHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9IQm94Pixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0ZJTExFRF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXZpZXdBcmVhRm9ybSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0lOQ09SUkVDVF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luVG9wQm90dG9tXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc0luY29ycmVjdFZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3YXJuaW5nTWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdDwvU2Nyb2xsQ29udGFpbmVyPlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGZvciAoY29uc3QgdXBkYXRlZEZpZWxkIGluIHVwZGF0ZWRGaWVsZHMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdGFibGVGaWVsZHNbdXBkYXRlZEZpZWxkXSAmJiBlZGl0YWJsZUZpZWxkc1t1cGRhdGVkRmllbGRdLmlzRWRpdGFibGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lci5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXS5kZXNjcmlwdGlvbn0+XG5cdFx0XHRcdFx0XHRcdFx0PEZpZWxkXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD17dXBkYXRlZEZpZWxkfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVhZE9ubHk9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZD17ZmFsc2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvRm9ybUVsZW1lbnQ+XG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuZXdGaWVsZCA9IHRoaXMuX2dldE93bmVyKCk/LnJ1bkFzT3duZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRcdDxGaWVsZFxuXHRcdFx0XHRcdFx0XHRcdFx0X3JlcXVpcmVzVmFsaWRhdGlvbj17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbGlkYXRlRmllbGRHcm91cD17dGhpcy5vblZhbGlkYXRlRmllbGRHcm91cHMuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdGZpZWxkR3JvdXBJZHM9e1wiRWFzeUZpbGxGaWVsZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNoYW5nZT17dGhpcy5vbkZpZWxkQ2hhbmdlLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0KSBhcyBGaWVsZDtcblx0XHRcdFx0XHRcdH0pIGFzIEVuaGFuY2VXaXRoVUk1PEZpZWxkPjtcblx0XHRcdFx0XHRcdG5ld1ZhbHVlc0Zvcm1Db250YWluZXIuYWRkRm9ybUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdDxGb3JtRWxlbWVudCBsYWJlbD17ZmllbGRNYXBwaW5nW3VwZGF0ZWRGaWVsZF0uZGVzY3JpcHRpb259Pnt7IGZpZWxkczogbmV3RmllbGQgfX08L0Zvcm1FbGVtZW50PlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdFx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5fYmluZGluZ0NvbnRleHQuZ2V0UGF0aCh1cGRhdGVkRmllbGQpKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbE9iaiA9IG1ldGFNb2RlbC5nZXRPYmplY3QodGFyZ2V0TWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQobWV0YU1vZGVsT2JqLCB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQ6IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YXJnZXRNZXRhUGF0aCkhXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGNvbnN0IHBhcnNlZEJpbmRpbmcgPSBCaW5kaW5nSW5mby5wYXJzZSh2YWx1ZUV4cHJlc3Npb24pO1xuXHRcdFx0XHRcdFx0bGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG5cdFx0XHRcdFx0XHRpZiAocGFyc2VkQmluZGluZyAmJiBwYXJzZWRCaW5kaW5nLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRwYXJzZWRCaW5kaW5nLnR5cGUudmFsaWRhdGVWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0pO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRmV0Y2ggdGhlIHZhbHVlIGxpc3QgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXRoXG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3QgPSBhd2FpdCB0aGlzLl9nZXRWYWx1ZUxpc3QodGFyZ2V0TWV0YVBhdGgpO1xuXG5cdFx0XHRcdFx0XHQvLyBJbml0aWFsaXplIGEgZmxhZyB0byB0cmFjayB2YWxpZGF0aW9uIGVycm9yc1xuXHRcdFx0XHRcdFx0bGV0IGhhc1ZIRXJyb3IgPSBmYWxzZTtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIHZhbHVlIGxpc3QgaXMgc2VhcmNoYWJsZSBhbmQgdmFsaWRhdGUgdGhlIHVwZGF0ZWQgZmllbGQgdmFsdWVzXG5cdFx0XHRcdFx0XHRpZiAodmFsdWVMaXN0ICYmIFZhbHVlTGlzdEhlbHBlci5pc1ZhbHVlTGlzdFNlYXJjaGFibGUodGFyZ2V0TWV0YVBhdGgsIHZhbHVlTGlzdCkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVzID0gYXdhaXQgcmVzb2x2ZVRva2VuVmFsdWUoXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiBbdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdIGFzIHN0cmluZ11cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHQvLyBVcGRhdGUgdGhlIGZpZWxkIHZhbHVlIGlmIGl0IGRpZmZlcnMgZnJvbSB0aGUgcmVzb2x2ZWQgdmFsdWVcblx0XHRcdFx0XHRcdFx0aWYgKCF2YWx1ZXNbMF0ubm9NYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRcdHVwZGF0ZWRGaWVsZHNbdXBkYXRlZEZpZWxkXSA9IHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2UgPSBcIlwiO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGhhc1ZIRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1ZIX0VSUk9SXCIsIHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gVXNlIGEgdGltZW91dCB0byBlbnN1cmUgdmFsaWRhdGlvbiBydW5zIGNvcnJlY3RseSBmb3IgdGhlIHVwZGF0ZWQgZmllbGRcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5zZXRWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yTWVzc2FnZS5sZW5ndGggPiAwIHx8IGhhc1ZIRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlSWQgPSBuZXdGaWVsZC5hZGRNZXNzYWdlKHsgdHlwZTogTWVzc2FnZVR5cGUuRXJyb3IsIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSB9KTtcblx0XHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIsIG1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIDIwMCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGluY29ycmVjdFZhbHVlc1t1cGRhdGVkRmllbGRdID0gdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdO1xuXHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSB0cnVlO1xuXHRcdFx0XHRcdFx0cHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGRcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPXt1cGRhdGVkRmllbGR9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCl9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWFkT25seT17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkPXtmYWxzZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGQgbWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH0gY29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfSByZWFkT25seT17dHJ1ZX0gLz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKSk7XG5cdFx0XHRcdCR2Qm94LmN1cnJlbnQ/LnNldE1vZGVsKHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbCgpKTtcblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0TW9kZWwodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIiksIFwidWlcIik7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMub25WYWxpZGF0ZUZpZWxkR3JvdXBzKCk7XG5cdFx0XHRcdH0sIDEwMDApO1xuXG5cdFx0XHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0gbmV3VmFsdWVzO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IGluY29ycmVjdFZhbHVlcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IHt9O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuc3RhdGUuaXNCdXN5ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0dGhpcy5zdGF0ZS5uZXdWYWx1ZXMgPSB7fTtcblx0XHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBEaWFsb2cge1xuXHRcdGNvbnN0IGVhc3lFZGl0RGVzY3JpcHRpb24gPSA8SW52aXNpYmxlVGV4dCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9IC8+O1xuXG5cdFx0Y29uc3QgJGVhc3lGaWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxTYXZlQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxDYW5jZWxCdXR0b24gPSBjcmVhdGVSZWZlcmVuY2U8QnV0dG9uPigpO1xuXHRcdGNvbnN0ICRlYXN5RmlsbENsZWFyQWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBkaWFsb2cgPSAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfVElUTEVcIil9XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0aG9yaXpvbnRhbFNjcm9sbGluZz17ZmFsc2V9XG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPXtmYWxzZX1cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMTEwMHB4XCJcblx0XHRcdFx0Y29udGVudEhlaWdodD17XCI4MDBweFwifVxuXHRcdFx0XHRlc2NhcGVIYW5kbGVyPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5vbkNhbmNlbCgpO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PEZsZXhCb3ggZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLlJvd30gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IHdpZHRoPXtcIjEwMCVcIn0gaGVpZ2h0PXtcIjEwMCVcIn0+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9e1wiNDAlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJpbnB1dEFyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLkNvbHVtbn1cblx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9XG5cdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8Rm9ybWF0dGVkVGV4dFxuXHRcdFx0XHRcdFx0XHRcdFx0aHRtbFRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19ERVNDUklQVElPTlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0e2Vhc3lFZGl0RGVzY3JpcHRpb259XG5cdFx0XHRcdFx0XHRcdFx0PFRleHRBcmVhXG5cdFx0XHRcdFx0XHRcdFx0XHR2YWx1ZT17dGhpcy5iaW5kU3RhdGUoXCJlbnRlcmVkVGV4dFwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bGl2ZUNoYW5nZT17KGUpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5jdXJyZW50bHlFbnRlcmVkVGV4dCA9IGUuZ2V0UGFyYW1ldGVyKFwidmFsdWVcIikgPz8gXCJcIjtcblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0XHR3aWR0aD1cIjEwMCVcIlxuXHRcdFx0XHRcdFx0XHRcdFx0cGxhY2Vob2xkZXI9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1RFWFRBUkVBX1BMQUNFSE9MREVSXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cm93cz17MjB9XG5cdFx0XHRcdFx0XHRcdFx0XHRncm93aW5nPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdFx0Z3Jvd2luZ01heExpbmVzPXszMH1cblx0XHRcdFx0XHRcdFx0XHRcdG1heExlbmd0aD17TUFYX0xFTkdUSH1cblx0XHRcdFx0XHRcdFx0XHRcdGFyaWFMYWJlbGxlZEJ5PXtlYXN5RWRpdERlc2NyaXB0aW9ufVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PFRleHRcblx0XHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcFVpVGlueU1hcmdpbkJvdHRvbVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17e1xuXHRcdFx0XHRcdFx0XHRcdFx0XHRwYXRoOiBcIi9jdXJyZW50bHlFbnRlcmVkVGV4dFwiLFxuXHRcdFx0XHRcdFx0XHRcdFx0XHRtb2RlbDogXCIkY29tcG9uZW50U3RhdGVcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0Zm9ybWF0dGVyOiB0aGlzLmZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMuYmluZCh0aGlzKVxuXHRcdFx0XHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0XHR7eyBsYXlvdXREYXRhOiA8RmxleEl0ZW1EYXRhIGFsaWduU2VsZj1cIkVuZFwiIC8+IH19XG5cdFx0XHRcdFx0XHRcdFx0PC9UZXh0PlxuXHRcdFx0XHRcdFx0XHRcdDxIQm94PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbGF5b3V0RGF0YTogPEZsZXhJdGVtRGF0YSBhbGlnblNlbGY9XCJFbmRcIiAvPiB9fVxuXHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9CVVRUT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly9haVwifVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRlbmFibGVkPXtub3QoaXNFbXB0eSh0aGlzLmJpbmRTdGF0ZShcImN1cnJlbnRseUVudGVyZWRUZXh0XCIpKSl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uRWFzeUVkaXRQcmVzc2VkLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luRW5kXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19DTEVBUl9BTExcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHR5cGU9e0J1dHRvblR5cGUuVHJhbnNwYXJlbnR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uQ2xlYXJBbGwuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0cmVmPXskZWFzeUZpbGxDbGVhckFsbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0XHRcdD48L0J1dHRvbj5cblx0XHRcdFx0XHRcdFx0XHQ8L0hCb3g+XG5cdFx0XHRcdFx0XHRcdDwvRmxleEJveD5cblx0XHRcdFx0XHRcdFx0PEZsZXhCb3hcblx0XHRcdFx0XHRcdFx0XHRpZD17dGhpcy5jcmVhdGVJZChcInJldmlld0FyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0cmVmPXt0aGlzLiRyZXZpZXdBcmVhfVxuXHRcdFx0XHRcdFx0XHRcdHdpZHRoPXtcIjYwJVwifVxuXHRcdFx0XHRcdFx0XHRcdHJlbmRlclR5cGU9e1wiQmFyZVwifVxuXHRcdFx0XHRcdFx0XHRcdGJ1c3k9e3RoaXMuYmluZFN0YXRlKFwiaXNCdXN5XCIpfVxuXHRcdFx0XHRcdFx0XHRcdGRpcmVjdGlvbj17RmxleERpcmVjdGlvbi5Db2x1bW59XG5cdFx0XHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwRmVFYXN5RmlsbFJldmlld0FyZWFcIn1cblx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuTm9TZWFyY2hSZXN1bHRzfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfUkVWSUVXX1RJVExFXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb249e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19SRVZJRVdfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJJbml0aWFsXCIpfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PElsbHVzdHJhdGVkTWVzc2FnZVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uVHlwZT17SWxsdXN0cmF0ZWRNZXNzYWdlVHlwZS5Ob0VudHJpZXN9XG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25TaXplPXtJbGx1c3RyYXRlZE1lc3NhZ2VTaXplLkxhcmdlfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19OT19FTlRSSUVTX1RJVExFXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0ZGVzY3JpcHRpb249e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19OT19FTlRSSUVTX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiTm9FbnRyaWVzXCIpfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdFx0PElsbHVzdHJhdGVkTWVzc2FnZVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uVHlwZT17SWxsdXN0cmF0ZWRNZXNzYWdlVHlwZS5VbmFibGVUb0xvYWR9XG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25TaXplPXtJbGx1c3RyYXRlZE1lc3NhZ2VTaXplLkxhcmdlfVxuXHRcdFx0XHRcdFx0XHRcdFx0dGl0bGU9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19FUlJPUl9USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfRVJST1JfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJFcnJvclwiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0KSxcblx0XHRcdFx0XHRmb290ZXI6IChcblx0XHRcdFx0XHRcdDxPdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0XHRcdDxUb29sYmFyU3BhY2VyIC8+XG5cdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfU0FWRVwiKX1cblx0XHRcdFx0XHRcdFx0XHR0eXBlPVwiRW1waGFzaXplZFwiXG5cdFx0XHRcdFx0XHRcdFx0ZW5hYmxlZD17YW5kKHRoaXMuYmluZFN0YXRlKFwiaGFzVmFsdWVzXCIpLCBub3QodGhpcy5iaW5kU3RhdGUoXCJoYXNFcnJvclwiKSkpfVxuXHRcdFx0XHRcdFx0XHRcdHByZXNzPXt0aGlzLm9uQ29uZmlybS5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsU2F2ZUJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0RJQUxPR19DQU5DRUxcIil9XG5cdFx0XHRcdFx0XHRcdFx0dHlwZT1cIlRyYW5zcGFyZW50XCJcblx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNhbmNlbC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQ2FuY2VsQnV0dG9ufVxuXHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0PC9PdmVyZmxvd1Rvb2xiYXI+XG5cdFx0XHRcdFx0KVxuXHRcdFx0XHR9fVxuXHRcdFx0PC9EaWFsb2c+XG5cdFx0KTtcblx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoJGVhc3lGaWxsQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOmFuYWx5emVUZXh0XCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxTYXZlQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOnNhdmVcIik7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbENhbmNlbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpjYW5jZWxcIik7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbENsZWFyQWxsQnV0dG9uLmN1cnJlbnQhLCBcInByZXNzXCIsIFwiZmFpOmVmOmNsZWFyQWxsXCIpO1xuXHRcdHJldHVybiBkaWFsb2c7XG5cdH1cblxuXHRhc3luYyBfZ2V0VmFsdWVMaXN0KHByb3BlcnR5UGF0aDogc3RyaW5nKTogUHJvbWlzZTxWYWx1ZUxpc3RJbmZvIHwgdW5kZWZpbmVkPiB7XG5cdFx0Y29uc3QgbWV0YU1vZGVsID0gdGhpcy5nZXRNZXRhTW9kZWwoKSE7XG5cdFx0Y29uc3QgdmFsdWVMaXN0cyA9IGF3YWl0IFZhbHVlTGlzdEhlbHBlci5nZXRWYWx1ZUxpc3RJbmZvKHVuZGVmaW5lZCwgcHJvcGVydHlQYXRoLCB1bmRlZmluZWQsIG1ldGFNb2RlbCk7XG5cdFx0cmV0dXJuIHZhbHVlTGlzdHNbMF07XG5cdH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7RUF5REEsTUFBTUEsVUFBVSxHQUFHLElBQUk7RUFBQyxJQUdIQyxjQUFj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
636
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJNQVhfTEVOR1RIIiwiRWFzeUZpbGxEaWFsb2ciLCJfZGVjIiwiZGVmaW5lVUk1Q2xhc3MiLCJfZGVjMiIsImRlZmluZVJlZmVyZW5jZSIsIl9kZWMzIiwiX2RlYzQiLCJwcm9wZXJ0eSIsInR5cGUiLCJfY2xhc3MiLCJfY2xhc3MyIiwiX0J1aWxkaW5nQmxvY2siLCJpZE9yUHJvcHMiLCJwcm9wcyIsIl90aGlzIiwiY2FsbCIsIl9pbml0aWFsaXplckRlZmluZVByb3BlcnR5IiwiX2Rlc2NyaXB0b3IiLCJfZGVzY3JpcHRvcjIiLCJfZGVzY3JpcHRvcjMiLCJfZXhwb3J0cyIsIl9pbmhlcml0c0xvb3NlIiwiX3Byb3RvIiwicHJvdG90eXBlIiwib25NZXRhZGF0YUF2YWlsYWJsZSIsIl9vd25lckNvbXBvbmVudCIsInN0YXRlIiwibmV3VmFsdWVzIiwiaGFzVmFsdWVzIiwiaGFzRXJyb3IiLCJzdGF0ZVR5cGUiLCJjb250ZW50IiwiY3JlYXRlQ29udGVudCIsIm9uQ29uZmlybSIsIl9lIiwibWFpblBhZ2VCaW5kaW5nQ29udGV4dCIsImdldFBhZ2VDb250cm9sbGVyIiwiZ2V0VmlldyIsImdldEJpbmRpbmdDb250ZXh0IiwiYWxsUHJvcHMiLCJfYmluZGluZ0NvbnRleHQiLCJnZXRPYmplY3QiLCJuZXdWYWx1ZXNLZXkiLCJzdGFydHNXaXRoIiwic2V0UHJvcGVydHkiLCJwdXNoIiwiYXBwbHlVcGRhdGVzRm9yQ2hhbmdlIiwiZ2V0UGF0aCIsIlByb21pc2UiLCJhbGwiLCJyZWZyZXNoIiwiZXJyIiwiTG9nIiwiZXJyb3IiLCJjbG9zZSIsInZpZXciLCJwcm9wZXJ0eVBhdGhGb3JVcGRhdGUiLCJtZXRhTW9kZWwiLCJnZXRNb2RlbCIsImdldE1ldGFNb2RlbCIsIm1ldGFDb250ZXh0IiwiZ2V0TWV0YUNvbnRleHQiLCJkYXRhTW9kZWxPYmplY3QiLCJNZXRhTW9kZWxDb252ZXJ0ZXIiLCJnZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHMiLCJ0YXJnZXRDb250ZXh0Iiwic2lkZUVmZmVjdHNQcm9taXNlcyIsInNpZGVFZmZlY3RzU2VydmljZSIsIkNvbGxhYm9yYXRpb25VdGlscyIsImdldEFwcENvbXBvbmVudCIsImdldFNpZGVFZmZlY3RzU2VydmljZSIsInRhcmdldE1ldGFQYXRoIiwiZ2V0TWV0YVBhdGgiLCJyZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlIiwicmVwbGFjZSIsInNsaWNlIiwicmVxdWVzdFNpZGVFZmZlY3RzIiwiZmllbGRHcm91cElkcyIsImNvbXB1dGVGaWVsZEdyb3VwSWRzIiwidGFyZ2V0RW50aXR5VHlwZSIsImZ1bGx5UXVhbGlmaWVkTmFtZSIsInRhcmdldE9iamVjdCIsImxlbmd0aCIsInBhZ2VDb250cm9sbGVyIiwiZ2V0Q29udHJvbGxlciIsInNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCIsIl9zaWRlRWZmZWN0cyIsImdldFNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cHMiLCJPYmplY3QiLCJrZXlzIiwiZm9yRWFjaCIsInNpZGVFZmZlY3ROYW1lIiwic2lkZUVmZmVjdCIsInNpZGVFZmZlY3RzIiwiY29udGV4dCIsInVuZGVmaW5lZCIsIm9uQ2FuY2VsIiwib3BlbiIsIl9nZXRGaWVsZE1hcHBpbmciLCJkZWZpbml0aW9uUGFnZSIsImZpZWxkTWFwcGluZyIsInBhZ2VUYXJnZXQiLCJnZXRUYXJnZXQiLCJlbnRpdHlUeXBlIiwiX3R5cGUiLCJ0YXJnZXRUeXBlIiwiZW50aXR5UHJvcGVydHkiLCJlbnRpdHlQcm9wZXJ0aWVzIiwiaXNJbW11dGFibGUiLCJpc0NvbXB1dGVkIiwiYW5ub3RhdGlvbnMiLCJVSSIsIkhpZGRlbiIsInZhbHVlT2YiLCJuYW1lIiwiZGVzY3JpcHRpb24iLCJnZXRMYWJlbCIsImRhdGFUeXBlIiwiZ2VuZXJhdGVMaXN0QmluZGluZyIsInBhdGgiLCJtb2RlbCIsInRyYW5zaWVudExpc3RCaW5kaW5nIiwiYmluZExpc3QiLCIkJHVwZGF0ZUdyb3VwSWQiLCJyZWZyZXNoSW50ZXJuYWwiLCJvblRodW1iUHJlc3MiLCJ0aHVtYlVwQnV0dG9uIiwidGh1bWJEb3duQnV0dG9uIiwic2V0RW5hYmxlZCIsIk1lc3NhZ2VUb2FzdCIsInNob3ciLCJnZXRUcmFuc2xhdGVkVGV4dCIsImZvcm1hdFJlbWFpbmluZ0NoYXJhY3RlcnMiLCJ2YWx1ZSIsIm9uQ2xlYXJBbGwiLCJoYXNJbmNvcnJlY3RWYWx1ZXMiLCJlbnRlcmVkVGV4dCIsImN1cnJlbnRseUVudGVyZWRUZXh0IiwiaW5jb3JyZWN0VmFsdWVzIiwib25WYWxpZGF0ZUZpZWxkR3JvdXBzIiwiYWxsRmllbGRzIiwiJHJldmlld0FyZWEiLCJjdXJyZW50IiwiZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZCIsInNvbWUiLCJmaWVsZCIsImRhdGEiLCJnZXRWYWx1ZVN0YXRlIiwib25GaWVsZENoYW5nZSIsImV2IiwiZ2V0U291cmNlIiwicmVtb3ZlTWVzc2FnZSIsIm9uRWFzeUVkaXRQcmVzc2VkIiwibWV0YVBhdGgiLCJnZXRPd25lclBhZ2VEZWZpbml0aW9uIiwiZWFzeUZpbGxMaWJyYXJ5IiwiX191aTVfcmVxdWlyZV9hc3luYyIsIm9kYXRhTW9kZWwiLCJjcmVhdGUiLCJpc0J1c3kiLCJhaUNhbGxSZXN1bHQiLCJleHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCIsInN1Y2Nlc3MiLCJ1cGRhdGVkRmllbGRzIiwiZWRpdGFibGVGaWVsZHMiLCJnZXRFZGl0YWJsZUZpZWxkcyIsIiRzY3JvbGxDb250YWluZXIiLCJkZXN0cm95IiwicmV2aWV3QXJlYUZvcm0iLCJfanN4IiwiRm9ybSIsImVkaXRhYmxlIiwiY2xhc3MiLCJ2aXNpYmxlIiwiYmluZFN0YXRlIiwiY2hpbGRyZW4iLCJsYXlvdXQiLCJDb2x1bW5MYXlvdXQiLCJjb2x1bW5zTSIsImNvbHVtbnNMIiwiY29sdW1uc1hMIiwibGFiZWxDZWxsc0xhcmdlIiwiZW1wdHlDZWxsc0xhcmdlIiwiaW5jb3JyZWN0VmFsdWVzRm9ybSIsIndhcm5pbmdNZXNzYWdlIiwiTWVzc2FnZVN0cmlwIiwidGV4dCIsInNob3dJY29uIiwiVG9nZ2xlQnV0dG9uIiwiaWNvbiIsInRvb2x0aXAiLCJwcmVzcyIsIkZFU1JIZWxwZXIiLCJzZXRTZW1hbnRpY1N0ZXBuYW1lIiwiYWlOb3RpY2VUZXh0IiwiX2pzeHMiLCJIQm94IiwiYWxpZ25JdGVtcyIsImVxdWFsIiwiQUlMaW5rTm90aWNlIiwiVGV4dCIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lciIsIkZvcm1Db250YWluZXIiLCJ0aXRsZSIsIkNvcmVUaXRsZSIsInByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJuZXdWYWx1ZXNGb3JtQ29udGFpbmVyIiwibmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIiLCJ1aUNvbnRleHQiLCJjcmVhdGVCaW5kaW5nQ29udGV4dCIsInNldEJpbmRpbmdDb250ZXh0IiwiYWRkRm9ybUNvbnRhaW5lciIsInNldE1vZGVsIiwiJHZCb3giLCJjcmVhdGVSZWZlcmVuY2UiLCJhZGRJdGVtIiwiU2Nyb2xsQ29udGFpbmVyIiwicmVmIiwidmVydGljYWwiLCJWQm94IiwiaXRlbXMiLCJsYXlvdXREYXRhIiwiRmxleEl0ZW1EYXRhIiwiYWxpZ25TZWxmIiwiVGl0bGUiLCJ1cGRhdGVkRmllbGQiLCJpc0VkaXRhYmxlIiwiYWRkRm9ybUVsZW1lbnQiLCJGb3JtRWxlbWVudCIsImxhYmVsIiwiRmllbGQiLCJjb250ZXh0UGF0aCIsImdldE93bmVyQ29udGV4dFBhdGgiLCJyZWFkT25seSIsInJlcXVpcmVkIiwibmV3RmllbGQiLCJfZ2V0T3duZXIiLCJydW5Bc093bmVyIiwiX3JlcXVpcmVzVmFsaWRhdGlvbiIsInZhbGlkYXRlRmllbGRHcm91cCIsImJpbmQiLCJjaGFuZ2UiLCJmaWVsZHMiLCJtZXRhTW9kZWxPYmoiLCJ2YWx1ZUV4cHJlc3Npb24iLCJBbm5vdGF0aW9uSGVscGVyIiwiZm9ybWF0IiwicGFyc2VkQmluZGluZyIsIkJpbmRpbmdJbmZvIiwicGFyc2UiLCJlcnJvck1lc3NhZ2UiLCJ2YWxpZGF0ZVZhbHVlIiwiZSIsIm1lc3NhZ2UiLCJ2YWx1ZUxpc3QiLCJfZ2V0VmFsdWVMaXN0IiwiaGFzVkhFcnJvciIsIlZhbHVlTGlzdEhlbHBlciIsImlzVmFsdWVMaXN0U2VhcmNoYWJsZSIsInZhbHVlcyIsInJlc29sdmVUb2tlblZhbHVlIiwib3BlcmF0b3IiLCJGaWx0ZXJPcGVyYXRvciIsIkVRIiwic2VsZWN0ZWRWYWx1ZXMiLCJub01hdGNoIiwic2V0VGltZW91dCIsInNldFZhbHVlIiwibWVzc2FnZUlkIiwiYWRkTWVzc2FnZSIsIk1lc3NhZ2VUeXBlIiwiRXJyb3IiLCJlYXN5RWRpdERlc2NyaXB0aW9uIiwiSW52aXNpYmxlVGV4dCIsIiRlYXN5RmlsbEJ1dHRvbiIsIiRlYXN5RmlsbFNhdmVCdXR0b24iLCIkZWFzeUZpbGxDYW5jZWxCdXR0b24iLCIkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbiIsImRpYWxvZyIsIkRpYWxvZyIsInJlc2l6YWJsZSIsImhvcml6b250YWxTY3JvbGxpbmciLCJ2ZXJ0aWNhbFNjcm9sbGluZyIsImNvbnRlbnRXaWR0aCIsImNvbnRlbnRIZWlnaHQiLCJlc2NhcGVIYW5kbGVyIiwiYWZ0ZXJDbG9zZSIsIkZsZXhCb3giLCJkaXJlY3Rpb24iLCJGbGV4RGlyZWN0aW9uIiwiUm93IiwicmVuZGVyVHlwZSIsIndpZHRoIiwiaGVpZ2h0IiwiaWQiLCJjcmVhdGVJZCIsIkNvbHVtbiIsImZpdENvbnRhaW5lciIsIkZvcm1hdHRlZFRleHQiLCJodG1sVGV4dCIsIlRleHRBcmVhIiwibGl2ZUNoYW5nZSIsImdldFBhcmFtZXRlciIsInBsYWNlaG9sZGVyIiwicm93cyIsImdyb3dpbmciLCJncm93aW5nTWF4TGluZXMiLCJtYXhMZW5ndGgiLCJhcmlhTGFiZWxsZWRCeSIsImZvcm1hdHRlciIsIkJ1dHRvbiIsImVuYWJsZWQiLCJub3QiLCJpc0VtcHR5IiwiQnV0dG9uVHlwZSIsIlRyYW5zcGFyZW50IiwiYnVzeSIsIklsbHVzdHJhdGVkTWVzc2FnZSIsImlsbHVzdHJhdGlvblR5cGUiLCJJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlIiwiTm9TZWFyY2hSZXN1bHRzIiwiaWxsdXN0cmF0aW9uU2l6ZSIsIklsbHVzdHJhdGVkTWVzc2FnZVNpemUiLCJMYXJnZSIsIk5vRW50cmllcyIsIlVuYWJsZVRvTG9hZCIsImZvb3RlciIsIk92ZXJmbG93VG9vbGJhciIsIlRvb2xiYXJTcGFjZXIiLCJhbmQiLCJwcm9wZXJ0eVBhdGgiLCJ2YWx1ZUxpc3RzIiwiZ2V0VmFsdWVMaXN0SW5mbyIsIkJ1aWxkaW5nQmxvY2siLCJfYXBwbHlEZWNvcmF0ZWREZXNjcmlwdG9yIiwiY29uZmlndXJhYmxlIiwiZW51bWVyYWJsZSIsIndyaXRhYmxlIiwiaW5pdGlhbGl6ZXIiXSwic291cmNlUm9vdCI6Ii4iLCJzb3VyY2VzIjpbIkVhc3lGaWxsRGlhbG9nLnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IEVudGl0eVR5cGUsIFByb3BlcnR5IH0gZnJvbSBcIkBzYXAtdXgvdm9jYWJ1bGFyaWVzLXR5cGVzXCI7XG5pbXBvcnQgTG9nIGZyb20gXCJzYXAvYmFzZS9Mb2dcIjtcbmltcG9ydCB7IGFuZCwgZXF1YWwsIGlzRW1wdHksIG5vdCB9IGZyb20gXCJzYXAvZmUvYmFzZS9CaW5kaW5nVG9vbGtpdFwiO1xuaW1wb3J0IHR5cGUgeyBFbmhhbmNlV2l0aFVJNSwgUHJvcGVydGllc09mIH0gZnJvbSBcInNhcC9mZS9iYXNlL0NsYXNzU3VwcG9ydFwiO1xuaW1wb3J0IHsgY3JlYXRlUmVmZXJlbmNlLCBkZWZpbmVSZWZlcmVuY2UsIGRlZmluZVVJNUNsYXNzLCBwcm9wZXJ0eSB9IGZyb20gXCJzYXAvZmUvYmFzZS9DbGFzc1N1cHBvcnRcIjtcbmltcG9ydCB0eXBlIHsgUmVmIH0gZnJvbSBcInNhcC9mZS9iYXNlL2pzeC1ydW50aW1lL2pzeFwiO1xuaW1wb3J0IHsgQUlMaW5rTm90aWNlIH0gZnJvbSBcInNhcC9mZS9jb250cm9scy9lYXN5RmlsdGVyL0FJTm90aWNlXCI7XG5pbXBvcnQgdHlwZSB7IEZFVmlldyB9IGZyb20gXCJzYXAvZmUvY29yZS9CYXNlQ29udHJvbGxlclwiO1xuaW1wb3J0IHR5cGUgVGVtcGxhdGVDb21wb25lbnQgZnJvbSBcInNhcC9mZS9jb3JlL1RlbXBsYXRlQ29tcG9uZW50XCI7XG5pbXBvcnQgQnVpbGRpbmdCbG9jayBmcm9tIFwic2FwL2ZlL2NvcmUvYnVpbGRpbmdCbG9ja3MvQnVpbGRpbmdCbG9ja1wiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZFNpZGVFZmZlY3REaWN0aW9uYXJ5IH0gZnJvbSBcInNhcC9mZS9jb3JlL2NvbnRyb2xsZXJleHRlbnNpb25zL1NpZGVFZmZlY3RzXCI7XG5pbXBvcnQgeyBDb2xsYWJvcmF0aW9uVXRpbHMgfSBmcm9tIFwic2FwL2ZlL2NvcmUvY29udHJvbGxlcmV4dGVuc2lvbnMvY29sbGFib3JhdGlvbi9Db2xsYWJvcmF0aW9uQ29tbW9uXCI7XG5pbXBvcnQgKiBhcyBNZXRhTW9kZWxDb252ZXJ0ZXIgZnJvbSBcInNhcC9mZS9jb3JlL2NvbnZlcnRlcnMvTWV0YU1vZGVsQ29udmVydGVyXCI7XG5pbXBvcnQgdHlwZSB7IERlZmluaXRpb25QYWdlIH0gZnJvbSBcInNhcC9mZS9jb3JlL2RlZmluaXRpb24vRkVEZWZpbml0aW9uXCI7XG5pbXBvcnQgeyBnZXRMYWJlbCwgaXNDb21wdXRlZCwgaXNJbW11dGFibGUgfSBmcm9tIFwic2FwL2ZlL2NvcmUvdGVtcGxhdGluZy9Qcm9wZXJ0eUhlbHBlclwiO1xuaW1wb3J0IEZpZWxkIGZyb20gXCJzYXAvZmUvbWFjcm9zL0ZpZWxkXCI7XG5pbXBvcnQgeyByZXNvbHZlVG9rZW5WYWx1ZSB9IGZyb20gXCJzYXAvZmUvbWFjcm9zL2FpL0Vhc3lGaWx0ZXJEYXRhRmV0Y2hlclwiO1xuaW1wb3J0IFZhbHVlTGlzdEhlbHBlciwgeyB0eXBlIFZhbHVlTGlzdEluZm8gfSBmcm9tIFwic2FwL2ZlL21hY3Jvcy9pbnRlcm5hbC92YWx1ZWhlbHAvVmFsdWVMaXN0SGVscGVyXCI7XG5pbXBvcnQgdHlwZSB7IEJ1dHRvbiRQcmVzc0V2ZW50IH0gZnJvbSBcInNhcC9tL0J1dHRvblwiO1xuaW1wb3J0IEJ1dHRvbiBmcm9tIFwic2FwL20vQnV0dG9uXCI7XG5pbXBvcnQgRGlhbG9nIGZyb20gXCJzYXAvbS9EaWFsb2dcIjtcbmltcG9ydCBGbGV4Qm94IGZyb20gXCJzYXAvbS9GbGV4Qm94XCI7XG5pbXBvcnQgRmxleEl0ZW1EYXRhIGZyb20gXCJzYXAvbS9GbGV4SXRlbURhdGFcIjtcbmltcG9ydCBGb3JtYXR0ZWRUZXh0IGZyb20gXCJzYXAvbS9Gb3JtYXR0ZWRUZXh0XCI7XG5pbXBvcnQgSEJveCBmcm9tIFwic2FwL20vSEJveFwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlXCI7XG5pbXBvcnQgSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZSBmcm9tIFwic2FwL20vSWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZVwiO1xuaW1wb3J0IElsbHVzdHJhdGVkTWVzc2FnZVR5cGUgZnJvbSBcInNhcC9tL0lsbHVzdHJhdGVkTWVzc2FnZVR5cGVcIjtcbmltcG9ydCBNZXNzYWdlU3RyaXAgZnJvbSBcInNhcC9tL01lc3NhZ2VTdHJpcFwiO1xuaW1wb3J0IE1lc3NhZ2VUb2FzdCBmcm9tIFwic2FwL20vTWVzc2FnZVRvYXN0XCI7XG5pbXBvcnQgT3ZlcmZsb3dUb29sYmFyIGZyb20gXCJzYXAvbS9PdmVyZmxvd1Rvb2xiYXJcIjtcbmltcG9ydCBTY3JvbGxDb250YWluZXIgZnJvbSBcInNhcC9tL1Njcm9sbENvbnRhaW5lclwiO1xuaW1wb3J0IFRleHQgZnJvbSBcInNhcC9tL1RleHRcIjtcbmltcG9ydCBUZXh0QXJlYSBmcm9tIFwic2FwL20vVGV4dEFyZWFcIjtcbmltcG9ydCBUaXRsZSBmcm9tIFwic2FwL20vVGl0bGVcIjtcbmltcG9ydCBUb2dnbGVCdXR0b24gZnJvbSBcInNhcC9tL1RvZ2dsZUJ1dHRvblwiO1xuaW1wb3J0IFRvb2xiYXJTcGFjZXIgZnJvbSBcInNhcC9tL1Rvb2xiYXJTcGFjZXJcIjtcbmltcG9ydCBWQm94IGZyb20gXCJzYXAvbS9WQm94XCI7XG5pbXBvcnQgeyBCdXR0b25UeXBlLCBGbGV4RGlyZWN0aW9uIH0gZnJvbSBcInNhcC9tL2xpYnJhcnlcIjtcbmltcG9ydCBCaW5kaW5nSW5mbyBmcm9tIFwic2FwL3VpL2Jhc2UvQmluZGluZ0luZm9cIjtcbmltcG9ydCB0eXBlIFVJNUV2ZW50IGZyb20gXCJzYXAvdWkvYmFzZS9FdmVudFwiO1xuaW1wb3J0IHR5cGUgeyBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50IH0gZnJvbSBcInNhcC91aS9jb3JlL0NvbnRyb2xcIjtcbmltcG9ydCBJbnZpc2libGVUZXh0IGZyb20gXCJzYXAvdWkvY29yZS9JbnZpc2libGVUZXh0XCI7XG5pbXBvcnQgQ29yZVRpdGxlIGZyb20gXCJzYXAvdWkvY29yZS9UaXRsZVwiO1xuaW1wb3J0IE1lc3NhZ2VUeXBlIGZyb20gXCJzYXAvdWkvY29yZS9tZXNzYWdlL01lc3NhZ2VUeXBlXCI7XG5pbXBvcnQgQ29sdW1uTGF5b3V0IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vQ29sdW1uTGF5b3V0XCI7XG5pbXBvcnQgRm9ybSBmcm9tIFwic2FwL3VpL2xheW91dC9mb3JtL0Zvcm1cIjtcbmltcG9ydCBGb3JtQ29udGFpbmVyIGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUNvbnRhaW5lclwiO1xuaW1wb3J0IEZvcm1FbGVtZW50IGZyb20gXCJzYXAvdWkvbGF5b3V0L2Zvcm0vRm9ybUVsZW1lbnRcIjtcbmltcG9ydCB0eXBlIENvbnRleHQgZnJvbSBcInNhcC91aS9tb2RlbC9Db250ZXh0XCI7XG5pbXBvcnQgRmlsdGVyT3BlcmF0b3IgZnJvbSBcInNhcC91aS9tb2RlbC9GaWx0ZXJPcGVyYXRvclwiO1xuaW1wb3J0IEFubm90YXRpb25IZWxwZXIgZnJvbSBcInNhcC91aS9tb2RlbC9vZGF0YS92NC9Bbm5vdGF0aW9uSGVscGVyXCI7XG5pbXBvcnQgdHlwZSBPRGF0YUxpc3RCaW5kaW5nIGZyb20gXCJzYXAvdWkvbW9kZWwvb2RhdGEvdjQvT0RhdGFMaXN0QmluZGluZ1wiO1xuaW1wb3J0IHR5cGUgT0RhdGFNb2RlbCBmcm9tIFwic2FwL3VpL21vZGVsL29kYXRhL3Y0L09EYXRhTW9kZWxcIjtcbmltcG9ydCBGRVNSSGVscGVyIGZyb20gXCJzYXAvdWkvcGVyZm9ybWFuY2UvdHJhY2UvRkVTUkhlbHBlclwiO1xuaW1wb3J0IHR5cGUgeyBGaWVsZE1ldGFkYXRhIH0gZnJvbSBcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCI7XG5cbmNvbnN0IE1BWF9MRU5HVEggPSAyMDAwO1xuXG5AZGVmaW5lVUk1Q2xhc3MoXCJzYXAuZmUubWFjcm9zLmFpLkVhc3lGaWxsRGlhbG9nXCIpXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBFYXN5RmlsbERpYWxvZyBleHRlbmRzIEJ1aWxkaW5nQmxvY2s8XG5cdERpYWxvZyxcblx0e1xuXHRcdGVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aXNCdXN5OiBib29sZWFuO1xuXHRcdGN1cnJlbnRseUVudGVyZWRUZXh0OiBzdHJpbmc7XG5cdFx0aW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcblx0XHRuZXdWYWx1ZXM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuXHRcdGhhc1ZhbHVlczogYm9vbGVhbjtcblx0XHRoYXNFcnJvcjogYm9vbGVhbjtcblx0XHRoYXNJbmNvcnJlY3RWYWx1ZXM6IGJvb2xlYW47XG5cdFx0c3RhdGVUeXBlOiBcIkluaXRpYWxcIiB8IFwiTm9FbnRyaWVzXCIgfCBcIkVycm9yXCIgfCBcIkhhc0VudHJpZXNcIjtcblx0fVxuPiB7XG5cdEBkZWZpbmVSZWZlcmVuY2UoKVxuXHQkcmV2aWV3QXJlYSE6IFJlZjxGbGV4Qm94PjtcblxuXHRAZGVmaW5lUmVmZXJlbmNlKClcblx0JHNjcm9sbENvbnRhaW5lciE6IFJlZjxGbGV4Qm94PjtcblxuXHRAcHJvcGVydHkoeyB0eXBlOiBcIkZ1bmN0aW9uXCIgfSlcblx0Z2V0RWRpdGFibGVGaWVsZHM/OiBGdW5jdGlvbjtcblxuXHRwcml2YXRlIF9iaW5kaW5nQ29udGV4dD86IENvbnRleHQ7XG5cblx0Y29uc3RydWN0b3IoaWRPclByb3BzOiBzdHJpbmcgfCBQcm9wZXJ0aWVzT2Y8RWFzeUZpbGxEaWFsb2c+LCBwcm9wcz86IFByb3BlcnRpZXNPZjxFYXN5RmlsbERpYWxvZz4pIHtcblx0XHRzdXBlcihpZE9yUHJvcHMsIHByb3BzKTtcblx0fVxuXG5cdG9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50OiBUZW1wbGF0ZUNvbXBvbmVudCk6IHZvaWQge1xuXHRcdHN1cGVyLm9uTWV0YWRhdGFBdmFpbGFibGUoX293bmVyQ29tcG9uZW50KTtcblx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJJbml0aWFsXCI7XG5cdFx0dGhpcy5jb250ZW50ID0gdGhpcy5jcmVhdGVDb250ZW50KCk7XG5cdH1cblxuXHRhc3luYyBvbkNvbmZpcm0oX2U6IEJ1dHRvbiRQcmVzc0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gVmFsaWRhdGUgdGhlIGRhdGEgaGFuZGxpbmdcblx0XHRjb25zdCBtYWluUGFnZUJpbmRpbmdDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKTtcblx0XHRjb25zdCBhbGxQcm9wcyA9IFtdO1xuXHRcdGNvbnN0IG5ld1ZhbHVlcyA9IHRoaXMuX2JpbmRpbmdDb250ZXh0Py5nZXRPYmplY3QoKSA/PyB0aGlzLnN0YXRlLm5ld1ZhbHVlcztcblx0XHRmb3IgKGNvbnN0IG5ld1ZhbHVlc0tleSBpbiBuZXdWYWx1ZXMpIHtcblx0XHRcdGlmIChuZXdWYWx1ZXNLZXkgIT09IFwiX19iaW5kaW5nSW5mb1wiICYmICFuZXdWYWx1ZXNLZXkuc3RhcnRzV2l0aChcIkAkXCIpKSB7XG5cdFx0XHRcdGlmICh0eXBlb2YgbmV3VmFsdWVzW25ld1ZhbHVlc0tleV0gIT09IFwib2JqZWN0XCIpIHtcblx0XHRcdFx0XHRtYWluUGFnZUJpbmRpbmdDb250ZXh0Py5zZXRQcm9wZXJ0eShuZXdWYWx1ZXNLZXksIG5ld1ZhbHVlc1tuZXdWYWx1ZXNLZXldKTtcblx0XHRcdFx0XHRhbGxQcm9wcy5wdXNoKFxuXHRcdFx0XHRcdFx0dGhpcy5hcHBseVVwZGF0ZXNGb3JDaGFuZ2UodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKSwgbWFpblBhZ2VCaW5kaW5nQ29udGV4dC5nZXRQYXRoKG5ld1ZhbHVlc0tleSkpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHR0cnkge1xuXHRcdFx0YXdhaXQgUHJvbWlzZS5hbGwoYWxsUHJvcHMpO1xuXHRcdFx0bWFpblBhZ2VCaW5kaW5nQ29udGV4dC5yZWZyZXNoKCk7XG5cdFx0fSBjYXRjaCAoZXJyKSB7XG5cdFx0XHRMb2cuZXJyb3IoXCJGYWlsZWQgdG8gdXBkYXRlIGRhdGEgYWZ0ZXIgY2hhbmdlOlwiICsgZXJyKTtcblx0XHR9XG5cdFx0Ly8gQ2xvc2Ugbm9uZXRoZWxlc3Ncblx0XHR0aGlzLmNvbnRlbnQ/LmNsb3NlKCk7XG5cdH1cblxuXHRhc3luYyBhcHBseVVwZGF0ZXNGb3JDaGFuZ2UodmlldzogRkVWaWV3LCBwcm9wZXJ0eVBhdGhGb3JVcGRhdGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHZpZXcuZ2V0TW9kZWwoKS5nZXRNZXRhTW9kZWwoKTtcblx0XHRjb25zdCBtZXRhQ29udGV4dCA9IG1ldGFNb2RlbC5nZXRNZXRhQ29udGV4dChwcm9wZXJ0eVBhdGhGb3JVcGRhdGUpO1xuXHRcdGNvbnN0IGRhdGFNb2RlbE9iamVjdCA9IE1ldGFNb2RlbENvbnZlcnRlci5nZXRJbnZvbHZlZERhdGFNb2RlbE9iamVjdHM8UHJvcGVydHk+KG1ldGFDb250ZXh0KTtcblx0XHRjb25zdCB0YXJnZXRDb250ZXh0ID0gdmlldy5nZXRCaW5kaW5nQ29udGV4dCgpO1xuXHRcdHRyeSB7XG5cdFx0XHRjb25zdCBzaWRlRWZmZWN0c1Byb21pc2VzOiBQcm9taXNlPHVua25vd24+W10gPSBbXTtcblx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzU2VydmljZSA9IENvbGxhYm9yYXRpb25VdGlscy5nZXRBcHBDb21wb25lbnQodmlldykuZ2V0U2lkZUVmZmVjdHNTZXJ2aWNlKCk7XG5cblx0XHRcdC8vIFdlIGhhdmUgYSB0YXJnZXQgY29udGV4dCwgc28gd2UgY2FuIHJldHJpZXZlIHRoZSB1cGRhdGVkIHByb3BlcnR5XG5cdFx0XHRjb25zdCB0YXJnZXRNZXRhUGF0aCA9IG1ldGFNb2RlbC5nZXRNZXRhUGF0aCh0YXJnZXRDb250ZXh0LmdldFBhdGgoKSk7XG5cdFx0XHRjb25zdCByZWxhdGl2ZU1ldGFQYXRoRm9yVXBkYXRlID0gbWV0YU1vZGVsLmdldE1ldGFQYXRoKHByb3BlcnR5UGF0aEZvclVwZGF0ZSkucmVwbGFjZSh0YXJnZXRNZXRhUGF0aCwgXCJcIikuc2xpY2UoMSk7XG5cdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goc2lkZUVmZmVjdHNTZXJ2aWNlLnJlcXVlc3RTaWRlRWZmZWN0cyhbcmVsYXRpdmVNZXRhUGF0aEZvclVwZGF0ZV0sIHRhcmdldENvbnRleHQsIFwiJGF1dG9cIikpO1xuXG5cdFx0XHQvLyBHZXQgdGhlIGZpZWxkR3JvdXBJZHMgY29ycmVzcG9uZGluZyB0byBwYXRoRm9yVXBkYXRlXG5cdFx0XHRjb25zdCBmaWVsZEdyb3VwSWRzID0gc2lkZUVmZmVjdHNTZXJ2aWNlLmNvbXB1dGVGaWVsZEdyb3VwSWRzKFxuXHRcdFx0XHRkYXRhTW9kZWxPYmplY3QudGFyZ2V0RW50aXR5VHlwZS5mdWxseVF1YWxpZmllZE5hbWUsXG5cdFx0XHRcdGRhdGFNb2RlbE9iamVjdC50YXJnZXRPYmplY3QhLmZ1bGx5UXVhbGlmaWVkTmFtZVxuXHRcdFx0KTtcblxuXHRcdFx0Ly8gRXhlY3V0ZSB0aGUgc2lkZSBlZmZlY3RzIGZvciB0aGUgZmllbGRHcm91cElkc1xuXHRcdFx0aWYgKGZpZWxkR3JvdXBJZHMubGVuZ3RoKSB7XG5cdFx0XHRcdGNvbnN0IHBhZ2VDb250cm9sbGVyID0gdmlldy5nZXRDb250cm9sbGVyKCk7XG5cdFx0XHRcdGNvbnN0IHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCA9IHBhZ2VDb250cm9sbGVyLl9zaWRlRWZmZWN0cy5nZXRTaWRlRWZmZWN0c01hcEZvckZpZWxkR3JvdXBzKFxuXHRcdFx0XHRcdGZpZWxkR3JvdXBJZHMsXG5cdFx0XHRcdFx0dGFyZ2V0Q29udGV4dFxuXHRcdFx0XHQpIGFzIEZpZWxkU2lkZUVmZmVjdERpY3Rpb25hcnk7XG5cdFx0XHRcdE9iamVjdC5rZXlzKHNpZGVFZmZlY3RzTWFwRm9yRmllbGRHcm91cCkuZm9yRWFjaCgoc2lkZUVmZmVjdE5hbWUpID0+IHtcblx0XHRcdFx0XHRjb25zdCBzaWRlRWZmZWN0ID0gc2lkZUVmZmVjdHNNYXBGb3JGaWVsZEdyb3VwW3NpZGVFZmZlY3ROYW1lXTtcblx0XHRcdFx0XHRzaWRlRWZmZWN0c1Byb21pc2VzLnB1c2goXG5cdFx0XHRcdFx0XHRwYWdlQ29udHJvbGxlci5fc2lkZUVmZmVjdHMucmVxdWVzdFNpZGVFZmZlY3RzKHNpZGVFZmZlY3Quc2lkZUVmZmVjdHMsIHNpZGVFZmZlY3QuY29udGV4dCwgXCIkYXV0b1wiLCB1bmRlZmluZWQsIHRydWUpXG5cdFx0XHRcdFx0KTtcblx0XHRcdFx0fSk7XG5cdFx0XHR9XG5cblx0XHRcdGF3YWl0IFByb21pc2UuYWxsKHNpZGVFZmZlY3RzUHJvbWlzZXMpO1xuXHRcdH0gY2F0Y2ggKGVycikge1xuXHRcdFx0TG9nLmVycm9yKFwiRmFpbGVkIHRvIHVwZGF0ZSBkYXRhIGFmdGVyIGNoYW5nZTpcIiArIGVycik7XG5cdFx0XHR0aHJvdyBlcnI7XG5cdFx0fVxuXHR9XG5cblx0b25DYW5jZWwoKTogdm9pZCB7XG5cdFx0dGhpcy5jb250ZW50Py5jbG9zZSgpO1xuXHR9XG5cblx0b3BlbigpOiB2b2lkIHtcblx0XHR0aGlzLmNvbnRlbnQ/Lm9wZW4oKTtcblx0fVxuXG5cdF9nZXRGaWVsZE1hcHBpbmcoZGVmaW5pdGlvblBhZ2U6IERlZmluaXRpb25QYWdlIHwgdW5kZWZpbmVkKTogRmllbGRNZXRhZGF0YSB7XG5cdFx0Y29uc3QgZmllbGRNYXBwaW5nOiBGaWVsZE1ldGFkYXRhID0ge307XG5cdFx0aWYgKGRlZmluaXRpb25QYWdlKSB7XG5cdFx0XHRjb25zdCBwYWdlVGFyZ2V0ID0gZGVmaW5pdGlvblBhZ2UuZ2V0TWV0YVBhdGgoKS5nZXRUYXJnZXQoKTtcblx0XHRcdGxldCBlbnRpdHlUeXBlOiBFbnRpdHlUeXBlIHwgdW5kZWZpbmVkO1xuXHRcdFx0c3dpdGNoIChwYWdlVGFyZ2V0Ll90eXBlKSB7XG5cdFx0XHRcdGNhc2UgXCJFbnRpdHlTZXRcIjpcblx0XHRcdFx0Y2FzZSBcIlNpbmdsZXRvblwiOlxuXHRcdFx0XHRcdGVudGl0eVR5cGUgPSBwYWdlVGFyZ2V0LmVudGl0eVR5cGU7XG5cdFx0XHRcdFx0YnJlYWs7XG5cdFx0XHRcdGNhc2UgXCJOYXZpZ2F0aW9uUHJvcGVydHlcIjpcblx0XHRcdFx0XHRlbnRpdHlUeXBlID0gcGFnZVRhcmdldC50YXJnZXRUeXBlO1xuXHRcdFx0XHRcdGJyZWFrO1xuXHRcdFx0fVxuXG5cdFx0XHRpZiAoZW50aXR5VHlwZSAhPT0gdW5kZWZpbmVkKSB7XG5cdFx0XHRcdGZvciAoY29uc3QgZW50aXR5UHJvcGVydHkgb2YgZW50aXR5VHlwZS5lbnRpdHlQcm9wZXJ0aWVzKSB7XG5cdFx0XHRcdFx0aWYgKFxuXHRcdFx0XHRcdFx0IWlzSW1tdXRhYmxlKGVudGl0eVByb3BlcnR5KSAmJlxuXHRcdFx0XHRcdFx0IWlzQ29tcHV0ZWQoZW50aXR5UHJvcGVydHkpICYmXG5cdFx0XHRcdFx0XHRlbnRpdHlQcm9wZXJ0eS5hbm5vdGF0aW9ucy5VST8uSGlkZGVuPy52YWx1ZU9mKCkgIT09IHRydWUgJiZcblx0XHRcdFx0XHRcdCFlbnRpdHlQcm9wZXJ0eS50YXJnZXRUeXBlXG5cdFx0XHRcdFx0KSB7XG5cdFx0XHRcdFx0XHQvLyBJZiBub3QgaW1tdXRhYmxlLCBjb21wdXRlZCBvciBoaWRkZW4sIG9yIGEgY29tcGxleCB0eXBlIGFkZCB0byB0aGUgZmllbGQgbWFwcGluZ1xuXHRcdFx0XHRcdFx0ZmllbGRNYXBwaW5nW2VudGl0eVByb3BlcnR5Lm5hbWVdID0ge1xuXHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbjogZ2V0TGFiZWwoZW50aXR5UHJvcGVydHkpID8/IGVudGl0eVByb3BlcnR5Lm5hbWUsXG5cdFx0XHRcdFx0XHRcdGRhdGFUeXBlOiBlbnRpdHlQcm9wZXJ0eS50eXBlXG5cdFx0XHRcdFx0XHR9O1xuXHRcdFx0XHRcdH1cblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0XHRyZXR1cm4gZmllbGRNYXBwaW5nO1xuXHR9XG5cblx0cHJpdmF0ZSBnZW5lcmF0ZUxpc3RCaW5kaW5nKHBhdGg6IHN0cmluZywgbW9kZWw6IE9EYXRhTW9kZWwpOiBPRGF0YUxpc3RCaW5kaW5nIHtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IG1vZGVsLmJpbmRMaXN0KFxuXHRcdFx0cGF0aCxcblx0XHRcdHVuZGVmaW5lZCxcblxuXHRcdFx0W10sXG5cdFx0XHRbXSxcblx0XHRcdHtcblx0XHRcdFx0JCR1cGRhdGVHcm91cElkOiBcInN1Ym1pdExhdGVyXCJcblx0XHRcdH1cblx0XHQpO1xuXHRcdHRyYW5zaWVudExpc3RCaW5kaW5nLnJlZnJlc2hJbnRlcm5hbCA9ICgpOiB2b2lkID0+IHtcblx0XHRcdC8qICovXG5cdFx0fTtcblx0XHRyZXR1cm4gdHJhbnNpZW50TGlzdEJpbmRpbmc7XG5cdH1cblxuXHRwcml2YXRlIG9uVGh1bWJQcmVzcyh0aHVtYlVwQnV0dG9uOiBUb2dnbGVCdXR0b24sIHRodW1iRG93bkJ1dHRvbjogVG9nZ2xlQnV0dG9uKTogdm9pZCB7XG5cdFx0dGh1bWJVcEJ1dHRvbi5zZXRFbmFibGVkKGZhbHNlKTtcblx0XHR0aHVtYkRvd25CdXR0b24uc2V0RW5hYmxlZChmYWxzZSk7XG5cdFx0TWVzc2FnZVRvYXN0LnNob3codGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRkVFREJBQ0tfU0VOVFwiKSk7XG5cdH1cblxuXHRmb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuXHRcdHJldHVybiB0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9SRU1BSU5JTkdfQ0hBUkFDVEVSU1wiLCBbTUFYX0xFTkdUSCAtICh2YWx1ZT8ubGVuZ3RoID8/IDApXSk7XG5cdH1cblxuXHRvbkNsZWFyQWxsKCk6IHZvaWQge1xuXHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0ge307XG5cdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLmhhc0luY29ycmVjdFZhbHVlcyA9IGZhbHNlO1xuXHRcdHRoaXMuc3RhdGUuZW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBmYWxzZTtcblx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSW5pdGlhbFwiO1xuXHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBcIlwiO1xuXHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdH1cblxuXHRvblZhbGlkYXRlRmllbGRHcm91cHMoX2U/OiBDb250cm9sJFZhbGlkYXRlRmllbGRHcm91cEV2ZW50KTogdm9pZCB7XG5cdFx0Y29uc3QgYWxsRmllbGRzID0gKHRoaXMuJHJldmlld0FyZWEuY3VycmVudD8uZ2V0Q29udHJvbHNCeUZpZWxkR3JvdXBJZChcIkVhc3lGaWxsRmllbGRcIikgYXMgRW5oYW5jZVdpdGhVSTU8RmllbGQ+W10pID8/IFtdO1xuXHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSBhbGxGaWVsZHMuc29tZSgoZmllbGQ6IEVuaGFuY2VXaXRoVUk1PEZpZWxkPik6IGJvb2xlYW4gPT4ge1xuXHRcdFx0cmV0dXJuIChcblx0XHRcdFx0ISFmaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIpIHx8XG5cdFx0XHRcdCghIShmaWVsZCBhcyB7IGdldFZhbHVlU3RhdGU/OiBGdW5jdGlvbiB9KS5nZXRWYWx1ZVN0YXRlICYmXG5cdFx0XHRcdFx0KGZpZWxkIGFzIHsgZ2V0VmFsdWVTdGF0ZT86IEZ1bmN0aW9uIH0pLmdldFZhbHVlU3RhdGU/LigpID09PSBcIkVycm9yXCIpXG5cdFx0XHQpO1xuXHRcdH0pO1xuXHR9XG5cblx0b25GaWVsZENoYW5nZShldjogVUk1RXZlbnQ8e30sIEZpZWxkPik6IHZvaWQge1xuXHRcdGV2LmdldFNvdXJjZSgpLnJlbW92ZU1lc3NhZ2UoZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiKSk7XG5cdFx0ZXYuZ2V0U291cmNlKCkuZGF0YShcIm1lc3NhZ2VJZFwiLCB1bmRlZmluZWQpO1xuXHR9XG5cblx0YXN5bmMgb25FYXN5RWRpdFByZXNzZWQoKTogUHJvbWlzZTx2b2lkPiB7XG5cdFx0Ly8gQ2FsbCB0aGUgQUkgc2VydmljZVxuXHRcdC8vIFByb2Nlc3MgdGhyb3VnaCBjaGF0IGNvbXBsZXRpb24gQVBJXG5cdFx0Y29uc3QgbWV0YVBhdGggPSB0aGlzLmdldE93bmVyUGFnZURlZmluaXRpb24oKTtcblx0XHRjb25zdCBmaWVsZE1hcHBpbmcgPSB0aGlzLl9nZXRGaWVsZE1hcHBpbmcobWV0YVBhdGgpO1xuXHRcdGNvbnN0IGVhc3lGaWxsTGlicmFyeSA9IGF3YWl0IGltcG9ydChcInV4L2VuZy9maW9yaWFpL3JldXNlL2Vhc3lmaWxsL0Vhc3lGaWxsXCIpO1xuXHRcdGNvbnN0IG9kYXRhTW9kZWwgPSB0aGlzLmdldE1vZGVsKCkgYXMgT0RhdGFNb2RlbDtcblx0XHRjb25zdCB0cmFuc2llbnRMaXN0QmluZGluZyA9IHRoaXMuZ2VuZXJhdGVMaXN0QmluZGluZyhcblx0XHRcdG9kYXRhTW9kZWwuZ2V0TWV0YU1vZGVsKCkuZ2V0TWV0YVBhdGgodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKT8uZ2V0UGF0aCgpKSxcblx0XHRcdHRoaXMuZ2V0TW9kZWwoKSBhcyBPRGF0YU1vZGVsXG5cdFx0KTtcblx0XHR0aGlzLl9iaW5kaW5nQ29udGV4dCA9IHRyYW5zaWVudExpc3RCaW5kaW5nLmNyZWF0ZSh7fSwgdHJ1ZSk7XG5cblx0XHR0aGlzLnN0YXRlLmlzQnVzeSA9IHRydWU7XG5cdFx0dHJ5IHtcblx0XHRcdGNvbnN0IGFpQ2FsbFJlc3VsdCA9IGF3YWl0IGVhc3lGaWxsTGlicmFyeS5leHRyYWN0RmllbGRWYWx1ZXNGcm9tVGV4dCh0aGlzLnN0YXRlLmVudGVyZWRUZXh0LCBmaWVsZE1hcHBpbmcpO1xuXHRcdFx0dGhpcy5zdGF0ZS5pc0J1c3kgPSBmYWxzZTtcblx0XHRcdGlmIChhaUNhbGxSZXN1bHQuc3VjY2Vzcykge1xuXHRcdFx0XHRjb25zdCB1cGRhdGVkRmllbGRzID0gYWlDYWxsUmVzdWx0LmRhdGE7XG5cdFx0XHRcdGlmIChPYmplY3Qua2V5cyh1cGRhdGVkRmllbGRzKS5sZW5ndGggPT09IDApIHtcblx0XHRcdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdFx0dGhpcy5zdGF0ZS5zdGF0ZVR5cGUgPSBcIk5vRW50cmllc1wiO1xuXHRcdFx0XHRcdHJldHVybjtcblx0XHRcdFx0fVxuXHRcdFx0XHR0aGlzLnN0YXRlLnN0YXRlVHlwZSA9IFwiSGFzRW50cmllc1wiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmhhc0Vycm9yID0gZmFsc2U7XG5cdFx0XHRcdGNvbnN0IGVkaXRhYmxlRmllbGRzID0gKGF3YWl0IHRoaXMuZ2V0RWRpdGFibGVGaWVsZHM/LigpKSA/PyB7fTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdFx0dGhpcy4kc2Nyb2xsQ29udGFpbmVyLmN1cnJlbnQ/LmRlc3Ryb3koKTtcblxuXHRcdFx0XHRjb25zdCByZXZpZXdBcmVhRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17dHJ1ZX0gY2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpblRvcEJvdHRvbVwifSB2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX0+XG5cdFx0XHRcdFx0XHR7e1xuXHRcdFx0XHRcdFx0XHRsYXlvdXQ6IDxDb2x1bW5MYXlvdXQgY29sdW1uc009ezJ9IGNvbHVtbnNMPXsyfSBjb2x1bW5zWEw9ezJ9IGxhYmVsQ2VsbHNMYXJnZT17MX0gZW1wdHlDZWxsc0xhcmdlPXsxfSAvPlxuXHRcdFx0XHRcdFx0fX1cblx0XHRcdFx0XHQ8L0Zvcm0+XG5cdFx0XHRcdCkgYXMgRm9ybTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzRm9ybSA9IChcblx0XHRcdFx0XHQ8Rm9ybSBlZGl0YWJsZT17ZmFsc2V9IGNsYXNzPXtcInNhcFVpU21hbGxNYXJnaW5Ub3BCb3R0b21cIn0gdmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0bGF5b3V0OiA8Q29sdW1uTGF5b3V0IGNvbHVtbnNNPXsyfSBjb2x1bW5zTD17Mn0gY29sdW1uc1hMPXsyfSBsYWJlbENlbGxzTGFyZ2U9ezF9IGVtcHR5Q2VsbHNMYXJnZT17MX0gLz5cblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0PC9Gb3JtPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB3YXJuaW5nTWVzc2FnZSA9IChcblx0XHRcdFx0XHQ8TWVzc2FnZVN0cmlwXG5cdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfV0FSTklOR19NU0dcIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIldhcm5pbmdcIn1cblx0XHRcdFx0XHRcdHNob3dJY29uPXt0cnVlfVxuXHRcdFx0XHRcdFx0dmlzaWJsZT17dGhpcy5iaW5kU3RhdGUoXCJoYXNJbmNvcnJlY3RWYWx1ZXNcIil9XG5cdFx0XHRcdFx0PjwvTWVzc2FnZVN0cmlwPlxuXHRcdFx0XHQpO1xuXHRcdFx0XHRjb25zdCB0aHVtYlVwQnV0dG9uID0gKFxuXHRcdFx0XHRcdDxUb2dnbGVCdXR0b25cblx0XHRcdFx0XHRcdGljb249e1wic2FwLWljb246Ly90aHVtYi11cFwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX1VQXCIpfVxuXHRcdFx0XHRcdFx0dHlwZT17XCJUcmFuc3BhcmVudFwifVxuXHRcdFx0XHRcdFx0cHJlc3M9eygpOiB2b2lkID0+IHtcblx0XHRcdFx0XHRcdFx0cmV0dXJuIHRoaXMub25UaHVtYlByZXNzKHRodW1iVXBCdXR0b24sIHRodW1iRG93bkJ1dHRvbik7XG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdC8+XG5cdFx0XHRcdCk7XG5cdFx0XHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSh0aHVtYlVwQnV0dG9uLCBcInByZXNzXCIsIFwiZmU0OmVmOnRodW1iVXBcIik7XG5cdFx0XHRcdGNvbnN0IHRodW1iRG93bkJ1dHRvbiA9IChcblx0XHRcdFx0XHQ8VG9nZ2xlQnV0dG9uXG5cdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vdGh1bWItZG93blwifVxuXHRcdFx0XHRcdFx0dG9vbHRpcD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfVEhVTUJTX0RPV05cIil9XG5cdFx0XHRcdFx0XHR0eXBlPXtcIlRyYW5zcGFyZW50XCJ9XG5cdFx0XHRcdFx0XHRwcmVzcz17KCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5vblRodW1iUHJlc3ModGh1bWJVcEJ1dHRvbiwgdGh1bWJEb3duQnV0dG9uKTtcblx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0Lz5cblx0XHRcdFx0KTtcblx0XHRcdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKHRodW1iRG93bkJ1dHRvbiwgXCJwcmVzc1wiLCBcImZlNDplZjp0aHVtYkRvd25cIik7XG5cdFx0XHRcdGNvbnN0IGFpTm90aWNlVGV4dCA9IChcblx0XHRcdFx0XHQ8SEJveCBhbGlnbkl0ZW1zPXtcIkNlbnRlclwifSB2aXNpYmxlPXtlcXVhbCh0aGlzLmJpbmRTdGF0ZShcInN0YXRlVHlwZVwiKSwgXCJIYXNFbnRyaWVzXCIpfT5cblx0XHRcdFx0XHRcdDxBSUxpbmtOb3RpY2UgLz5cblx0XHRcdFx0XHRcdDxUZXh0IHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0FJX05PVElDRV9URVhUXCIpfSBjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5CZWdpblwifSAvPlxuXHRcdFx0XHRcdFx0e3RodW1iVXBCdXR0b259LCB7dGh1bWJEb3duQnV0dG9ufVxuXHRcdFx0XHRcdDwvSEJveD5cblx0XHRcdFx0KTtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyID0gKFxuXHRcdFx0XHRcdDxGb3JtQ29udGFpbmVyPnt7IHRpdGxlOiA8Q29yZVRpdGxlIHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1BSRVZJT1VTX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgcHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMiA9IChcblx0XHRcdFx0XHQ8Rm9ybUNvbnRhaW5lcj57eyB0aXRsZTogPENvcmVUaXRsZSB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9QUkVWSU9VU19WQUxVRVNcIil9IC8+IH19PC9Gb3JtQ29udGFpbmVyPlxuXHRcdFx0XHQpIGFzIEZvcm1Db250YWluZXI7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlc0Zvcm1Db250YWluZXIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgbmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIgPSAoXG5cdFx0XHRcdFx0PEZvcm1Db250YWluZXI+e3sgdGl0bGU6IDxDb3JlVGl0bGUgdGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfTkVXX1ZBTFVFU1wiKX0gLz4gfX08L0Zvcm1Db250YWluZXI+XG5cdFx0XHRcdCkgYXMgRm9ybUNvbnRhaW5lcjtcblx0XHRcdFx0Y29uc3QgdWlDb250ZXh0ID0gdGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIik/LmNyZWF0ZUJpbmRpbmdDb250ZXh0KFwiL2Vhc3lFZGl0RGlhbG9nXCIpO1xuXG5cdFx0XHRcdHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbChcInVpXCIpLnNldFByb3BlcnR5KFwiL2Vhc3lFZGl0RGlhbG9nXCIsIHt9KTtcblx0XHRcdFx0dWlDb250ZXh0LnNldFByb3BlcnR5KFwiaXNFZGl0YWJsZVwiLCB0cnVlKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lci5zZXRCaW5kaW5nQ29udGV4dCh1aUNvbnRleHQsIFwidWlcIik7XG5cblx0XHRcdFx0cmV2aWV3QXJlYUZvcm0uYWRkRm9ybUNvbnRhaW5lcihwcmV2aW91c1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRyZXZpZXdBcmVhRm9ybS5hZGRGb3JtQ29udGFpbmVyKG5ld1ZhbHVlc0Zvcm1Db250YWluZXIpO1xuXHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtLmFkZEZvcm1Db250YWluZXIocHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGluY29ycmVjdFZhbHVlc0Zvcm0uYWRkRm9ybUNvbnRhaW5lcihuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMik7XG5cdFx0XHRcdGNvbnN0IG5ld1ZhbHVlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblx0XHRcdFx0Y29uc3QgaW5jb3JyZWN0VmFsdWVzOiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPiA9IHt9O1xuXHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyLnNldEJpbmRpbmdDb250ZXh0KHRoaXMuX2JpbmRpbmdDb250ZXh0KTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKT8uY3JlYXRlQmluZGluZ0NvbnRleHQoXCIvaW5jb3JyZWN0VmFsdWVzXCIpKTtcblx0XHRcdFx0bmV3VmFsdWVzRm9ybUNvbnRhaW5lcjIuc2V0TW9kZWwodGhpcy5nZXRNb2RlbChcIiRjb21wb25lbnRTdGF0ZVwiKSk7XG5cblx0XHRcdFx0Y29uc3QgJHZCb3ggPSBjcmVhdGVSZWZlcmVuY2U8VkJveD4oKTtcblx0XHRcdFx0dGhpcy4kcmV2aWV3QXJlYS5jdXJyZW50Py5hZGRJdGVtKFxuXHRcdFx0XHRcdDxTY3JvbGxDb250YWluZXIgcmVmPXt0aGlzLiRzY3JvbGxDb250YWluZXJ9IHZlcnRpY2FsPXt0cnVlfSBjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9PlxuXHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0XHRcdDxWQm94IHJlZj17JHZCb3h9PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0aXRlbXM6IFtcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHthaU5vdGljZVRleHR9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0PC9IQm94Pixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0ZJTExFRF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRyZXZpZXdBcmVhRm9ybSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQ8VGl0bGVcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3RoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX0lOQ09SUkVDVF9GSUVMRFNcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVNtYWxsTWFyZ2luVG9wQm90dG9tXCJ9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0aGlzLmJpbmRTdGF0ZShcImhhc0luY29ycmVjdFZhbHVlc1wiKX1cblx0XHRcdFx0XHRcdFx0XHRcdFx0XHQvPixcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHR3YXJuaW5nTWVzc2FnZSxcblx0XHRcdFx0XHRcdFx0XHRcdFx0XHRpbmNvcnJlY3RWYWx1ZXNGb3JtXG5cdFx0XHRcdFx0XHRcdFx0XHRcdF1cblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PC9WQm94PlxuXHRcdFx0XHRcdFx0XHQpXG5cdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdDwvU2Nyb2xsQ29udGFpbmVyPlxuXHRcdFx0XHQpO1xuXG5cdFx0XHRcdGZvciAoY29uc3QgdXBkYXRlZEZpZWxkIGluIHVwZGF0ZWRGaWVsZHMpIHtcblx0XHRcdFx0XHRpZiAoZWRpdGFibGVGaWVsZHNbdXBkYXRlZEZpZWxkXSAmJiBlZGl0YWJsZUZpZWxkc1t1cGRhdGVkRmllbGRdLmlzRWRpdGFibGUgPT09IHRydWUpIHtcblx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gdHJ1ZTtcblx0XHRcdFx0XHRcdHByZXZpb3VzVmFsdWVzRm9ybUNvbnRhaW5lci5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXS5kZXNjcmlwdGlvbn0+XG5cdFx0XHRcdFx0XHRcdFx0PEZpZWxkXG5cdFx0XHRcdFx0XHRcdFx0XHRtZXRhUGF0aD17dXBkYXRlZEZpZWxkfVxuXHRcdFx0XHRcdFx0XHRcdFx0Y29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfVxuXHRcdFx0XHRcdFx0XHRcdFx0cmVhZE9ubHk9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZXF1aXJlZD17ZmFsc2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR2aXNpYmxlPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDwvRm9ybUVsZW1lbnQ+XG5cdFx0XHRcdFx0XHQpO1xuXG5cdFx0XHRcdFx0XHRjb25zdCBuZXdGaWVsZCA9IHRoaXMuX2dldE93bmVyKCk/LnJ1bkFzT3duZXIoKCkgPT4ge1xuXHRcdFx0XHRcdFx0XHRyZXR1cm4gKFxuXHRcdFx0XHRcdFx0XHRcdDxGaWVsZFxuXHRcdFx0XHRcdFx0XHRcdFx0X3JlcXVpcmVzVmFsaWRhdGlvbj17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZhbGlkYXRlRmllbGRHcm91cD17dGhpcy5vblZhbGlkYXRlRmllbGRHcm91cHMuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRcdGZpZWxkR3JvdXBJZHM9e1wiRWFzeUZpbGxGaWVsZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0bWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH1cblx0XHRcdFx0XHRcdFx0XHRcdGNvbnRleHRQYXRoPXt0aGlzLmdldE93bmVyQ29udGV4dFBhdGgoKX1cblx0XHRcdFx0XHRcdFx0XHRcdGNoYW5nZT17dGhpcy5vbkZpZWxkQ2hhbmdlLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0KSBhcyBGaWVsZDtcblx0XHRcdFx0XHRcdH0pIGFzIEVuaGFuY2VXaXRoVUk1PEZpZWxkPjtcblx0XHRcdFx0XHRcdG5ld1ZhbHVlc0Zvcm1Db250YWluZXIuYWRkRm9ybUVsZW1lbnQoXG5cdFx0XHRcdFx0XHRcdDxGb3JtRWxlbWVudCBsYWJlbD17ZmllbGRNYXBwaW5nW3VwZGF0ZWRGaWVsZF0uZGVzY3JpcHRpb259Pnt7IGZpZWxkczogbmV3RmllbGQgfX08L0Zvcm1FbGVtZW50PlxuXHRcdFx0XHRcdFx0KTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdFx0XHRcdFx0Y29uc3QgdGFyZ2V0TWV0YVBhdGggPSBtZXRhTW9kZWwuZ2V0TWV0YVBhdGgodGhpcy5fYmluZGluZ0NvbnRleHQuZ2V0UGF0aCh1cGRhdGVkRmllbGQpKTtcblx0XHRcdFx0XHRcdGNvbnN0IG1ldGFNb2RlbE9iaiA9IG1ldGFNb2RlbC5nZXRPYmplY3QodGFyZ2V0TWV0YVBhdGgpO1xuXHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVFeHByZXNzaW9uID0gQW5ub3RhdGlvbkhlbHBlci5mb3JtYXQobWV0YU1vZGVsT2JqLCB7XG5cdFx0XHRcdFx0XHRcdGNvbnRleHQ6IG1ldGFNb2RlbC5jcmVhdGVCaW5kaW5nQ29udGV4dCh0YXJnZXRNZXRhUGF0aCkhXG5cdFx0XHRcdFx0XHR9KTtcblx0XHRcdFx0XHRcdGNvbnN0IHBhcnNlZEJpbmRpbmcgPSBCaW5kaW5nSW5mby5wYXJzZSh2YWx1ZUV4cHJlc3Npb24pO1xuXHRcdFx0XHRcdFx0bGV0IGVycm9yTWVzc2FnZSA9IFwiXCI7XG5cdFx0XHRcdFx0XHRpZiAocGFyc2VkQmluZGluZyAmJiBwYXJzZWRCaW5kaW5nLnR5cGUpIHtcblx0XHRcdFx0XHRcdFx0dHJ5IHtcblx0XHRcdFx0XHRcdFx0XHRwYXJzZWRCaW5kaW5nLnR5cGUudmFsaWRhdGVWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0pO1xuXHRcdFx0XHRcdFx0XHR9IGNhdGNoIChlKSB7XG5cdFx0XHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNFcnJvciA9IHRydWU7XG5cdFx0XHRcdFx0XHRcdFx0ZXJyb3JNZXNzYWdlID0gKGUgYXMgRXJyb3IpLm1lc3NhZ2U7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gRmV0Y2ggdGhlIHZhbHVlIGxpc3QgZm9yIHRoZSBnaXZlbiBwcm9wZXJ0eSBwYXRoXG5cdFx0XHRcdFx0XHRjb25zdCB2YWx1ZUxpc3QgPSBhd2FpdCB0aGlzLl9nZXRWYWx1ZUxpc3QodGFyZ2V0TWV0YVBhdGgpO1xuXG5cdFx0XHRcdFx0XHQvLyBJbml0aWFsaXplIGEgZmxhZyB0byB0cmFjayB2YWxpZGF0aW9uIGVycm9yc1xuXHRcdFx0XHRcdFx0bGV0IGhhc1ZIRXJyb3IgPSBmYWxzZTtcblxuXHRcdFx0XHRcdFx0Ly8gQ2hlY2sgaWYgdGhlIHZhbHVlIGxpc3QgaXMgc2VhcmNoYWJsZSBhbmQgdmFsaWRhdGUgdGhlIHVwZGF0ZWQgZmllbGQgdmFsdWVzXG5cdFx0XHRcdFx0XHRpZiAodmFsdWVMaXN0ICYmIFZhbHVlTGlzdEhlbHBlci5pc1ZhbHVlTGlzdFNlYXJjaGFibGUodGFyZ2V0TWV0YVBhdGgsIHZhbHVlTGlzdCkpIHtcblx0XHRcdFx0XHRcdFx0Y29uc3QgdmFsdWVzID0gYXdhaXQgcmVzb2x2ZVRva2VuVmFsdWUoXG5cdFx0XHRcdFx0XHRcdFx0dmFsdWVMaXN0LFxuXHRcdFx0XHRcdFx0XHRcdHtcblx0XHRcdFx0XHRcdFx0XHRcdG9wZXJhdG9yOiBGaWx0ZXJPcGVyYXRvci5FUSxcblx0XHRcdFx0XHRcdFx0XHRcdHNlbGVjdGVkVmFsdWVzOiBbdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdIGFzIHN0cmluZ11cblx0XHRcdFx0XHRcdFx0XHR9LFxuXHRcdFx0XHRcdFx0XHRcdHRydWVcblx0XHRcdFx0XHRcdFx0KTtcblxuXHRcdFx0XHRcdFx0XHQvLyBVcGRhdGUgdGhlIGZpZWxkIHZhbHVlIGlmIGl0IGRpZmZlcnMgZnJvbSB0aGUgcmVzb2x2ZWQgdmFsdWVcblx0XHRcdFx0XHRcdFx0aWYgKCF2YWx1ZXNbMF0ubm9NYXRjaCkge1xuXHRcdFx0XHRcdFx0XHRcdHVwZGF0ZWRGaWVsZHNbdXBkYXRlZEZpZWxkXSA9IHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZTtcblx0XHRcdFx0XHRcdFx0XHRlcnJvck1lc3NhZ2UgPSBcIlwiO1xuXHRcdFx0XHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuaGFzRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGhhc1ZIRXJyb3IgPSB0cnVlO1xuXHRcdFx0XHRcdFx0XHRcdGVycm9yTWVzc2FnZSA9IHRoaXMuZ2V0VHJhbnNsYXRlZFRleHQoXCJDX0VBU1lFRElUX1ZIX0VSUk9SXCIsIHZhbHVlc1swXS5zZWxlY3RlZFZhbHVlc1swXS52YWx1ZSk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH1cblxuXHRcdFx0XHRcdFx0Ly8gVXNlIGEgdGltZW91dCB0byBlbnN1cmUgdmFsaWRhdGlvbiBydW5zIGNvcnJlY3RseSBmb3IgdGhlIHVwZGF0ZWQgZmllbGRcblx0XHRcdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5zZXRWYWx1ZSh1cGRhdGVkRmllbGRzW3VwZGF0ZWRGaWVsZF0gYXMgc3RyaW5nKTtcblx0XHRcdFx0XHRcdFx0aWYgKGVycm9yTWVzc2FnZS5sZW5ndGggPiAwIHx8IGhhc1ZIRXJyb3IpIHtcblx0XHRcdFx0XHRcdFx0XHRjb25zdCBtZXNzYWdlSWQgPSBuZXdGaWVsZC5hZGRNZXNzYWdlKHsgdHlwZTogTWVzc2FnZVR5cGUuRXJyb3IsIG1lc3NhZ2U6IGVycm9yTWVzc2FnZSB9KTtcblx0XHRcdFx0XHRcdFx0XHRuZXdGaWVsZC5kYXRhKFwibWVzc2FnZUlkXCIsIG1lc3NhZ2VJZCk7XG5cdFx0XHRcdFx0XHRcdH1cblx0XHRcdFx0XHRcdH0sIDIwMCk7XG5cdFx0XHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0XHRcdGluY29ycmVjdFZhbHVlc1t1cGRhdGVkRmllbGRdID0gdXBkYXRlZEZpZWxkc1t1cGRhdGVkRmllbGRdO1xuXHRcdFx0XHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSB0cnVlO1xuXHRcdFx0XHRcdFx0cHJldmlvdXNWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGRcblx0XHRcdFx0XHRcdFx0XHRcdG1ldGFQYXRoPXt1cGRhdGVkRmllbGR9XG5cdFx0XHRcdFx0XHRcdFx0XHRjb250ZXh0UGF0aD17dGhpcy5nZXRPd25lckNvbnRleHRQYXRoKCl9XG5cdFx0XHRcdFx0XHRcdFx0XHRyZWFkT25seT17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdHJlcXVpcmVkPXtmYWxzZX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e3RydWV9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRuZXdWYWx1ZXNGb3JtQ29udGFpbmVyMi5hZGRGb3JtRWxlbWVudChcblx0XHRcdFx0XHRcdFx0PEZvcm1FbGVtZW50IGxhYmVsPXtmaWVsZE1hcHBpbmdbdXBkYXRlZEZpZWxkXT8uZGVzY3JpcHRpb24gPz8gdXBkYXRlZEZpZWxkfT5cblx0XHRcdFx0XHRcdFx0XHQ8RmllbGQgbWV0YVBhdGg9e3VwZGF0ZWRGaWVsZH0gY29udGV4dFBhdGg9e3RoaXMuZ2V0T3duZXJDb250ZXh0UGF0aCgpfSByZWFkT25seT17dHJ1ZX0gLz5cblx0XHRcdFx0XHRcdFx0PC9Gb3JtRWxlbWVudD5cblx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0fVxuXHRcdFx0XHR9XG5cblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0QmluZGluZ0NvbnRleHQodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldFZpZXcoKT8uZ2V0QmluZGluZ0NvbnRleHQoKSk7XG5cdFx0XHRcdCR2Qm94LmN1cnJlbnQ/LnNldE1vZGVsKHRoaXMuZ2V0UGFnZUNvbnRyb2xsZXIoKS5nZXRNb2RlbCgpKTtcblx0XHRcdFx0JHZCb3guY3VycmVudD8uc2V0TW9kZWwodGhpcy5nZXRQYWdlQ29udHJvbGxlcigpLmdldE1vZGVsKFwidWlcIiksIFwidWlcIik7XG5cdFx0XHRcdHNldFRpbWVvdXQoKCk6IHZvaWQgPT4ge1xuXHRcdFx0XHRcdHRoaXMub25WYWxpZGF0ZUZpZWxkR3JvdXBzKCk7XG5cdFx0XHRcdH0sIDEwMDApO1xuXG5cdFx0XHRcdHRoaXMuc3RhdGUubmV3VmFsdWVzID0gbmV3VmFsdWVzO1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IGluY29ycmVjdFZhbHVlcztcblx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzVmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuaGFzSW5jb3JyZWN0VmFsdWVzID0gZmFsc2U7XG5cdFx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0XHR0aGlzLnN0YXRlLm5ld1ZhbHVlcyA9IHt9O1xuXHRcdFx0XHR0aGlzLnN0YXRlLmluY29ycmVjdFZhbHVlcyA9IHt9O1xuXHRcdFx0fVxuXHRcdH0gY2F0Y2ggKGUpIHtcblx0XHRcdHRoaXMuc3RhdGUuaXNCdXN5ID0gZmFsc2U7XG5cdFx0XHR0aGlzLnN0YXRlLmhhc1ZhbHVlcyA9IGZhbHNlO1xuXHRcdFx0dGhpcy5zdGF0ZS5oYXNJbmNvcnJlY3RWYWx1ZXMgPSBmYWxzZTtcblx0XHRcdHRoaXMuc3RhdGUuc3RhdGVUeXBlID0gXCJFcnJvclwiO1xuXHRcdFx0dGhpcy5zdGF0ZS5uZXdWYWx1ZXMgPSB7fTtcblx0XHRcdHRoaXMuc3RhdGUuaW5jb3JyZWN0VmFsdWVzID0ge307XG5cdFx0fVxuXHR9XG5cblx0Y3JlYXRlQ29udGVudCgpOiBEaWFsb2cge1xuXHRcdGNvbnN0IGVhc3lFZGl0RGVzY3JpcHRpb24gPSA8SW52aXNpYmxlVGV4dCB0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9IC8+O1xuXG5cdFx0Y29uc3QgJGVhc3lGaWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxTYXZlQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCAkZWFzeUZpbGxDYW5jZWxCdXR0b24gPSBjcmVhdGVSZWZlcmVuY2U8QnV0dG9uPigpO1xuXHRcdGNvbnN0ICRlYXN5RmlsbENsZWFyQWxsQnV0dG9uID0gY3JlYXRlUmVmZXJlbmNlPEJ1dHRvbj4oKTtcblx0XHRjb25zdCBkaWFsb2cgPSAoXG5cdFx0XHQ8RGlhbG9nXG5cdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfVElUTEVcIil9XG5cdFx0XHRcdHJlc2l6YWJsZT17dHJ1ZX1cblx0XHRcdFx0aG9yaXpvbnRhbFNjcm9sbGluZz17ZmFsc2V9XG5cdFx0XHRcdHZlcnRpY2FsU2Nyb2xsaW5nPXtmYWxzZX1cblx0XHRcdFx0Y29udGVudFdpZHRoPVwiMTEwMHB4XCJcblx0XHRcdFx0Y29udGVudEhlaWdodD17XCI4MDBweFwifVxuXHRcdFx0XHRlc2NhcGVIYW5kbGVyPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5vbkNhbmNlbCgpO1xuXHRcdFx0XHR9fVxuXHRcdFx0XHRhZnRlckNsb3NlPXsoKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0dGhpcy5kZXN0cm95KCk7XG5cdFx0XHRcdH19XG5cdFx0XHQ+XG5cdFx0XHRcdHt7XG5cdFx0XHRcdFx0Y29udGVudDogKFxuXHRcdFx0XHRcdFx0PEZsZXhCb3ggZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLlJvd30gcmVuZGVyVHlwZT17XCJCYXJlXCJ9IHdpZHRoPXtcIjEwMCVcIn0gaGVpZ2h0PXtcIjEwMCVcIn0+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0d2lkdGg9e1wiNDAlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJpbnB1dEFyZWFcIil9XG5cdFx0XHRcdFx0XHRcdFx0ZGlyZWN0aW9uPXtGbGV4RGlyZWN0aW9uLkNvbHVtbn1cblx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaUNvbnRlbnRQYWRkaW5nXCJ9XG5cdFx0XHRcdFx0XHRcdFx0cmVuZGVyVHlwZT17XCJCYXJlXCJ9XG5cdFx0XHRcdFx0XHRcdFx0Zml0Q29udGFpbmVyPXt0cnVlfVxuXHRcdFx0XHRcdFx0XHQ+XG5cdFx0XHRcdFx0XHRcdFx0PEZvcm1hdHRlZFRleHRcblx0XHRcdFx0XHRcdFx0XHRcdGh0bWxUZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfREVTQ1JJUFRJT05cIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdHtlYXN5RWRpdERlc2NyaXB0aW9ufVxuXHRcdFx0XHRcdFx0XHRcdDxUZXh0QXJlYVxuXHRcdFx0XHRcdFx0XHRcdFx0dmFsdWU9e3RoaXMuYmluZFN0YXRlKFwiZW50ZXJlZFRleHRcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHRcdGxpdmVDaGFuZ2U9eyhlKTogdm9pZCA9PiB7XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHRoaXMuc3RhdGUuY3VycmVudGx5RW50ZXJlZFRleHQgPSBlLmdldFBhcmFtZXRlcihcInZhbHVlXCIpID8/IFwiXCI7XG5cdFx0XHRcdFx0XHRcdFx0XHR9fVxuXHRcdFx0XHRcdFx0XHRcdFx0d2lkdGg9XCIxMDAlXCJcblx0XHRcdFx0XHRcdFx0XHRcdHBsYWNlaG9sZGVyPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9URVhUQVJFQV9QTEFDRUhPTERFUlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdHJvd3M9ezIwfVxuXHRcdFx0XHRcdFx0XHRcdFx0Z3Jvd2luZz17dHJ1ZX1cblx0XHRcdFx0XHRcdFx0XHRcdGdyb3dpbmdNYXhMaW5lcz17MzB9XG5cdFx0XHRcdFx0XHRcdFx0XHRtYXhMZW5ndGg9e01BWF9MRU5HVEh9XG5cdFx0XHRcdFx0XHRcdFx0XHRhcmlhTGFiZWxsZWRCeT17ZWFzeUVkaXREZXNjcmlwdGlvbn1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxUZXh0XG5cdFx0XHRcdFx0XHRcdFx0XHRjbGFzcz17XCJzYXBVaVRpbnlNYXJnaW5Cb3R0b21cIn1cblx0XHRcdFx0XHRcdFx0XHRcdHRleHQ9e3tcblx0XHRcdFx0XHRcdFx0XHRcdFx0cGF0aDogXCIvY3VycmVudGx5RW50ZXJlZFRleHRcIixcblx0XHRcdFx0XHRcdFx0XHRcdFx0bW9kZWw6IFwiJGNvbXBvbmVudFN0YXRlXCIsXG5cdFx0XHRcdFx0XHRcdFx0XHRcdGZvcm1hdHRlcjogdGhpcy5mb3JtYXRSZW1haW5pbmdDaGFyYWN0ZXJzLmJpbmQodGhpcylcblx0XHRcdFx0XHRcdFx0XHRcdH19XG5cdFx0XHRcdFx0XHRcdFx0PlxuXHRcdFx0XHRcdFx0XHRcdFx0e3sgbGF5b3V0RGF0YTogPEZsZXhJdGVtRGF0YSBhbGlnblNlbGY9XCJFbmRcIiAvPiB9fVxuXHRcdFx0XHRcdFx0XHRcdDwvVGV4dD5cblx0XHRcdFx0XHRcdFx0XHQ8SEJveD5cblx0XHRcdFx0XHRcdFx0XHRcdHt7IGxheW91dERhdGE6IDxGbGV4SXRlbURhdGEgYWxpZ25TZWxmPVwiRW5kXCIgLz4gfX1cblx0XHRcdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfQlVUVE9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRpY29uPXtcInNhcC1pY29uOi8vYWlcIn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0ZW5hYmxlZD17bm90KGlzRW1wdHkodGhpcy5iaW5kU3RhdGUoXCJjdXJyZW50bHlFbnRlcmVkVGV4dFwiKSkpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkVhc3lFZGl0UHJlc3NlZC5iaW5kKHRoaXMpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0XHRcdFx0Y2xhc3M9e1wic2FwVWlTbWFsbE1hcmdpbkVuZFwifVxuXHRcdFx0XHRcdFx0XHRcdFx0PjwvQnV0dG9uPlxuXHRcdFx0XHRcdFx0XHRcdFx0PEJ1dHRvblxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfQ0xFQVJfQUxMXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0XHR0eXBlPXtCdXR0b25UeXBlLlRyYW5zcGFyZW50fVxuXHRcdFx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNsZWFyQWxsLmJpbmQodGhpcyl9XG5cdFx0XHRcdFx0XHRcdFx0XHRcdHJlZj17JGVhc3lGaWxsQ2xlYXJBbGxCdXR0b259XG5cdFx0XHRcdFx0XHRcdFx0XHQ+PC9CdXR0b24+XG5cdFx0XHRcdFx0XHRcdFx0PC9IQm94PlxuXHRcdFx0XHRcdFx0XHQ8L0ZsZXhCb3g+XG5cdFx0XHRcdFx0XHRcdDxGbGV4Qm94XG5cdFx0XHRcdFx0XHRcdFx0aWQ9e3RoaXMuY3JlYXRlSWQoXCJyZXZpZXdBcmVhXCIpfVxuXHRcdFx0XHRcdFx0XHRcdHJlZj17dGhpcy4kcmV2aWV3QXJlYX1cblx0XHRcdFx0XHRcdFx0XHR3aWR0aD17XCI2MCVcIn1cblx0XHRcdFx0XHRcdFx0XHRyZW5kZXJUeXBlPXtcIkJhcmVcIn1cblx0XHRcdFx0XHRcdFx0XHRidXN5PXt0aGlzLmJpbmRTdGF0ZShcImlzQnVzeVwiKX1cblx0XHRcdFx0XHRcdFx0XHRkaXJlY3Rpb249e0ZsZXhEaXJlY3Rpb24uQ29sdW1ufVxuXHRcdFx0XHRcdFx0XHRcdGNsYXNzPXtcInNhcEZlRWFzeUZpbGxSZXZpZXdBcmVhXCJ9XG5cdFx0XHRcdFx0XHRcdD5cblx0XHRcdFx0XHRcdFx0XHQ8SWxsdXN0cmF0ZWRNZXNzYWdlXG5cdFx0XHRcdFx0XHRcdFx0XHRpbGx1c3RyYXRpb25UeXBlPXtJbGx1c3RyYXRlZE1lc3NhZ2VUeXBlLk5vU2VhcmNoUmVzdWx0c31cblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblNpemU9e0lsbHVzdHJhdGVkTWVzc2FnZVNpemUuTGFyZ2V9XG5cdFx0XHRcdFx0XHRcdFx0XHR0aXRsZT17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX1JFVklFV19USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfUkVWSUVXX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiSW5pdGlhbFwiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuTm9FbnRyaWVzfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfTk9fRU5UUklFU19USVRMRVwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdGRlc2NyaXB0aW9uPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfTk9fRU5UUklFU19ERVNDUklQVElPTlwiKX1cblx0XHRcdFx0XHRcdFx0XHRcdHZpc2libGU9e2VxdWFsKHRoaXMuYmluZFN0YXRlKFwic3RhdGVUeXBlXCIpLCBcIk5vRW50cmllc1wiKX1cblx0XHRcdFx0XHRcdFx0XHQvPlxuXHRcdFx0XHRcdFx0XHRcdDxJbGx1c3RyYXRlZE1lc3NhZ2Vcblx0XHRcdFx0XHRcdFx0XHRcdGlsbHVzdHJhdGlvblR5cGU9e0lsbHVzdHJhdGVkTWVzc2FnZVR5cGUuVW5hYmxlVG9Mb2FkfVxuXHRcdFx0XHRcdFx0XHRcdFx0aWxsdXN0cmF0aW9uU2l6ZT17SWxsdXN0cmF0ZWRNZXNzYWdlU2l6ZS5MYXJnZX1cblx0XHRcdFx0XHRcdFx0XHRcdHRpdGxlPXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfRVJST1JfVElUTEVcIil9XG5cdFx0XHRcdFx0XHRcdFx0XHRkZXNjcmlwdGlvbj17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX0VSUk9SX0RFU0NSSVBUSU9OXCIpfVxuXHRcdFx0XHRcdFx0XHRcdFx0dmlzaWJsZT17ZXF1YWwodGhpcy5iaW5kU3RhdGUoXCJzdGF0ZVR5cGVcIiksIFwiRXJyb3JcIil9XG5cdFx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHRcdFx0PC9GbGV4Qm94PlxuXHRcdFx0XHRcdCksXG5cdFx0XHRcdFx0Zm9vdGVyOiAoXG5cdFx0XHRcdFx0XHQ8T3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdFx0XHQ8VG9vbGJhclNwYWNlciAvPlxuXHRcdFx0XHRcdFx0XHQ8QnV0dG9uXG5cdFx0XHRcdFx0XHRcdFx0dGV4dD17dGhpcy5nZXRUcmFuc2xhdGVkVGV4dChcIkNfRUFTWUVESVRfRElBTE9HX1NBVkVcIil9XG5cdFx0XHRcdFx0XHRcdFx0dHlwZT1cIkVtcGhhc2l6ZWRcIlxuXHRcdFx0XHRcdFx0XHRcdGVuYWJsZWQ9e2FuZCh0aGlzLmJpbmRTdGF0ZShcImhhc1ZhbHVlc1wiKSwgbm90KHRoaXMuYmluZFN0YXRlKFwiaGFzRXJyb3JcIikpKX1cblx0XHRcdFx0XHRcdFx0XHRwcmVzcz17dGhpcy5vbkNvbmZpcm0uYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbFNhdmVCdXR0b259XG5cdFx0XHRcdFx0XHRcdC8+XG5cdFx0XHRcdFx0XHRcdDxCdXR0b25cblx0XHRcdFx0XHRcdFx0XHR0ZXh0PXt0aGlzLmdldFRyYW5zbGF0ZWRUZXh0KFwiQ19FQVNZRURJVF9ESUFMT0dfQ0FOQ0VMXCIpfVxuXHRcdFx0XHRcdFx0XHRcdHR5cGU9XCJUcmFuc3BhcmVudFwiXG5cdFx0XHRcdFx0XHRcdFx0cHJlc3M9e3RoaXMub25DYW5jZWwuYmluZCh0aGlzKX1cblx0XHRcdFx0XHRcdFx0XHRyZWY9eyRlYXN5RmlsbENhbmNlbEJ1dHRvbn1cblx0XHRcdFx0XHRcdFx0Lz5cblx0XHRcdFx0XHRcdDwvT3ZlcmZsb3dUb29sYmFyPlxuXHRcdFx0XHRcdClcblx0XHRcdFx0fX1cblx0XHRcdDwvRGlhbG9nPlxuXHRcdCk7XG5cdFx0RkVTUkhlbHBlci5zZXRTZW1hbnRpY1N0ZXBuYW1lKCRlYXN5RmlsbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjphbmFseXplVGV4dFwiKTtcblx0XHRGRVNSSGVscGVyLnNldFNlbWFudGljU3RlcG5hbWUoJGVhc3lGaWxsU2F2ZUJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpzYXZlXCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxDYW5jZWxCdXR0b24uY3VycmVudCEsIFwicHJlc3NcIiwgXCJmYWk6ZWY6Y2FuY2VsXCIpO1xuXHRcdEZFU1JIZWxwZXIuc2V0U2VtYW50aWNTdGVwbmFtZSgkZWFzeUZpbGxDbGVhckFsbEJ1dHRvbi5jdXJyZW50ISwgXCJwcmVzc1wiLCBcImZhaTplZjpjbGVhckFsbFwiKTtcblx0XHRyZXR1cm4gZGlhbG9nO1xuXHR9XG5cblx0YXN5bmMgX2dldFZhbHVlTGlzdChwcm9wZXJ0eVBhdGg6IHN0cmluZyk6IFByb21pc2U8VmFsdWVMaXN0SW5mbyB8IHVuZGVmaW5lZD4ge1xuXHRcdGNvbnN0IG1ldGFNb2RlbCA9IHRoaXMuZ2V0TWV0YU1vZGVsKCkhO1xuXHRcdGNvbnN0IHZhbHVlTGlzdHMgPSBhd2FpdCBWYWx1ZUxpc3RIZWxwZXIuZ2V0VmFsdWVMaXN0SW5mbyh1bmRlZmluZWQsIHByb3BlcnR5UGF0aCwgdW5kZWZpbmVkLCBtZXRhTW9kZWwpO1xuXHRcdHJldHVybiB2YWx1ZUxpc3RzWzBdO1xuXHR9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7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QSxDQUNjO1FBRW5CO01BQUMsQ0FDTSxDQUNSO01BQ0RwRixVQUFVLENBQUNDLG1CQUFtQixDQUFDaUYsZUFBZSxDQUFDcEksT0FBTyxFQUFHLE9BQU8sRUFBRSxvQkFBb0IsQ0FBQztNQUN2RmtELFVBQVUsQ0FBQ0MsbUJBQW1CLENBQUNrRixtQkFBbUIsQ0FBQ3JJLE9BQU8sRUFBRyxPQUFPLEVBQUUsYUFBYSxDQUFDO01BQ3BGa0QsVUFBVSxDQUFDQyxtQkFBbUIsQ0FBQ21GLHFCQUFxQixDQUFDdEksT0FBTyxFQUFHLE9BQU8sRUFBRSxlQUFlLENBQUM7TUFDeEZrRCxVQUFVLENBQUNDLG1CQUFtQixDQUFDb0YsdUJBQXVCLENBQUN2SSxPQUFPLEVBQUcsT0FBTyxFQUFFLGlCQUFpQixDQUFDO01BQzVGLE9BQU93SSxNQUFNO0lBQ2QsQ0FBQztJQUFBaFEsTUFBQSxDQUVLeU8sYUFBYSxHQUFuQixlQUFNQSxhQUFhQSxDQUFDMkUsWUFBb0IsRUFBc0M7TUFDN0UsTUFBTWpSLFNBQVMsR0FBRyxJQUFJLENBQUNFLFlBQVksQ0FBQyxDQUFFO01BQ3RDLE1BQU1nUixVQUFVLEdBQUcsTUFBTTFFLGVBQWUsQ0FBQzJFLGdCQUFnQixDQUFDN08sU0FBUyxFQUFFMk8sWUFBWSxFQUFFM08sU0FBUyxFQUFFdEMsU0FBUyxDQUFDO01BQ3hHLE9BQU9rUixVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JCLENBQUM7SUFBQSxPQUFBM1UsY0FBQTtFQUFBLEVBN21CMEM2VSxhQUFhLEdBQUE1VCxXQUFBLEdBQUE2VCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLGtCQUFBcEIsS0FBQTtJQUFBNFUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUFoVSxZQUFBLEdBQUE0VCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLHVCQUFBbEIsS0FBQTtJQUFBMFUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUEvVCxZQUFBLEdBQUEyVCx5QkFBQSxDQUFBcFUsT0FBQSxDQUFBYSxTQUFBLHdCQUFBakIsS0FBQTtJQUFBeVUsWUFBQTtJQUFBQyxVQUFBO0lBQUFDLFFBQUE7SUFBQUMsV0FBQTtFQUFBLElBQUF4VSxPQUFBLE1BQUFELE1BQUE7RUFBQVcsUUFBQSxHQUFBcEIsY0FBQTtFQUFBLE9BQUFvQixRQUFBO0FBQUEiLCJpZ25vcmVMaXN0IjpbXX0=
@@ -565,6 +565,7 @@ export default class EasyFillDialog extends BuildingBlock<
565
565
  direction={FlexDirection.Column}
566
566
  class={"sapUiContentPadding"}
567
567
  renderType={"Bare"}
568
+ fitContainer={true}
568
569
  >
569
570
  <FormattedText
570
571
  htmlText={this.getTranslatedText("C_EASYEDIT_DIALOG_DESCRIPTION")}