@agilemotion/oui-react-js 2.0.3 → 2.0.6

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 (253) hide show
  1. package/dist/ApplicationManager.js +2 -1
  2. package/dist/BasicApp.js +2 -1
  3. package/dist/BasicAppHome.js +2 -1
  4. package/dist/DateUtils.js +2 -1
  5. package/dist/DynamicJS.js +2 -1
  6. package/dist/InteractionPortalApp.js +2 -1
  7. package/dist/InteractionPortalAppHome.js +2 -1
  8. package/dist/InteractionPortalApp_old.js +2 -1
  9. package/dist/MouseTracker.js +2 -1
  10. package/dist/RestService.js +2 -1
  11. package/dist/RestUtils.js +2 -1
  12. package/dist/TypedValue.js +2 -1
  13. package/dist/Utils.js +2 -1
  14. package/dist/ViewContext.js +2 -1
  15. package/dist/WithRouter.js +2 -1
  16. package/dist/assets/jss/components/authNavbarStyle.js +2 -1
  17. package/dist/assets/jss/components/buttonStyle.js +2 -1
  18. package/dist/assets/jss/components/cardAvatarStyle.js +2 -1
  19. package/dist/assets/jss/components/cardBodyStyle.js +2 -1
  20. package/dist/assets/jss/components/cardFooterStyle.js +2 -1
  21. package/dist/assets/jss/components/cardHeaderStyle.js +2 -1
  22. package/dist/assets/jss/components/cardIconStyle.js +2 -1
  23. package/dist/assets/jss/components/cardStyle.js +2 -1
  24. package/dist/assets/jss/components/cardTextStyle.js +2 -1
  25. package/dist/assets/jss/components/customDropdownStyle.js +2 -1
  26. package/dist/assets/jss/components/customInputStyle.js +2 -1
  27. package/dist/assets/jss/components/dropdownStyle.js +2 -1
  28. package/dist/assets/jss/components/footerStyle.js +2 -1
  29. package/dist/assets/jss/components/headerLinksStyle.js +2 -1
  30. package/dist/assets/jss/components/headerStyle.js +2 -1
  31. package/dist/assets/jss/components/navbarLinksStyle.js +2 -1
  32. package/dist/assets/jss/components/navbarStyle.js +2 -1
  33. package/dist/assets/jss/components/sidebarStyle.js +2 -1
  34. package/dist/assets/jss/components/typographyStyle.js +2 -1
  35. package/dist/assets/jss/rootStyle.js +2 -1
  36. package/dist/assets/jss/views/layoutStyle.js +2 -1
  37. package/dist/assets/jss/views/loginBasicStyle.js +2 -1
  38. package/dist/assets/jss/views/loginBusinessPortalStyle.js +2 -1
  39. package/dist/assets/jss/views/loginStyle.js +2 -1
  40. package/dist/components/AlertBar.js +2 -1
  41. package/dist/components/AlertItem.js +2 -1
  42. package/dist/components/AlertTemplate.js +2 -1
  43. package/dist/components/Button.js +2 -1
  44. package/dist/components/Calendar.js +2 -1
  45. package/dist/components/Chart.js +2 -1
  46. package/dist/components/ConfirmationDialog.js +2 -1
  47. package/dist/components/DataGrid.js +2 -1
  48. package/dist/components/DataGridColumn.js +2 -1
  49. package/dist/components/DataGridFilter.js +2 -1
  50. package/dist/components/DataGridHeading.js +2 -1
  51. package/dist/components/Dialog.js +2 -1
  52. package/dist/components/DocumentTemplateDesigner.js +2 -1
  53. package/dist/components/DocumentTemplateDesignerComponent.js +2 -1
  54. package/dist/components/DocumentTemplatePlaceholderDialog.js +2 -1
  55. package/dist/components/DocumentViewer.js +2 -1
  56. package/dist/components/ElementResizeHandler.js +2 -1
  57. package/dist/components/FaceApi.js +2 -1
  58. package/dist/components/FileThumb.js +2 -1
  59. package/dist/components/Graph.js +2 -1
  60. package/dist/components/GraphNode.js +2 -1
  61. package/dist/components/HtmlPanel.js +2 -1
  62. package/dist/components/Icon.js +2 -1
  63. package/dist/components/LoadingIndicator.js +2 -1
  64. package/dist/components/LottieIcon.js +2 -1
  65. package/dist/components/PDFDesignerComponent.js +2 -1
  66. package/dist/components/PDFViewer.js +2 -1
  67. package/dist/components/PopupView.js +2 -1
  68. package/dist/components/Portlet.js +2 -1
  69. package/dist/components/ProgressTracker.js +2 -1
  70. package/dist/components/RegularButton.js +2 -1
  71. package/dist/components/SignaturePanel.js +2 -1
  72. package/dist/components/SocketManager.js +2 -1
  73. package/dist/components/Spinner.js +2 -1
  74. package/dist/components/StepperTitleBar.js +2 -1
  75. package/dist/components/TabPage.js +2 -1
  76. package/dist/components/TabPanel.js +2 -1
  77. package/dist/components/TableCellContent.js +2 -1
  78. package/dist/components/TemplateDesigner.js +2 -1
  79. package/dist/components/TemplateItemEventHandler.js +2 -1
  80. package/dist/components/TemplateTable.js +2 -1
  81. package/dist/components/TitleBar.js +2 -1
  82. package/dist/components/Toolbar.js +2 -1
  83. package/dist/components/Tooltip.js +2 -1
  84. package/dist/components/Tree.js +2 -1
  85. package/dist/components/UseIsVisible.js +2 -1
  86. package/dist/components/WordDocumentViewer.js +2 -1
  87. package/dist/components/card/Card.js +2 -1
  88. package/dist/components/card/CardAvatar.js +2 -1
  89. package/dist/components/card/CardBody.js +2 -1
  90. package/dist/components/card/CardFooter.js +2 -1
  91. package/dist/components/card/CardHeader.js +2 -1
  92. package/dist/components/card/CardIcon.js +2 -1
  93. package/dist/components/card/CardText.js +2 -1
  94. package/dist/components/customInput/CustomInput.js +2 -1
  95. package/dist/components/customInput/File.js +2 -1
  96. package/dist/components/dashboard/FoldingSideTabDashboard.bck.js +2 -1
  97. package/dist/components/dashboard/FoldingSideTabDashboard.js +2 -1
  98. package/dist/components/dashboard/SideMenuModuleDashboard.js +2 -1
  99. package/dist/components/dashboard/TopMenuModuleDashboard.js +2 -1
  100. package/dist/components/dashboard/components/Header.js +2 -1
  101. package/dist/components/dashboard/components/LeftDrawer.js +2 -1
  102. package/dist/components/dashboard/components/UserIdentity.js +2 -1
  103. package/dist/components/dashboard/components/blackDashboard/fixedPlugin/FixedPlugin.js +2 -1
  104. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.bck.js +2 -1
  105. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +2 -1
  106. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenu.js +2 -1
  107. package/dist/components/dashboard/components/blackDashboard/sidebar/ModuleMenuSidebar.js +2 -1
  108. package/dist/components/dashboard/components/portal/Timeline.js +2 -1
  109. package/dist/components/dashboard/components/portal/Workspace.js +2 -1
  110. package/dist/components/facialRecognition/FaceRecognitionComponent.js +2 -1
  111. package/dist/components/facialRecognition/FacialRegistration.js +2 -1
  112. package/dist/components/facialRecognition/FacialVerification.js +2 -1
  113. package/dist/components/facialRecognition/Modal.js +2 -1
  114. package/dist/components/facialRecognition/service/faceApi.js +2 -1
  115. package/dist/components/footer/Footer.js +2 -1
  116. package/dist/components/footer/HomeFooter.js +2 -1
  117. package/dist/components/form/AddressSearch.js +2 -1
  118. package/dist/components/form/AutoComplete.js +2 -1
  119. package/dist/components/form/BaseField.js +46 -5
  120. package/dist/components/form/Checkbox.js +2 -1
  121. package/dist/components/form/CurrencyField.js +2 -1
  122. package/dist/components/form/DatePicker.js +2 -1
  123. package/dist/components/form/FieldSet.js +2 -1
  124. package/dist/components/form/Form.js +62 -32
  125. package/dist/components/form/GridField.js +2 -1
  126. package/dist/components/form/IconField.js +2 -1
  127. package/dist/components/form/ImageEditor.js +2 -1
  128. package/dist/components/form/LabelField.js +2 -1
  129. package/dist/components/form/LookupField.js +2 -1
  130. package/dist/components/form/MultiFileUploadField.js +2 -1
  131. package/dist/components/form/RadioGroup.js +2 -1
  132. package/dist/components/form/Section.js +2 -1
  133. package/dist/components/form/SelectItem.js +2 -1
  134. package/dist/components/form/SignatureTemplateDesignerField.js +2 -1
  135. package/dist/components/form/Switch.js +2 -1
  136. package/dist/components/form/TextField.js +23 -6
  137. package/dist/components/form/TimePicker.js +2 -1
  138. package/dist/components/form/TransferList.js +2 -1
  139. package/dist/components/form/UploadField.js +2 -1
  140. package/dist/components/grid/GridContainer.js +2 -1
  141. package/dist/components/grid/GridItem.js +2 -1
  142. package/dist/components/layout/CollapsiblePanel.js +2 -1
  143. package/dist/components/layout/Layout.js +2 -1
  144. package/dist/components/layout/View.js +2 -1
  145. package/dist/components/layout/ViewContainer.js +2 -1
  146. package/dist/components/layout/ViewPort.js +2 -1
  147. package/dist/components/layout/Window.js +2 -1
  148. package/dist/components/layout/WindowDialog.js +2 -1
  149. package/dist/components/layout/WindowViewPort.js +2 -1
  150. package/dist/components/media/Chat.js +2 -1
  151. package/dist/components/media/ClosablePanel.js +2 -1
  152. package/dist/components/media/LobbyWaitingList.js +2 -1
  153. package/dist/components/media/MediaSoupHelper.js +2 -1
  154. package/dist/components/media/SideBarContent.js +2 -1
  155. package/dist/components/media/SocketRequest.js +2 -1
  156. package/dist/components/media/SocketResponse.js +2 -1
  157. package/dist/components/media/Timer.js +2 -1
  158. package/dist/components/media/Toolbar.js +2 -1
  159. package/dist/components/media/ToolbarButton.js +2 -1
  160. package/dist/components/media/Toolbar_bck.js +2 -1
  161. package/dist/components/media/Tracks.js +2 -1
  162. package/dist/components/media/TrainingRoom.js +2 -1
  163. package/dist/components/media/Transports.js +2 -1
  164. package/dist/components/media/VCEventManager.js +2 -1
  165. package/dist/components/media/VCEventType.js +2 -1
  166. package/dist/components/media/VCParticipantList.js +2 -1
  167. package/dist/components/media/VCParticipantListItem.js +2 -1
  168. package/dist/components/media/VCRoom.js +2 -1
  169. package/dist/components/media/VCRoomParticipant.js +2 -1
  170. package/dist/components/media/VCRoomRecorder.js +2 -1
  171. package/dist/components/media/VCRoomWorkspace.js +2 -1
  172. package/dist/components/media/Video.js +2 -1
  173. package/dist/components/media/VideoPlayer.js +2 -1
  174. package/dist/components/media/chat/ChatPoll.js +2 -1
  175. package/dist/components/media/chat/ChatRoom.js +2 -1
  176. package/dist/components/media/chat/ChatRoomItem.js +2 -1
  177. package/dist/components/media/chat/ChatRoomList.js +2 -1
  178. package/dist/components/media/chat/ChatRoomWrapper.js +2 -1
  179. package/dist/components/media/chat/PollContainer.js +2 -1
  180. package/dist/components/media/chat/PollResult.js +2 -1
  181. package/dist/components/media/chat/Styles.js +2 -1
  182. package/dist/components/menu/CollapsibleMenu.js +2 -1
  183. package/dist/components/menu/MenuBars.js +2 -1
  184. package/dist/components/menu/MenuButton.js +2 -1
  185. package/dist/components/menu/MenuItem.js +2 -1
  186. package/dist/components/menu/MenuLink.js +2 -1
  187. package/dist/components/menu/PopupMenu.js +2 -1
  188. package/dist/components/navbars/AuthNavbar.js +2 -1
  189. package/dist/components/navbars/HomeNavbar.js +2 -1
  190. package/dist/components/navbars/PortalNavbar.js +2 -1
  191. package/dist/components/observers/useOnFullyVisible.js +2 -1
  192. package/dist/components/observers/useResizeObserver.js +2 -1
  193. package/dist/components/signatures/AgilitySignaturePanel.js +2 -1
  194. package/dist/components/signatures/AlertItem.js +2 -1
  195. package/dist/components/signatures/Card.js +2 -1
  196. package/dist/components/signatures/DynamicSignatureDocumentContainer.js +2 -1
  197. package/dist/components/signatures/HtmlSignatureDocumentContainer.js +2 -1
  198. package/dist/components/signatures/ImageSignatureInput.js +2 -1
  199. package/dist/components/signatures/MenuButton.js +2 -1
  200. package/dist/components/signatures/Prompt.js +2 -1
  201. package/dist/components/signatures/ResponsiveTable.js +2 -1
  202. package/dist/components/signatures/SearchView.js +2 -1
  203. package/dist/components/signatures/SignatorySearch.js +2 -1
  204. package/dist/components/signatures/SignatorySearchForm.js +2 -1
  205. package/dist/components/signatures/SignatureInput.js +2 -1
  206. package/dist/components/signatures/SignatureInputProps.js +2 -1
  207. package/dist/components/signatures/SignatureTemplateDesigner.js +2 -1
  208. package/dist/components/signatures/Toolbar.js +2 -1
  209. package/dist/components/signatures/ViewUtils.js +2 -1
  210. package/dist/components/typography/Danger.js +2 -1
  211. package/dist/components/typography/Info.js +2 -1
  212. package/dist/components/typography/Link.js +2 -1
  213. package/dist/event/ActionHandlers.js +2 -1
  214. package/dist/event/Event.js +2 -1
  215. package/dist/event/EventListener.js +2 -1
  216. package/dist/event/EventType.js +2 -1
  217. package/dist/event/LoadDataActionHandler.js +2 -1
  218. package/dist/event/Observable.js +2 -1
  219. package/dist/event/RouteActionHandler.js +2 -1
  220. package/dist/event/ScriptActionHandler.js +2 -1
  221. package/dist/event/ServiceCallActionHandler.js +2 -1
  222. package/dist/event/SignalGraphActionHandler.js +2 -1
  223. package/dist/interaction/CursorOverlay.js +2 -1
  224. package/dist/interaction/DragContext.js +2 -1
  225. package/dist/interaction/GrabContext.js +2 -1
  226. package/dist/js/Addresses.js +2 -1
  227. package/dist/js/Calendar.js +2 -1
  228. package/dist/js/Docs.js +3 -2
  229. package/dist/js/DynamicLib.js +2 -1
  230. package/dist/js/Media.js +2 -1
  231. package/dist/js/ProcurementMeetings.js +2 -1
  232. package/dist/js/Validators.js +2 -1
  233. package/dist/js/Windows.js +2 -1
  234. package/dist/redux/store/ConfigureStore.js +2 -1
  235. package/dist/redux/store/DashboardStore.js +2 -1
  236. package/dist/redux/store/History.js +2 -1
  237. package/dist/redux/store/SecurityStore.js +2 -1
  238. package/dist/security/TokenManager.js +2 -1
  239. package/dist/theme-default.js +2 -1
  240. package/dist/view/Dashboard.js +2 -1
  241. package/dist/view/PortalDashboard.js +2 -1
  242. package/dist/view/Settings.js +2 -1
  243. package/dist/view/Views.js +2 -1
  244. package/dist/view/security/ChangePasswordBasic.js +2 -1
  245. package/dist/view/security/ForgotPassword.js +2 -1
  246. package/dist/view/security/ForgotPasswordBasic.js +2 -1
  247. package/dist/view/security/Login.js +2 -1
  248. package/dist/view/security/LoginBasic.js +2 -1
  249. package/dist/view/security/LoginInteractionPortal.js +2 -1
  250. package/dist/view/security/ResetPassword.js +2 -1
  251. package/dist/view/security/ResetPasswordBasic.js +2 -1
  252. package/dist/view/security/Security.js +2 -1
  253. package/package.json +2 -2
@@ -54,6 +54,12 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
54
54
  const [fieldParentErrors] = _react.default.useState({});
55
55
  const [visible, setVisible] = _react.default.useState(true);
56
56
  const loadingRef = _react.default.useRef(true);
57
+ // Validity register: Map<fieldId, { valid, message, forceMarker }>.
58
+ // Single source of truth for "is this field valid?". BaseField writes
59
+ // here from doValidation; form.value reads here without invoking any
60
+ // field methods (kills the bi-directional render-time chain that
61
+ // produced React #185).
62
+ const fieldValidity = _react.default.useRef(new Map());
57
63
  let sectionCounter = 0;
58
64
  const api = () => {
59
65
  return {
@@ -84,6 +90,48 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
84
90
  removeField: id => {
85
91
  removeField(id);
86
92
  },
93
+ setFieldValidity: (id, result) => {
94
+ fieldValidity.current.set(id, result);
95
+ },
96
+ clearFieldValidity: id => {
97
+ fieldValidity.current.delete(id);
98
+ },
99
+ validateAll: () => {
100
+ // Explicit "force-validate every field" command. Replaces the
101
+ // old hack of reading form.value purely for its side effects.
102
+ // Fields write into fieldValidity via doValidation as a side
103
+ // effect of validate; we then walk the register for invalid
104
+ // fields to drive UX (scrollTo first, refresh container error
105
+ // callback) — same UX the getter used to provide, now opt-in.
106
+ for (const field of fields) {
107
+ if (!_Utils.default.isNull(field.handle) && !_Utils.default.isNull(field.handle.api)) {
108
+ // Pass the actual current value so doValidation's
109
+ // (currentValue, required, markers) cache key
110
+ // reflects reality. Without this we were passing
111
+ // null, which made cache hits opaque in logs and
112
+ // forced Utils.validateField to fall back to
113
+ // values[id] every time.
114
+ const path = getValuePath(field.id, null);
115
+ const currentValue = !_Utils.default.isNull(path) && !_Utils.default.isNull(path.valueObject) ? path.valueObject[path.valueProperty] : null;
116
+ field.handle.api.validate(values.current, currentValue);
117
+ }
118
+ }
119
+ let firstInvalid = null;
120
+ for (const field of fields) {
121
+ if (field.bindValueToForm === false) continue;
122
+ const v = fieldValidity.current.get(field.id);
123
+ if (v && v.valid === false) {
124
+ doValidateParent(field, true, false);
125
+ if (firstInvalid === null) firstInvalid = field;
126
+ }
127
+ }
128
+ if (!_Utils.default.isNull(firstInvalid) && !_Utils.default.isNull(firstInvalid.handle) && !_Utils.default.isNull(firstInvalid.handle.api) && typeof firstInvalid.handle.api.scrollTo === 'function') {
129
+ firstInvalid.handle.api.scrollTo();
130
+ }
131
+ if (!_Utils.default.isNull(containerErrorCallback.current) && _ApplicationManager.default.isFormMarkersEnabled()) {
132
+ containerErrorCallback.current(fieldParentErrors);
133
+ }
134
+ },
87
135
  loadData: (actionConfig, event) => {
88
136
  loadData(actionConfig, config, event ? event.data : null);
89
137
  },
@@ -129,41 +177,20 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
129
177
  }
130
178
  },
131
179
  get value() {
180
+ // Pure read — no side effects, no calls into fields.
181
+ // Validity is computed from the fieldValidity register, which
182
+ // BaseField populates from doValidation. Callers needing to
183
+ // force validation + UX side effects (scrollTo, marker
184
+ // refresh) should call api.validateAll() explicitly.
132
185
  if (loadingRef.current === false && values.current) {
133
- let data = null;
134
- let valid = true;
135
- data = {};
136
- let map = !_Utils.default.isNull(masterValues) ? JSON.parse(JSON.stringify(masterValues)) : {};
137
- if (_Utils.default.isNull(map.id)) {
138
- map.id = values.current.id;
139
- }
140
- let firstInvalidField = null;
141
186
  for (const field of fields) {
142
- if (field.bindValueToForm === false) {
143
- continue;
187
+ if (field.bindValueToForm === false) continue;
188
+ const v = fieldValidity.current.get(field.id);
189
+ if (v && v.valid === false) {
190
+ return null;
144
191
  }
145
- let fieldValid = field.handle.api.validate(values.current, null);
146
- if (fieldValid === false || _Utils.default.isNull(fieldValid)) {
147
- //console.log("Invalid form field [" + field.handle.api.id + "]");
148
- if (firstInvalidField == null) {
149
- firstInvalidField = field;
150
- }
151
- doValidateParent(field, !fieldValid, false);
152
- valid = false;
153
- } else if (valid) {
154
- let id = field.id;
155
- let path = getValuePath(id, values.current);
156
- path.valueObject[path.valueProperty] = field.handle.api.parseValue(path.valueObject[path.valueProperty], false);
157
- }
158
- }
159
- if (firstInvalidField) {
160
- firstInvalidField.handle.api.scrollTo();
161
- }
162
- data = values.current;
163
- if (!_Utils.default.isNull(containerErrorCallback.current) && _ApplicationManager.default.isFormMarkersEnabled()) {
164
- containerErrorCallback.current(fieldParentErrors);
165
192
  }
166
- return valid ? data : null;
193
+ return values.current;
167
194
  }
168
195
  return null;
169
196
  },
@@ -483,6 +510,7 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
483
510
  fields.splice(i, 1);
484
511
  }
485
512
  }
513
+ fieldValidity.current.delete(id);
486
514
  };
487
515
  function doValidateParent(field, invalid) {
488
516
  let updateErrors = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
@@ -557,6 +585,7 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
557
585
  let gridFieldPath = getValuePath(groupFieldId, null);
558
586
  if (!_Utils.default.isNull(gridFieldPath)) {
559
587
  let groupFieldVal = gridFieldPath.valueObject[gridFieldPath.valueProperty];
588
+ console.log('RE-Validating form', groupFieldVal);
560
589
  validateField(groupField, groupFieldId, groupFieldVal);
561
590
  }
562
591
  }
@@ -654,4 +683,5 @@ const Form = /*#__PURE__*/_react.default.memo(props => {
654
683
  }, props.config) : null
655
684
  }, !_Utils.default.isNull(props.config.id) ? render(props.config) : /*#__PURE__*/_react.default.createElement("div", null, "ERROR: A form must have an ID"));
656
685
  });
657
- var _default = exports.default = Form;
686
+ var _default = exports.default = Form;
687
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9zdHlsZXMiLCJfVXRpbHMiLCJfU2VjdGlvbiIsIl9SZXN0U2VydmljZSIsIl9hc3luY011dGV4IiwiX09ic2VydmFibGUiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiX1NlcnZpY2VDYWxsQWN0aW9uSGFuZGxlciIsIl9EeW5hbWljSlMiLCJfRXZlbnRUeXBlIiwiX0V2ZW50IiwiX2NsZWFyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0Iiwib3duS2V5cyIsInIiLCJ0IiwiT2JqZWN0Iiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsImFwcGx5IiwiX29iamVjdFNwcmVhZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImZvckVhY2giLCJfZGVmaW5lUHJvcGVydHkiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3JzIiwiZGVmaW5lUHJvcGVydGllcyIsImRlZmluZVByb3BlcnR5IiwiX3RvUHJvcGVydHlLZXkiLCJ2YWx1ZSIsImNvbmZpZ3VyYWJsZSIsIndyaXRhYmxlIiwiaSIsIl90b1ByaW1pdGl2ZSIsIlN5bWJvbCIsInRvUHJpbWl0aXZlIiwiY2FsbCIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImNvbnRhaW5lciIsImRpc3BsYXkiLCJmbGV4V3JhcCIsIndpZHRoIiwidmVydGljYWxBbGlnbiIsInNlbGVjdCIsIm1hcmdpbiIsInNwYWNpbmciLCJtaW5XaWR0aCIsIm1pbkhlaWdodCIsInNlbGVjdEVtcHR5IiwibWFyZ2luVG9wIiwicm9vdCIsIkZvcm0iLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsInZhbHVlcyIsInVzZVJlZiIsIlV0aWxzIiwiaXNOdWxsIiwibWFzdGVyVmFsdWVzIiwic2V0TWFzdGVyVmFsdWVzIiwidXNlU3RhdGUiLCJjb25maWciLCJzZXRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImJpbmRlciIsImZpZWxkcyIsImNvbnRhaW5lckVycm9yQ2FsbGJhY2siLCJzZWN0aW9uSGFuZGxlcyIsImZpZWxkUGFyZW50RXJyb3JzIiwidmlzaWJsZSIsInNldFZpc2libGUiLCJsb2FkaW5nUmVmIiwiZmllbGRWYWxpZGl0eSIsIk1hcCIsInNlY3Rpb25Db3VudGVyIiwiYXBpIiwiaWQiLCJkb1VwZGF0ZVZhbHVlIiwibmFtZSIsInVwZGF0ZVZhbHVlIiwiY2xlYXIiLCJkb0NsZWFyIiwic2V0VmFsdWUiLCJkb0hhbmRsZUNoYW5nZSIsImhhbmRsZVNlbGVjdEl0ZW1DaGFuZ2UiLCJvcHRpb25zIiwic2VsZWN0ZWRJZCIsImhhbmRsZUNoYW5nZSIsImdldFZhbHVlUGF0aCIsImFkZEZpZWxkIiwicmVmIiwicGFyZW50SWQiLCJiaW5kVmFsdWVUb0Zvcm0iLCJyZW1vdmVGaWVsZCIsInNldEZpZWxkVmFsaWRpdHkiLCJyZXN1bHQiLCJjdXJyZW50Iiwic2V0IiwiY2xlYXJGaWVsZFZhbGlkaXR5IiwiZGVsZXRlIiwidmFsaWRhdGVBbGwiLCJmaWVsZCIsImhhbmRsZSIsInBhdGgiLCJjdXJyZW50VmFsdWUiLCJ2YWx1ZU9iamVjdCIsInZhbHVlUHJvcGVydHkiLCJ2YWxpZGF0ZSIsImZpcnN0SW52YWxpZCIsInYiLCJnZXQiLCJ2YWxpZCIsImRvVmFsaWRhdGVQYXJlbnQiLCJzY3JvbGxUbyIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRm9ybU1hcmtlcnNFbmFibGVkIiwibG9hZERhdGEiLCJhY3Rpb25Db25maWciLCJldmVudCIsImRhdGEiLCJiaW5kRGF0YSIsImRvQmluZERhdGEiLCJ2YWxpZGF0ZVBhcmVudCIsImludmFsaWQiLCJnZXRGaWVsZCIsImZpZWxkRGF0YUJpbmRpbmdzIiwiZmllbGROYW1lcyIsInNlY3Rpb25zIiwic2VjdGlvbiIsImoiLCJjb21wb25lbnRzIiwiY29tcG9uZW50IiwidHlwZSIsImdldEZpZWxkc0Zyb21UYWIiLCJrIiwiZGF0YUJpbmRpbmciLCJzZXRDb250YWluZXJFcnJvckhhbmRsZXIiLCJjYWxsYmFjayIsIm1vZGVsIiwicGFyc2VWYWx1ZXMiLCJ0cmFuc2Zvcm1EYXRhT2JqZWN0Iiwic2V0RmllbGRFcnJvciIsImVycm9yIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsIm1vcmVDaGlsZHJlbiIsInByb3BlcnRpZXMiLCJnZXRPd25Qcm9wZXJ0eU5hbWVzIiwicHJvcGVydHkiLCJzZWN0aW9uSGFuZGxlIiwiY2hpbGQiLCJyZWZyZXNoIiwicGFyc2VkQ29uZmlnIiwiZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbiIsImNyZWF0ZVNlY3Rpb25IYW5kbGUiLCJ1cGRhdGVWaWV3VGl0bGUiLCJ2aWV3IiwiZ2V0VmlldyIsInRpdGxlIiwiaW5jbHVkZXMiLCJ1cGRhdGVBcHBCYXJUaXRsZSIsImhhbmRsZURhdGFBcnJpdmVkIiwiRXZlbnQiLCJldmVudE1hbmFnZXIiLCJmaXJlRXZlbnQiLCJFdmVudFR5cGUiLCJEQVRBX0FSUklWRUQiLCJwcm9jZXNzU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9ucyIsImV2ZW50Q29uZmlnIiwiY29tcG9uZW50Q29uZmlnIiwiZXZlbnREYXRhIiwidW5kZWZpbmVkIiwic2VydmljZSIsImRhdGFTZXJ2aWNlIiwiY29tcG9uZW50VmFsdWUiLCJyZXNvbHZlUGFyYW1ldGVyQ29uZmlnVmFsdWUiLCJpbnZva2VScGMiLCJ0aGVuIiwiY29uc29sZSIsImNhdGNoIiwiZXJyb3JUeXBlIiwicHVibGlzaEVycm9yTWVzc2FnZSIsInNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlciIsImV4ZWN1dGUiLCJwYXJhbWV0ZXIiLCJpc0V4cHJlc3Npb24iLCJmaWxsRXZlbnREYXRhVmFsdWUiLCJpc0V2ZW50RGF0YSIsInRvU3RyaW5nIiwic3RhcnRzV2l0aCIsImdldFByb3BlcnR5Q2hhaW5QYXRoIiwiYWRkU3lzdGVtR2VuZXJhdGVkU3Vic2NyaXB0aW9uIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImNvbmNhdCIsInZhbCIsIm1hcCIsInJlc29sdmVFeHByZXNzaW9uVmFsdWUiLCJ1c2VFZmZlY3QiLCJldmVudEhhbmRsaW5nQ29uZmlnIiwic3Vic2NyaXB0aW9ucyIsImF1dG9Mb2FkRGF0YSIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsInN1YnNjcmlwdGlvbiIsImV2ZW50VHlwZSIsIkNPTVBPTkVOVF9MT0FEIiwiYWN0aW9ucyIsImFjdGlvblR5cGUiLCJhZGRTdWJzY3JpcHRpb25zIiwiYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyIsImhhbmRsZUxvYWRDb21wbGV0ZSIsImNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMiLCJ0YWIiLCJ0YWJQYWdlIiwidGFiUGFnZXMiLCJmaWVsZHNldCIsImZvcm1WYWx1ZXMiLCJ0b2tlbnMiLCJzcGxpdCIsInZvIiwidG9rZW4iLCJlbmFibGVGb3JtTWFya2VycyIsInZhbHVlQ2hhbmdlSGFuZGxlciIsIm1vZGVsQ2hhbmdlSGFuZGxlciIsImtleSIsInBhcnNlVmFsdWUiLCJwYXJzZWRWYWx1ZXMiLCJKU09OIiwicGFyc2UiLCJzdHJpbmdpZnkiLCJvYmplY3RWYWx1ZSIsImRhdGFBcnJpdmVkSGFuZGxlciIsInNwbGljZSIsInVwZGF0ZUVycm9ycyIsImlzUGFyZW50SW52YWxpZCIsInZhbGlkYXRlRmllbGQiLCJ2YWxzIiwiY3VycmVudFZhbHVlcyIsImdyb3VwRmllbGQiLCJ2YWxpZGF0aW9uR3JvdXAiLCJnZXRWYWxpZGF0aW9uR3JvdXAiLCJncm91cEZpZWxkSWQiLCJncmlkRmllbGRQYXRoIiwiZ3JvdXBGaWVsZFZhbCIsImxvZyIsIlZBTFVFX0NIQU5HRSIsInNlbGVjdGlvbiIsInNlbGVjdGVkVmFsdWUiLCJyZW5kZXIiLCJmb3JtIiwiY3JlYXRlRWxlbWVudCIsImtleUhhbmRsZXIiLCJkaXNhYmxlZCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJwYWRkaW5nIiwib3ZlcmZsb3ciLCJtYXhIZWlnaHQiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9Gb3JtLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IFNlY3Rpb24gZnJvbSAnLi9TZWN0aW9uJztcbmltcG9ydCAnLi9Gb3JtLmNzcyc7XG5pbXBvcnQge2ludm9rZVJwY30gZnJvbSAnLi4vLi4vUmVzdFNlcnZpY2UnO1xuaW1wb3J0IHtNdXRleH0gZnJvbSAnYXN5bmMtbXV0ZXgnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi8uLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSAnLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyJztcbmltcG9ydCBzZXJ2aWNlQ2FsbEFjdGlvbkhhbmRsZXIgZnJvbSAnLi4vLi4vZXZlbnQvU2VydmljZUNhbGxBY3Rpb25IYW5kbGVyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSAnLi4vLi4vRHluYW1pY0pTJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnRUeXBlJztcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQge2NsZWFyfSBmcm9tIFwiQHRlc3RpbmctbGlicmFyeS91c2VyLWV2ZW50L2Rpc3QvY2xlYXJcIjtcblxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh0aGVtZSA9PiAoe1xuICAgIGNvbnRhaW5lcjoge1xuICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICcmIHRyIHRkJzoge1xuICAgICAgICAgICAgdmVydGljYWxBbGlnbjogJ3RvcCdcbiAgICAgICAgfVxuICAgIH0sXG4gICAgc2VsZWN0OiB7XG4gICAgICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbiAgICAgICAgbWluV2lkdGg6IDEyMCxcbiAgICAgICAgbWluSGVpZ2h0OiA0OFxuICAgIH0sXG4gICAgc2VsZWN0RW1wdHk6IHtcbiAgICAgICAgbWFyZ2luVG9wOiB0aGVtZS5zcGFjaW5nKDIpLFxuICAgIH0sXG4gICAgcm9vdDoge31cbn0pKTtcblxuY29uc3QgRm9ybSA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgICAgIGNvbnN0IHZhbHVlcyA9IFJlYWN0LnVzZVJlZighVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlcykgPyBwcm9wcy52YWx1ZXMgOiB7fSk7XG4gICAgICAgIGNvbnN0IFttYXN0ZXJWYWx1ZXMsIHNldE1hc3RlclZhbHVlc10gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICAgICAgY29uc3QgW2NvbmZpZywgc2V0Q29uZmlnXSA9IFJlYWN0LnVzZVN0YXRlKFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKSk7XG4gICAgICAgIGNvbnN0IFtiaW5kZXJdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5iaW5kZXIpID8gJ1BMQUlOX09CSkVDVCcgOiBwcm9wcy5jb25maWcuYmluZGVyKTtcbiAgICAgICAgY29uc3QgW2ZpZWxkc10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lckVycm9yQ2FsbGJhY2sgPSBSZWFjdC51c2VSZWYoKTtcbiAgICAgICAgY29uc3QgW3NlY3Rpb25IYW5kbGVzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICAgICAgY29uc3QgW2ZpZWxkUGFyZW50RXJyb3JzXSA9IFJlYWN0LnVzZVN0YXRlKHt9KTtcbiAgICAgICAgY29uc3QgW3Zpc2libGUsIHNldFZpc2libGVdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgICAgIGNvbnN0IGxvYWRpbmdSZWYgPSBSZWFjdC51c2VSZWYodHJ1ZSk7XG4gICAgICAgIC8vIFZhbGlkaXR5IHJlZ2lzdGVyOiBNYXA8ZmllbGRJZCwgeyB2YWxpZCwgbWVzc2FnZSwgZm9yY2VNYXJrZXIgfT4uXG4gICAgICAgIC8vIFNpbmdsZSBzb3VyY2Ugb2YgdHJ1dGggZm9yIFwiaXMgdGhpcyBmaWVsZCB2YWxpZD9cIi4gQmFzZUZpZWxkIHdyaXRlc1xuICAgICAgICAvLyBoZXJlIGZyb20gZG9WYWxpZGF0aW9uOyBmb3JtLnZhbHVlIHJlYWRzIGhlcmUgd2l0aG91dCBpbnZva2luZyBhbnlcbiAgICAgICAgLy8gZmllbGQgbWV0aG9kcyAoa2lsbHMgdGhlIGJpLWRpcmVjdGlvbmFsIHJlbmRlci10aW1lIGNoYWluIHRoYXRcbiAgICAgICAgLy8gcHJvZHVjZWQgUmVhY3QgIzE4NSkuXG4gICAgICAgIGNvbnN0IGZpZWxkVmFsaWRpdHkgPSBSZWFjdC51c2VSZWYobmV3IE1hcCgpKTtcbiAgICAgICAgbGV0IHNlY3Rpb25Db3VudGVyID0gMDtcblxuICAgICAgICBjb25zdCBhcGkgPSAoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGdldCBpZCgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGRvVXBkYXRlVmFsdWU6IChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdXBkYXRlVmFsdWUobmFtZSwgdmFsdWUpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2xlYXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZG9DbGVhcigpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0VmFsdWU6IChpZCwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZG9IYW5kbGVDaGFuZ2UoaWQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGhhbmRsZVNlbGVjdEl0ZW1DaGFuZ2U6IChuYW1lLCBvcHRpb25zLCBzZWxlY3RlZElkKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBoYW5kbGVTZWxlY3RJdGVtQ2hhbmdlKG5hbWUsIG9wdGlvbnMsIHNlbGVjdGVkSWQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgaGFuZGxlQ2hhbmdlOiAoaWQsIHZhbHVlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGRvSGFuZGxlQ2hhbmdlKGlkLCB2YWx1ZSk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBnZXRWYWx1ZVBhdGg6IChpZCwgdmFsdWVzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnZXRWYWx1ZVBhdGgoaWQsIHZhbHVlcyk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBhZGRGaWVsZDogKGlkLCByZWYsIHBhcmVudElkLCBiaW5kVmFsdWVUb0Zvcm0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGFkZEZpZWxkKGlkLCByZWYsIHBhcmVudElkLCBiaW5kVmFsdWVUb0Zvcm0pO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcmVtb3ZlRmllbGQ6IChpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZW1vdmVGaWVsZChpZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBzZXRGaWVsZFZhbGlkaXR5OiAoaWQsIHJlc3VsdCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBmaWVsZFZhbGlkaXR5LmN1cnJlbnQuc2V0KGlkLCByZXN1bHQpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgY2xlYXJGaWVsZFZhbGlkaXR5OiAoaWQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRWYWxpZGl0eS5jdXJyZW50LmRlbGV0ZShpZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB2YWxpZGF0ZUFsbDogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBFeHBsaWNpdCBcImZvcmNlLXZhbGlkYXRlIGV2ZXJ5IGZpZWxkXCIgY29tbWFuZC4gUmVwbGFjZXMgdGhlXG4gICAgICAgICAgICAgICAgICAgIC8vIG9sZCBoYWNrIG9mIHJlYWRpbmcgZm9ybS52YWx1ZSBwdXJlbHkgZm9yIGl0cyBzaWRlIGVmZmVjdHMuXG4gICAgICAgICAgICAgICAgICAgIC8vIEZpZWxkcyB3cml0ZSBpbnRvIGZpZWxkVmFsaWRpdHkgdmlhIGRvVmFsaWRhdGlvbiBhcyBhIHNpZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gZWZmZWN0IG9mIHZhbGlkYXRlOyB3ZSB0aGVuIHdhbGsgdGhlIHJlZ2lzdGVyIGZvciBpbnZhbGlkXG4gICAgICAgICAgICAgICAgICAgIC8vIGZpZWxkcyB0byBkcml2ZSBVWCAoc2Nyb2xsVG8gZmlyc3QsIHJlZnJlc2ggY29udGFpbmVyIGVycm9yXG4gICAgICAgICAgICAgICAgICAgIC8vIGNhbGxiYWNrKSDigJQgc2FtZSBVWCB0aGUgZ2V0dGVyIHVzZWQgdG8gcHJvdmlkZSwgbm93IG9wdC1pbi5cbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkLmhhbmRsZSkgJiYgIVV0aWxzLmlzTnVsbChmaWVsZC5oYW5kbGUuYXBpKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFBhc3MgdGhlIGFjdHVhbCBjdXJyZW50IHZhbHVlIHNvIGRvVmFsaWRhdGlvbidzXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gKGN1cnJlbnRWYWx1ZSwgcmVxdWlyZWQsIG1hcmtlcnMpIGNhY2hlIGtleVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIHJlZmxlY3RzIHJlYWxpdHkuIFdpdGhvdXQgdGhpcyB3ZSB3ZXJlIHBhc3NpbmdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBudWxsLCB3aGljaCBtYWRlIGNhY2hlIGhpdHMgb3BhcXVlIGluIGxvZ3MgYW5kXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZm9yY2VkIFV0aWxzLnZhbGlkYXRlRmllbGQgdG8gZmFsbCBiYWNrIHRvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gdmFsdWVzW2lkXSBldmVyeSB0aW1lLlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBnZXRWYWx1ZVBhdGgoZmllbGQuaWQsIG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRWYWx1ZSA9ICFVdGlscy5pc051bGwocGF0aCkgJiYgIVV0aWxzLmlzTnVsbChwYXRoLnZhbHVlT2JqZWN0KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHBhdGgudmFsdWVPYmplY3RbcGF0aC52YWx1ZVByb3BlcnR5XVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaGFuZGxlLmFwaS52YWxpZGF0ZSh2YWx1ZXMuY3VycmVudCwgY3VycmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsZXQgZmlyc3RJbnZhbGlkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5iaW5kVmFsdWVUb0Zvcm0gPT09IGZhbHNlKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHYgPSBmaWVsZFZhbGlkaXR5LmN1cnJlbnQuZ2V0KGZpZWxkLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh2ICYmIHYudmFsaWQgPT09IGZhbHNlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZG9WYWxpZGF0ZVBhcmVudChmaWVsZCwgdHJ1ZSwgZmFsc2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaXJzdEludmFsaWQgPT09IG51bGwpIGZpcnN0SW52YWxpZCA9IGZpZWxkO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpcnN0SW52YWxpZClcbiAgICAgICAgICAgICAgICAgICAgICAgICYmICFVdGlscy5pc051bGwoZmlyc3RJbnZhbGlkLmhhbmRsZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICYmICFVdGlscy5pc051bGwoZmlyc3RJbnZhbGlkLmhhbmRsZS5hcGkpXG4gICAgICAgICAgICAgICAgICAgICAgICAmJiB0eXBlb2YgZmlyc3RJbnZhbGlkLmhhbmRsZS5hcGkuc2Nyb2xsVG8gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0SW52YWxpZC5oYW5kbGUuYXBpLnNjcm9sbFRvKCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29udGFpbmVyRXJyb3JDYWxsYmFjay5jdXJyZW50KSAmJiBhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udGFpbmVyRXJyb3JDYWxsYmFjay5jdXJyZW50KGZpZWxkUGFyZW50RXJyb3JzKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgbG9hZERhdGE6IChhY3Rpb25Db25maWcsIGV2ZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGxvYWREYXRhKGFjdGlvbkNvbmZpZywgY29uZmlnLCBldmVudCA/IGV2ZW50LmRhdGEgOiBudWxsKTtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJpbmREYXRhOiAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkb0JpbmREYXRhKGRhdGEpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgdmFsaWRhdGVQYXJlbnQ6IChpZCwgaW52YWxpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBkb1ZhbGlkYXRlUGFyZW50KGdldEZpZWxkKGlkKSwgaW52YWxpZCk7XG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBnZXQgZmllbGREYXRhQmluZGluZ3MoKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZE5hbWVzID0gW107XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMuY29uZmlnLnNlY3Rpb25zLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbiA9IHByb3BzLmNvbmZpZy5zZWN0aW9uc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgc2VjdGlvbi5jb21wb25lbnRzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGNvbXBvbmVudCA9IHNlY3Rpb24uY29tcG9uZW50c1tqXTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGRzID0gbnVsbDtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQudHlwZSA9PT0gJ3RhYicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzID0gZ2V0RmllbGRzRnJvbVRhYihjb21wb25lbnQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpZWxkcyA9IGNvbXBvbmVudC5maWVsZHM7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgayA9IDA7IGsgPCBmaWVsZHMubGVuZ3RoOyBrKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGZpZWxkID0gZmllbGRzW2tdO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZE5hbWVzLnB1c2goIVV0aWxzLmlzTnVsbChmaWVsZC5kYXRhQmluZGluZykgPyBmaWVsZC5kYXRhQmluZGluZyA6IGZpZWxkLmlkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGROYW1lcztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHNldENvbnRhaW5lckVycm9ySGFuZGxlcihjYWxsYmFjaykge1xuICAgICAgICAgICAgICAgICAgICBjb250YWluZXJFcnJvckNhbGxiYWNrLmN1cnJlbnQgPSBjYWxsYmFjaztcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGdldCBtb2RlbCgpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5jdXJyZW50O1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0IG1vZGVsKG1vZGVsKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwobW9kZWwpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVZhbHVlcyh7fSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRNYXN0ZXJWYWx1ZXMoe30pO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VWYWx1ZXModHJhbnNmb3JtRGF0YU9iamVjdChtb2RlbCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TWFzdGVyVmFsdWVzKG1vZGVsKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ2V0IHZhbHVlKCkge1xuICAgICAgICAgICAgICAgICAgICAvLyBQdXJlIHJlYWQg4oCUIG5vIHNpZGUgZWZmZWN0cywgbm8gY2FsbHMgaW50byBmaWVsZHMuXG4gICAgICAgICAgICAgICAgICAgIC8vIFZhbGlkaXR5IGlzIGNvbXB1dGVkIGZyb20gdGhlIGZpZWxkVmFsaWRpdHkgcmVnaXN0ZXIsIHdoaWNoXG4gICAgICAgICAgICAgICAgICAgIC8vIEJhc2VGaWVsZCBwb3B1bGF0ZXMgZnJvbSBkb1ZhbGlkYXRpb24uIENhbGxlcnMgbmVlZGluZyB0b1xuICAgICAgICAgICAgICAgICAgICAvLyBmb3JjZSB2YWxpZGF0aW9uICsgVVggc2lkZSBlZmZlY3RzIChzY3JvbGxUbywgbWFya2VyXG4gICAgICAgICAgICAgICAgICAgIC8vIHJlZnJlc2gpIHNob3VsZCBjYWxsIGFwaS52YWxpZGF0ZUFsbCgpIGV4cGxpY2l0bHkuXG4gICAgICAgICAgICAgICAgICAgIGlmIChsb2FkaW5nUmVmLmN1cnJlbnQgPT09IGZhbHNlICYmIHZhbHVlcy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGZpZWxkIG9mIGZpZWxkcykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZC5iaW5kVmFsdWVUb0Zvcm0gPT09IGZhbHNlKSBjb250aW51ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB2ID0gZmllbGRWYWxpZGl0eS5jdXJyZW50LmdldChmaWVsZC5pZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHYgJiYgdi52YWxpZCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHZhbHVlcy5jdXJyZW50O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgc2V0RmllbGRFcnJvcjogKGlkLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gc2V0RmllbGRFcnJvcihpZCwgZXJyb3IpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZ2V0Q2hpbGRyZW46ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmllbGQgPSBmaWVsZHNbaV07XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGZpZWxkLmhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbW9yZUNoaWxkcmVuID0gZmllbGQuaGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKG1vcmVDaGlsZHJlbltqXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcHJvcGVydGllcyA9IE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKHNlY3Rpb25IYW5kbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wZXJ0eSBvZiBwcm9wZXJ0aWVzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgc2VjdGlvbkhhbmRsZSA9IHNlY3Rpb25IYW5kbGVzW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goc2VjdGlvbkhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGNoaWxkIG9mIHNlY3Rpb25IYW5kbGUuYXBpLmdldENoaWxkcmVuKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGNoaWxkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJlZnJlc2goKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBwcm9wZXJ0aWVzID0gT2JqZWN0LmdldE93blByb3BlcnR5TmFtZXMoc2VjdGlvbkhhbmRsZXMpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3BlcnR5IG9mIHByb3BlcnRpZXMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWN0aW9uSGFuZGxlID0gc2VjdGlvbkhhbmRsZXNbcHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHNlY3Rpb25IYW5kbGUuYXBpLnJlZnJlc2gpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWN0aW9uSGFuZGxlLmFwaS5yZWZyZXNoKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwYXJzZWRDb25maWcudmlzaWJsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpc2libGUoVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwYXJzZWRDb25maWcudmlzaWJsZSwgcGFyc2VkQ29uZmlnLmlkKSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9O1xuXG4gICAgICAgIGNvbnN0IGNyZWF0ZVNlY3Rpb25IYW5kbGUgPSAoc2VjdGlvbikgPT4ge1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChzZWN0aW9uSGFuZGxlc1tzZWN0aW9uLmlkXSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgaGFuZGxlID0ge307XG4gICAgICAgICAgICAgICAgc2VjdGlvbkhhbmRsZXNbc2VjdGlvbi5pZF0gPSBoYW5kbGU7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGhhbmRsZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHNlY3Rpb25IYW5kbGVzW3NlY3Rpb24uaWRdO1xuICAgICAgICB9O1xuXG4gICAgICAgIGZ1bmN0aW9uIHVwZGF0ZVZpZXdUaXRsZSgpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy52aWV3SWQpIHtcbiAgICAgICAgICAgICAgICBsZXQgdmlldyA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRWaWV3KHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgaWYgKHZpZXcpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHRpdGxlID0gdmlldy5jb25maWcudGl0bGU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYodGl0bGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICh0aXRsZS5pbmNsdWRlcyhwcm9wcy5jb25maWcuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnVwZGF0ZUFwcEJhclRpdGxlKHZpZXcuY29uZmlnLmlkLCB0aXRsZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmdW5jdGlvbiBoYW5kbGVEYXRhQXJyaXZlZChkYXRhKSB7XG4gICAgICAgICAgICB1cGRhdGVWaWV3VGl0bGUoKTtcblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsIGRhdGEpO1xuICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRBVEFfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudE1hbmFnZXIucHJvY2Vzc1N5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMocHJvcHMuY29uZmlnLmlkKTtcbiAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGQgb2YgZmllbGRzKSB7XG4gICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLnByb2Nlc3NTeXN0ZW1HZW5lcmF0ZWRTdWJzY3JpcHRpb25zKGZpZWxkLmhhbmRsZS5hcGkuaWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gbG9hZERhdGEoZXZlbnRDb25maWcsIGNvbXBvbmVudENvbmZpZywgZXZlbnREYXRhID0gbnVsbCkge1xuICAgICAgICAgICAgbGV0IHNlcnZpY2UgPSAhVXRpbHMuaXNOdWxsKGNvbXBvbmVudENvbmZpZy5kYXRhU2VydmljZSkgPyBjb21wb25lbnRDb25maWcuZGF0YVNlcnZpY2UgOlxuICAgICAgICAgICAgICAgIGV2ZW50Q29uZmlnICE9PSBudWxsID8gZXZlbnRDb25maWcuZGF0YVNlcnZpY2UgOiBudWxsO1xuICAgICAgICAgICAgbGV0IGNvbXBvbmVudFZhbHVlID0gIVV0aWxzLmlzTnVsbChjb21wb25lbnRDb25maWcudmFsdWUpID8gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVQYXJhbWV0ZXJDb25maWdWYWx1ZShjb21wb25lbnRDb25maWcudmFsdWUsIGV2ZW50RGF0YSkgOlxuICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoZXZlbnRDb25maWcpID8gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVQYXJhbWV0ZXJDb25maWdWYWx1ZShldmVudENvbmZpZy52YWx1ZSwgZXZlbnREYXRhKSA6IG51bGw7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHNlcnZpY2UpKSB7XG4gICAgICAgICAgICAgICAgZG9DbGVhcigpO1xuICAgICAgICAgICAgICAgIGlmIChzZXJ2aWNlLnR5cGUgPT09ICdycGMnKSB7XG4gICAgICAgICAgICAgICAgICAgIGludm9rZVJwYyh7XG4gICAgICAgICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBzZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBwcm9wcy5oYW5kbGUsXG4gICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ6IHByb3BzLnZpZXdJZFxuICAgICAgICAgICAgICAgICAgICB9KS50aGVuKChyZXN1bHQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRyeSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocmVzdWx0KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJzZVZhbHVlcyh0cmFuc2Zvcm1EYXRhT2JqZWN0KHJlc3VsdCkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNYXN0ZXJWYWx1ZXMocmVzdWx0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUgJiYgZS5lcnJvclR5cGUgPT09ICdJTlZBTElEX1BBUkFNRVRFUicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkaW5nUmVmLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVEYXRhQXJyaXZlZChudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5wdWJsaXNoRXJyb3JNZXNzYWdlKGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChldmVudENvbmZpZykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50Q29uZmlnID0ge307XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBldmVudENvbmZpZy5zZXJ2aWNlID0gc2VydmljZTtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEltcGxlbWVudCB0aGUgaW52YWxpZCBwYXJhbWVudGVyIGNhbGxiYWNrXG4gICAgICAgICAgICAgICAgICAgIHNlcnZpY2VDYWxsQWN0aW9uSGFuZGxlci5leGVjdXRlKGV2ZW50Q29uZmlnLCBudWxsLCBudWxsLCBwcm9wcy52aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChkYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlVmFsdWVzKHRyYW5zZm9ybURhdGFPYmplY3QoZGF0YSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNYXN0ZXJWYWx1ZXMoZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB9LCAocGFyYW1ldGVyKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlRGF0YUFycml2ZWQobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoY29tcG9uZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihjb21wb25lbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudFZhbHVlID0gYXBwbGljYXRpb25NYW5hZ2VyLmZpbGxFdmVudERhdGFWYWx1ZShjb21wb25lbnRWYWx1ZSwgZXZlbnREYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIGxldCBpc0V2ZW50RGF0YSA9IGNvbXBvbmVudFZhbHVlLnRvU3RyaW5nKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5zdGFydHNXaXRoKCckZXZlbnQuZGF0YScpO1xuICAgICAgICAgICAgICAgICAgICBpZiAoYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihjb21wb25lbnRWYWx1ZSkgJiYgIWlzRXZlbnREYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgcGF0aCA9IFV0aWxzLmdldFByb3BlcnR5Q2hhaW5QYXRoKGNvbXBvbmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHBhdGgudmFsdWVPYmplY3QpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmFkZFN5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbihwcm9wcy52aWV3SWQsIHByb3BzLnZpZXdJZCwgcHJvcHMuY29uZmlnLmlkLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KGAke3Byb3BzLmNvbmZpZy5pZH1WYWx1ZUV2YWx1YXRvcmAsIGNvbXBvbmVudFZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYmluZGVyID09PSAnTUFQX09CSkVDVCcgJiYgVXRpbHMuaXNOdWxsKHZhbHVlLm1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWwubWFwID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnNlVmFsdWVzKHRyYW5zZm9ybURhdGFPYmplY3QodmFsKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRNYXN0ZXJWYWx1ZXModmFsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbCA9IGlzRXZlbnREYXRhID8gYXBwbGljYXRpb25NYW5hZ2VyLnJlc29sdmVFeHByZXNzaW9uVmFsdWUoY29tcG9uZW50VmFsdWUsIGV2ZW50RGF0YSkgOiBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChiaW5kZXIgPT09ICdNQVBfT0JKRUNUJyAmJiBVdGlscy5pc051bGwoY29tcG9uZW50VmFsdWUubWFwKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbCA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbC5tYXAgPSBjb21wb25lbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgcGFyc2VWYWx1ZXModHJhbnNmb3JtRGF0YU9iamVjdCh2YWwpKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldE1hc3RlclZhbHVlcyh2YWwpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdXBkYXRlVmlld1RpdGxlKCk7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbG9hZGluZ1JlZi5jdXJyZW50ID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgcHJvcHMuaGFuZGxlLmFwaSA9IG51bGw7XG4gICAgICAgICAgICB9O1xuICAgICAgICB9LCBbXSk7XG5cbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIHByb3BzLmhhbmRsZS5hcGkgPSBhcGkoKTtcbiAgICAgICAgICAgIGxldCBldmVudEhhbmRsaW5nQ29uZmlnID0gVXRpbHMuaXNOdWxsKGNvbmZpZy5ldmVudEhhbmRsaW5nQ29uZmlnKSA/IHt9IDogY29uZmlnLmV2ZW50SGFuZGxpbmdDb25maWc7XG4gICAgICAgICAgICBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMgPSBVdGlscy5pc051bGwoZXZlbnRIYW5kbGluZ0NvbmZpZy5zdWJzY3JpcHRpb25zKSA/IFtdIDogZXZlbnRIYW5kbGluZ0NvbmZpZy5zdWJzY3JpcHRpb25zO1xuXG4gICAgICAgICAgICBsZXQgYXV0b0xvYWREYXRhID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKGNvbmZpZywgJ2F1dG9Mb2FkRGF0YScsIG51bGwpO1xuICAgICAgICAgICAgaWYgKGF1dG9Mb2FkRGF0YSA9PT0gbnVsbCB8fCBhdXRvTG9hZERhdGEgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICBsZXQgc3Vic2NyaXB0aW9uID0ge1xuICAgICAgICAgICAgICAgICAgICBldmVudFR5cGU6IEV2ZW50VHlwZS5DT01QT05FTlRfTE9BRCxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFjdGlvblR5cGU6ICdsb2FkRGF0YSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBldmVudEhhbmRsaW5nQ29uZmlnLnN1YnNjcmlwdGlvbnMucHVzaChzdWJzY3JpcHRpb24pO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBoYW5kbGVEYXRhQXJyaXZlZCgpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3Vic2NyaXB0aW9ucyhldmVudEhhbmRsaW5nQ29uZmlnLCBwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuYWRkU3lzdGVtU3Vic2NyaXB0aW9ucyhwcm9wcy52aWV3SWQsIGNvbmZpZyk7XG4gICAgICAgICAgICBzZXRDb25maWcoY29uZmlnKTtcblxuICAgICAgICAgICAgZm9yIChjb25zdCBmaWVsZCBvZiBmaWVsZHMpIHtcbiAgICAgICAgICAgICAgICBsZXQgaGFuZGxlID0gZmllbGQuaGFuZGxlO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGhhbmRsZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgaGFuZGxlLmFwaS5oYW5kbGVMb2FkQ29tcGxldGUoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvYWRpbmdSZWYuY3VycmVudCA9IGZhbHNlO1xuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCBudWxsKTtcbiAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkNPTVBPTkVOVF9MT0FELCBldmVudCk7XG5cbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmNsZWFyQ29tcG9uZW50RXZlbnRMaXN0ZW5lcnMocHJvcHMuaGFuZGxlKTtcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0sIFtdKTtcblxuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnKSAmJiAhVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlcykpIHtcbiAgICAgICAgICAgICAgICBwYXJzZVZhbHVlcyhwcm9wcy52YWx1ZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbcHJvcHMuY29uZmlnLCBwcm9wcy52YWx1ZXNdKTtcblxuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobWFzdGVyVmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIGhhbmRsZURhdGFBcnJpdmVkKG1hc3RlclZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFttYXN0ZXJWYWx1ZXNdKTtcblxuICAgICAgICBjb25zdCBnZXRGaWVsZHNGcm9tVGFiID0gKHRhYikgPT4ge1xuICAgICAgICAgICAgbGV0IGZpZWxkcyA9IFtdO1xuICAgICAgICAgICAgZm9yIChjb25zdCB0YWJQYWdlIG9mIHRhYi50YWJQYWdlcykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgY29tcG9uZW50IG9mIHRhYlBhZ2UuY29tcG9uZW50cykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoY29tcG9uZW50LnR5cGUgPT09ICdmb3JtU2VjdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvciAoY29uc3QgZmllbGRzZXQgb2YgY29tcG9uZW50LmNvbXBvbmVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZHMgPSBmaWVsZHMuY29uY2F0KGZpZWxkc2V0LmZpZWxkcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmaWVsZHM7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgdHJhbnNmb3JtRGF0YU9iamVjdCA9IChkYXRhKSA9PiB7XG4gICAgICAgICAgICBsZXQgZm9ybVZhbHVlcyA9IG51bGw7XG5cbiAgICAgICAgICAgIGlmIChiaW5kZXIgPT09ICdNQVBfT0JKRUNUJykge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXMgPSB7fTtcblxuICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZGF0YSkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbGV0IG1hcCA9IGRhdGEubWFwO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1hcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BlcnRpZXMgPSBPYmplY3QuZ2V0T3duUHJvcGVydHlOYW1lcyhtYXApO1xuXG4gICAgICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcGVydGllcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHByb3BlcnR5ID0gcHJvcGVydGllc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCB0b2tlbnMgPSBwcm9wZXJ0eS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZvID0gZm9ybVZhbHVlcztcblxuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCB0b2tlbnMubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdG9rZW4gPSB0b2tlbnNbal07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGogPCB0b2tlbnMubGVuZ3RoIC0gMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZvW3Rva2VuXSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZvW3Rva2VuXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm8gPSB2b1t0b2tlbl07XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdm9bdG9rZW5dID0gbWFwW3Byb3BlcnR5XTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXMgPSBkYXRhO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZm9ybVZhbHVlcztcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBkb0NsZWFyKCkge1xuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmVuYWJsZUZvcm1NYXJrZXJzKGZhbHNlKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IGZpZWxkID0gZmllbGRzW2ldO1xuICAgICAgICAgICAgICAgIGZpZWxkLmhhbmRsZS5hcGkuY2xlYXIoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdmFsdWVzLmN1cnJlbnQgPSB7fTtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlQ2hhbmdlSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIoe30pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5tb2RlbENoYW5nZUhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMubW9kZWxDaGFuZ2VIYW5kbGVyKHt9KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmVuYWJsZUZvcm1NYXJrZXJzKHRydWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gZG9CaW5kRGF0YShkYXRhKSB7XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChkYXRhKSkge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3Qga2V5IG9mIE9iamVjdC5rZXlzKGRhdGEpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBmaWVsZCA9IGdldEZpZWxkKGtleSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmllbGQuaGFuZGxlLmFwaS52YWx1ZSA9IGZpZWxkLmhhbmRsZS5hcGkucGFyc2VWYWx1ZShkYXRhW2tleV0sIHRydWUpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgZnVuY3Rpb24gcGFyc2VWYWx1ZXMoZGF0YSkge1xuICAgICAgICAgICAgbGV0IHBhcnNlZFZhbHVlcyA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkoZGF0YSkpO1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgZmllbGQgPSBmaWVsZHNbaV07XG4gICAgICAgICAgICAgICAgbGV0IHBhdGggPSBnZXRWYWx1ZVBhdGgoZmllbGQuaWQsIHBhcnNlZFZhbHVlcyk7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdFZhbHVlID0gcGF0aC52YWx1ZU9iamVjdFtwYXRoLnZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkLmhhbmRsZS5hcGkpKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgudmFsdWVPYmplY3RbcGF0aC52YWx1ZVByb3BlcnR5XSA9IGZpZWxkLmhhbmRsZS5hcGkucGFyc2VWYWx1ZShvYmplY3RWYWx1ZSwgdHJ1ZSk7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcignTlVMTCBmaWVsZCByZWZlcmVuY2Ugd2hpbGUgcGFyc2luZyBmb3JtIHZhbHVlIC0gJyArIGZpZWxkLmlkKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHZhbHVlcy5jdXJyZW50ID0gcGFyc2VkVmFsdWVzO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZGF0YUFycml2ZWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgIHByb3BzLmRhdGFBcnJpdmVkSGFuZGxlcihwYXJzZWRWYWx1ZXMpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvL2lmICghVXRpbHMuaXNOdWxsKHByb3BzLnZhbHVlQ2hhbmdlSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLnZhbHVlQ2hhbmdlSGFuZGxlcihwYXJzZWRWYWx1ZXMpO1xuICAgICAgICAgICAgLy99XG4gICAgICAgIH1cblxuICAgICAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMudmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIHBhcnNlVmFsdWVzKHByb3BzLnZhbHVlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtwcm9wcy52YWx1ZXNdKTtcblxuICAgICAgICBjb25zdCBnZXRGaWVsZCA9IChpZCkgPT4ge1xuICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAoZmllbGRzW2ldLmlkID09PSBpZCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZmllbGRzW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgcmVtb3ZlRmllbGQgPSAoaWQpID0+IHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgaWYgKGZpZWxkc1tpXS5pZCA9PT0gaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgZmllbGRzLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBmaWVsZFZhbGlkaXR5LmN1cnJlbnQuZGVsZXRlKGlkKTtcbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiBkb1ZhbGlkYXRlUGFyZW50KGZpZWxkLCBpbnZhbGlkLCB1cGRhdGVFcnJvcnMgPSB0cnVlKSB7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkLnBhcmVudElkKSkge1xuICAgICAgICAgICAgICAgIGxldCBpc1BhcmVudEludmFsaWQgPSBpbnZhbGlkO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZmllbGRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChmaWVsZHNbaV0gIT09IGZpZWxkICYmIGZpZWxkc1tpXS5wYXJlbnRJZCA9PT0gZmllbGQucGFyZW50SWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlzUGFyZW50SW52YWxpZCA9IGlzUGFyZW50SW52YWxpZCB8fCAhKFV0aWxzLmlzTnVsbChmaWVsZHNbaV0uZXJyb3IpIHx8IGZpZWxkc1tpXS5lcnJvci5sZW5ndGggPT09IDApO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgZmllbGRQYXJlbnRFcnJvcnNbZmllbGQucGFyZW50SWRdID0gaXNQYXJlbnRJbnZhbGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAodXBkYXRlRXJyb3JzICYmICFVdGlscy5pc051bGwoY29udGFpbmVyRXJyb3JDYWxsYmFjay5jdXJyZW50KSAmJiBhcHBsaWNhdGlvbk1hbmFnZXIuaXNGb3JtTWFya2Vyc0VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIGNvbnRhaW5lckVycm9yQ2FsbGJhY2suY3VycmVudChmaWVsZFBhcmVudEVycm9ycyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBmaWVsZFBhcmVudEVycm9ycztcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHZhbGlkYXRlRmllbGQgPSAoZmllbGQsIGlkLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgaWYgKGxvYWRpbmdSZWYuY3VycmVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBmaWVsZC5lcnJvciA9IG51bGw7XG4gICAgICAgICAgICAgICAgbGV0IGludmFsaWQgPSBmaWVsZC5oYW5kbGUuYXBpLnZhbGlkYXRlKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIFtpZF06IHZhbHVlXG4gICAgICAgICAgICAgICAgfSwgdmFsdWUpID09PSBmYWxzZTtcbiAgICAgICAgICAgICAgICBkb1ZhbGlkYXRlUGFyZW50KGZpZWxkLCBpbnZhbGlkKTtcblxuICAgICAgICAgICAgICAgIHJldHVybiBpbnZhbGlkO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBnZXRWYWx1ZVBhdGggPSAoaWQsIHZhbHMpID0+IHtcbiAgICAgICAgICAgIGxldCBwYXRoID0ge307XG4gICAgICAgICAgICBsZXQgY3VycmVudFZhbHVlcyA9IHZhbHM7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHMpKSB7XG4gICAgICAgICAgICAgICAgY3VycmVudFZhbHVlcyA9IHZhbHVlcy5jdXJyZW50O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChjdXJyZW50VmFsdWVzKSkge1xuICAgICAgICAgICAgICAgIGxldCB0b2tlbnMgPSBpZC5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGlmICh0b2tlbnMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgIHBhdGgudmFsdWVPYmplY3QgPSBjdXJyZW50VmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICBwYXRoLnZhbHVlUHJvcGVydHkgPSB0b2tlbnNbMF07XG4gICAgICAgICAgICAgICAgfSBlbHNlIGlmICh0b2tlbnMubGVuZ3RoID4gMSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgdm8gPSBjdXJyZW50VmFsdWVzO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRva2Vucy5sZW5ndGggLSAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZvW3Rva2Vuc1tpXV0pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm8gPSB2b1t0b2tlbnNbaV1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2b1t0b2tlbnNbaV1dID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdm8gPSB2b1t0b2tlbnNbaV1dO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodm8pKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnZhbHVlT2JqZWN0ID0gdm87XG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLnZhbHVlUHJvcGVydHkgPSB0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gcGF0aDtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBkb0hhbmRsZUNoYW5nZSA9IChpZCwgdmFsdWUpID0+IHtcbiAgICAgICAgICAgIGxldCBwYXRoID0gZ2V0VmFsdWVQYXRoKGlkLCBudWxsKTtcblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocGF0aC52YWx1ZU9iamVjdCkgJiYgIVV0aWxzLmlzTnVsbChwYXRoLnZhbHVlUHJvcGVydHkpICYmIGxvYWRpbmdSZWYuY3VycmVudCA9PT0gZmFsc2UpIHtcbiAgICAgICAgICAgICAgICBwYXRoLnZhbHVlT2JqZWN0W3BhdGgudmFsdWVQcm9wZXJ0eV0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgaW52YWxpZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGxldCBmaWVsZCA9IGdldEZpZWxkKGlkKTtcblxuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKGZpZWxkKSkge1xuICAgICAgICAgICAgICAgICAgICBpbnZhbGlkID0gdmFsaWRhdGVGaWVsZChmaWVsZCwgaWQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBmaWVsZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cEZpZWxkID0gZmllbGRzW2ldO1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRpb25Hcm91cCA9IGdyb3VwRmllbGQuaGFuZGxlLmFwaS5nZXRWYWxpZGF0aW9uR3JvdXAoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRpb25Hcm91cCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoZmllbGQgIT09IGdyb3VwRmllbGQgJiYgdmFsaWRhdGlvbkdyb3VwID09PSBmaWVsZC5oYW5kbGUuYXBpLmdldFZhbGlkYXRpb25Hcm91cCgpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cEZpZWxkSWQgPSBncm91cEZpZWxkLmhhbmRsZS5hcGkuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncmlkRmllbGRQYXRoID0gZ2V0VmFsdWVQYXRoKGdyb3VwRmllbGRJZCwgbnVsbCk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoZ3JpZEZpZWxkUGF0aCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBncm91cEZpZWxkVmFsID0gZ3JpZEZpZWxkUGF0aC52YWx1ZU9iamVjdFtncmlkRmllbGRQYXRoLnZhbHVlUHJvcGVydHldO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ1JFLVZhbGlkYXRpbmcgZm9ybScsIGdyb3VwRmllbGRWYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsaWRhdGVGaWVsZChncm91cEZpZWxkLCBncm91cEZpZWxkSWQsIGdyb3VwRmllbGRWYWwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMudmFsdWVDaGFuZ2VIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIoaW52YWxpZCA/IG51bGwgOiB2YWx1ZXMuY3VycmVudCwgaWQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5tb2RlbENoYW5nZUhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLm1vZGVsQ2hhbmdlSGFuZGxlcih2YWx1ZXMuY3VycmVudCwgaWQsIHZhbHVlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5lbmFibGVGb3JtTWFya2VycyhmYWxzZSk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIucHJvY2Vzc1N5c3RlbUdlbmVyYXRlZFN1YnNjcmlwdGlvbnMocHJvcHMuY29uZmlnLmlkKTtcblxuICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KHByb3BzLmhhbmRsZSwgcHJvcHMudmlld0lkLCB2YWx1ZXMuY3VycmVudCk7XG4gICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5WQUxVRV9DSEFOR0UsIGV2ZW50KTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBzZXRGaWVsZEVycm9yID0gKGlkLCBlcnJvcikgPT4ge1xuICAgICAgICAgICAgbGV0IGZpZWxkID0gZ2V0RmllbGQoaWQpO1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoZmllbGQpKSB7XG4gICAgICAgICAgICAgICAgZmllbGQuZXJyb3IgPSBlcnJvcjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCBhZGRGaWVsZCA9IChpZCwgaGFuZGxlLCBwYXJlbnRJZCwgYmluZFZhbHVlVG9Gb3JtKSA9PiB7XG4gICAgICAgICAgICBsZXQgZmllbGQgPSBnZXRGaWVsZChpZCk7XG4gICAgICAgICAgICBsZXQgZXJyb3IgPSBudWxsO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChmaWVsZCkpIHtcbiAgICAgICAgICAgICAgICBlcnJvciA9IGZpZWxkLmVycm9yO1xuICAgICAgICAgICAgICAgIHJlbW92ZUZpZWxkKGlkKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZmllbGQgPSB7fTtcbiAgICAgICAgICAgIGZpZWxkLmlkID0gaWQ7XG4gICAgICAgICAgICBmaWVsZC5oYW5kbGUgPSBoYW5kbGU7XG4gICAgICAgICAgICBmaWVsZC5lcnJvciA9IGVycm9yO1xuICAgICAgICAgICAgZmllbGQuYmluZFZhbHVlVG9Gb3JtID0gYmluZFZhbHVlVG9Gb3JtO1xuICAgICAgICAgICAgZmllbGQucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICAgICAgICAgIGZpZWxkcy5wdXNoKGZpZWxkKTtcblxuICAgICAgICAgICAgaWYgKHZhbHVlcy5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgcGFyc2VWYWx1ZXModmFsdWVzLmN1cnJlbnQpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gZmllbGQ7XG4gICAgICAgIH07XG5cbiAgICAgICAgY29uc3QgaGFuZGxlU2VsZWN0SXRlbUNoYW5nZSA9IChuYW1lLCBvcHRpb25zLCBzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgIGlmKHR5cGVvZiBzZWxlY3Rpb24gPT09ICdvYmplY3QnICYmIChVdGlscy5pc051bGwob3B0aW9ucykgfHwgb3B0aW9ucy5sZW5ndGggPT09IDApKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGlvbjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IHNlbGVjdGVkVmFsdWUgPSBudWxsO1xuXG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG9wdGlvbnMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICBpZiAob3B0aW9uc1tpXS5pZCA9PT0gc2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkVmFsdWUgPSBvcHRpb25zW2ldO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZG9IYW5kbGVDaGFuZ2UobmFtZSwgc2VsZWN0ZWRWYWx1ZSk7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRWYWx1ZTtcbiAgICAgICAgfTtcblxuICAgICAgICBjb25zdCB1cGRhdGVWYWx1ZSA9IChuYW1lLCB2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgcHJvcHMudmFsdWVDaGFuZ2VIYW5kbGVyKHtcbiAgICAgICAgICAgICAgICAuLi52YWx1ZXMuY3VycmVudCxcbiAgICAgICAgICAgICAgICBbbmFtZV06IHZhbHVlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgaWYocHJvcHMubW9kZWxDaGFuZ2VIYW5kbGVyKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMubW9kZWxDaGFuZ2VIYW5kbGVyKHtcbiAgICAgICAgICAgICAgICAgICAgLi4udmFsdWVzLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgICAgIFtuYW1lXTogdmFsdWVcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcblxuICAgICAgICBmdW5jdGlvbiByZW5kZXIoZm9ybSkge1xuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAoVXRpbHMuaXNOdWxsKGZvcm0uc2VjdGlvbnMpIHx8IGZvcm0uc2VjdGlvbnMubGVuZ3RoID09PSAwKSA/XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm0uc2VjdGlvbnMubWFwKChzZWN0aW9uKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoc2VjdGlvbi5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlY3Rpb24uaWQgPSBzZWN0aW9uQ291bnRlciArICctZm9ybS1zZWN0aW9uJztcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17c2VjdGlvbkNvdW50ZXIrK30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VjdGlvbiBrZXlIYW5kbGVyPXtwcm9wcy5rZXlIYW5kbGVyfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uZmlnPXtzZWN0aW9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e3Byb3BzLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlPXtjcmVhdGVTZWN0aW9uSGFuZGxlKHNlY3Rpb24pfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybT17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAhVXRpbHMuaXNOdWxsKHByb3BzLmhhbmRsZS5hcGkpID8gcHJvcHMuaGFuZGxlLmFwaSA6IGFwaSgpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVzPXt2YWx1ZXMuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PjtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgdmlzaWJsZSAmJlxuICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e3Byb3BzLmNsYXNzTmFtZX0gaWQ9e3Byb3BzLmNvbmZpZy5pZH0gc3R5bGU9e1xuICAgICAgICAgICAgICAgIHByb3BzLmNsYXNzTmFtZSA9PT0gJ2RlZmF1bHRGb3JtJyA/XG4gICAgICAgICAgICAgICAgICAgIFV0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICcxNnB4IDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWFyZ2luOiAnMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnNzB2aCdcbiAgICAgICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKVxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIH0+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5pZCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVuZGVyKHByb3BzLmNvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+RVJST1I6IEEgZm9ybSBtdXN0IGhhdmUgYW4gSUQ8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj4pO1xuICAgIH0pXG47XG5cbmV4cG9ydCBkZWZhdWx0IEZvcm07XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLE9BQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFFBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBQSxPQUFBO0FBQ0EsSUFBQUksWUFBQSxHQUFBSixPQUFBO0FBQ0EsSUFBQUssV0FBQSxHQUFBTCxPQUFBO0FBQ0EsSUFBQU0sV0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sbUJBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLHlCQUFBLEdBQUFULHNCQUFBLENBQUFD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
@@ -214,4 +214,5 @@ const GridField = /*#__PURE__*/_react.default.memo(props => {
214
214
  base: base
215
215
  }, props)));
216
216
  });
217
- var _default = exports.default = GridField;
217
+ var _default = exports.default = GridField;
218
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfRGF0YUdyaWQiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX0lucHV0TGFiZWwiLCJfVG9vbGJhciIsIl9EeW5hbWljSlMiLCJfRm9ybUhlbHBlclRleHQiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJjcmVhdGVSZWNvcmQiLCJyb3ciLCJncmlkQ29uZmlnIiwiaW5ib3VuZCIsInJlY29yZCIsImNvbHVtbiIsImNvbHVtbnMiLCJwcm9wZXJ0eSIsIlV0aWxzIiwiaXNOdWxsIiwiZGF0YUJpbmRpbmciLCJpZCIsInZhbCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsInVwZGF0ZU5lc3RlZFByb3BlcnR5IiwiR3JpZEZpZWxkV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm5ld1Jvd0lkQ291bnRlciIsInVzZVJlZiIsInNlbGVjdGlvbiIsInNldFNlbGVjdGlvbiIsInVzZVN0YXRlIiwibGFiZWwiLCJzZXRMYWJlbCIsImxvYWRlZCIsInJvd01vZGVsIiwic2V0Um93TW9kZWwiLCJsYXRlc3RBZGRlZFJvdyIsInNldExhdGVzdEFkZGVkUm93IiwiaGFzRXJyb3JzIiwiY3J1ZFRvb2xzdHJpcFdpZHRoIiwic2V0Q3J1ZFRvb2xzdHJpcFdpZHRoIiwiZWRpdGluZyIsImhhc0J1dHRvbnMiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiYWRkRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwicmVtb3ZlRGlzYWJsZWQiLCJ1c2VFZmZlY3QiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwibnVtQ3J1ZEJ1dHRvbnMiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjdXJyZW50IiwidmFsdWUiLCJncmlkSGFuZGxlIiwiYXBpIiwic2VsZWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJ0cmltIiwicmVxdWlyZWQiLCJlcnJvciIsImhhc0Vycm9yIiwiYm9yZGVyIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwib25DbGljayIsImFkZFJvd3MiLCJkaXNhYmxlZCIsImRlbGV0ZVNlbGVjdGVkUm93cyIsInRvb2xzdHJpcCIsImhhbmRsZSIsInRvb2xzdHJpcEhhbmRsZSIsIkRhdGFHcmlkIiwiZ3JpZCIsInJvd3MiLCJmb3JtVmFsdWVzIiwidmFsdWVzIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwibmV3Um93cyIsImhhc1Jvd0Vycm9ycyIsIm1hcCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwicGFnaW5hdGlvbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwiZmlsdGVyV3JhcHBlckNsYXNzIiwiaGFzQm9yZGVyIiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiY29sb3IiLCJHcmlkRmllbGQiLCJ0b29sSGFuZGxlIiwiQmFzZUZpZWxkIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInB1c2giLCJtb3JlQ2hpbGRyZW4iLCJqIiwidmFsdWVQYXJzZXIiLCJvYmplY3RBcnJheSIsIm51bGxJZFJlY29yZHMiLCJvYmplY3RBcnJheUVsZW1lbnQiLCJjbGVhckhhbmRsZXIiLCJjbGVhciIsInJvd3NIYW5kbGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vR3JpZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtEYXRhR3JpZH0gZnJvbSBcIi4uL0RhdGFHcmlkXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRMYWJlbCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IEZvcm1IZWxwZXJUZXh0IGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKHJvdywgZ3JpZENvbmZpZywgaW5ib3VuZCkge1xuICAgIGxldCByZWNvcmQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncmlkQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgbGV0IHByb3BlcnR5ID0gIVV0aWxzLmlzTnVsbChjb2x1bW4uZGF0YUJpbmRpbmcpID8gY29sdW1uLmRhdGFCaW5kaW5nIDogY29sdW1uLmlkO1xuICAgICAgICBsZXQgdmFsID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHJvdywgcHJvcGVydHkpO1xuICAgICAgICBVdGlscy51cGRhdGVOZXN0ZWRQcm9wZXJ0eShyZWNvcmQsIHByb3BlcnR5LCB2YWw/P251bGwpO1xuICAgIH1cblxuICAgIC8vcmVjb3JkLmlkID0gcm93LmlkID49IDAgPyByb3cuaWQgOiBudWxsO1xuICAgIHJlY29yZC5pZCA9IHJvdy5pZDtcbiAgICByZXR1cm4gcmVjb3JkO1xufVxuXG5jb25zdCBHcmlkRmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBuZXdSb3dJZENvdW50ZXIgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IFtzZWxlY3Rpb24sIHNldFNlbGVjdGlvbl0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW3Jvd01vZGVsLCBzZXRSb3dNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhdGVzdEFkZGVkUm93LCBzZXRMYXRlc3RBZGRlZFJvd10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgaGFzRXJyb3JzID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbY3J1ZFRvb2xzdHJpcFdpZHRoLCBzZXRDcnVkVG9vbHN0cmlwV2lkdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdGluZyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2hhc0J1dHRvbnNdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fFxuICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpIHx8XG4gICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlIHx8XG4gICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCkgfHxcbiAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IG51bUNydWRCdXR0b25zID0gMDtcbiAgICAgICAgbGV0IGFkZERpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIGxldCByZW1vdmVEaXNhYmxlZCA9IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghYWRkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIG51bUNydWRCdXR0b25zKys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW92ZURpc2FibGVkKSB7XG4gICAgICAgICAgICBudW1DcnVkQnV0dG9ucysrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q3J1ZFRvb2xzdHJpcFdpZHRoKChudW1DcnVkQnV0dG9ucyAqIDQwKSArICdweCcpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArICdsYWJlbCcsIFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsICcnKSwgcHJvcHMuY29uZmlnLnZpZXdJZCwgdHJ1ZSwgbnVsbCwgbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgOiBwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXTtcbiAgICAgICAgICAgIHNldExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW10pO1xuXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdGluZy5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0aW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJvd01vZGVsKGJhc2UudmFsdWUpO1xuXG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLnNlbGVjdChbbGF0ZXN0QWRkZWRSb3cuaWRdKTtcbiAgICB9LCBbbGF0ZXN0QWRkZWRSb3ddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIk11aUZvcm1Db250cm9sLXJvb3QgTXVpVGV4dEZpZWxkLXJvb3QgTXVpRm9ybUNvbnRyb2wtbWFyZ2luRGVuc2VcIn1cbiAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsICYmIGxhYmVsLnRyaW0oKS5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgPElucHV0TGFiZWwgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9IGVycm9yPXtiYXNlLmhhc0Vycm9yfT57bGFiZWx9PC9JbnB1dExhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2Jhc2UuaGFzRXJyb3IgPyAnI2Y0NDMzNicgOiAnI2UxZTFlMSd9YCxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7aGFzQnV0dG9ucyA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbC0qLSonfSBzdHlsZT17e3dpZHRoOiBjcnVkVG9vbHN0cmlwV2lkdGh9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5hZGREaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmFkZERpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpID09PSBmYWxzZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3cgPSB7aWQ6IG5ld1Jvd0lkQ291bnRlci5jdXJyZW50LS19O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSb3dNb2RlbChwcm9wcy5ncmlkSGFuZGxlLmFwaS5hZGRSb3dzKFtyb3ddKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldExhdGVzdEFkZGVkUm93KHJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0FERCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgfHwgVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnJlbW92ZURpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMucmVtb3ZlRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3Rpb24ubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZ3JpZEhhbmRsZS5hcGkuZGVsZXRlU2VsZWN0ZWRSb3dzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J1JFTU9WRSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnRvb2xzdHJpcCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtwcm9wcy5jb25maWcudG9vbHN0cmlwfSBoYW5kbGU9e3Byb3BzLnRvb2xzdHJpcEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPERhdGFHcmlkIGNvbmZpZz17cHJvcHMuY29uZmlnLmdyaWR9IGhhbmRsZT17cHJvcHMuZ3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZD17bG9hZGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93TW9kZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsobmV3Um93cywgaGFzUm93RXJyb3JzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuZXdSb3dzKSAmJiAhaGFzUm93RXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZy5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IG5ld1Jvd3MubWFwKHJvdyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVSZWNvcmQocm93LCBwcm9wcy5jb25maWcuZ3JpZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZT17KHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyV3JhcHBlckNsYXNzPXsndHJhbnNmZXJMaXN0RmlsdGVyV3JhcHBlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuZXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dCBzdHlsZT17e21hcmdpbjogXCI4cHhcIiwgY29sb3I6IFwicmdiKDI0NCwgNjcsIDU0KVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuY29uc3QgR3JpZEZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZ3JpZEhhbmRsZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Rvb2xIYW5kbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudG9vbHN0cmlwKSA/IHt9IDogbnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IGdldENoaWxkcmVuPXtcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZ3JpZEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgbGV0IG1vcmVDaGlsZHJlbiA9IGdyaWRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy50b29sc3RyaXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2godG9vbEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSB0b29sSGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vcmVDaGlsZHJlbi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgICAgICAgfX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdEFycmF5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IFtdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9iamVjdEFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bGxJZFJlY29yZHMgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9iamVjdEFycmF5RWxlbWVudCBvZiBvYmplY3RBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluYm91bmQgJiYgVXRpbHMuaXNOdWxsKG9iamVjdEFycmF5RWxlbWVudC5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSAtMSAqIG51bGxJZFJlY29yZHMrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmJvdW5kICYmIG9iamVjdEFycmF5RWxlbWVudC5pZCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWwucHVzaChvYmplY3RBcnJheUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSBjbGVhckhhbmRsZXI9eygpID0+IGdyaWRIYW5kbGUuYXBpLmNsZWFyKCl9IHJvd3NIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ3JpZEhhbmRsZS5hcGkucm93c1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPEdyaWRGaWVsZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZEhhbmRsZT17Z3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgdG9vbHN0cmlwSGFuZGxlPXt0b29sSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvR3JpZEZpZWxkV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkRmllbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFX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
@@ -27,4 +27,5 @@ const IconField = /*#__PURE__*/_react.default.memo(props => {
27
27
  base: base
28
28
  }, props)));
29
29
  });
30
- var _default = exports.default = IconField;
30
+ var _default = exports.default = IconField;
31
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfSWNvbiIsIl9VdGlscyIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5IiwiSWNvbldyYXBwZXIiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsImJhc2UiLCJjcmVhdGVFbGVtZW50IiwiRnJhZ21lbnQiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwibGFiZWwiLCJzdHlsZSIsIlV0aWxzIiwibWVyZ2VTdHlsZXMiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJpZCIsImljb25JZCIsImNvbG9yIiwiaWNvbkNvbG9yIiwiSWNvbkZpZWxkIiwiQmFzZUZpZWxkIiwiaGFuZGxlIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vSWNvbkZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IEljb24gZnJvbSBcIi4uL0ljb25cIjtcbmltcG9ydCBVdGlscyBmcm9tIFwiLi4vLi4vVXRpbHNcIjtcblxuY29uc3QgSWNvbldyYXBwZXIgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgJiZcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7fSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbGFiZWwnLCAnJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgIDxJY29uXG4gICAgICAgICAgICAgICAgICAgIGlkPXtwcm9wcy5jb25maWcuaWNvbklkfSBjb2xvcj17cHJvcHMuY29uZmlnLmljb25Db2xvcn0vPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvPlxuICAgICk7XG59KTtcblxuY29uc3QgSWNvbkZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8SWNvbldyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0ljb25XcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEljb25GaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsVUFBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsTUFBQSxH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
@@ -492,4 +492,5 @@ const ImageEditor = exports.ImageEditor = /*#__PURE__*/_react.default.memo(props
492
492
  clearTrigger: clearTrigger.current
493
493
  }, props)));
494
494
  });
495
- var _default = exports.default = ImageEditor;
495
+ var _default = exports.default = ImageEditor;
496
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbiIsIl9yZWFjdFByb21pc2VUcmFja2VyIiwiX0V2ZW50IiwiX09ic2VydmFibGUiLCJfRXZlbnRUeXBlIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkltYWdlRWRpdG9yQ29tcG9uZW50IiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJhbmdsZSIsInNldEFuZ2xlIiwiem9vbURlcHRoIiwic2V0Wm9vbURlcHRoIiwib3JpZ2luYWxJbWFnZVdpZHRoIiwic2V0T3JpZ2luYWxJbWFnZVdpZHRoIiwib3JpZ2luYWxJbWFnZUhlaWdodCIsInNldE9yaWdpbmFsSW1hZ2VIZWlnaHQiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibXVsdGlwbGUiLCJjbGFzc2VzIiwid2lkdGgiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJoZWlnaHQiLCJjYWNoZUlkIiwidXNlUmVmIiwiYmFzZSIsImRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQiLCJ1c2VFZmZlY3QiLCJjdXJyZW50IiwiZ2V0RmV0Y2hDb25maWciLCJkYXRhIiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwibWV0aG9kIiwiaGVhZGVycyIsImJvZHkiLCJnZXRSb3RhdGVBbmdsZSIsImFjdGlvbiIsInJvdGF0ZUFuZ2xlIiwiYmFzZTY0VG9GaWxlIiwiYjY0Iiwib3JpZ2luYWxGaWxlIiwibWltZSIsInVuZGVmaW5lZCIsImNsZWFuIiwic3RhcnRzV2l0aCIsInNwbGl0IiwiYmluIiwiYXRvYiIsImFyciIsIlVpbnQ4QXJyYXkiLCJjaGFyQ29kZUF0IiwiZXh0IiwibmFtZSIsInJlcGxhY2UiLCJGaWxlIiwiY29uY2F0IiwidHlwZSIsImxhc3RNb2RpZmllZCIsIkRhdGUiLCJub3ciLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJwYXlsb2FkIiwidXBsb2FkVXJsIiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiZ2V0Q29udGV4dFJvb3QiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsImFwcGVuZCIsIkpTT04iLCJzdHJpbmdpZnkiLCJwcm9jZXNzZWRGaWxlIiwiZmV0Y2hDb25maWciLCJ1cmwiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsIm1lc3NhZ2VUeXBlIiwiZXZlbnQiLCJFdmVudCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInJlbW92ZSIsImdldEFjdGl2ZVRlbmFudCIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImFsbEZpbGVzIiwicmVhZGVyIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJmaWxlSW5mbyIsInNpemUiLCJiYXNlNjQiLCJyZXN1bHQiLCJjb25zb2xlIiwibG9nIiwib25VcGxvYWRIYW5kbGVyIiwib25sb2FkZW5kIiwiZm9ybSIsInByb2Nlc3MiLCJoYW5kbGVsb2FkRW5kZWQiLCJhbGxGaWxlIiwiZmlsZU1ldGFEYXRhIiwiZG9tYWluIiwiY29udGFpbmVyIiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsImltYWdlIiwicmF0aW8iLCJzdHlsZSIsImNhbGxiYWNrIiwiem9vbSIsImRpcmVjdGlvbiIsImRlcHRoIiwicm90YXRlIiwicm90YXRlTW9kZSIsInRyYW5zZm9ybSIsImNyZWF0ZUVsZW1lbnQiLCJtZXJnZVN0eWxlcyIsImNsYXNzTmFtZSIsIm1hcmdpbkxlZnQiLCJtYXJnaW5SaWdodCIsImFjY2VwdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJjb21wb25lbnQiLCJ2YXJpYW50IiwiYm9yZGVyIiwiaGFzRXJyb3IiLCJzdGFydEljb24iLCJwYWRkaW5nIiwiZXJyb3JNZXNzYWdlIiwib25DbGljayIsIl9iYXNlJHZhbHVlIiwiaXNab29tZWQiLCJiYWNrZ3JvdW5kUmVwZWF0IiwiYmFja2dyb3VuZFNpemUiLCJiYWNrZ3JvdW5kQ29sb3IiLCJiYWNrZ3JvdW5kSW1hZ2UiLCJib3JkZXJSYWRpdXMiLCJvdmVyZmxvdyIsImJveFNpemluZyIsImp1c3RpZnlDb250ZW50IiwiYWxpZ25JdGVtcyIsInNyYyIsImFsdCIsImRyYWdnYWJsZSIsInVzZXJTZWxlY3QiLCJtYXhXaWR0aCIsIm1heEhlaWdodCIsIm9iamVjdEZpdCIsIkltYWdlRWRpdG9yIiwic2V0RmlsZSIsImNsZWFyVHJpZ2dlciIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL0ltYWdlRWRpdG9yLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBJY29uIGZyb20gJy4uL0ljb24nO1xuaW1wb3J0IHt0cmFja1Byb21pc2V9IGZyb20gXCJyZWFjdC1wcm9taXNlLXRyYWNrZXJcIjtcbmltcG9ydCBFdmVudCBmcm9tICcuLi8uLi9ldmVudC9FdmVudCc7XG5pbXBvcnQgZXZlbnRNYW5hZ2VyIGZyb20gJy4uLy4uL2V2ZW50L09ic2VydmFibGUnO1xuaW1wb3J0IEV2ZW50VHlwZSBmcm9tICcuLi8uLi9ldmVudC9FdmVudFR5cGUnO1xuXG5jb25zdCB1c2VTdHlsZXMgPSBtYWtlU3R5bGVzKHRoZW1lID0+ICh7XG4gICAgYnV0dG9uOiB7XG4gICAgICAgIG1hcmdpbjogdGhlbWUuc3BhY2luZygxKSxcbiAgICB9LFxuICAgIGlucHV0OiB7XG4gICAgICAgIGRpc3BsYXk6ICdub25lJyxcbiAgICB9LFxuICAgIGVycm9yTWVzc2FnZURpc3BsYXk6IHtcbiAgICAgICAgY29sb3I6ICdyZWQnXG4gICAgfVxufSkpO1xuXG5jb25zdCBzdGF0dXMgPSAocmVzcG9uc2UpID0+IHtcbiAgICBpZiAocmVzcG9uc2Uub2spIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZShyZXNwb25zZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIFByb21pc2UucmVqZWN0KHtjb2RlOiByZXNwb25zZS5zdGF0dXMsIG1lc3NhZ2U6IHJlc3BvbnNlLnN0YXR1c1RleHR9KTtcbiAgICB9XG59O1xuXG5jb25zdCBqc29uID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgcmV0dXJuIHJlc3BvbnNlLnRleHQoKTtcbn07XG5cbmNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgXCIvL1wiICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuZXhwb3J0IGNvbnN0IEltYWdlRWRpdG9yQ29tcG9uZW50ID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbdmlld2VyRmlsZSwgc2V0Vmlld2VyRmlsZV0gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IHByb3BzLmluaXRpYWxGaWxlIDogbnVsbCk7XG4gICAgY29uc3QgW2FuZ2xlLCBzZXRBbmdsZV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbem9vbURlcHRoLCBzZXRab29tRGVwdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW29yaWdpbmFsSW1hZ2VXaWR0aCwgc2V0T3JpZ2luYWxJbWFnZVdpZHRoXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtvcmlnaW5hbEltYWdlSGVpZ2h0LCBzZXRPcmlnaW5hbEltYWdlSGVpZ2h0XSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFttdWx0aXBsZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5tdWx0aXBsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IHdpZHRoID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3dpZHRoJywgJzIwMHB4Jyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2hlaWdodCcsICcyMDBweCcpO1xuICAgIGNvbnN0IGNhY2hlSWQgPSBSZWFjdC51c2VSZWYoIVV0aWxzLmlzTnVsbChwcm9wcy5iYXNlLnZhbHVlKSA/IHByb3BzLmJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA6IG51bGwpO1xuICAgIGNvbnN0IGJhc2UgPSBwcm9wcy5iYXNlO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgIC8vcmVtb3ZlKCkuY2F0Y2goKGUpID0+IHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRWaWV3ZXJGaWxlKHByb3BzLmluaXRpYWxGaWxlKTtcbiAgICB9LCBbcHJvcHMuaW5pdGlhbEZpbGVdKTtcblxuICAgIGZ1bmN0aW9uIGdldEZldGNoQ29uZmlnKGRhdGEpIHtcbiAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICdpZFRva2VuJzogaWRUb2tlblxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBnZXRSb3RhdGVBbmdsZShhY3Rpb24pIHtcbiAgICAgICAgbGV0IHJvdGF0ZUFuZ2xlID0gbnVsbDtcblxuICAgICAgICBpZiAoXCJyb3RhdGVMZWZ0XCIgPT09IGFjdGlvbikge1xuICAgICAgICAgICAgcm90YXRlQW5nbGUgPSAtOTA7XG4gICAgICAgIH0gZWxzZSBpZiAoXCJyb3RhdGVSaWdodFwiID09PSBhY3Rpb24pIHtcbiAgICAgICAgICAgIHJvdGF0ZUFuZ2xlID0gOTA7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gcm90YXRlQW5nbGU7XG4gICAgfVxuXG4gICAgZnVuY3Rpb24gYmFzZTY0VG9GaWxlKGI2NCwgb3JpZ2luYWxGaWxlLCBtaW1lID0gXCJpbWFnZS9wbmdcIikge1xuICAgICAgICBjb25zdCBjbGVhbiA9IGI2NC5zdGFydHNXaXRoKFwiZGF0YTpcIikgPyBiNjQuc3BsaXQoXCIsXCIpWzFdIDogYjY0O1xuICAgICAgICBjb25zdCBiaW4gPSBhdG9iKGNsZWFuKTtcbiAgICAgICAgY29uc3QgYXJyID0gbmV3IFVpbnQ4QXJyYXkoYmluLmxlbmd0aCk7XG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgYmluLmxlbmd0aDsgaSsrKSBhcnJbaV0gPSBiaW4uY2hhckNvZGVBdChpKTtcbiAgICAgICAgY29uc3QgZXh0ID0gbWltZS5zcGxpdChcIi9cIilbMV0gfHwgXCJwbmdcIjtcbiAgICAgICAgY29uc3QgYmFzZSA9IG9yaWdpbmFsRmlsZS5uYW1lLnJlcGxhY2UoL1xcLlteLl0rJC8sIFwiXCIpO1xuICAgICAgICByZXR1cm4gbmV3IEZpbGUoW2Fycl0sIGAke2Jhc2V9LXByb2Nlc3NlZC4ke2V4dH1gLCB7IHR5cGU6IG1pbWUsIGxhc3RNb2RpZmllZDogRGF0ZS5ub3coKSB9KTtcbiAgICB9XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHBheWxvYWQpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBkYXRhLmFwcGVuZChcIm1ldGFkYXRhXCIsIEpTT04uc3RyaW5naWZ5KG1ldGFkYXRhKSk7XG4gICAgICAgICAgICBjb25zdCBwcm9jZXNzZWRGaWxlID0gYmFzZTY0VG9GaWxlKHBheWxvYWQsIGZpbGUsIFwiaW1hZ2UvcG5nXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIHByb2Nlc3NlZEZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSBnZXRGZXRjaENvbmZpZyhkYXRhKTtcbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQW4gZXJyb3IgaGFzIGFjY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEucGF5bG9hZCA9IHBheWxvYWQ7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkLmN1cnJlbnQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKCkgPT4gZXZlbnQgPT4ge1xuICAgICAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJcXG5cXG5cXG5cXG5GSUxFIDogXCIsIGZpbGUpO1xuICAgICAgICAgICAgICAgIGFsbEZpbGVzLnB1c2goZmlsZUluZm8pO1xuICAgICAgICAgICAgICAgIGlmIChhbGxGaWxlcy5sZW5ndGggPT09IGZpbGVzLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAobXVsdGlwbGUgPT09IHRydWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXRGaWxlcyhhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5mb3JtKSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2F1dG9SZW1vdmVCYWNrZ3JvdW5kJywgZmFsc2UpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcm9jZXNzKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYWxsRmlsZXNbMF0uYmFzZTY0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBoYW5kbGVsb2FkRW5kZWQoYWxsRmlsZXMsIGRhdGEpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSwgYWxsRmlsZXNbMF0uYmFzZTY0LCAncmVtb3ZlQmFja2dyb3VuZCcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgaGFuZGxlbG9hZEVuZGVkKGFsbEZpbGUsIHJlYWRlci5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpZXdlckZpbGUoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZWxvYWRFbmRlZCA9IChhbGxGaWxlcywgcGF5bG9hZCkgPT4ge1xuICAgICAgICBsZXQgZmlsZU1ldGFEYXRhID0ge307XG4gICAgICAgIGZpbGVNZXRhRGF0YS5uYW1lID0gYWxsRmlsZXNbMF0ubmFtZTtcbiAgICAgICAgZmlsZU1ldGFEYXRhLnR5cGUgPSBhbGxGaWxlc1swXS50eXBlO1xuICAgICAgICBmaWxlTWV0YURhdGEuc2l6ZSA9IGFsbEZpbGVzWzBdLnNpemU7XG5cbiAgICAgICAgaWYgKGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5pZCA9IGJhc2UudmFsdWUuaWQ7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPSBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCdiYXNlNjQnID09PSBwYXlsb2FkU3RvcmFnZU1vZGUpIHtcbiAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5wYXlsb2FkID0gYWxsRmlsZXNbMF0uYmFzZTY0O1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShmaWxlTWV0YURhdGEpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9tYWluID0gcHJvcHMudmlld0lkO1xuXG4gICAgICAgICAgICBpZiAoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNhY2hlSWQuY3VycmVudCA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHBheWxvYWQpO1xuICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcGF5bG9hZCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBsZXQgY29udGFpbmVyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX2ltYWdlX2NvbnRhaW5lclwiKTtcbiAgICAgICAgbGV0IGltYWdlID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoXCJfX2ltYWdlXCIpO1xuICAgICAgICBpZiAoY29udGFpbmVyKSB7XG4gICAgICAgICAgICBsZXQgcmF0aW8gPSAoMTAgKiB6b29tRGVwdGgpIC8gMTAwO1xuXG4gICAgICAgICAgICBjb250YWluZXIuc3R5bGUud2lkdGggPSBvcmlnaW5hbEltYWdlV2lkdGggKyAob3JpZ2luYWxJbWFnZVdpZHRoICogcmF0aW8pICsgXCJweFwiO1xuICAgICAgICAgICAgY29udGFpbmVyLnN0eWxlLmhlaWdodCA9IG9yaWdpbmFsSW1hZ2VIZWlnaHQgKyAob3JpZ2luYWxJbWFnZUhlaWdodCAqIHJhdGlvKSArIFwicHhcIjtcblxuICAgICAgICAgICAgaW1hZ2Uuc3R5bGUud2lkdGggPSBjb250YWluZXIuc3R5bGUud2lkdGg7XG4gICAgICAgICAgICBpbWFnZS5zdHlsZS5oZWlnaHQgPSBjb250YWluZXIuc3R5bGUuaGVpZ2h0O1xuICAgICAgICB9XG4gICAgfSwgW3pvb21EZXB0aF0pO1xuXG4gICAgZnVuY3Rpb24gcHJvY2VzcyhjYWxsYmFjaywgZGF0YSwgYWN0aW9uKSB7XG4gICAgICAgIGxldCBmZXRjaENvbmZpZyA9IGdldEZldGNoQ29uZmlnKGRhdGEpO1xuICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKVxuICAgICAgICAgICAgKyBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAncHJvY2Vzc2luZ1VybCcsIG51bGwpXG4gICAgICAgICAgICArIFwiL1wiICsgYWN0aW9uICsgXCIvXCIgKyBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCBcIm1vZGVcIiwgXCJET0NcIik7XG4gICAgICAgIGxldCByb3RhdGVBbmdsZSA9IGdldFJvdGF0ZUFuZ2xlKGFjdGlvbik7XG4gICAgICAgIGlmIChyb3RhdGVBbmdsZSkge1xuICAgICAgICAgICAgdXJsICs9IFwiP2FuZ2xlPVwiICsgcm90YXRlQW5nbGU7XG4gICAgICAgIH1cblxuICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY2FsbGJhY2soZGF0YSk7XG4gICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3Qgem9vbSA9IChkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgaWYgKG9yaWdpbmFsSW1hZ2VXaWR0aCA9PT0gbnVsbCkge1xuICAgICAgICAgICAgc2V0T3JpZ2luYWxJbWFnZVdpZHRoKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZVwiKS53aWR0aCk7XG4gICAgICAgICAgICBzZXRPcmlnaW5hbEltYWdlSGVpZ2h0KGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZVwiKS5oZWlnaHQpO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IGRlcHRoID0gZGlyZWN0aW9uID09PSBcIkluXCIgPyB6b29tRGVwdGggKyAxIDogem9vbURlcHRoIC0gMTtcbiAgICAgICAgaWYgKGRlcHRoIDw9IDApIHtcbiAgICAgICAgICAgIGRlcHRoID0gMTtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFpvb21EZXB0aChkZXB0aCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHJvdGF0ZSA9IChkaXJlY3Rpb24pID0+IHtcbiAgICAgICAgbGV0IHJvdGF0ZU1vZGUgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCBcInJvdGF0ZU1vZGVcIiwgbnVsbCk7XG4gICAgICAgIGlmIChyb3RhdGVNb2RlID09PSBudWxsIHx8IHJvdGF0ZU1vZGUgPT09ICdTRVJWRVInKSB7XG4gICAgICAgICAgICBwcm9jZXNzKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgZmlsZXNbMF0uYmFzZTY0ID0gZGF0YTtcbiAgICAgICAgICAgICAgICBzZXRWaWV3ZXJGaWxlKHsuLi5maWxlc1swXSwgYmFzZTY0OiBkYXRhfSk7XG4gICAgICAgICAgICAgICAgaGFuZGxlbG9hZEVuZGVkKGZpbGVzLCBkYXRhKTtcbiAgICAgICAgICAgIH0sIGZpbGVzWzBdLmJhc2U2NCwgJ3JvdGF0ZScgKyBkaXJlY3Rpb24pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHJvdGF0ZUFuZ2xlID0gYW5nbGUgKyBnZXRSb3RhdGVBbmdsZShcInJvdGF0ZVwiICsgZGlyZWN0aW9uKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKFwiX19pbWFnZV9jb250YWluZXJcIikuc3R5bGUudHJhbnNmb3JtID0gXCJyb3RhdGUoXCIgKyByb3RhdGVBbmdsZSArIFwiZGVnKVwiO1xuICAgICAgICAgICAgc2V0QW5nbGUocm90YXRlQW5nbGUpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHt3aWR0aDogd2lkdGh9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJvd1wifSBzdHlsZT17e21hcmdpbkxlZnQ6ICcwJywgbWFyZ2luUmlnaHQ6ICcwJ319PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbGFiZWwnLCAnJyl9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcInJvd1wifSBzdHlsZT17e21hcmdpbkxlZnQ6ICcwJywgbWFyZ2luUmlnaHQ6ICcwJ319PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0+XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtcImltYWdlL2pwZWcsaW1hZ2UvZ2lmLGltYWdlL3BuZyxpbWFnZS94LWVwc1wifVxuICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmlucHV0fVxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJzEyMHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6ICc0MHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVUExPQURcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCI4cHggMFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wiY29sLSotKlwifSBzdHlsZT17e21hcmdpbkxlZnQ6ICc0cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD17J2NvbnRhaW5lZCd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNpemU9XCJsYXJnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6ICc0MHB4JywgaGVpZ2h0OiAnNDBweCd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiByb3RhdGUoJ0xlZnQnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1JPVEFURV9MRUZUJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnNDBweCcsIGhlaWdodDogJzQwcHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gcm90YXRlKCdSaWdodCcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnUk9UQVRFX1JJR0hUJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImNvbC0qLSpcIn0gc3R5bGU9e3ttYXJnaW5MZWZ0OiAnNHB4J319PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9eydjb250YWluZWQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwibGFyZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAnNDBweCcsIGhlaWdodDogJzQwcHgnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4gem9vbSgnT3V0Jyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydaT09NX09VVCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17XCJjb2wtKi0qXCJ9IHN0eWxlPXt7bWFyZ2luTGVmdDogJzRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PXsnY29udGFpbmVkJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cImxhcmdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogJzQwcHgnLCBoZWlnaHQ6ICc0MHB4J319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHpvb20oJ0luJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0YXJ0SWNvbj17PEljb24gaWQ9eydaT09NX0lOJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSB8fCAhVXRpbHMuaXNOdWxsKHZpZXdlckZpbGUpID9cbiAgICAgICAgICAgICAgICAgICAgKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFR3byBkaXNwbGF5IG1vZGVzOlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtIGRlZmF1bHQgKG5vIHVzZXItZHJpdmVuIHpvb20pOiBpbWFnZSBmaXRzIHRoZSBib3gsXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyAgICAgb2JqZWN0LWZpdCBjb250YWluLCBwYXJlbnQgb3ZlcmZsb3cgaGlkZGVuIOKGkiBubyBzY3JvbGxiYXJzLlxuICAgICAgICAgICAgICAgICAgICAgICAgLy8gICAtIHpvb21lZCAodXNlciBjbGlja2VkIFpvb20gSW4pOiBleHBsaWNpdCB3aWR0aC9oZWlnaHRcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICBhcHBsaWVkIGJ5IHRoZSB6b29tIHVzZUVmZmVjdCwgcGFyZW50IG92ZXJmbG93IGF1dG8gc29cbiAgICAgICAgICAgICAgICAgICAgICAgIC8vICAgICB0aGUgdXNlciBjYW4gcGFuIGFyb3VuZCB0aGUgbGFyZ2VyLXRoYW4tYm94IGltYWdlLlxuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgaXNab29tZWQgPSB6b29tRGVwdGggIT09IG51bGwgJiYgem9vbURlcHRoID4gMDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9e1wicm93XCJ9IHN0eWxlPXt7cGFkZGluZzogXCI4cHggMFwiLCBtYXJnaW5MZWZ0OiAnMCcsIG1hcmdpblJpZ2h0OiAnMCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBpZD1cIl9faW1hZ2VfcGFyZW50XCIgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiBcIjEwMCVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogaGVpZ2h0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFJlcGVhdDogJ25vLXJlcGVhdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kU2l6ZTogJ2NvdmVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRJbWFnZTogYHVybCgke3JlcXVpcmUoJy4vdHJhbnNwYXJlbnQuanBlZycpfSlgLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNlMWUxZTEnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBpc1pvb21lZCA/ICdhdXRvJyA6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm94U2l6aW5nOiAnYm9yZGVyLWJveCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBqdXN0aWZ5Q29udGVudDogJ2NlbnRlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc2cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19IGNsYXNzTmFtZT1cImNvbC0qLSpcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgaWQ9e1wiX19pbWFnZV9jb250YWluZXJcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaXNab29tZWRcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA/IHtkaXNwbGF5OiAnaW5saW5lLWJsb2NrJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAganVzdGlmeUNvbnRlbnQ6ICdjZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbGlnbkl0ZW1zOiAnY2VudGVyJ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGlkPXtcIl9faW1hZ2VcIn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17dmlld2VyRmlsZT8uYmFzZTY0IHx8IGJhc2UudmFsdWU/LnVybH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD17Jyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcmFnZ2FibGU9e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlzWm9vbWVkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8ge2Rpc3BsYXk6ICdibG9jaycsIHVzZXJTZWxlY3Q6ICdub25lJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4SGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogJ2F1dG8nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RGaXQ6ICdjb250YWluJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdibG9jaycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VyU2VsZWN0OiAnbm9uZSdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICB9KSgpXG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBjb25zdCBJbWFnZUVkaXRvciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2ZpbGUsIHNldEZpbGVdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2xlYXJUcmlnZ2VyID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxJbWFnZUVkaXRvckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsZT17ZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0ltYWdlRWRpdG9yQ29tcG9uZW50PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IEltYWdlRWRpdG9yO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxNQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxtQkFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sS0FBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sb0JBQUEsR0FBQVAsT0FBQTtBQUNBLElBQUFRLE1BQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFdBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLFVBQUEsR0FBQVgsc0JBQUEsQ0FBQUMsT0FBQTtBQUE4QyxTQUFBRCx1QkFBQVksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENBQUEsR0FBQVEsU0FBQSxDQUFBQyxNQUFBLEVBQUFULENBQUEsVUFBQVUsQ0FBQSxHQUFBRixTQUFBLENBQUFSLENBQUEsWUFBQVcsQ0FBQSxJQUFBRCxDQUFBLE9BQUFFLGNBQUEsQ0FBQUMsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsTUFBQUosQ0FBQSxDQUFBSSxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxhQUFBSixDQUFBLEtBQUFKLFFBQUEsQ0FBQVcsS0FBQSxPQUFBTixTQUFBO0FBQUEsU0FBQU8sUUFBQWYsQ0FBQSxFQUFBVyxDQUFBLFFBQUFELENBQUEsR0FBQU4sTUFBQSxDQUFBWSxJQUFBLENBQUFoQixDQUFBLE9BQUFJLE1BQUEsQ0FBQWEscUJBQUEsUUFBQUMsQ0FBQSxHQUFBZCxNQUFBLENBQUFhLHFCQUFBLENBQUFqQixDQUFBLEdBQUFXLENBQUEsS0FBQU8sQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQVIsQ0FBQSxXQUFBUCxNQUFBLENBQUFnQix3QkFBQSxDQUFBcEIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFVLFVBQUEsT0FBQVgsQ0FBQSxDQUFBWSxJQUFBLENBQUFSLEtBQUEsQ0FBQUosQ0FBQSxFQUFBUSxDQUFBLFlBQUFSLENBQUE7QUFBQSxTQUFBYSxjQUFBdkIsQ0FBQSxhQUFBVyxDQUFBLE1BQUFBLENBQUEsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLEVBQUFFLENBQUEsVUFBQUQsQ0FBQSxXQUFBRixTQUFBLENBQUFHLENBQUEsSUFBQUgsU0FBQSxDQUFBRyxDQUFBLFFBQUFBLENBQUEsT0FBQUksT0FBQSxDQUFBWCxNQUFBLENBQUFNLENBQUEsT0FBQWMsT0FBQSxXQUFBYixDQUFBLElBQUFjLGVBQUEsQ0FBQXpCLENBQUEsRUFBQVcsQ0FBQSxFQUFBRCxDQUFBLENBQUFDLENBQUEsU0FBQVAsTUFBQSxDQUFBc0IseUJBQUEsR0FBQXRCLE1BQUEsQ0FBQXVCLGdCQUFBLENBQUEzQixDQUFBLEVBQUFJLE1BQUEsQ0FBQXNCLHlCQUFBLENBQUFoQixDQUFBLEtBQUFLLE9BQUEsQ0FBQVgsTUFBQSxDQUFBTSxDQUFBLEdBQUFjLE9BQUEsV0FBQWIsQ0FBQSxJQUFBUCxNQUFBLENBQUF3QixjQUFBLENBQUE1QixDQUFBLEVBQUFXLENBQUEsRUFBQVAsTUFBQSxDQUFBZ0Isd0JBQUEsQ0FBQVYsQ0FBQSxFQUFBQyxDQUFBLGlCQUFBWCxDQUFBO0FBQUEsU0FBQXlCLGdCQUFBekIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFELENBQUEsWUFBQUMsQ0FBQSxHQUFBa0IsY0FBQSxDQUFBbEIsQ0FBQSxNQUFBWCxDQUFBLEdBQUFJLE1BQUEsQ0FBQXdCLGNBQUEsQ0FBQTVCLENBQUEsRUFBQVcsQ0FBQSxJQUFBbUIsS0FBQSxFQUFBcEIsQ0FBQSxFQUFBVyxVQUFBLE1BQUFVLFlBQUEsTUFBQUMsUUFBQSxVQUFBaEMsQ0FBQSxDQUFBVyxDQUFBLElBQUFELENBQUEsRUFBQVYsQ0FBQTtBQUFBLFNBQUE2QixlQUFBbkIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBQyxZQUFBLENBQUF4QixDQUFBLHVDQUFBdUIsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBeEIsQ0FBQSxFQUFBQyxDQUFBLDJCQUFBRCxDQUFBLEtBQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBVixDQUFBLEdBQUFVLENBQUEsQ0FBQXlCLE1BQUEsQ0FBQUMsV0FBQSxrQkFBQXBDLENBQUEsUUFBQWlDLENBQUEsR0FBQWpDLENBQUEsQ0FBQWEsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsdUNBQUFzQixDQUFBLFNBQUFBLENBQUEsWUFBQUksU0FBQSx5RUFBQTFCLENBQUEsR0FBQTJCLE1BQUEsR0FBQUMsTUFBQSxFQUFBN0IsQ0FBQTtBQUU5QyxNQUFNOEIsU0FBUyxHQUFHLElBQUFDLGtCQUFVLEVBQUNDLEtBQUssS0FBSztFQUNuQ0MsTUFBTSxFQUFFO0lBQ0pDLE1BQU0sRUFBRUYsS0FBSyxDQUFDRyxPQUFPLENBQUMsQ0FBQztFQUMzQixDQUFDO0VBQ0RDLEtBQUssRUFBRTtJQUNIQyxPQUFPLEVBQUU7RUFDYixDQUFDO0VBQ0RDLG1CQUFtQixFQUFFO0lBQ2pCQyxLQUFLLEVBQUU7RUFDWDtBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsTUFBTSxHQUFJQyxRQUFRLElBQUs7RUFDekIsSUFBSUEsUUFBUSxDQUFDQyxFQUFFLEVBQUU7SUFDYixPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO0VBQ3BDLENBQUMsTUFBTTtJQUNILE9BQU9FLE9BQU8sQ0FBQ0UsTUFBTSxDQUFDO01BQUNDLElBQUksRUFBRUwsUUFBUSxDQUFDRCxNQUFNO01BQUVPLE9BQU8sRUFBRU4sUUFBUSxDQUFDTztJQUFVLENBQUMsQ0FBQztFQUNoRjtBQUNKLENBQUM7QUFFRCxNQUFNQyxJQUFJLEdBQUlSLFFBQVEsSUFBSztFQUN2QixPQUFPQSxRQUFRLENBQUNTLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNQyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRSxRQUFRLEdBQUcsSUFBSSxHQUFHRCxNQUFNLENBQUNELFFBQVEsQ0FBQ0csUUFBUTtBQUNwRSxNQUFNQyxvQkFBb0IsR0FBQUMsT0FBQSxDQUFBRCxvQkFBQSxnQkFBR0UsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUN0RCxNQUFNLENBQUNDLFVBQVUsRUFBRUMsYUFBYSxDQUFDLEdBQUdKLGNBQUssQ0FBQ0ssUUFBUSxDQUFDLENBQUNDLGNBQUssQ0FBQ0MsTUFBTSxDQUFDTCxLQUFLLENBQUNNLFdBQVcsQ0FBQyxHQUFHTixLQUFLLENBQUNNLFdBQVcsR0FBRyxJQUFJLENBQUM7RUFDL0csTUFBTSxDQUFDQyxLQUFLLEVBQUVDLFFBQVEsQ0FBQyxHQUFHVixjQUFLLENBQUNLLFFBQVEsQ0FBQyxDQUFDLENBQUM7RUFDM0MsTUFBTSxDQUFDTSxTQUFTLEVBQUVDLFlBQVksQ0FBQyxHQUFHWixjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDdEQsTUFBTSxDQUFDUSxrQkFBa0IsRUFBRUMscUJBQXFCLENBQUMsR0FBR2QsY0FBSyxDQUFDSyxRQUFRLENBQUMsSUFBSSxDQUFDO0VBQ3hFLE1BQU0sQ0FBQ1UsbUJBQW1CLEVBQUVDLHNCQUFzQixDQUFDLEdBQUdoQixjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDMUUsTUFBTSxDQUFDWSxrQkFBa0IsRUFBRUMscUJBQXFCLENBQUMsR0FBR2xCLGNBQUssQ0FBQ0ssUUFBUSxDQUFDSCxLQUFLLENBQUNpQixNQUFNLENBQUNGLGtCQUFrQixJQUFJLFFBQVEsQ0FBQztFQUMvRyxNQUFNLENBQUNHLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUdyQixjQUFLLENBQUNLLFFBQVEsQ0FBQyxDQUFDQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ0wsS0FBSyxDQUFDTSxXQUFXLENBQUMsR0FBRyxDQUFDTixLQUFLLENBQUNNLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztFQUN2RyxNQUFNLENBQUNjLFFBQVEsQ0FBQyxHQUFHdEIsY0FBSyxDQUFDSyxRQUFRLENBQUNILEtBQUssQ0FBQ29CLFFBQVEsS0FBSyxJQUFJLENBQUM7RUFDMUQsTUFBTUMsT0FBTyxHQUFHbEQsU0FBUyxDQUFDLENBQUM7RUFDM0IsTUFBTW1ELEtBQUssR0FBR2xCLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDdkIsS0FBSyxDQUFDaUIsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7RUFDekUsTUFBTU8sTUFBTSxHQUFHcEIsY0FBSyxDQUFDbUIscUJBQXFCLENBQUN2QixLQUFLLENBQUNpQixNQUFNLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQztFQUMzRSxNQUFNUSxPQUFPLEdBQUczQixjQUFLLENBQUM0QixNQUFNLENBQUMsQ0FBQ3RCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDTCxLQUFLLENBQUMyQixJQUFJLENBQUNsRSxLQUFLLENBQUMsR0FBR3VDLEtBQUssQ0FBQzJCLElBQUksQ0FBQ2xFLEtBQUssQ0FBQ21FLHlCQUF5QixHQUFHLElBQUksQ0FBQztFQUNqSCxNQUFNRCxJQUFJLEdBQUczQixLQUFLLENBQUMyQixJQUFJO0VBRXZCN0IsY0FBSyxDQUFDK0IsU0FBUyxDQUFDLE1BQU07SUFDbEIsT0FBTyxNQUFNO01BQ1QsSUFBR0osT0FBTyxDQUFDSyxPQUFPLEVBQUU7UUFDaEI7TUFBQTtJQUVSLENBQUM7RUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU5oQyxjQUFLLENBQUMrQixTQUFTLENBQUMsTUFBTTtJQUNsQjNCLGFBQWEsQ0FBQ0YsS0FBSyxDQUFDTSxXQUFXLENBQUM7RUFDcEMsQ0FBQyxFQUFFLENBQUNOLEtBQUssQ0FBQ00sV0FBVyxDQUFDLENBQUM7RUFFdkIsU0FBU3lCLGNBQWNBLENBQUNDLElBQUksRUFBRTtJQUMxQixNQUFNQyxXQUFXLEdBQUdDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztJQUN6RCxNQUFNQyxPQUFPLEdBQUdGLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDLFNBQVMsQ0FBQztJQUVqRCxPQUFPO01BQ0hFLE1BQU0sRUFBRSxNQUFNO01BQ2RDLE9BQU8sRUFBRTtRQUNMLFFBQVEsRUFBRSxrQkFBa0I7UUFDNUIsZUFBZSxFQUFFLFNBQVMsR0FBR0wsV0FBVztRQUN4QyxTQUFTLEVBQUVHO01BQ2YsQ0FBQztNQUNERyxJQUFJLEVBQUVQO0lBQ1YsQ0FBQztFQUNMO0VBRUEsU0FBU1EsY0FBY0EsQ0FBQ0MsTUFBTSxFQUFFO0lBQzVCLElBQUlDLFdBQVcsR0FBRyxJQUFJO0lBRXRCLElBQUksWUFBWSxLQUFLRCxNQUFNLEVBQUU7TUFDekJDLFdBQVcsR0FBRyxDQUFDLEVBQUU7SUFDckIsQ0FBQyxNQUFNLElBQUksYUFBYSxLQUFLRCxNQUFNLEVBQUU7TUFDakNDLFdBQVcsR0FBRyxFQUFFO0lBQ3BCO0lBRUEsT0FBT0EsV0FBVztFQUN0QjtFQUVBLFNBQVNDLFlBQVlBLENBQUNDLEdBQUcsRUFBRUMsWUFBWSxFQUFzQjtJQUFBLElBQXBCQyxJQUFJLEdBQUEzRyxTQUFBLENBQUFDLE1BQUEsUUFBQUQsU0FBQSxRQUFBNEcsU0FBQSxHQUFBNUcsU0FBQSxNQUFHLFdBQVc7SUFDdkQsTUFBTTZHLEtBQUssR0FBR0osR0FBRyxDQUFDSyxVQUFVLENBQUMsT0FBTyxDQUFDLEdBQUdMLEdBQUcsQ0FBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHTixHQUFHO0lBQy9ELE1BQU1PLEdBQUcsR0FBR0MsSUFBSSxDQUFDSixLQUFLLENBQUM7SUFDdkIsTUFBTUssR0FBRyxHQUFHLElBQUlDLFVBQVUsQ0FBQ0gsR0FBRyxDQUFDL0csTUFBTSxDQUFDO0lBQ3RDLEtBQUssSUFBSXdCLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3VGLEdBQUcsQ0FBQy9HLE1BQU0sRUFBRXdCLENBQUMsRUFBRSxFQUFFeUYsR0FBRyxDQUFDekYsQ0FBQyxDQUFDLEdBQUd1RixHQUFHLENBQUNJLFVBQVUsQ0FBQzNGLENBQUMsQ0FBQztJQUMvRCxNQUFNNEYsR0FBRyxHQUFHVixJQUFJLENBQUNJLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxLQUFLO0lBQ3ZDLE1BQU12QixJQUFJLEdBQUdrQixZQUFZLENBQUNZLElBQUksQ0FBQ0MsT0FBTyxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFDdEQsT0FBTyxJQUFJQyxJQUFJLENBQUMsQ0FBQ04sR0FBRyxDQUFDLEtBQUFPLE1BQUEsQ0FBS2pDLElBQUksaUJBQUFpQyxNQUFBLENBQWNKLEdBQUcsR0FBSTtNQUFFSyxJQUFJLEVBQUVmLElBQUk7TUFBRWdCLFlBQVksRUFBRUMsSUFBSSxDQUFDQyxHQUFHLENBQUM7SUFBRSxDQUFDLENBQUM7RUFDaEc7RUFFQSxNQUFNQyxNQUFNLEdBQUdBLENBQUNDLFFBQVEsRUFBRUMsSUFBSSxFQUFFQyxPQUFPLEtBQUs7SUFDeEMsSUFBSUMsU0FBUyxHQUFHakUsY0FBSyxDQUFDbUIscUJBQXFCLENBQUN2QixLQUFLLENBQUNpQixNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztJQUM1RSxJQUFHb0QsU0FBUyxLQUFLLElBQUksRUFBRTtNQUNuQkEsU0FBUyxHQUFHQywyQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsR0FBRyxrQ0FBa0M7SUFDeEY7SUFFQSxJQUFJeEQsa0JBQWtCLEdBQUdmLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQ0Ysa0JBQWtCO0lBQ3hELElBQUdBLGtCQUFrQixLQUFLLE1BQU0sRUFBQztNQUM3QixNQUFNa0IsV0FBVyxHQUFHQyxjQUFjLENBQUNDLE9BQU8sQ0FBQyxhQUFhLENBQUM7TUFDekQsTUFBTUMsT0FBTyxHQUFHRixjQUFjLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUM7TUFDakQsSUFBSUgsSUFBSSxHQUFHLElBQUl3QyxRQUFRLENBQUMsQ0FBQztNQUN6Qk4sUUFBUSxDQUFDTyxhQUFhLEdBQUd6RSxLQUFLLENBQUMwRSxNQUFNLEdBQUcsR0FBRyxHQUFHMUUsS0FBSyxDQUFDaUIsTUFBTSxDQUFDMEQsRUFBRTtNQUM3RDNDLElBQUksQ0FBQzRDLE1BQU0sQ0FBQyxVQUFVLEVBQUVDLElBQUksQ0FBQ0MsU0FBUyxDQUFDWixRQUFRLENBQUMsQ0FBQztNQUNqRCxNQUFNYSxhQUFhLEdBQUdwQyxZQUFZLENBQUN5QixPQUFPLEVBQUVELElBQUksRUFBRSxXQUFXLENBQUM7TUFDOURuQyxJQUFJLENBQUM0QyxNQUFNLENBQUMsTUFBTSxFQUFFRyxhQUFhLENBQUM7TUFFbEMsSUFBSUMsV0FBVyxHQUFHakQsY0FBYyxDQUFDQyxJQUFJLENBQUM7TUFDdEMsSUFBSWlELEdBQUcsR0FBR3pGLFFBQVEsR0FBRzZFLFNBQVM7TUFDOUIsSUFBQWEsaUNBQVksRUFDUkMsS0FBSyxDQUFDQyxTQUFTLENBQUNILEdBQUcsQ0FBQyxFQUFFRCxXQUFXLENBQUMsQ0FDN0JLLElBQUksQ0FBQ3hHLE1BQU0sQ0FBQyxDQUNad0csSUFBSSxDQUFDL0YsSUFBSSxDQUFDLENBQ1YrRixJQUFJLENBQUVyRCxJQUFJLElBQUs7UUFDWmtDLFFBQVEsQ0FBQ29CLG9CQUFvQixHQUFHLENBQUNsRixjQUFLLENBQUNDLE1BQU0sQ0FBQ3NCLElBQUksQ0FBQ2xFLEtBQUssQ0FBQyxHQUFHa0UsSUFBSSxDQUFDbEUsS0FBSyxDQUFDNkgsb0JBQW9CLEdBQUcsSUFBSTtRQUNsR3BCLFFBQVEsQ0FBQ3RDLHlCQUF5QixHQUFHSSxJQUFJO1FBQ3pDUCxPQUFPLENBQUNLLE9BQU8sR0FBR0UsSUFBSTtRQUN0QkwsSUFBSSxDQUFDNEQsaUJBQWlCLENBQUNyQixRQUFRLENBQUM7TUFDcEMsQ0FBQyxDQUFDLENBQUNzQixLQUFLLENBQ1A3SixDQUFDLElBQUs7UUFDSCxJQUFJQSxDQUFDLENBQUN3RCxJQUFJLEtBQUssR0FBRyxFQUFFO1VBQ2hCbUYsMkJBQWtCLENBQUNtQixLQUFLLENBQUMsQ0FBQztVQUMxQm5CLDJCQUFrQixDQUFDb0IscUJBQXFCLENBQUMsQ0FBQyxDQUFDekksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3RDtRQUVBLElBQUltQyxPQUFPLEdBQUc7VUFDVnVHLFdBQVcsRUFBRSxPQUFPO1VBQ3BCdkcsT0FBTyxFQUFFO1FBQ2IsQ0FBQztRQUVELElBQUl3RyxLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDdkIsMkJBQWtCLEVBQUV0RSxLQUFLLENBQUMwRSxNQUFNLEVBQUV0RixPQUFPLENBQUM7UUFDaEUwRyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLGVBQWUsRUFBRUwsS0FBSyxDQUFDO01BQzVELENBQUMsQ0FDVCxDQUFDO0lBQ0wsQ0FBQyxNQUFNO01BQ0gxQixRQUFRLENBQUNFLE9BQU8sR0FBR0EsT0FBTztNQUMxQnpDLElBQUksQ0FBQzRELGlCQUFpQixDQUFDckIsUUFBUSxDQUFDO0lBQ3BDO0VBQ0osQ0FBQztFQUVELE1BQU1nQyxNQUFNLEdBQUdBLENBQUEsS0FBTTtJQUNqQixPQUFPLElBQUlsSCxPQUFPLENBQUMsQ0FBQ0MsT0FBTyxFQUFFQyxNQUFNLEtBQUs7TUFDcEMsTUFBTStDLFdBQVcsR0FBR0MsY0FBYyxDQUFDQyxPQUFPLENBQUMsYUFBYSxDQUFDO01BQ3pELE1BQU1DLE9BQU8sR0FBR0YsY0FBYyxDQUFDQyxPQUFPLENBQUMsU0FBUyxDQUFDO01BRWpELElBQUk2QyxXQUFXLEdBQUc7UUFDZDNDLE1BQU0sRUFBRSxLQUFLO1FBQ2JDLE9BQU8sRUFBRTtVQUNMLFFBQVEsRUFBRSxrQkFBa0I7VUFDNUIsZUFBZSxFQUFFLFNBQVMsR0FBR0wsV0FBVztVQUN4QyxTQUFTLEVBQUVHLE9BQU87VUFDbEIsUUFBUSxFQUFFa0MsMkJBQWtCLENBQUM2QixlQUFlLENBQUM7UUFDakQ7TUFDSixDQUFDO01BRUQsSUFBSWxCLEdBQUcsR0FBR3pGLFFBQVEsR0FBRzhFLDJCQUFrQixDQUFDQyxjQUFjLENBQUMsQ0FBQyxHQUFHLHFDQUFxQyxHQUFHOUMsT0FBTyxDQUFDSyxPQUFPO01BQ2xILElBQUFvRCxpQ0FBWSxFQUNSQyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0gsR0FBRyxDQUFDLEVBQUVELFdBQVcsQ0FBQyxDQUM3QkssSUFBSSxDQUFDeEcsTUFBTSxDQUFDLENBQ1p3RyxJQUFJLENBQUMsTUFBTTtRQUNScEcsT0FBTyxDQUFDLENBQUM7TUFDYixDQUFDLENBQUMsQ0FBQ3VHLEtBQUssQ0FDUDdKLENBQUMsSUFBSztRQUNILElBQUlBLENBQUMsQ0FBQ3dELElBQUksS0FBSyxHQUFHLEVBQUU7VUFDaEJtRiwyQkFBa0IsQ0FBQ21CLEtBQUssQ0FBQyxDQUFDO1VBQzFCbkIsMkJBQWtCLENBQUNvQixxQkFBcUIsQ0FBQyxDQUFDLENBQUN6SSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdELENBQUMsTUFBTTtVQUNIaUMsTUFBTSxDQUFDdkQsQ0FBQyxDQUFDO1FBQ2I7TUFDSixDQUFDLENBQ1QsQ0FBQztJQUNMLENBQUMsQ0FBQztFQUNOLENBQUM7RUFFRCxNQUFNeUssWUFBWSxHQUFHQSxDQUFBLEtBQU1SLEtBQUssSUFBSTtJQUNoQyxJQUFJMUUsS0FBSyxHQUFHMEUsS0FBSyxDQUFDUyxNQUFNLENBQUNuRixLQUFLO0lBQzlCLElBQUlvRixRQUFRLEdBQUcsRUFBRTtJQUNqQixLQUFLLElBQUkxSSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdzRCxLQUFLLENBQUM5RSxNQUFNLEVBQUV3QixDQUFDLEVBQUUsRUFBRTtNQUNuQyxJQUFJdUcsSUFBSSxHQUFHakQsS0FBSyxDQUFDdEQsQ0FBQyxDQUFDO01BQ25CLElBQUkySSxNQUFNLEdBQUcsSUFBSUMsVUFBVSxDQUFDLENBQUM7TUFDN0JELE1BQU0sQ0FBQ0UsYUFBYSxDQUFDdEMsSUFBSSxDQUFDO01BQzFCb0MsTUFBTSxDQUFDRyxNQUFNLEdBQUcsTUFBTTtRQUNsQixJQUFJQyxRQUFRLEdBQUc7VUFDWGxELElBQUksRUFBRVUsSUFBSSxDQUFDVixJQUFJO1VBQ2ZJLElBQUksRUFBRU0sSUFBSSxDQUFDTixJQUFJO1VBQ2YrQyxJQUFJLEVBQUV6QyxJQUFJLENBQUN5QyxJQUFJO1VBQ2ZDLE1BQU0sRUFBRU4sTUFBTSxDQUFDTyxNQUFNO1VBQ3JCM0MsSUFBSSxFQUFFQTtRQUNWLENBQUM7UUFFRDRDLE9BQU8sQ0FBQ0MsR0FBRyxDQUFDLGlCQUFpQixFQUFFN0MsSUFBSSxDQUFDO1FBQ3BDbUMsUUFBUSxDQUFDckosSUFBSSxDQUFDMEosUUFBUSxDQUFDO1FBQ3ZCLElBQUlMLFFBQVEsQ0FBQ2xLLE1BQU0sS0FBSzhFLEtBQUssQ0FBQzlFLE1BQU0sRUFBRTtVQUNsQyxJQUFJZ0YsUUFBUSxLQUFLLElBQUksRUFBRTtZQUNuQixJQUFJLENBQUNoQixjQUFLLENBQUNDLE1BQU0sQ0FBQ0wsS0FBSyxDQUFDaUgsZUFBZSxDQUFDLEVBQUU7Y0FDdENqSCxLQUFLLENBQUNpSCxlQUFlLENBQUNYLFFBQVEsQ0FBQztZQUNuQztVQUNKLENBQUMsTUFBTTtZQUNILElBQUksQ0FBQ2xHLGNBQUssQ0FBQ0MsTUFBTSxDQUFDTCxLQUFLLENBQUNpSCxlQUFlLENBQUMsRUFBRTtjQUN0Q2pILEtBQUssQ0FBQ2lILGVBQWUsQ0FBQ1gsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ3RDO1VBQ0o7VUFFQW5GLFFBQVEsQ0FBQ21GLFFBQVEsQ0FBQztRQUN0QjtNQUNKLENBQUM7TUFFREMsTUFBTSxDQUFDVyxTQUFTLEdBQUcsTUFBTTtRQUNyQixJQUFJLENBQUM5RyxjQUFLLENBQUNDLE1BQU0sQ0FBQ0wsS0FBSyxDQUFDbUgsSUFBSSxDQUFDLEVBQUU7VUFDM0IsSUFBSS9HLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDdkIsS0FBSyxDQUFDaUIsTUFBTSxFQUFFLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQzFFbUcsT0FBTyxDQUFFcEYsSUFBSSxJQUFLO2NBQ2RzRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUNPLE1BQU0sR0FBRzdFLElBQUk7Y0FDekI5QixhQUFhLENBQUNvRyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7Y0FDMUJlLGVBQWUsQ0FBQ2YsUUFBUSxFQUFFdEUsSUFBSSxDQUFDO1lBQ25DLENBQUMsRUFBRXNFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ08sTUFBTSxFQUFFLGtCQUFrQixDQUFDO1VBQzlDLENBQUMsTUFBTTtZQUNIUSxlQUFlLENBQUNDLE9BQU8sRUFBRWYsTUFBTSxDQUFDbkMsT0FBTyxDQUFDO1lBQ3hDbEUsYUFBYSxDQUFDb0csUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQzlCO1FBQ0o7TUFDSixDQUFDO0lBQ0w7RUFDSixDQUFDO0VBRUQsTUFBTWUsZUFBZSxHQUFHQSxDQUFDZixRQUFRLEVBQUVsQyxPQUFPLEtBQUs7SUFDM0MsSUFBSW1ELFlBQVksR0FBRyxDQUFDLENBQUM7SUFDckJBLFlBQVksQ0FBQzlELElBQUksR0FBRzZDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzdDLElBQUk7SUFDcEM4RCxZQUFZLENBQUMxRCxJQUFJLEdBQUd5QyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUN6QyxJQUFJO0lBQ3BDMEQsWUFBWSxDQUFDWCxJQUFJLEdBQUdOLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ00sSUFBSTtJQUVwQyxJQUFJakYsSUFBSSxDQUFDbEUsS0FBSyxFQUFFO01BQ1o4SixZQUFZLENBQUM1QyxFQUFFLEdBQUdoRCxJQUFJLENBQUNsRSxLQUFLLENBQUNrSCxFQUFFO01BQy9CNEMsWUFBWSxDQUFDakMsb0JBQW9CLEdBQUczRCxJQUFJLENBQUNsRSxLQUFLLENBQUM2SCxvQkFBb0I7SUFDdkU7SUFFQSxJQUFJLFFBQVEsS0FBS3ZFLGtCQUFrQixFQUFFO01BQ2pDd0csWUFBWSxDQUFDbkQsT0FBTyxHQUFHa0MsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDTyxNQUFNO01BQ3pDbEYsSUFBSSxDQUFDNEQsaUJBQWlCLENBQUNnQyxZQUFZLENBQUM7SUFDeEMsQ0FBQyxNQUFNO01BQ0hBLFlBQVksQ0FBQzlDLGFBQWEsR0FBR3pFLEtBQUssQ0FBQ2lCLE1BQU0sQ0FBQzBELEVBQUU7TUFDNUM0QyxZQUFZLENBQUNDLE1BQU0sR0FBR3hILEtBQUssQ0FBQzBFLE1BQU07TUFFbEMsSUFBSWpELE9BQU8sQ0FBQ0ssT0FBTyxFQUFFO1FBQ2pCb0UsTUFBTSxDQUFDLENBQUMsQ0FBQ2IsSUFBSSxDQUFDLE1BQU07VUFDaEI1RCxPQUFPLENBQUNLLE9BQU8sR0FBRyxJQUFJO1VBQ3RCbUMsTUFBTSxDQUFDc0QsWUFBWSxFQUFFakIsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDbkMsSUFBSSxFQUFFQyxPQUFPLENBQUM7UUFDbkQsQ0FBQyxDQUFDLENBQUNvQixLQUFLLENBQUU3SixDQUFDLElBQUssQ0FDaEIsQ0FBQyxDQUFDO01BQ04sQ0FBQyxNQUFNO1FBQ0hzSSxNQUFNLENBQUNzRCxZQUFZLEVBQUVqQixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUNuQyxJQUFJLEVBQUVDLE9BQU8sQ0FBQztNQUNuRDtJQUNKO0VBQ0osQ0FBQztFQUVEdEUsY0FBSyxDQUFDK0IsU0FBUyxDQUFDLE1BQU07SUFDbEIsSUFBSTRGLFNBQVMsR0FBR0MsUUFBUSxDQUFDQyxjQUFjLENBQUMsbUJBQW1CLENBQUM7SUFDNUQsSUFBSUMsS0FBSyxHQUFHRixRQUFRLENBQUNDLGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDOUMsSUFBSUYsU0FBUyxFQUFFO01BQ1gsSUFBSUksS0FBSyxHQUFJLEVBQUUsR0FBR3BILFNBQVMsR0FBSSxHQUFHO01BRWxDZ0gsU0FBUyxDQUFDSyxLQUFLLENBQUN4RyxLQUFLLEdBQUdYLGtCQUFrQixHQUFJQSxrQkFBa0IsR0FBR2tILEtBQU0sR0FBRyxJQUFJO01BQ2hGSixTQUFTLENBQUNLLEtBQUssQ0FBQ3RHLE1BQU0sR0FBR1gsbUJBQW1CLEdBQUlBLG1CQUFtQixHQUFHZ0gsS0FBTSxHQUFHLElBQUk7TUFFbkZELEtBQUssQ0FBQ0UsS0FBSyxDQUFDeEcsS0FBSyxHQUFHbUcsU0FBUyxDQUFDSyxLQUFLLENBQUN4RyxLQUFLO01BQ3pDc0csS0FBSyxDQUFDRSxLQUFLLENBQUN0RyxNQUFNLEdBQUdpRyxTQUFTLENBQUNLLEtBQUssQ0FBQ3RHLE1BQU07SUFDL0M7RUFDSixDQUFDLEVBQUUsQ0FBQ2YsU0FBUyxDQUFDLENBQUM7RUFFZixTQUFTMkcsT0FBT0EsQ0FBQ1csUUFBUSxFQUFFL0YsSUFBSSxFQUFFUyxNQUFNLEVBQUU7SUFDckMsSUFBSXVDLFdBQVcsR0FBR2pELGNBQWMsQ0FBQ0MsSUFBSSxDQUFDO0lBQ3RDLElBQUlpRCxHQUFHLEdBQUd6RixRQUFRLEdBQUc4RSwyQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsR0FDbERuRSxjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxlQUFlLEVBQUUsSUFBSSxDQUFDLEdBQ2hFLEdBQUcsR0FBR3dCLE1BQU0sR0FBRyxHQUFHLEdBQUdyQyxjQUFLLENBQUNtQixxQkFBcUIsQ0FBQ3ZCLEtBQUssQ0FBQ2lCLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDO0lBQ25GLElBQUl5QixXQUFXLEdBQUdGLGNBQWMsQ0FBQ0MsTUFBTSxDQUFDO0lBQ3hDLElBQUlDLFdBQVcsRUFBRTtNQUNidUMsR0FBRyxJQUFJLFNBQVMsR0FBR3ZDLFdBQVc7SUFDbEM7SUFFQSxJQUFBd0MsaUNBQVksRUFDUkMsS0FBSyxDQUFDQyxTQUFTLENBQUNILEdBQUcsQ0FBQyxFQUFFRCxXQUFXLENBQUMsQ0FDN0JLLElBQUksQ0FBQ3hHLE1BQU0sQ0FBQyxDQUNad0csSUFBSSxDQUFDL0YsSUFBSSxDQUFDLENBQ1YrRixJQUFJLENBQUVyRCxJQUFJLElBQUs7TUFDWitGLFFBQVEsQ0FBQy9GLElBQUksQ0FBQztJQUNsQixDQUFDLENBQUMsQ0FBQ3dELEtBQUssQ0FDUDdKLENBQUMsSUFBSztNQUNILElBQUlBLENBQUMsQ0FBQ3dELElBQUksS0FBSyxHQUFHLEVBQUU7UUFDaEJtRiwyQkFBa0IsQ0FBQ21CLEtBQUssQ0FBQyxDQUFDO1FBQzFCbkIsMkJBQWtCLENBQUNvQixxQkFBcUIsQ0FBQyxDQUFDLENBQUN6SSxJQUFJLENBQUMsUUFBUSxDQUFDO01BQzdEO0lBQ0osQ0FBQyxDQUNULENBQUM7RUFDTDtFQUVBLE1BQU0rSyxJQUFJLEdBQUlDLFNBQVMsSUFBSztJQUN4QixJQUFJdEgsa0JBQWtCLEtBQUssSUFBSSxFQUFFO01BQzdCQyxxQkFBcUIsQ0FBQzhHLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDckcsS0FBSyxDQUFDO01BQy9EUixzQkFBc0IsQ0FBQzRHLFFBQVEsQ0FBQ0MsY0FBYyxDQUFDLFNBQVMsQ0FBQyxDQUFDbkcsTUFBTSxDQUFDO0lBQ3JFO0lBRUEsSUFBSTBHLEtBQUssR0FBR0QsU0FBUyxLQUFLLElBQUksR0FBR3hILFNBQVMsR0FBRyxDQUFDLEdBQUdBLFNBQVMsR0FBRyxDQUFDO0lBQzlELElBQUl5SCxLQUFLLElBQUksQ0FBQyxFQUFFO01BQ1pBLEtBQUssR0FBRyxDQUFDO0lBQ2I7SUFFQXhILFlBQVksQ0FBQ3dILEtBQUssQ0FBQztFQUN2QixDQUFDO0VBRUQsTUFBTUMsTUFBTSxHQUFJRixTQUFTLElBQUs7SUFDMUIsSUFBSUcsVUFBVSxHQUFHaEksY0FBSyxDQUFDbUIscUJBQXFCLENBQUN2QixLQUFLLENBQUNpQixNQUFNLEVBQUUsWUFBWSxFQUFFLElBQUksQ0FBQztJQUM5RSxJQUFJbUgsVUFBVSxLQUFLLElBQUksSUFBSUEsVUFBVSxLQUFLLFFBQVEsRUFBRTtNQUNoRGhCLE9BQU8sQ0FBRXBGLElBQUksSUFBSztRQUNkZCxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMyRixNQUFNLEdBQUc3RSxJQUFJO1FBQ3RCOUIsYUFBYSxDQUFBaEQsYUFBQSxDQUFBQSxhQUFBLEtBQUtnRSxLQUFLLENBQUMsQ0FBQyxDQUFDO1VBQUUyRixNQUFNLEVBQUU3RTtRQUFJLEVBQUMsQ0FBQztRQUMxQ3FGLGVBQWUsQ0FBQ25HLEtBQUssRUFBRWMsSUFBSSxDQUFDO01BQ2hDLENBQUMsRUFBRWQsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDMkYsTUFBTSxFQUFFLFFBQVEsR0FBR29CLFNBQVMsQ0FBQztJQUM3QyxDQUFDLE1BQU07TUFDSCxJQUFJdkYsV0FBVyxHQUFHbkMsS0FBSyxHQUFHaUMsY0FBYyxDQUFDLFFBQVEsR0FBR3lGLFNBQVMsQ0FBQztNQUM5RFAsUUFBUSxDQUFDQyxjQUFjLENBQUMsbUJBQW1CLENBQUMsQ0FBQ0csS0FBSyxDQUFDTyxTQUFTLEdBQUcsU0FBUyxHQUFHM0YsV0FBVyxHQUFHLE1BQU07TUFDL0ZsQyxRQUFRLENBQUNrQyxXQUFXLENBQUM7SUFDekI7RUFDSixDQUFDO0VBRUQsb0JBQ0k1SCxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7SUFBS1IsS0FBSyxFQUFFMUgsY0FBSyxDQUFDbUksV0FBVyxDQUFDO01BQUNqSCxLQUFLLEVBQUVBO0lBQUssQ0FBQyxFQUFFdEIsS0FBSyxDQUFDaUIsTUFBTTtFQUFFLGdCQUN4RG5HLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQTtJQUFLRSxTQUFTLEVBQUUsS0FBTTtJQUFDVixLQUFLLEVBQUU7TUFBQ1csVUFBVSxFQUFFLEdBQUc7TUFBRUMsV0FBVyxFQUFFO0lBQUc7RUFBRSxnQkFDOUQ1TixNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7SUFBS0UsU0FBUyxFQUFFO0VBQVUsZ0JBQ3RCMU4sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLGdCQUNLbEksY0FBSyxDQUFDbUIscUJBQXFCLENBQUN2QixLQUFLLENBQUNpQixNQUFNLEVBQUUsT0FBTyxFQUFFLEVBQUUsQ0FDbkQsQ0FDTixDQUNKLENBQUMsZUFDTm5HLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQTtJQUFLRSxTQUFTLEVBQUUsS0FBTTtJQUFDVixLQUFLLEVBQUU7TUFBQ1csVUFBVSxFQUFFLEdBQUc7TUFBRUMsV0FBVyxFQUFFO0lBQUc7RUFBRSxnQkFDOUQ1TixNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7SUFBS0UsU0FBUyxFQUFFO0VBQVUsZ0JBQ3RCMU4sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO0lBQ0lLLE1BQU0sRUFBRSw0Q0FBNkM7SUFDckRILFNBQVMsRUFBRW5ILE9BQU8sQ0FBQzVDLEtBQU07SUFDekJrRyxFQUFFLDJCQUFBZixNQUFBLENBQTJCNUQsS0FBSyxDQUFDaUIsTUFBTSxDQUFDMEQsRUFBRSxDQUFHO0lBQy9DaUUsUUFBUSxFQUFFakgsSUFBSSxDQUFDaUgsUUFBUztJQUN4QkMsUUFBUSxFQUFFbEgsSUFBSSxDQUFDa0gsUUFBUztJQUN4QnpILFFBQVEsRUFBRUEsUUFBUztJQUNuQjBILFFBQVEsRUFBRTFDLFlBQVksQ0FBQyxDQUFFO0lBQ3pCdkMsSUFBSSxFQUFDO0VBQU0sQ0FDZCxDQUFDLGVBQ0YvSSxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7SUFBT1MsT0FBTywyQkFBQW5GLE1BQUEsQ0FBMkI1RCxLQUFLLENBQUNpQixNQUFNLENBQUMwRCxFQUFFO0VBQUcsZ0JBQ3ZEN0osTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLDJCQUNJeE4sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLENBQUNyTixPQUFBLENBQUFZLE9BQU07SUFBQ21OLFNBQVMsRUFBQyxNQUFNO0lBQ2hCQyxPQUFPLEVBQUUsV0FBWTtJQUNyQnJDLElBQUksRUFBQyxPQUFPO0lBQ1prQixLQUFLLEVBQUU7TUFDSHhHLEtBQUssRUFBRSxPQUFPO01BQ2RFLE1BQU0sRUFBRSxNQUFNO01BQ2QwSCxNQUFNLEVBQUV2SCxJQUFJLENBQUN3SCxRQUFRLEdBQUcsbUJBQW1CLEdBQUcsSUFBSTtNQUNsRHZLLEtBQUssRUFBRStDLElBQUksQ0FBQ3dILFFBQVEsR0FBRyxTQUFTLEdBQUc7SUFDdkMsQ0FBRTtJQUNGQyxTQUFTLGVBQUV0TyxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUEsQ0FBQ2hOLEtBQUEsQ0FBQU8sT0FBSTtNQUFDOEksRUFBRSxFQUFFO0lBQVMsQ0FBQztFQUFFLEdBQ3hDLFFBRU8sQ0FDUCxDQUFDLEVBRUZoRCxJQUFJLENBQUN3SCxRQUFRLGdCQUNUck8sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLDJCQUNJeE4sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO0lBQUtSLEtBQUssRUFBRTtNQUFDbEosS0FBSyxFQUFFLFNBQVM7TUFBRXlLLE9BQU8sRUFBRTtJQUFPO0VBQUUsR0FBRTFILElBQUksQ0FBQzJILFlBQWtCLENBQ3pFLENBQUMsR0FFTixJQUVMLENBQ04sQ0FBQyxlQUNOeE8sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO0lBQUtFLFNBQVMsRUFBRSxTQUFVO0lBQUNWLEtBQUssRUFBRTtNQUFDVyxVQUFVLEVBQUU7SUFBSztFQUFFLEdBRTlDOUcsSUFBSSxDQUFDbEUsS0FBSyxnQkFDTjNDLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQSxDQUFDck4sT0FBQSxDQUFBWSxPQUFNO0lBQ0hvTixPQUFPLEVBQUUsV0FBWTtJQUNyQnJDLElBQUksRUFBQyxPQUFPO0lBQ1prQixLQUFLLEVBQUU7TUFBQ3hHLEtBQUssRUFBRSxNQUFNO01BQUVFLE1BQU0sRUFBRTtJQUFNLENBQUU7SUFDdkMrSCxPQUFPLEVBQUVBLENBQUEsS0FBTXBCLE1BQU0sQ0FBQyxNQUFNLENBQUU7SUFDOUJpQixTQUFTLGVBQUV0TyxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUEsQ0FBQ2hOLEtBQUEsQ0FBQU8sT0FBSTtNQUFDOEksRUFBRSxFQUFFO0lBQWMsQ0FBQztFQUFFLENBRWxDLENBQUMsR0FFVCxJQUVQLENBQUMsZUFDTjdKLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQTtJQUFLRSxTQUFTLEVBQUUsU0FBVTtJQUFDVixLQUFLLEVBQUU7TUFBQ1csVUFBVSxFQUFFO0lBQUs7RUFBRSxHQUU5QzlHLElBQUksQ0FBQ2xFLEtBQUssZ0JBQ04zQyxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUEsQ0FBQ3JOLE9BQUEsQ0FBQVksT0FBTTtJQUNIb04sT0FBTyxFQUFFLFdBQVk7SUFDckJyQyxJQUFJLEVBQUMsT0FBTztJQUNaa0IsS0FBSyxFQUFFO01BQUN4RyxLQUFLLEVBQUUsTUFBTTtNQUFFRSxNQUFNLEVBQUU7SUFBTSxDQUFFO0lBQ3ZDK0gsT0FBTyxFQUFFQSxDQUFBLEtBQU1wQixNQUFNLENBQUMsT0FBTyxDQUFFO0lBQy9CaUIsU0FBUyxlQUFFdE8sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLENBQUNoTixLQUFBLENBQUFPLE9BQUk7TUFBQzhJLEVBQUUsRUFBRTtJQUFlLENBQUM7RUFBRSxDQUVuQyxDQUFDLEdBRVQsSUFFUCxDQUFDLGVBQ043SixNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7SUFBS0UsU0FBUyxFQUFFLFNBQVU7SUFBQ1YsS0FBSyxFQUFFO01BQUNXLFVBQVUsRUFBRTtJQUFLO0VBQUUsR0FFOUM5RyxJQUFJLENBQUNsRSxLQUFLLGdCQUNOM0MsTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLENBQUNyTixPQUFBLENBQUFZLE9BQU07SUFDSG9OLE9BQU8sRUFBRSxXQUFZO0lBQ3JCckMsSUFBSSxFQUFDLE9BQU87SUFDWmtCLEtBQUssRUFBRTtNQUFDeEcsS0FBSyxFQUFFLE1BQU07TUFBRUUsTUFBTSxFQUFFO0lBQU0sQ0FBRTtJQUN2QytILE9BQU8sRUFBRUEsQ0FBQSxLQUFNdkIsSUFBSSxDQUFDLEtBQUssQ0FBRTtJQUMzQm9CLFNBQVMsZUFBRXRPLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQSxDQUFDaE4sS0FBQSxDQUFBTyxPQUFJO01BQUM4SSxFQUFFLEVBQUU7SUFBVyxDQUFDO0VBQUUsQ0FFL0IsQ0FBQyxHQUVULElBRVAsQ0FBQyxlQUNON0osTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO0lBQUtFLFNBQVMsRUFBRSxTQUFVO0lBQUNWLEtBQUssRUFBRTtNQUFDVyxVQUFVLEVBQUU7SUFBSztFQUFFLEdBRTlDOUcsSUFBSSxDQUFDbEUsS0FBSyxnQkFDTjNDLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQSxDQUFDck4sT0FBQSxDQUFBWSxPQUFNO0lBQ0hvTixPQUFPLEVBQUUsV0FBWTtJQUNyQnJDLElBQUksRUFBQyxPQUFPO0lBQ1prQixLQUFLLEVBQUU7TUFBQ3hHLEtBQUssRUFBRSxNQUFNO01BQUVFLE1BQU0sRUFBRTtJQUFNLENBQUU7SUFDdkMrSCxPQUFPLEVBQUVBLENBQUEsS0FBTXZCLElBQUksQ0FBQyxJQUFJLENBQUU7SUFDMUJvQixTQUFTLGVBQUV0TyxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUEsQ0FBQ2hOLEtBQUEsQ0FBQU8sT0FBSTtNQUFDOEksRUFBRSxFQUFFO0lBQVUsQ0FBQztFQUFFLENBRTlCLENBQUMsR0FFVCxJQUVQLENBQ0osQ0FBQyxFQUVGLENBQUN2RSxjQUFLLENBQUNDLE1BQU0sQ0FBQ3NCLElBQUksQ0FBQ2xFLEtBQUssQ0FBQyxJQUFJLENBQUMyQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ0osVUFBVSxDQUFDLEdBQ2xELENBQUN1SixXQUFBLElBQU07SUFDSDtJQUNBO0lBQ0E7SUFDQTtJQUNBO0lBQ0E7SUFDQSxNQUFNQyxRQUFRLEdBQUdoSixTQUFTLEtBQUssSUFBSSxJQUFJQSxTQUFTLEdBQUcsQ0FBQztJQUNwRCxvQkFDSTNGLE1BQUEsQ0FBQWUsT0FBQSxDQUFBeU0sYUFBQTtNQUFLRSxTQUFTLEVBQUUsS0FBTTtNQUFDVixLQUFLLEVBQUU7UUFBQ3VCLE9BQU8sRUFBRSxPQUFPO1FBQUVaLFVBQVUsRUFBRSxHQUFHO1FBQUVDLFdBQVcsRUFBRTtNQUFHO0lBQUUsZ0JBQ2hGNU4sTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO01BQUszRCxFQUFFLEVBQUMsZ0JBQWdCO01BQUNtRCxLQUFLLEVBQUU7UUFDNUJ4RyxLQUFLLEVBQUUsTUFBTTtRQUNiRSxNQUFNLEVBQUVBLE1BQU07UUFDZGtJLGdCQUFnQixFQUFFLFdBQVc7UUFDN0JDLGNBQWMsRUFBRSxPQUFPO1FBQ3ZCQyxlQUFlLEVBQUUsYUFBYTtRQUM5QkMsZUFBZSxTQUFBakcsTUFBQSxDQUFTNUksT0FBTyxDQUFDLG9CQUFvQixDQUFDLE1BQUc7UUFDeERrTyxNQUFNLEVBQUUsbUJBQW1CO1FBQzNCWSxZQUFZLEVBQUUsS0FBSztRQUNuQkMsUUFBUSxFQUFFTixRQUFRLEdBQUcsTUFBTSxHQUFHLFFBQVE7UUFDdENPLFNBQVMsRUFBRSxZQUFZO1FBQ3ZCdEwsT0FBTyxFQUFFLE1BQU07UUFDZnVMLGNBQWMsRUFBRSxRQUFRO1FBQ3hCQyxVQUFVLEVBQUUsUUFBUTtRQUNwQmIsT0FBTyxFQUFFO01BQ2IsQ0FBRTtNQUFDYixTQUFTLEVBQUM7SUFBUyxnQkFDbEIxTixNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUE7TUFBSzNELEVBQUUsRUFBRSxtQkFBb0I7TUFDeEJtRCxLQUFLLEVBQ0QyQixRQUFRLEdBQ0Y7UUFBQy9LLE9BQU8sRUFBRTtNQUFjLENBQUMsR0FDekI7UUFDRTRDLEtBQUssRUFBRSxNQUFNO1FBQ2JFLE1BQU0sRUFBRSxNQUFNO1FBQ2Q5QyxPQUFPLEVBQUUsTUFBTTtRQUNmdUwsY0FBYyxFQUFFLFFBQVE7UUFDeEJDLFVBQVUsRUFBRTtNQUNoQjtJQUNQLGdCQUNGcFAsTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBO01BQUszRCxFQUFFLEVBQUUsU0FBVTtNQUNkd0YsR0FBRyxFQUFFLENBQUFsSyxVQUFVLGFBQVZBLFVBQVUsdUJBQVZBLFVBQVUsQ0FBRTRHLE1BQU0sT0FBQTJDLFdBQUEsR0FBSTdILElBQUksQ0FBQ2xFLEtBQUssY0FBQStMLFdBQUEsdUJBQVZBLFdBQUEsQ0FBWXZFLEdBQUcsQ0FBQztNQUMzQ21GLEdBQUcsRUFBRSxFQUFHO01BQ1JDLFNBQVMsRUFBRSxLQUFNO01BQ2pCdkMsS0FBSyxFQUNEMkIsUUFBUSxHQUNGO1FBQUMvSyxPQUFPLEVBQUUsT0FBTztRQUFFNEwsVUFBVSxFQUFFO01BQU0sQ0FBQyxHQUN0QztRQUNFQyxRQUFRLEVBQUUsTUFBTTtRQUNoQkMsU0FBUyxFQUFFLE1BQU07UUFDakJsSixLQUFLLEVBQUUsTUFBTTtRQUNiRSxNQUFNLEVBQUUsTUFBTTtRQUNkaUosU0FBUyxFQUFFLFNBQVM7UUFDcEIvTCxPQUFPLEVBQUUsT0FBTztRQUNoQjRMLFVBQVUsRUFBRTtNQUNoQjtJQUNQLENBQUMsQ0FDTixDQUNKLENBQ0osQ0FBQztFQUVkLENBQUMsRUFBRSxDQUFDLEdBRUosSUFFUCxDQUFDO0FBRWQsQ0FBQyxDQUFDO0FBRUssTUFBTUksV0FBVyxHQUFBN0ssT0FBQSxDQUFBNkssV0FBQSxnQkFBRzVLLGNBQUssQ0FBQ0MsSUFBSSxDQUFFQyxLQUFLLElBQUs7RUFDN0MsTUFBTSxDQUFDbUUsSUFBSSxFQUFFd0csT0FBTyxDQUFDLEdBQUc3SyxjQUFLLENBQUNLLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDNUMsTUFBTXlLLFlBQVksR0FBRzlLLGNBQUssQ0FBQzRCLE1BQU0sQ0FBQyxLQUFLLENBQUM7RUFFeEMsb0JBQ0k1RyxNQUFBLENBQUFlLE9BQUEsQ0FBQXlNLGFBQUEsQ0FBQ3BOLFVBQUEsQ0FBQTJQLFNBQVMsRUFBQS9PLFFBQUEsS0FBS2tFLEtBQUs7SUFBRThLLE1BQU0sRUFBRTlLLEtBQUssQ0FBQzhLLE1BQU87SUFBQ0MsV0FBVyxFQUFFQSxDQUFDdE4sS0FBSyxFQUFFdU4sT0FBTyxLQUFLO01BQ3pFLE9BQU92TixLQUFLO0lBQ2hCLENBQUU7SUFBQ3dOLG1CQUFtQixFQUFHeE4sS0FBSyxJQUFLO01BQy9CLElBQUkyQyxjQUFLLENBQUNDLE1BQU0sQ0FBQzVDLEtBQUssQ0FBQyxFQUFFO1FBQ3JCbU4sWUFBWSxDQUFDOUksT0FBTyxHQUFHLENBQUM4SSxZQUFZLENBQUM5SSxPQUFPO01BQ2hEO0lBQ0o7RUFBRSxJQUNHSCxJQUFJLGlCQUNEN0csTUFBQSxDQUFBZSxPQUFBLENBQUF5TSxhQUFBLENBQUMxSSxvQkFBb0IsRUFBQTlELFFBQUE7SUFDakI2RixJQUFJLEVBQUVBLElBQUs7SUFDWHJCLFdBQVcsRUFBRTZELElBQUs7SUFDbEJ5RyxZQUFZLEVBQUVBLFlBQVksQ0FBQzlJO0VBQVEsR0FDL0I5QixLQUFLLENBRVMsQ0FFbkIsQ0FBQztBQUVwQixDQUFDLENBQUM7QUFBQyxJQUFBa0wsUUFBQSxHQUFBckwsT0FBQSxDQUFBaEUsT0FBQSxHQUVZNk8sV0FBVyIsImlnbm9yZUxpc3QiOltdfQ==
@@ -25,4 +25,5 @@ const LabelField = /*#__PURE__*/_react.default.memo(props => {
25
25
  base: base
26
26
  }, props)));
27
27
  });
28
- var _default = exports.default = LabelField;
28
+ var _default = exports.default = LabelField;
29
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJfZXh0ZW5kcyIsIk9iamVjdCIsImFzc2lnbiIsImJpbmQiLCJuIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidCIsInIiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJhcHBseSIsIkxhYmVsRmllbGRXcmFwcGVyIiwiUmVhY3QiLCJtZW1vIiwicHJvcHMiLCJiYXNlIiwiZGlzcGxheVRlbXBsYXRlIiwiVXRpbHMiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjb25maWciLCJjbGFzc05hbWUiLCJlbXB0eVZhbHVlIiwiY3JlYXRlRWxlbWVudCIsImlzTnVsbCIsInJlcGxhY2UiLCJ2YWx1ZSIsIkxhYmVsRmllbGQiLCJCYXNlRmllbGQiLCJoYW5kbGUiLCJfZGVmYXVsdCIsImV4cG9ydHMiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9MYWJlbEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuXG5jb25zdCBMYWJlbEZpZWxkV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgbGV0IGRpc3BsYXlUZW1wbGF0ZSA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdkaXNwbGF5VGVtcGxhdGUnLCBudWxsKTtcbiAgICBsZXQgY2xhc3NOYW1lID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2NsYXNzTmFtZScsIG51bGwpO1xuICAgIGxldCBlbXB0eVZhbHVlID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2VtcHR5VmFsdWUnLCAnJyk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgICAgIHshVXRpbHMuaXNOdWxsKGRpc3BsYXlUZW1wbGF0ZSkgPyBkaXNwbGF5VGVtcGxhdGUucmVwbGFjZSgnQHt2YWx1ZX0nLCBVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBlbXB0eVZhbHVlIDogYmFzZS52YWx1ZSkgOiBiYXNlLnZhbHVlfVxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmNvbnN0IExhYmVsRmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxMYWJlbEZpZWxkV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvTGFiZWxGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgTGFiZWxGaWVsZDsiXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUFnQyxTQUFBRCx1QkFBQUksQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENBQUEsR0FBQVEsU0FBQSxDQUFBQyxNQUFBLEVBQUFULENBQUEsVUFBQVUsQ0FBQSxHQUFBRixTQUFBLENBQUFSLENBQUEsWUFBQVcsQ0FBQSxJQUFBRCxDQUFBLE9BQUFFLGNBQUEsQ0FBQUMsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsTUFBQUosQ0FBQSxDQUFBSSxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxhQUFBSixDQUFBLEtBQUFKLFFBQUEsQ0FBQVcsS0FBQSxPQUFBTixTQUFBO0FBRWhDLE1BQU1PLGlCQUFpQixnQkFBR0MsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUM1QyxNQUFNQyxJQUFJLEdBQUdELEtBQUssQ0FBQ0MsSUFBSTtFQUN2QixJQUFJQyxlQUFlLEdBQUdDLGNBQUssQ0FBQ0MscUJBQXFCLENBQUNKLEtBQUssQ0FBQ0ssTUFBTSxFQUFFLGlCQUFpQixFQUFFLElBQUksQ0FBQztFQUN4RixJQUFJQyxTQUFTLEdBQUdILGNBQUssQ0FBQ0MscUJBQXFCLENBQUNKLEtBQUssQ0FBQ0ssTUFBTSxFQUFFLFdBQVcsRUFBRSxJQUFJLENBQUM7RUFDNUUsSUFBSUUsVUFBVSxHQUFHSixjQUFLLENBQUNDLHFCQUFxQixDQUFDSixLQUFLLENBQUNLLE1BQU0sRUFBRSxZQUFZLEVBQUUsRUFBRSxDQUFDO0VBRTVFLG9CQUNJNUIsTUFBQSxDQUFBTyxPQUFBLENBQUF3QixhQUFBO0lBQUtGLFNBQVMsRUFBRUE7RUFBVSxHQUNyQixDQUFDSCxjQUFLLENBQUNNLE1BQU0sQ0FBQ1AsZUFBZSxDQUFDLEdBQUdBLGVBQWUsQ0FBQ1EsT0FBTyxDQUFDLFVBQVUsRUFBRVAsY0FBSyxDQUFDTSxNQUFNLENBQUNSLElBQUksQ0FBQ1UsS0FBSyxDQUFDLEdBQUdKLFVBQVUsR0FBR04sSUFBSSxDQUFDVSxLQUFLLENBQUMsR0FBR1YsSUFBSSxDQUFDVSxLQUNoSSxDQUFDO0FBRWQsQ0FBQyxDQUFDO0FBRUYsTUFBTUMsVUFBVSxnQkFBR2QsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUNyQyxvQkFDSXZCLE1BQUEsQ0FBQU8sT0FBQSxDQUFBd0IsYUFBQSxDQUFDNUIsVUFBQSxDQUFBaUMsU0FBUyxFQUFBNUIsUUFBQSxLQUFLZSxLQUFLO0lBQUVjLE1BQU0sRUFBRWQsS0FBSyxDQUFDYztFQUFPLElBQ3RDYixJQUFJLGlCQUNEeEIsTUFBQSxDQUFBTyxPQUFBLENBQUF3QixhQUFBLENBQUNYLGlCQUFpQixFQUFBWixRQUFBO0lBQ2RnQixJQUFJLEVBQUVBO0VBQUssR0FDUEQsS0FBSyxDQUVNLENBRWhCLENBQUM7QUFFcEIsQ0FBQyxDQUFDO0FBQUMsSUFBQWUsUUFBQSxHQUFBQyxPQUFBLENBQUFoQyxPQUFBLEdBRVk0QixVQUFVIiwiaWdub3JlTGlzdCI6W119