@agilemotion/oui-react-js 2.0.16 → 2.0.18

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 (36) hide show
  1. package/dist/components/Calender.css +1 -1
  2. package/dist/components/TableCellContent.js +9 -18
  3. package/dist/components/dashboard/FoldingSideTabDashboard.css +1 -1
  4. package/dist/components/dashboard/FoldingSideTabDashboard.js +10 -7
  5. package/dist/components/form/LookupField.js +27 -3
  6. package/dist/components/layout/Layout.js +15 -3
  7. package/dist/components/layout/ViewPort.js +2 -2
  8. package/dist/components/layout/Window.css +4 -1
  9. package/dist/components/layout/Window.js +147 -29
  10. package/dist/components/layout/WindowDialog.js +8 -5
  11. package/dist/components/layout/WindowViewPort.js +8 -2
  12. package/dist/components/media/Chat.js +4 -2
  13. package/dist/components/media/ClosablePanel.js +55 -27
  14. package/dist/components/media/MediaSoupHelper.js +13 -1
  15. package/dist/components/media/SideBarContent.js +22 -8
  16. package/dist/components/media/TrainingRoom.js +141 -46
  17. package/dist/components/media/VCEventType.js +3 -1
  18. package/dist/components/media/VCParticipantList.js +53 -27
  19. package/dist/components/media/VCRoom.css +22 -0
  20. package/dist/components/media/VCRoom.js +34 -15
  21. package/dist/components/media/VCRoomParticipant.css +3 -2
  22. package/dist/components/media/VCRoomParticipant.js +140 -48
  23. package/dist/components/media/VCRoomRecorder.js +117 -40
  24. package/dist/components/media/VCRoomWorkspace.css +0 -1
  25. package/dist/components/media/VCRoomWorkspace.js +158 -23
  26. package/dist/components/media/VCSettings.js +462 -0
  27. package/dist/components/media/VideoPlayer.js +4 -1
  28. package/dist/components/media/audioLevelMeter.js +96 -0
  29. package/dist/components/media/chat/ChatRoom.js +13 -9
  30. package/dist/components/media/chat/ChatRoomItem.js +3 -2
  31. package/dist/components/media/chat/ChatRoomWrapper.js +4 -1
  32. package/dist/components/media/chat/ChatRooms.scss +5 -3
  33. package/dist/hooks/useContainerWidth.js +44 -0
  34. package/dist/js/Media.js +11 -2
  35. package/dist/view/security/RegisterInteractionPortal.js +101 -3
  36. package/package.json +2 -2
@@ -301,7 +301,7 @@ const ChatRoom = props => {
301
301
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
302
302
  id: 'DOWNLOAD'
303
303
  }))), /*#__PURE__*/_react.default.createElement("div", {
304
- class: 'col no-margin no-padding',
304
+ className: 'col no-margin no-padding',
305
305
  style: {
306
306
  fontSize: '14px',
307
307
  marginTop: '14px'
@@ -331,7 +331,7 @@ const ChatRoom = props => {
331
331
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
332
332
  id: 'DOWNLOAD'
333
333
  }))), /*#__PURE__*/_react.default.createElement("div", {
334
- class: 'col no-margin no-padding',
334
+ className: 'col no-margin no-padding',
335
335
  style: {
336
336
  fontSize: '14px',
337
337
  marginTop: '14px'
@@ -363,7 +363,7 @@ const ChatRoom = props => {
363
363
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
364
364
  id: 'DOWNLOAD'
365
365
  }))), /*#__PURE__*/_react.default.createElement("div", {
366
- class: 'col no-margin no-padding',
366
+ className: 'col no-margin no-padding',
367
367
  style: {
368
368
  fontSize: '14px',
369
369
  marginTop: '14px'
@@ -395,7 +395,7 @@ const ChatRoom = props => {
395
395
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
396
396
  id: 'DOWNLOAD'
397
397
  }))), /*#__PURE__*/_react.default.createElement("div", {
398
- class: 'col no-margin no-padding',
398
+ className: 'col no-margin no-padding',
399
399
  style: {
400
400
  fontSize: '14px',
401
401
  marginTop: '14px'
@@ -427,7 +427,7 @@ const ChatRoom = props => {
427
427
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
428
428
  id: 'DOWNLOAD'
429
429
  }))), /*#__PURE__*/_react.default.createElement("div", {
430
- class: 'col no-margin no-padding',
430
+ className: 'col no-margin no-padding',
431
431
  style: {
432
432
  fontSize: '14px',
433
433
  marginTop: '14px'
@@ -465,7 +465,7 @@ const ChatRoom = props => {
465
465
  }, /*#__PURE__*/_react.default.createElement(_Icon.default, {
466
466
  id: 'DOWNLOAD'
467
467
  }))), /*#__PURE__*/_react.default.createElement("div", {
468
- class: 'col no-margin no-padding',
468
+ className: 'col no-margin no-padding',
469
469
  style: {
470
470
  fontSize: '14px',
471
471
  marginTop: '14px'
@@ -595,7 +595,9 @@ const ChatRoom = props => {
595
595
  margin: '0 8px'
596
596
  }
597
597
  }, message.content.split('\n').map((token, index) => {
598
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, token, /*#__PURE__*/_react.default.createElement("br", null));
598
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
599
+ key: index
600
+ }, token, /*#__PURE__*/_react.default.createElement("br", null));
599
601
  })))));
600
602
  }
601
603
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -616,7 +618,9 @@ const ChatRoom = props => {
616
618
  margin: '0 0 4px 4px'
617
619
  }
618
620
  }, message.content.split('\n').map((token, index) => {
619
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, token, /*#__PURE__*/_react.default.createElement("br", null));
621
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
622
+ key: index
623
+ }, token, /*#__PURE__*/_react.default.createElement("br", null));
620
624
  }))))));
621
625
  } else if (message.type === 'EVENT') {
622
626
  return /*#__PURE__*/_react.default.createElement("div", {
@@ -768,4 +772,4 @@ const ChatRoom = props => {
768
772
  }
769
773
  };
770
774
  var _default = exports.default = ChatRoom;
771
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbWF0ZXJpYWwiLCJfU2VuZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfVG9vbHRpcCIsIl9yZWFjdFJvdXRlckRvbSIsIl9tb21lbnQiLCJfSW5wdXRBZG9ybm1lbnQiLCJfU3R5bGVzIiwiX0N1c3RvbUlucHV0IiwiX0xvdHRpZUljb24iLCJfcmVhY3RGZWF0aGVyIiwiX1V0aWxzIiwiX1ZDRXZlbnRUeXBlIiwiX2xpbmtpZnlSZWFjdCIsIl9GaWxlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9SZXN0VXRpbHMiLCJfcGRmSWNvbiIsIl9kb2MiLCJfd29yZCIsIl9leGNlbCIsIl9WQ0V2ZW50TWFuYWdlciIsIl9Tb2NrZXRNYW5hZ2VyIiwiX0ljb24iLCJfQ2hhdFBvbGwiLCJfUG9sbENvbnRhaW5lciIsIl9pY29uc01hdGVyaWFsIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwibG9jYXRpb24iLCJleHBvcnRzIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkNoYXRSb29tIiwicHJvcHMiLCJuYXZpZ2F0ZSIsInVzZU5hdmlnYXRlIiwicmVmcmVzaGVyIiwic2V0UmVmcmVzaGVyIiwidXNlU3RhdGUiLCJtZXNzYWdlIiwic2V0TWVzc2FnZSIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImRvY3VtZW50cyIsInNldERvY3VtZW50cyIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJuZXdQYXJ0aWNpcGFudHMiLCJzZXROZXdQYXJ0aWNpcGFudHMiLCJjb25maXJtIiwic2V0SW1nVXBsb2FkQ29uZmlybSIsIm1lc3NhZ2VzRW5kUmVmIiwidXNlUmVmIiwibG9hZGluZyIsInNldExvYWRpbmciLCJtb2RlIiwic2V0TW9kZSIsImNsZWFyVXBsb2FkZWRGaWxlU3dpdGNoIiwic2V0Q2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2giLCJzb2NrZXRFdmVudEhhbmRsZXIiLCJjdXJyZW50VXNlciIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldFVzZXJEZXRhaWxzIiwic29ja2V0RXZlbnRIYW5kbGVyQXBpIiwiaWQiLCJvbiIsImV2ZW50VHlwZSIsImJlIiwiVkNFdmVudFR5cGUiLCJDSEFUX01FU1NBR0UiLCJvbk1lc3NhZ2UiLCJwYXlsb2FkIiwiREVMRVRFX0NIQVRfTUVTU0FHRSIsIm9uRGVsZXRlTWVzc2FnZSIsIlNZU1RFTV9FVkVOVCIsIm9uU3lzdGVtRXZlbnQiLCJmZXRjaENoYXQiLCJ1cmwiLCJtZWV0aW5nSWQiLCJjb25jYXQiLCJnZXRDb250ZXh0Um9vdCIsInNlbmRSZXF1ZXN0IiwicmVzcG9uc2UiLCJjbG9zZVBvbGxIYW5kbGVyIiwicG9sbCIsInBvc3REYXRhIiwic2VuZE1lc3NhZ2UiLCJxdWVzdGlvbiIsInN1Ym1pdFBvbGxWb3RlSGFuZGxlciIsImNoYXRQYXJ0aWNpcGFudCIsInBhcnRpY2lwYW50cyIsImZpbmQiLCJwIiwidXNlcm5hbWUiLCJkYXRhIiwicG9sbElkIiwib3B0aW9uSWQiLCJzZWxlY3RlZE9wdGlvbiIsInRpZUJyZWFrZXJPcHRpb24iLCJ0aWVCcmVha2VyIiwiVXRpbHMiLCJpc051bGwiLCJzeXN0ZW1FdmVudFR5cGUiLCJtc2ciLCJyb29tSWQiLCJjaGF0TWVzc2FnZSIsInR5cGUiLCJjaGF0VGFiIiwiYWRkZWRQZW9wbGVIYW5kbGVyIiwicHVzaCIsImxvYWRNZXNzYWdlcyIsImNvbnNvbGUiLCJsb2ciLCJtIiwibWVzc2FnZUlkIiwiYWN0aXZlIiwib25Eb3dubG9hZCIsImZpbGVOYW1lIiwiZmV0Y2giLCJ0aGVuIiwiYmxvYiIsImxpbmsiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG93bmxvYWQiLCJjbGljayIsImNhdGNoIiwiZXJyb3IiLCJzY3JvbGxUb0JvdHRvbSIsIm5ld01lc3NhZ2VzIiwic2hvd0FsbE1lc3NhZ2VzRm9yTmV3UGFydGljaXBhbnRzIiwiZGF0ZUFkZGVkVG9DaGF0IiwiRGF0ZSIsImZpbHRlcmVkTWVzc2FnZXMiLCJmaWx0ZXIiLCJ0eHQiLCJjcmVhdGVkRGF0ZSIsImdldENoYXRSb29tVGl0bGUiLCJ0aXRsZSIsInVzZUVmZmVjdCIsInVzZXJJZCIsImNoYXRJZCIsImFwaSIsInZjRXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsInJlbW92ZVN1YnNjcmlwdGlvbnMiLCJjdXJyZW50Iiwic2Nyb2xsIiwidG9wIiwic2Nyb2xsSGVpZ2h0IiwiYmVoYXZpb3IiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJ2YWx1ZSIsInBhcnRpY2lwYW50c1VzZXJJZHMiLCJ1c2VyIiwibWFwIiwiZmluYWxNZXNzYWdlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicHJldmVudERlZmF1bHQiLCJtVHlwZSIsImNvbWJpbmVkU2l6ZSIsImRvYyIsInBhcnNlSW50Iiwic2l6ZSIsImFsZXJ0IiwiZ2V0VG9wVmlldyIsIlN5c3RlbUV2ZW50VHlwZSIsIkFQSV9FUlJPUiIsImNvbnRlbnQiLCJwYXJ0aWNpcGFudCIsInBhcnRpY2lwYW50c1RvU2lnbmFsSWRzIiwic29ja2V0TWFuYWdlciIsImVtaXRFdmVudCIsInNraXBBbGVydCIsIm5ld0NoYXQiLCJwcm9maWxlIiwiZ2V0QWN0aXZlVGVuYW50Iiwib2xkTXNncyIsIm9wZW5BZGRQZW9wbGVEaWFsb2ciLCJzZXRPcGVuQWRkUGVvcGxlIiwicmVuZGVyRmlsZVRodW1ibmFpbCIsInRodW1ibmFpbHMiLCJkb2N1bWVudERvd25sb2FkVXJsIiwidG9rZW5zUXVlcnlTdHJpbmciLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJmb3JFYWNoIiwiaW5kZXgiLCJpbmNsdWRlcyIsImtleSIsImNsYXNzTmFtZSIsInNyYyIsInJlcG9zaXRvcnlJZCIsImFsdCIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJJY29uQnV0dG9uIiwiY29tcG9uZW50Iiwib25DbGljayIsIm5hbWUiLCJjbGFzcyIsImZvbnRTaXplIiwibWFyZ2luVG9wIiwicGRmSWNvbiIsImJvcmRlckJvdHRvbSIsImRvY0ljb24iLCJ3b3JkSWNvbiIsInhzbEljb24iLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyV2lkdGgiLCJwaHBJY29uIiwicmVuZGVyTGluayIsIl9yZWYiLCJhdHRyaWJ1dGVzIiwib3BlbiIsImRlbGV0ZUNoYXRNZXNzYWdlIiwicmVuZGVyTWVzc2FnZSIsInBhZGRpbmdSaWdodCIsIkF2YXRhciIsImdldEluaXRpYWxzIiwiYm9yZGVyIiwiYm9yZGVyUmFkaXVzIiwicGFkZGluZyIsImZvbnRTdHlsZSIsIm1hcmdpbiIsIm1vbWVudCIsImZvcm1hdCIsImRpc2FibGVNZXNzYWdlRGVsZXRlIiwib3B0aW9ucyIsInJlbmRlciIsInNwbGl0IiwidG9rZW4iLCJGcmFnbWVudCIsIkluZm8iLCJpc0hvc3QiLCJpc0NoYWlyUGVyc29uIiwicG9sbENyZWF0b3IiLCJwb2xsUGFydGljaXBhbnRJRHMiLCJudW1iZXJPZlBvbGxQYXJ0aWNpcGFudHMiLCJfbWVzc2FnZXMkc29ydCIsIm1lcmdlT2JqZWN0cyIsImhlYWRlclN0eWxlIiwiUG9sbCIsImNvbG9yIiwiY3JlYXRlUG9sbEhhbmRsZXIiLCJwb2xsRGF0YSIsImNhbmNlbFBvbGxIYW5kbGVyIiwicmVmIiwic29ydCIsImEiLCJiIiwicmVhZE9ubHkiLCJwb3NpdGlvbiIsImRpc2FibGVGaWxlQXR0YWNobWVudCIsInpJbmRleCIsImVuYWJsZUZpbGUiLCJtdWx0aXBsZSIsImljb25Db2xvciIsInZhbHVlQ2hhbmdlSGFuZGxlciIsImxhYmVsVGV4dCIsImRpc2FibGVkIiwibXVsdGlsaW5lIiwiZm9ybUNvbnRyb2xQcm9wcyIsImZ1bGxXaWR0aCIsImF1dG9Gb2N1cyIsImlucHV0UHJvcHMiLCJlbmRBZG9ybm1lbnQiLCJzdHlsZXMiLCJpbnB1dEFkb3JubWVudEljb24iLCJvbkNoYW5nZSIsImZvbnRXZWlnaHQiLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9tZWRpYS9jaGF0L0NoYXRSb29tLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QsIHt1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGV9IGZyb20gJ3JlYWN0JztcbmltcG9ydCB7QXZhdGFyLCBJY29uQnV0dG9ufSBmcm9tICdAbXVpL21hdGVyaWFsJztcbmltcG9ydCBTZW5kSWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL1NlbmQnO1xuaW1wb3J0IFRvb2x0aXAgZnJvbSAnQG11aS9tYXRlcmlhbC9Ub29sdGlwJztcbmltcG9ydCB7dXNlTmF2aWdhdGV9IGZyb20gJ3JlYWN0LXJvdXRlci1kb20nO1xuaW1wb3J0ICcuL0NoYXRSb29tcy5zY3NzJztcbmltcG9ydCBtb21lbnQgZnJvbSAnbW9tZW50JztcbmltcG9ydCBJbnB1dEFkb3JubWVudCBmcm9tICdAbXVpL21hdGVyaWFsL0lucHV0QWRvcm5tZW50JztcbmltcG9ydCBzdHlsZXMgZnJvbSAnLi9TdHlsZXMnO1xuaW1wb3J0IEN1c3RvbUlucHV0IGZyb20gJy4uLy4uL2N1c3RvbUlucHV0L0N1c3RvbUlucHV0JztcbmltcG9ydCBMb3R0aWVJY29uIGZyb20gJy4uLy4uL0xvdHRpZUljb24nO1xuaW1wb3J0IHtJbmZvfSBmcm9tICdyZWFjdC1mZWF0aGVyJztcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi8uLi9VdGlscyc7XG5pbXBvcnQge1ZDRXZlbnRUeXBlfSBmcm9tIFwiLi4vVkNFdmVudFR5cGVcIjtcbmltcG9ydCBMaW5raWZ5IGZyb20gXCJsaW5raWZ5LXJlYWN0XCI7XG5pbXBvcnQgRmlsZSBmcm9tIFwiLi4vLi4vY3VzdG9tSW5wdXQvRmlsZVwiO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQge3Bvc3REYXRhLCBzZW5kUmVxdWVzdH0gZnJvbSBcIi4uLy4uLy4uL1Jlc3RVdGlsc1wiO1xuaW1wb3J0IHBkZkljb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2ltZy9wZGYtaWNvbi5wbmcnXG5pbXBvcnQgZG9jSWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW1nL2RvYy5wbmcnXG5pbXBvcnQgd29yZEljb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2ltZy93b3JkLnBuZydcbmltcG9ydCB4c2xJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbWcvZXhjZWwucG5nJ1xuaW1wb3J0IHBocEljb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2ltZy9leGNlbC5wbmcnXG5pbXBvcnQgdmNFdmVudE1hbmFnZXIgZnJvbSBcIi4uL1ZDRXZlbnRNYW5hZ2VyXCI7XG5pbXBvcnQgc29ja2V0TWFuYWdlciBmcm9tIFwiLi4vLi4vU29ja2V0TWFuYWdlclwiO1xuaW1wb3J0IEljb24gZnJvbSBcIi4uLy4uL0ljb25cIjtcbmltcG9ydCBDaGF0UG9sbCBmcm9tIFwiLi9DaGF0UG9sbFwiO1xuaW1wb3J0IFBvbGxDb250YWluZXIgZnJvbSBcIi4vUG9sbENvbnRhaW5lclwiO1xuaW1wb3J0IHtQb2xsfSBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbFwiO1xuXG5leHBvcnQgY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy8nICsgd2luZG93LmxvY2F0aW9uLmhvc3RuYW1lO1xuXG5jb25zdCBDaGF0Um9vbSA9IChwcm9wcykgPT4ge1xuICAgIGNvbnN0IG5hdmlnYXRlID0gdXNlTmF2aWdhdGUoKTtcblxuICAgIGNvbnN0IFtyZWZyZXNoZXIsIHNldFJlZnJlc2hlcl0gPSB1c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgW21lc3NhZ2UsIHNldE1lc3NhZ2VdID0gdXNlU3RhdGUoJycpO1xuICAgIGNvbnN0IFtzZWxlY3RlZENoYXQsIHNldFNlbGVjdGVkQ2hhdF0gPSB1c2VTdGF0ZShwcm9wcy5zZWxlY3RlZENoYXQpO1xuICAgIGNvbnN0IFtkb2N1bWVudHMsIHNldERvY3VtZW50c10gPSB1c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBbbWVzc2FnZXMsIHNldE1lc3NhZ2VzXSA9IHVzZVN0YXRlKFtdKTtcbiAgICBjb25zdCBbbmV3UGFydGljaXBhbnRzLCBzZXROZXdQYXJ0aWNpcGFudHNdID0gdXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFtjb25maXJtLCBzZXRJbWdVcGxvYWRDb25maXJtXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBtZXNzYWdlc0VuZFJlZiA9IHVzZVJlZihudWxsKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSB1c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbbW9kZSwgc2V0TW9kZV0gPSB1c2VTdGF0ZSgnQ0hBVCcpO1xuICAgIGNvbnN0IFtjbGVhclVwbG9hZGVkRmlsZVN3aXRjaCwgc2V0Q2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2hdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFtzb2NrZXRFdmVudEhhbmRsZXJdID0gdXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFtjdXJyZW50VXNlcl0gPSB1c2VTdGF0ZShhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKSk7XG5cbiAgICBjb25zdCBzb2NrZXRFdmVudEhhbmRsZXJBcGkgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBnZXQgaWQoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuICdjaGF0LXJvb20tMTIyOTkxODI5JztcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBvbjogKGV2ZW50VHlwZSwgYmUpID0+IHtcbiAgICAgICAgICAgICAgICBzd2l0Y2ggKGV2ZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFZDRXZlbnRUeXBlLkNIQVRfTUVTU0FHRTpcbiAgICAgICAgICAgICAgICAgICAgICAgIG9uTWVzc2FnZShiZS5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFZDRXZlbnRUeXBlLkRFTEVURV9DSEFUX01FU1NBR0U6XG4gICAgICAgICAgICAgICAgICAgICAgICBvbkRlbGV0ZU1lc3NhZ2UoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5TWVNURU1fRVZFTlQ6XG4gICAgICAgICAgICAgICAgICAgICAgICBvblN5c3RlbUV2ZW50KGJlLnBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGZldGNoQ2hhdCA9ICgpID0+IHtcbiAgICAgICAgbGV0IHVybCA9IHNlbGVjdGVkQ2hhdC5tZWV0aW5nSWQgP1xuICAgICAgICAgICAgYCR7bG9jYXRpb24gKyAnLycgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKX0vY2FsZW5kYXIvYXBpL3YxL2NoYXQvZmV0Y2hNZWV0aW5nQ2hhdC8ke3NlbGVjdGVkQ2hhdC5tZWV0aW5nSWR9YFxuICAgICAgICAgICAgOlxuICAgICAgICAgICAgYCR7bG9jYXRpb24gKyAnLycgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKX0vY2FsZW5kYXIvYXBpL3YxL2NoYXQvZmV0Y2gvJHtzZWxlY3RlZENoYXQuaWR9YDtcbiAgICAgICAgc2VuZFJlcXVlc3QodXJsLCAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgIGlmIChyZXNwb25zZSAmJiByZXNwb25zZS5pZCkge1xuICAgICAgICAgICAgICAgIHNldFNlbGVjdGVkQ2hhdChyZXNwb25zZSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIChlKSA9PiB7XG5cbiAgICAgICAgfSwgdHJ1ZSwgZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBjbG9zZVBvbGxIYW5kbGVyID0gKGUsIHBvbGwpID0+IHtcbiAgICAgICAgcG9zdERhdGEoYCR7bG9jYXRpb24gKyAnLycgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKX0vY2FsZW5kYXIvYXBpL3YxL3BvbGwvY2xvc2VgLFxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2UoZSwgYFBvbGw6ICR7cG9sbC5xdWVzdGlvbn0gaGFzIGJlZW4gY2xvc2VkLmApO1xuICAgICAgICAgICAgICAgIGZldGNoQ2hhdCgpO1xuICAgICAgICAgICAgfSwgKGUpID0+IHtcblxuICAgICAgICAgICAgfSwgdHJ1ZSxcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBpZDogcG9sbC5pZFxuICAgICAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHN1Ym1pdFBvbGxWb3RlSGFuZGxlciA9IChwb2xsKSA9PiB7XG4gICAgICAgIGxldCBjaGF0UGFydGljaXBhbnQgPSBzZWxlY3RlZENoYXQucGFydGljaXBhbnRzLmZpbmQocCA9PiBwLnVzZXJuYW1lID09PSBjdXJyZW50VXNlci51c2VybmFtZSk7XG5cbiAgICAgICAgY29uc3QgZGF0YSA9IHtcbiAgICAgICAgICAgIHBvbGxJZDogcG9sbC5pZCxcbiAgICAgICAgICAgIG9wdGlvbklkOiBwb2xsLnNlbGVjdGVkT3B0aW9uIHx8IHBvbGwudGllQnJlYWtlck9wdGlvbixcbiAgICAgICAgICAgIGNoYXRQYXJ0aWNpcGFudDogY2hhdFBhcnRpY2lwYW50LFxuICAgICAgICAgICAgdGllQnJlYWtlcjogIVV0aWxzLmlzTnVsbChwb2xsLnRpZUJyZWFrZXJPcHRpb24pXG4gICAgICAgIH07XG5cbiAgICAgICAgcG9zdERhdGEoYCR7bG9jYXRpb24gKyAnLycgKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKX0vY2FsZW5kYXIvYXBpL3YxL3BvbGwvdm90ZWAsXG4gICAgICAgICAgICAocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICAgICAgICBmZXRjaENoYXQoKTtcbiAgICAgICAgICAgIH0sIChlKSA9PiB7XG5cbiAgICAgICAgICAgIH0sIHRydWUsIGRhdGEpO1xuICAgIH07XG5cbiAgICBjb25zdCBvblN5c3RlbUV2ZW50ID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgaWYgKHBheWxvYWQuc3lzdGVtRXZlbnRUeXBlID09PSBcIk5FV19QT0xMX1ZPVEVcIikge1xuICAgICAgICAgICAgbGV0IGZpbmQgPSBtZXNzYWdlcy5maW5kKChtc2cpID0+IG1zZy5wb2xsICYmIG1zZy5wb2xsLmlkID09PSBwYXlsb2FkLmRhdGEucG9sbElkKTtcbiAgICAgICAgICAgIGlmIChmaW5kKSB7XG4gICAgICAgICAgICAgICAgLy9maW5kLnRvdGFsVm90ZXMrKztcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbk1lc3NhZ2UgPSAocGF5bG9hZCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRDaGF0ICYmIHNlbGVjdGVkQ2hhdC5pZCA9PT0gcGF5bG9hZC5yb29tSWQpIHtcbiAgICAgICAgICAgIGlmIChwcm9wcy5vbk1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5vbk1lc3NhZ2UocGF5bG9hZC5jaGF0TWVzc2FnZSwgc2VsZWN0ZWRDaGF0KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBheWxvYWQuY2hhdE1lc3NhZ2UudHlwZSA9PT0gJ0VWRU5UJykge1xuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jaGF0VGFiKSB7XG4gICAgICAgICAgICAgICAgICAgIGZldGNoQ2hhdCgpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLmFkZGVkUGVvcGxlSGFuZGxlcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2VsZWN0ZWRDaGF0Lm1lc3NhZ2VzLnB1c2gocGF5bG9hZC5jaGF0TWVzc2FnZSk7XG4gICAgICAgICAgICBsb2FkTWVzc2FnZXMoKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbkRlbGV0ZU1lc3NhZ2UgPSAocGF5bG9hZCkgPT4ge1xuICAgICAgICBjb25zb2xlLmxvZyhcIk1FU1NBR0VTIDogXCIsIG1lc3NhZ2VzKTtcbiAgICAgICAgbGV0IG1zZyA9IG1lc3NhZ2VzLmZpbmQoKG0pID0+IG0uaWQgPT09IHBheWxvYWQubWVzc2FnZUlkKTtcbiAgICAgICAgY29uc29sZS5sb2cobXNnKTtcbiAgICAgICAgaWYgKG1zZykge1xuICAgICAgICAgICAgbXNnLmFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgc2V0UmVmcmVzaGVyKCFyZWZyZXNoZXIpO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IG9uRG93bmxvYWQgPSAoZmlsZU5hbWUsIHVybCkgPT4ge1xuICAgICAgICBmZXRjaCh1cmwpXG4gICAgICAgICAgICAudGhlbihyZXNwb25zZSA9PiByZXNwb25zZS5ibG9iKCkpXG4gICAgICAgICAgICAudGhlbihibG9iID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBsaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICAgICAgICAgICAgbGluay5ocmVmID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICAgICAgICAgICAgICBsaW5rLmRvd25sb2FkID0gZmlsZU5hbWU7XG4gICAgICAgICAgICAgICAgbGluay5jbGljaygpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5jYXRjaChjb25zb2xlLmVycm9yKTtcbiAgICB9O1xuXG4gICAgY29uc3QgbG9hZE1lc3NhZ2VzID0gKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpO1xuXG4gICAgICAgIGlmIChzZWxlY3RlZENoYXQpIHtcbiAgICAgICAgICAgIGNvbnN0IG5ld01lc3NhZ2VzID0gW10uY29uY2F0KHNlbGVjdGVkQ2hhdC5tZXNzYWdlcyk7XG4gICAgICAgICAgICBpZiAoIXByb3BzLnNob3dBbGxNZXNzYWdlc0Zvck5ld1BhcnRpY2lwYW50cykge1xuICAgICAgICAgICAgICAgIGxldCBmaW5kID0gc2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50cy5maW5kKHAgPT4gcC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGRhdGVBZGRlZFRvQ2hhdCA9IGZpbmQgPyBmaW5kLmRhdGVBZGRlZFRvQ2hhdCA6IG5ldyBEYXRlKCk7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlsdGVyZWRNZXNzYWdlcyA9IG5ld01lc3NhZ2VzXG4gICAgICAgICAgICAgICAgICAgIC5maWx0ZXIodHh0ID0+IGRhdGVBZGRlZFRvQ2hhdCA9PT0gbnVsbCB8fCBuZXcgRGF0ZShkYXRlQWRkZWRUb0NoYXQpIDwgbmV3IERhdGUodHh0LmNyZWF0ZWREYXRlKSk7XG4gICAgICAgICAgICAgICAgc2V0TWVzc2FnZXMoZmlsdGVyZWRNZXNzYWdlcyk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHNldE1lc3NhZ2VzKG5ld01lc3NhZ2VzKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRDaGF0Um9vbVRpdGxlID0gKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRDaGF0LnR5cGUgPT09ICdDQUxFTkRBUl9NRUVUSU5HJyB8fCBzZWxlY3RlZENoYXQudGl0bGUpIHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENoYXQudGl0bGU7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gJyc7XG4gICAgfTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFNlbGVjdGVkQ2hhdChwcm9wcy5zZWxlY3RlZENoYXQpO1xuICAgIH0sIFtwcm9wcy5zZWxlY3RlZENoYXRdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNjcm9sbFRvQm90dG9tKCk7XG4gICAgfSwgW21lc3NhZ2VzXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoc2VsZWN0ZWRDaGF0ICYmIGN1cnJlbnRVc2VyKSB7XG4gICAgICAgICAgICBzZXRNZXNzYWdlKCcnKTtcbiAgICAgICAgICAgIHNldERvY3VtZW50cyhudWxsKTtcblxuICAgICAgICAgICAgbGV0IGZpbmQgPSBzZWxlY3RlZENoYXQucGFydGljaXBhbnRzLmZpbmQocCA9PiBwLnVzZXJJZCA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUgfHwgcC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUpO1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChmaW5kKSkge1xuICAgICAgICAgICAgICAgIHBvc3REYXRhKGAke2xvY2F0aW9uICsgJy8nICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L2NhbGVuZGFyL2FwaS92MS9jaGF0L2FkZFBhcnRpY2lwYW50c2AsICgpID0+IHtcbiAgICAgICAgICAgICAgICB9LCAoZSkgPT4ge1xuXG4gICAgICAgICAgICAgICAgfSwgdHJ1ZSwge1xuICAgICAgICAgICAgICAgICAgICBjaGF0SWQ6IHNlbGVjdGVkQ2hhdC5pZCxcbiAgICAgICAgICAgICAgICAgICAgcGFydGljaXBhbnRzOiBbY3VycmVudFVzZXJdXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxvYWRNZXNzYWdlcygpO1xuICAgICAgICB9XG4gICAgfSwgW3NlbGVjdGVkQ2hhdCwgY3VycmVudFVzZXJdKTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNvY2tldEV2ZW50SGFuZGxlci5hcGkgPSBzb2NrZXRFdmVudEhhbmRsZXJBcGkoKTtcbiAgICB9KTtcblxuICAgIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHZjRXZlbnRNYW5hZ2VyLmFkZFN1YnNjcmlwdGlvbnMoc29ja2V0RXZlbnRIYW5kbGVyLCBWQ0V2ZW50VHlwZS5ERUxFVEVfQ0hBVF9NRVNTQUdFLCBWQ0V2ZW50VHlwZS5DSEFUX01FU1NBR0UsIFZDRXZlbnRUeXBlLlNZU1RFTV9FVkVOVCk7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICB2Y0V2ZW50TWFuYWdlci5yZW1vdmVTdWJzY3JpcHRpb25zKHNvY2tldEV2ZW50SGFuZGxlcik7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgY29uc3Qgc2Nyb2xsVG9Cb3R0b20gPSAoKSA9PiB7XG4gICAgICAgIGlmIChtZXNzYWdlc0VuZFJlZi5jdXJyZW50KSB7XG4gICAgICAgICAgICBtZXNzYWdlc0VuZFJlZi5jdXJyZW50LnNjcm9sbCh7dG9wOiBtZXNzYWdlc0VuZFJlZi5jdXJyZW50LnNjcm9sbEhlaWdodCwgYmVoYXZpb3I6ICdzbW9vdGgnfSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKGUpID0+IHtcbiAgICAgICAgc2V0TWVzc2FnZShlLnRhcmdldC52YWx1ZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHBhcnRpY2lwYW50c1VzZXJJZHMgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBzZWxlY3RlZENoYXRcbiAgICAgICAgICAgIC5wYXJ0aWNpcGFudHNcbiAgICAgICAgICAgIC5maWx0ZXIodXNlciA9PiB1c2VyLnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSlcbiAgICAgICAgICAgIC5tYXAodXNlciA9PiB1c2VyLnVzZXJuYW1lKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2VuZE1lc3NhZ2UgPSAoZSwgZmluYWxNZXNzYWdlID0gbnVsbCwgcG9sbCA9IG51bGwpID0+IHtcbiAgICAgICAgaWYgKGUpIHtcbiAgICAgICAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChtZXNzYWdlIHx8IGRvY3VtZW50cyB8fCBmaW5hbE1lc3NhZ2UgfHwgcG9sbCkge1xuXG4gICAgICAgICAgICBsZXQgbVR5cGUgPSAnVEVYVCc7XG5cbiAgICAgICAgICAgIGlmIChkb2N1bWVudHMgJiYgZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBsZXQgY29tYmluZWRTaXplID0gMDtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGRvYyBvZiBkb2N1bWVudHMpIHtcbiAgICAgICAgICAgICAgICAgICAgY29tYmluZWRTaXplID0gY29tYmluZWRTaXplICsgcGFyc2VJbnQoZG9jLnNpemUpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmIChjb21iaW5lZFNpemUgPiA3NTAwMDAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5hbGVydChhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VG9wVmlldygpLmlkLCBTeXN0ZW1FdmVudFR5cGUuQVBJX0VSUk9SLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQXR0YWNobWVudCBzaG91bGQgYmUgbm90IG1vcmUgdGhhbiA3LjVNQi4nXG4gICAgICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBtVHlwZSA9ICdGSUxFJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAocG9sbCkge1xuICAgICAgICAgICAgICAgIG1UeXBlID0gJ1BPTEwnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChmaW5hbE1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICBtVHlwZSA9ICdFVkVOVCdcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgbXNnID0ge1xuICAgICAgICAgICAgICAgIGNyZWF0ZWREYXRlOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgICAgICAgIHR5cGU6IG1UeXBlLFxuICAgICAgICAgICAgICAgIGFjdGl2ZTogdHJ1ZSxcbiAgICAgICAgICAgICAgICBjb250ZW50OiBmaW5hbE1lc3NhZ2UgPyBmaW5hbE1lc3NhZ2UgOiBtZXNzYWdlLFxuICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50OiBjdXJyZW50VXNlclxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgaWYgKGRvY3VtZW50cyAmJiBkb2N1bWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgIG1zZy5kb2N1bWVudHMgPSBkb2N1bWVudHM7XG4gICAgICAgICAgICAgICAgc2V0Q2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2goIWNsZWFyVXBsb2FkZWRGaWxlU3dpdGNoKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBvbGwpIHtcbiAgICAgICAgICAgICAgICBtc2cucG9sbCA9IHBvbGw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIG1zZy5wYXJ0aWNpcGFudC5hY3RpdmUgPSB0cnVlO1xuXG4gICAgICAgICAgICBjb25zdCBwYXJ0aWNpcGFudHNUb1NpZ25hbElkcyA9IHBhcnRpY2lwYW50c1VzZXJJZHMoKTtcbiAgICAgICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLkNIQVRfTUVTU0FHRSwge1xuICAgICAgICAgICAgICAgIHJvb21JZDogc2VsZWN0ZWRDaGF0LmlkLFxuICAgICAgICAgICAgICAgIGNoYXRNZXNzYWdlOiBtc2csXG4gICAgICAgICAgICAgICAgcGFydGljaXBhbnRzVG9TaWduYWxJZHMsXG4gICAgICAgICAgICAgICAgc2tpcEFsZXJ0OiBwcm9wcy5jaGF0VGFiIHx8IGZpbmFsTWVzc2FnZSxcbiAgICAgICAgICAgICAgICBuZXdDaGF0OiBzZWxlY3RlZENoYXQubWVzc2FnZXMubGVuZ3RoID09PSAwLFxuICAgICAgICAgICAgICAgIG1lZXRpbmdJZDogcHJvcHMubWVldGluZ0lkID8gcHJvcHMubWVldGluZ0lkIDogbnVsbCxcbiAgICAgICAgICAgICAgICBwcm9maWxlOiAoYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpIHx8IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnByb2ZpbGUpXG4gICAgICAgICAgICB9KS50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgbXNnLmlkID0gZGF0YS5pZDtcbiAgICAgICAgICAgICAgICBzZXRNZXNzYWdlcyhvbGRNc2dzID0+IFsuLi5vbGRNc2dzLCBtc2ddKTtcbiAgICAgICAgICAgICAgICBzZWxlY3RlZENoYXQubWVzc2FnZXMucHVzaChtc2cpO1xuXG4gICAgICAgICAgICAgICAgaWYgKHByb3BzLm9uTWVzc2FnZSAmJiBzZWxlY3RlZENoYXQpIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMub25NZXNzYWdlKG1zZywgc2VsZWN0ZWRDaGF0KTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KS5jYXRjaCgoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcIkVycm9yIHNlbmRpbmcgY2hhdCBtZXNzYWdlIDogXCIsIGVycm9yKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgc2V0TWVzc2FnZSgnJyk7XG4gICAgICAgIHNldEltZ1VwbG9hZENvbmZpcm0oJycpO1xuICAgICAgICBzZXREb2N1bWVudHMobnVsbClcbiAgICB9O1xuXG4gICAgY29uc3Qgb3BlbkFkZFBlb3BsZURpYWxvZyA9IChlKSA9PiB7XG4gICAgICAgIHNldE9wZW5BZGRQZW9wbGUodHJ1ZSlcbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyRmlsZVRodW1ibmFpbCA9IChtZXNzYWdlKSA9PiB7XG4gICAgICAgIGNvbnN0IHtkb2N1bWVudHN9ID0gbWVzc2FnZTtcbiAgICAgICAgY29uc3QgdGh1bWJuYWlscyA9IFtdO1xuICAgICAgICAvLyBUT0RPIDogTWFrZSBkb2NzIFVSTCBwYXRoIGEgY29uZmlnXG4gICAgICAgIGNvbnN0IGRvY3VtZW50RG93bmxvYWRVcmwgPSBsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL2Rvd25sb2FkJztcbiAgICAgICAgY29uc3QgdG9rZW5zUXVlcnlTdHJpbmcgPSAnYWNjZXNzX3Rva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdhY2Nlc3NUb2tlbicpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKCdpZFRva2VuJyk7XG5cbiAgICAgICAgZG9jdW1lbnRzLmZvckVhY2goKGRvYywgaW5kZXgpID0+IHtcbiAgICAgICAgICAgIGlmIChkb2MudHlwZS5pbmNsdWRlcygnaW1hZ2UnKSkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIHRodW1ibmFpbHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9eydjb2wnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17ZG9jLnBheWxvYWQgPyBkb2MucGF5bG9hZCA6IGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAyNTAsIGhlaWdodDogJ2F1dG8nfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgIT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRvd25sb2FkKGRvY3VtZW50c1tpbmRleF0ubmFtZSwgYCR7ZG9jdW1lbnREb3dubG9hZFVybCArICcvJyArIGRvYy5yZXBvc2l0b3J5SWQgKyAnPycgKyB0b2tlbnNRdWVyeVN0cmluZ31gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydET1dOTE9BRCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2ZvbnRTaXplOiAnMTRweCcsIG1hcmdpblRvcDogJzE0cHgnfX0+e2RvYy5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKGRvYy50eXBlLmluY2x1ZGVzKCdwZGYnKSkge1xuICAgICAgICAgICAgICAgIHRodW1ibmFpbHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3BkZkljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IDI1MCwgaGVpZ2h0OiAnYXV0byd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChkb2N1bWVudHNbaW5kZXhdLm5hbWUsIGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnRE9XTkxPQUQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPXsnY29sIG5vLW1hcmdpbiBuby1wYWRkaW5nJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2ZvbnRTaXplOiAnMTRweCcsIG1hcmdpblRvcDogJzE0cHgnfX0+e2RvYy5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy50eXBlLmluY2x1ZGVzKCdkb2MnKSkge1xuICAgICAgICAgICAgICAgIHRodW1ibmFpbHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17e2JvcmRlckJvdHRvbTogJzVweCBzb2xpZCBibGFjayd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2RvY0ljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IDI1MCwgaGVpZ2h0OiAnYXV0byd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChkb2N1bWVudHNbaW5kZXhdLm5hbWUsIGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnRE9XTkxPQUQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPXsnY29sIG5vLW1hcmdpbiBuby1wYWRkaW5nJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2ZvbnRTaXplOiAnMTRweCcsIG1hcmdpblRvcDogJzE0cHgnfX0+e2RvYy5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy50eXBlLmluY2x1ZGVzKCd3b3JkJykpIHtcbiAgICAgICAgICAgICAgICB0aHVtYm5haWxzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tib3JkZXJCb3R0b206ICc1cHggc29saWQgYmxhY2snfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXt3b3JkSWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogMjUwLCBoZWlnaHQ6ICdhdXRvJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgIT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRvd25sb2FkKGRvY3VtZW50c1tpbmRleF0ubmFtZSwgYCR7ZG9jdW1lbnREb3dubG9hZFVybCArICcvJyArIGRvYy5yZXBvc2l0b3J5SWQgKyAnPycgKyB0b2tlbnNRdWVyeVN0cmluZ31gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydET1dOTE9BRCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6ICcxNHB4JywgbWFyZ2luVG9wOiAnMTRweCd9fT57ZG9jLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZG9jLnR5cGUuaW5jbHVkZXMoJ3hscycpKSB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlscy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7Ym9yZGVyQm90dG9tOiAnNXB4IHNvbGlkIGJsYWNrJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17eHNsSWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogMjUwLCBoZWlnaHQ6ICdhdXRvJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgIT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRvd25sb2FkKGRvY3VtZW50c1tpbmRleF0ubmFtZSwgYCR7ZG9jdW1lbnREb3dubG9hZFVybCArICcvJyArIGRvYy5yZXBvc2l0b3J5SWQgKyAnPycgKyB0b2tlbnNRdWVyeVN0cmluZ31gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydET1dOTE9BRCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6ICcxNHB4JywgbWFyZ2luVG9wOiAnMTRweCd9fT57ZG9jLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlscy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2JvcmRlckJvdHRvbTogJzAuN3B4IHNvbGlkIGJsYWNrJywgcGFkZGluZ0JvdHRvbTogJzhweCcsIGJvcmRlcldpZHRoOiAnNTAlJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtwaHBJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAxMDAsIGhlaWdodDogJ2F1dG8nfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3ttYXJnaW5Ub3A6ICc0cHgnfX0+e2RvY3VtZW50c1tpbmRleF0ubmFtZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQoZG9jdW1lbnRzW2luZGV4XS5uYW1lLCBgJHtkb2N1bWVudERvd25sb2FkVXJsICsgJy8nICsgZG9jLnJlcG9zaXRvcnlJZCArICc/JyArIHRva2Vuc1F1ZXJ5U3RyaW5nfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RPV05MT0FEJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2ZvbnRTaXplOiAnMTRweCcsIG1hcmdpblRvcDogJzE0cHgnfX0+e2RvYy5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgcmV0dXJuIHRodW1ibmFpbHM7XG4gICAgfTtcblxuICAgIGNvbnN0IHJlbmRlckxpbmsgPSAoe2F0dHJpYnV0ZXMsIGNvbnRlbnR9KSA9PiB7XG4gICAgICAgIGNvbnN0IHtocmVmfSA9IGF0dHJpYnV0ZXM7XG4gICAgICAgIHJldHVybiA8YVxuICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgIHdpbmRvdy5vcGVuKGhyZWYpO1xuICAgICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgICAge2NvbnRlbnR9XG4gICAgICAgIDwvYT47XG4gICAgfTtcblxuICAgIGNvbnN0IGRlbGV0ZUNoYXRNZXNzYWdlID0gKG1lc3NhZ2UpID0+IHtcbiAgICAgICAgY29uc3QgcGFydGljaXBhbnRzVG9TaWduYWxJZHMgPSBwYXJ0aWNpcGFudHNVc2VySWRzKCk7XG4gICAgICAgIHNvY2tldE1hbmFnZXIuZW1pdEV2ZW50KFZDRXZlbnRUeXBlLkRFTEVURV9DSEFUX01FU1NBR0UsIHtcbiAgICAgICAgICAgIG1lc3NhZ2VJZDogbWVzc2FnZS5pZCxcbiAgICAgICAgICAgIHBhcnRpY2lwYW50c1RvU2lnbmFsSWRzLFxuICAgICAgICAgICAgcHJvZmlsZTogKGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKSB8fCBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS5wcm9maWxlKSxcbiAgICAgICAgICAgIHVzZXJJZDogYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWUsXG4gICAgICAgICAgICB1c2VybmFtZTogYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkudXNlcm5hbWVcbiAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgbWVzc2FnZS5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGNvbnN0IHJlbmRlck1lc3NhZ2UgPSAobWVzc2FnZSwgaW5kZXgpID0+IHtcbiAgICAgICAgaWYgKCFtZXNzYWdlLmFjdGl2ZSkge1xuICAgICAgICAgICAgcmV0dXJuIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPXsnY2hhdHJvb21fX21lc3NhZ2Ugcm93IG5vLW1hcmdpbid9PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXttZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lID09PSBjdXJyZW50VXNlci51c2VybmFtZSA/IFwibXljaGF0LWRlbGV0ZWRcIiA6IFwicGVlcmNoYXRcIn0+XG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgIT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7cGFkZGluZ1JpZ2h0OiAnMTJweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VXRpbHMuZ2V0SW5pdGlhbHMobWVzc2FnZS5wYXJ0aWNpcGFudC5uYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0F2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e1xuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogbWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUgPyBudWxsIDogXCIxcHggc29saWQgIzUyNWY3ZlwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogbWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUgPyBudWxsIDogXCIxNnB4XCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogbWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUgPyBudWxsIDogXCIwIDhweFwiXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JvdyBuby1tYXJnaW4gbm8tcGFkZGluZyd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sIG5vLW1hcmdpbiBuby1wYWRkaW5nJ30gc3R5bGU9e3tmb250U3R5bGU6ICdpdGFsaWMnfX0+ZGVsZXRlZDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAobWVzc2FnZS50eXBlID09PSAnRklMRScpIHtcbiAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiY2hhdHJvb21fX21lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cIm15Y2hhdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3Jvdyd9IHN0eWxlPXt7bWFyZ2luOiAnNHB4IDAgMCAwJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wgY2hhdC10aW1lJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge21vbWVudChtZXNzYWdlLmNyZWF0ZWREYXRlKS5mb3JtYXQoJ0REL01NLCBISDptbScpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIXByb3BzLmRpc2FibGVNZXNzYWdlRGVsZXRlICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRlbGV0ZUNoYXRNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydERUxFVEUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckZpbGVUaHVtYm5haWwobWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBrZXk9e2luZGV4fT57bWVzc2FnZS5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImNoYXRyb29tX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBlZXJjaGF0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1V0aWxzLmdldEluaXRpYWxzKG1lc3NhZ2UucGFydGljaXBhbnQubmFtZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwZWVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnttZXNzYWdlLnBhcnRpY2lwYW50Lm5hbWV9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57bW9tZW50KG1lc3NhZ2UuY3JlYXRlZERhdGUpLmZvcm1hdCgnREQvTU0sIEhIOm1tJyl9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbmRlckZpbGVUaHVtYm5haWwobWVzc2FnZSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwIGtleT17aW5kZXh9PnttZXNzYWdlLmNvbnRlbnR9PC9wPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ1RFWFQnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImNoYXRyb29tX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteWNoYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfSBzdHlsZT17e21hcmdpbjogJzRweCAwIDAgMCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sIGNoYXQtdGltZSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttb21lbnQobWVzc2FnZS5jcmVhdGVkRGF0ZSkuZm9ybWF0KCdERC9NTSwgSEg6bW0nKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9wcy5kaXNhYmxlTWVzc2FnZURlbGV0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVDaGF0TWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnREVMRVRFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlua2lmeSBrZXk9e2luZGV4fSBvcHRpb25zPXt7cmVuZGVyOiByZW5kZXJMaW5rfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7bWFyZ2luOiAnMCA4cHgnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge21lc3NhZ2UuY29udGVudC5zcGxpdCgnXFxuJykubWFwKCh0b2tlbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDw+e3Rva2VufTxici8+PC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9MaW5raWZ5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPVwiY2hhdHJvb21fX21lc3NhZ2VcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGVlcmNoYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8QXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7VXRpbHMuZ2V0SW5pdGlhbHMobWVzc2FnZS5wYXJ0aWNpcGFudC5uYW1lKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0F2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cInBlZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e21lc3NhZ2UucGFydGljaXBhbnQubmFtZX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuPnttb21lbnQobWVzc2FnZS5jcmVhdGVkRGF0ZSkuZm9ybWF0KCdERC9NTSwgSEg6bW0nKX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaW5raWZ5IGtleT17aW5kZXh9IG9wdGlvbnM9e3tyZW5kZXI6IHJlbmRlckxpbmt9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3ttYXJnaW46ICcwIDAgNHB4IDRweCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS5jb250ZW50LnNwbGl0KCdcXG4nKS5tYXAoKHRva2VuLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gPD57dG9rZW59PGJyLz48Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbmtpZnk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS50eXBlID09PSAnRVZFTlQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdi1wb2xsLWNob2ljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImN2LXBvbGwtY2hvaWNlLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjdi1jaG9pY2UtcGVyY2VudGFnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VsZWN0ZWQtY2hvaWNlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjdi1jaG9pY2UtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS5jb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydjdi1jaG9pY2UtcGVyY2VudC1jaGFydCBldmVudCd9IHN0eWxlPXt7d2lkdGg6ICcxMDAlJ319PlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxQb2xsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIHBvbGw9e21lc3NhZ2UucG9sbH1cbiAgICAgICAgICAgICAgICAgICAgY2hhdFRhYj17cHJvcHMuY2hhdFRhYn1cbiAgICAgICAgICAgICAgICAgICAgaXNIb3N0PXtwcm9wcy5pc0hvc3R9XG4gICAgICAgICAgICAgICAgICAgIGlzQ2hhaXJQZXJzb249e3Byb3BzLmlzQ2hhaXJQZXJzb259XG4gICAgICAgICAgICAgICAgICAgIHBvbGxDcmVhdG9yPXttZXNzYWdlLnBhcnRpY2lwYW50fVxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkRGF0ZT17bWVzc2FnZS5jcmVhdGVkRGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgc3VibWl0UG9sbFZvdGVIYW5kbGVyPXsocG9sbCkgPT4gc3VibWl0UG9sbFZvdGVIYW5kbGVyKHBvbGwpfVxuICAgICAgICAgICAgICAgICAgICBwb2xsUGFydGljaXBhbnRJRHM9e3NlbGVjdGVkQ2hhdC5wYXJ0aWNpcGFudHMubWFwKHAgPT4gcC51c2VybmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgICAgICAgICAgY2xvc2VQb2xsSGFuZGxlcj17KGUsIHBvbGwpID0+IGNsb3NlUG9sbEhhbmRsZXIoZSwgcG9sbCl9XG4gICAgICAgICAgICAgICAgICAgIG51bWJlck9mUG9sbFBhcnRpY2lwYW50cz17c2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoc2VsZWN0ZWRDaGF0ICYmIG1lc3NhZ2VzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoYXRyb29tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaGF0cm9vbV9faGVhZGVyXCIgc3R5bGU9e1V0aWxzLm1lcmdlT2JqZWN0cyh7fSwgcHJvcHMuaGVhZGVyU3R5bGUpfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgIXByb3BzLmNoYXRUYWIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2hhdHJvb21fX2hlYWRlcnJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9XCJQb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vZGUoJ1BPTEwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb2xsIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBwcm9wcy5jaGF0VGFiID8gJ3JlZCcgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IHByb3BzLmNoYXRUYWIgPyAnOHB4JyA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdQT0xMJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hhdFBvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0VGFiPXtwcm9wcy5jaGF0VGFifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50cz17c2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQb2xsSGFuZGxlcj17KHBvbGxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlKG51bGwsIG51bGwsIHBvbGxEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSgnQ0hBVCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsUG9sbEhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSgnQ0hBVCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAvPiA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdDSEFUJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibWVzc2FnZXNcIiByZWY9e21lc3NhZ2VzRW5kUmVmfSBjbGFzc05hbWU9XCJjaGF0cm9vbV9fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBuZXcgRGF0ZShhLmNyZWF0ZWREYXRlKSAtIG5ldyBEYXRlKGIuY3JlYXRlZERhdGUpKT8ubWFwKHJlbmRlck1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdDSEFUJyAmJiAhcHJvcHMucmVhZE9ubHkgJiZcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cImNoYXRyb29tX19zZW5kTWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWVzc2FnZV9faW1hZ2VTZWxlY3RvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NoYXQtaW5wdXQnfSBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9wcy5kaXNhYmxlRmlsZUF0dGFjaG1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImZpbGUtdXBsb2FkIGNoYXRzLWZpbGUtdXBsb2FkXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7ekluZGV4OiAhVXRpbHMuaXNOdWxsKGRvY3VtZW50cykgPyAxIDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUZpbGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17J2RvY3VtZW50cyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Db2xvcj17cHJvcHMuY2hhdFRhYiA/ICd3aGl0ZScgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZG9jdW1lbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclVwbG9hZGVkRmlsZVN3aXRjaD17Y2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2h9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KHZhbHVlLCBpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RG9jdW1lbnRzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEN1c3RvbUlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogIVV0aWxzLmlzTnVsbChkb2N1bWVudHMpID8gMCA6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHByb3BzLmNoYXRUYWIgPyAnd2hpdGUnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dD17ZG9jdW1lbnRzID8gXCJcIiA6IFwiVHlwZSBhIG5ldyBtZXNzYWdlXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IVV0aWxzLmlzTnVsbChkb2N1bWVudHMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sUHJvcHM9e3tmdWxsV2lkdGg6IHRydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Byb3BzLmNoYXRUYWIgPyAnd2hpdGUnIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRBZG9ybm1lbnQgcG9zaXRpb249XCJlbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5pbnB1dEFkb3JubWVudEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2UoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VuZEljb24gc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0QWRvcm5tZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmICghbG9hZGluZyAmJiBzZWxlY3RlZENoYXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY2VudGVyZWQtZmxleC1ib3gnfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVtcHR5Y2hhdFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydjZW50ZXJlZC1mbGV4LWJveCd9IHN0eWxlPXt7Zm9udFNpemU6ICcyMHB4JywgZm9udFdlaWdodDogJ2JvbGQnfX0+WW91J3JlIHN0YXJ0aW5nIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydjZW50ZXJlZC1mbGV4LWJveCd9IHN0eWxlPXt7Zm9udFNpemU6ICcxNnB4J319PlR5cGUgeW91ciBmaXJzdCBtZXNzYWdlIGJlbG93PC9wPlxuICAgICAgICAgICAgICAgICAgICA8TG90dGllSWNvbiBpZD17J2NoYXQnfS8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaGF0Um9vbTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxZQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVyxhQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdBQUFULHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYSxZQUFBLEdBQUFiLE9BQUE7QUFDQSxJQUFBYyxhQUFBLEdBQUFYLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFB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
775
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVXaWxkY2FyZCIsInJlcXVpcmUiLCJfbWF0ZXJpYWwiLCJfU2VuZCIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfVG9vbHRpcCIsIl9yZWFjdFJvdXRlckRvbSIsIl9tb21lbnQiLCJfSW5wdXRBZG9ybm1lbnQiLCJfU3R5bGVzIiwiX0N1c3RvbUlucHV0IiwiX0xvdHRpZUljb24iLCJfcmVhY3RGZWF0aGVyIiwiX1V0aWxzIiwiX1ZDRXZlbnRUeXBlIiwiX2xpbmtpZnlSZWFjdCIsIl9GaWxlIiwiX0FwcGxpY2F0aW9uTWFuYWdlciIsIl9SZXN0VXRpbHMiLCJfcGRmSWNvbiIsIl9kb2MiLCJfd29yZCIsIl9leGNlbCIsIl9WQ0V2ZW50TWFuYWdlciIsIl9Tb2NrZXRNYW5hZ2VyIiwiX0ljb24iLCJfQ2hhdFBvbGwiLCJfUG9sbENvbnRhaW5lciIsIl9pY29uc01hdGVyaWFsIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwidCIsIldlYWtNYXAiLCJyIiwibiIsIm8iLCJpIiwiZiIsIl9fcHJvdG9fXyIsImhhcyIsImdldCIsInNldCIsImhhc093blByb3BlcnR5IiwiY2FsbCIsIk9iamVjdCIsImRlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwibG9jYXRpb24iLCJleHBvcnRzIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkNoYXRSb29tIiwicHJvcHMiLCJuYXZpZ2F0ZSIsInVzZU5hdmlnYXRlIiwicmVmcmVzaGVyIiwic2V0UmVmcmVzaGVyIiwidXNlU3RhdGUiLCJtZXNzYWdlIiwic2V0TWVzc2FnZSIsInNlbGVjdGVkQ2hhdCIsInNldFNlbGVjdGVkQ2hhdCIsImRvY3VtZW50cyIsInNldERvY3VtZW50cyIsIm1lc3NhZ2VzIiwic2V0TWVzc2FnZXMiLCJuZXdQYXJ0aWNpcGFudHMiLCJzZXROZXdQYXJ0aWNpcGFudHMiLCJjb25maXJtIiwic2V0SW1nVXBsb2FkQ29uZmlybSIsIm1lc3NhZ2VzRW5kUmVmIiwidXNlUmVmIiwibG9hZGluZyIsInNldExvYWRpbmciLCJtb2RlIiwic2V0TW9kZSIsImNsZWFyVXBsb2FkZWRGaWxlU3dpdGNoIiwic2V0Q2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2giLCJzb2NrZXRFdmVudEhhbmRsZXIiLCJjdXJyZW50VXNlciIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldFVzZXJEZXRhaWxzIiwic29ja2V0RXZlbnRIYW5kbGVyQXBpIiwiaWQiLCJvbiIsImV2ZW50VHlwZSIsImJlIiwiVkNFdmVudFR5cGUiLCJDSEFUX01FU1NBR0UiLCJvbk1lc3NhZ2UiLCJwYXlsb2FkIiwiREVMRVRFX0NIQVRfTUVTU0FHRSIsIm9uRGVsZXRlTWVzc2FnZSIsIlNZU1RFTV9FVkVOVCIsIm9uU3lzdGVtRXZlbnQiLCJmZXRjaENoYXQiLCJ1cmwiLCJtZWV0aW5nSWQiLCJjb25jYXQiLCJnZXRDb250ZXh0Um9vdCIsInNlbmRSZXF1ZXN0IiwicmVzcG9uc2UiLCJjbG9zZVBvbGxIYW5kbGVyIiwicG9sbCIsInBvc3REYXRhIiwic2VuZE1lc3NhZ2UiLCJxdWVzdGlvbiIsInN1Ym1pdFBvbGxWb3RlSGFuZGxlciIsImNoYXRQYXJ0aWNpcGFudCIsInBhcnRpY2lwYW50cyIsImZpbmQiLCJwIiwidXNlcm5hbWUiLCJkYXRhIiwicG9sbElkIiwib3B0aW9uSWQiLCJzZWxlY3RlZE9wdGlvbiIsInRpZUJyZWFrZXJPcHRpb24iLCJ0aWVCcmVha2VyIiwiVXRpbHMiLCJpc051bGwiLCJzeXN0ZW1FdmVudFR5cGUiLCJtc2ciLCJyb29tSWQiLCJjaGF0TWVzc2FnZSIsInR5cGUiLCJjaGF0VGFiIiwiYWRkZWRQZW9wbGVIYW5kbGVyIiwicHVzaCIsImxvYWRNZXNzYWdlcyIsImNvbnNvbGUiLCJsb2ciLCJtIiwibWVzc2FnZUlkIiwiYWN0aXZlIiwib25Eb3dubG9hZCIsImZpbGVOYW1lIiwiZmV0Y2giLCJ0aGVuIiwiYmxvYiIsImxpbmsiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwiZG93bmxvYWQiLCJjbGljayIsImNhdGNoIiwiZXJyb3IiLCJzY3JvbGxUb0JvdHRvbSIsIm5ld01lc3NhZ2VzIiwic2hvd0FsbE1lc3NhZ2VzRm9yTmV3UGFydGljaXBhbnRzIiwiZGF0ZUFkZGVkVG9DaGF0IiwiRGF0ZSIsImZpbHRlcmVkTWVzc2FnZXMiLCJmaWx0ZXIiLCJ0eHQiLCJjcmVhdGVkRGF0ZSIsImdldENoYXRSb29tVGl0bGUiLCJ0aXRsZSIsInVzZUVmZmVjdCIsInVzZXJJZCIsImNoYXRJZCIsImFwaSIsInZjRXZlbnRNYW5hZ2VyIiwiYWRkU3Vic2NyaXB0aW9ucyIsInJlbW92ZVN1YnNjcmlwdGlvbnMiLCJjdXJyZW50Iiwic2Nyb2xsIiwidG9wIiwic2Nyb2xsSGVpZ2h0IiwiYmVoYXZpb3IiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJ2YWx1ZSIsInBhcnRpY2lwYW50c1VzZXJJZHMiLCJ1c2VyIiwibWFwIiwiZmluYWxNZXNzYWdlIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwidW5kZWZpbmVkIiwicHJldmVudERlZmF1bHQiLCJtVHlwZSIsImNvbWJpbmVkU2l6ZSIsImRvYyIsInBhcnNlSW50Iiwic2l6ZSIsImFsZXJ0IiwiZ2V0VG9wVmlldyIsIlN5c3RlbUV2ZW50VHlwZSIsIkFQSV9FUlJPUiIsImNvbnRlbnQiLCJwYXJ0aWNpcGFudCIsInBhcnRpY2lwYW50c1RvU2lnbmFsSWRzIiwic29ja2V0TWFuYWdlciIsImVtaXRFdmVudCIsInNraXBBbGVydCIsIm5ld0NoYXQiLCJwcm9maWxlIiwiZ2V0QWN0aXZlVGVuYW50Iiwib2xkTXNncyIsIm9wZW5BZGRQZW9wbGVEaWFsb2ciLCJzZXRPcGVuQWRkUGVvcGxlIiwicmVuZGVyRmlsZVRodW1ibmFpbCIsInRodW1ibmFpbHMiLCJkb2N1bWVudERvd25sb2FkVXJsIiwidG9rZW5zUXVlcnlTdHJpbmciLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJmb3JFYWNoIiwiaW5kZXgiLCJpbmNsdWRlcyIsImtleSIsImNsYXNzTmFtZSIsInNyYyIsInJlcG9zaXRvcnlJZCIsImFsdCIsInN0eWxlIiwid2lkdGgiLCJoZWlnaHQiLCJJY29uQnV0dG9uIiwiY29tcG9uZW50Iiwib25DbGljayIsIm5hbWUiLCJmb250U2l6ZSIsIm1hcmdpblRvcCIsInBkZkljb24iLCJib3JkZXJCb3R0b20iLCJkb2NJY29uIiwid29yZEljb24iLCJ4c2xJY29uIiwicGFkZGluZ0JvdHRvbSIsImJvcmRlcldpZHRoIiwicGhwSWNvbiIsInJlbmRlckxpbmsiLCJfcmVmIiwiYXR0cmlidXRlcyIsIm9wZW4iLCJkZWxldGVDaGF0TWVzc2FnZSIsInJlbmRlck1lc3NhZ2UiLCJwYWRkaW5nUmlnaHQiLCJBdmF0YXIiLCJnZXRJbml0aWFscyIsImJvcmRlciIsImJvcmRlclJhZGl1cyIsInBhZGRpbmciLCJmb250U3R5bGUiLCJtYXJnaW4iLCJtb21lbnQiLCJmb3JtYXQiLCJkaXNhYmxlTWVzc2FnZURlbGV0ZSIsIm9wdGlvbnMiLCJyZW5kZXIiLCJzcGxpdCIsInRva2VuIiwiRnJhZ21lbnQiLCJJbmZvIiwiaXNIb3N0IiwiaXNDaGFpclBlcnNvbiIsInBvbGxDcmVhdG9yIiwicG9sbFBhcnRpY2lwYW50SURzIiwibnVtYmVyT2ZQb2xsUGFydGljaXBhbnRzIiwiX21lc3NhZ2VzJHNvcnQiLCJtZXJnZU9iamVjdHMiLCJoZWFkZXJTdHlsZSIsIlBvbGwiLCJjb2xvciIsImNyZWF0ZVBvbGxIYW5kbGVyIiwicG9sbERhdGEiLCJjYW5jZWxQb2xsSGFuZGxlciIsInJlZiIsInNvcnQiLCJhIiwiYiIsInJlYWRPbmx5IiwicG9zaXRpb24iLCJkaXNhYmxlRmlsZUF0dGFjaG1lbnQiLCJ6SW5kZXgiLCJlbmFibGVGaWxlIiwibXVsdGlwbGUiLCJpY29uQ29sb3IiLCJ2YWx1ZUNoYW5nZUhhbmRsZXIiLCJsYWJlbFRleHQiLCJkaXNhYmxlZCIsIm11bHRpbGluZSIsImZvcm1Db250cm9sUHJvcHMiLCJmdWxsV2lkdGgiLCJhdXRvRm9jdXMiLCJpbnB1dFByb3BzIiwiZW5kQWRvcm5tZW50Iiwic3R5bGVzIiwiaW5wdXRBZG9ybm1lbnRJY29uIiwib25DaGFuZ2UiLCJmb250V2VpZ2h0IiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvbWVkaWEvY2hhdC9DaGF0Um9vbS5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFJlYWN0LCB7dXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlfSBmcm9tICdyZWFjdCc7XG5pbXBvcnQge0F2YXRhciwgSWNvbkJ1dHRvbn0gZnJvbSAnQG11aS9tYXRlcmlhbCc7XG5pbXBvcnQgU2VuZEljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9TZW5kJztcbmltcG9ydCBUb29sdGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvVG9vbHRpcCc7XG5pbXBvcnQge3VzZU5hdmlnYXRlfSBmcm9tICdyZWFjdC1yb3V0ZXItZG9tJztcbmltcG9ydCAnLi9DaGF0Um9vbXMuc2Nzcyc7XG5pbXBvcnQgbW9tZW50IGZyb20gJ21vbWVudCc7XG5pbXBvcnQgSW5wdXRBZG9ybm1lbnQgZnJvbSAnQG11aS9tYXRlcmlhbC9JbnB1dEFkb3JubWVudCc7XG5pbXBvcnQgc3R5bGVzIGZyb20gJy4vU3R5bGVzJztcbmltcG9ydCBDdXN0b21JbnB1dCBmcm9tICcuLi8uLi9jdXN0b21JbnB1dC9DdXN0b21JbnB1dCc7XG5pbXBvcnQgTG90dGllSWNvbiBmcm9tICcuLi8uLi9Mb3R0aWVJY29uJztcbmltcG9ydCB7SW5mb30gZnJvbSAncmVhY3QtZmVhdGhlcic7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vLi4vVXRpbHMnO1xuaW1wb3J0IHtWQ0V2ZW50VHlwZX0gZnJvbSBcIi4uL1ZDRXZlbnRUeXBlXCI7XG5pbXBvcnQgTGlua2lmeSBmcm9tIFwibGlua2lmeS1yZWFjdFwiO1xuaW1wb3J0IEZpbGUgZnJvbSBcIi4uLy4uL2N1c3RvbUlucHV0L0ZpbGVcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IHtwb3N0RGF0YSwgc2VuZFJlcXVlc3R9IGZyb20gXCIuLi8uLi8uLi9SZXN0VXRpbHNcIjtcbmltcG9ydCBwZGZJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbWcvcGRmLWljb24ucG5nJ1xuaW1wb3J0IGRvY0ljb24gZnJvbSAnLi4vLi4vLi4vYXNzZXRzL2ltZy9kb2MucG5nJ1xuaW1wb3J0IHdvcmRJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbWcvd29yZC5wbmcnXG5pbXBvcnQgeHNsSWNvbiBmcm9tICcuLi8uLi8uLi9hc3NldHMvaW1nL2V4Y2VsLnBuZydcbmltcG9ydCBwaHBJY29uIGZyb20gJy4uLy4uLy4uL2Fzc2V0cy9pbWcvZXhjZWwucG5nJ1xuaW1wb3J0IHZjRXZlbnRNYW5hZ2VyIGZyb20gXCIuLi9WQ0V2ZW50TWFuYWdlclwiO1xuaW1wb3J0IHNvY2tldE1hbmFnZXIgZnJvbSBcIi4uLy4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCBJY29uIGZyb20gXCIuLi8uLi9JY29uXCI7XG5pbXBvcnQgQ2hhdFBvbGwgZnJvbSBcIi4vQ2hhdFBvbGxcIjtcbmltcG9ydCBQb2xsQ29udGFpbmVyIGZyb20gXCIuL1BvbGxDb250YWluZXJcIjtcbmltcG9ydCB7UG9sbH0gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWxcIjtcblxuZXhwb3J0IGNvbnN0IGxvY2F0aW9uID0gd2luZG93LmxvY2F0aW9uLnByb3RvY29sICsgJy8vJyArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcblxuY29uc3QgQ2hhdFJvb20gPSAocHJvcHMpID0+IHtcbiAgICBjb25zdCBuYXZpZ2F0ZSA9IHVzZU5hdmlnYXRlKCk7XG5cbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gdXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IFttZXNzYWdlLCBzZXRNZXNzYWdlXSA9IHVzZVN0YXRlKCcnKTtcbiAgICBjb25zdCBbc2VsZWN0ZWRDaGF0LCBzZXRTZWxlY3RlZENoYXRdID0gdXNlU3RhdGUocHJvcHMuc2VsZWN0ZWRDaGF0KTtcbiAgICBjb25zdCBbZG9jdW1lbnRzLCBzZXREb2N1bWVudHNdID0gdXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgW21lc3NhZ2VzLCBzZXRNZXNzYWdlc10gPSB1c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW25ld1BhcnRpY2lwYW50cywgc2V0TmV3UGFydGljaXBhbnRzXSA9IHVzZVN0YXRlKFtdKTtcbiAgICBjb25zdCBbY29uZmlybSwgc2V0SW1nVXBsb2FkQ29uZmlybV0gPSB1c2VTdGF0ZSgnJyk7XG4gICAgY29uc3QgbWVzc2FnZXNFbmRSZWYgPSB1c2VSZWYobnVsbCk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gdXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW21vZGUsIHNldE1vZGVdID0gdXNlU3RhdGUoJ0NIQVQnKTtcbiAgICBjb25zdCBbY2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2gsIHNldENsZWFyVXBsb2FkZWRGaWxlU3dpdGNoXSA9IHVzZVN0YXRlKGZhbHNlKTtcbiAgICBjb25zdCBbc29ja2V0RXZlbnRIYW5kbGVyXSA9IHVzZVN0YXRlKHt9KTtcbiAgICBjb25zdCBbY3VycmVudFVzZXJdID0gdXNlU3RhdGUoYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkpO1xuXG4gICAgY29uc3Qgc29ja2V0RXZlbnRIYW5kbGVyQXBpID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgZ2V0IGlkKCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAnY2hhdC1yb29tLTEyMjk5MTgyOSc7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgb246IChldmVudFR5cGUsIGJlKSA9PiB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChldmVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5DSEFUX01FU1NBR0U6XG4gICAgICAgICAgICAgICAgICAgICAgICBvbk1lc3NhZ2UoYmUucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgY2FzZSBWQ0V2ZW50VHlwZS5ERUxFVEVfQ0hBVF9NRVNTQUdFOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25EZWxldGVNZXNzYWdlKGJlLnBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgVkNFdmVudFR5cGUuU1lTVEVNX0VWRU5UOlxuICAgICAgICAgICAgICAgICAgICAgICAgb25TeXN0ZW1FdmVudChiZS5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBmZXRjaENoYXQgPSAoKSA9PiB7XG4gICAgICAgIGxldCB1cmwgPSBzZWxlY3RlZENoYXQubWVldGluZ0lkID9cbiAgICAgICAgICAgIGAke2xvY2F0aW9uICsgJy8nICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L2NhbGVuZGFyL2FwaS92MS9jaGF0L2ZldGNoTWVldGluZ0NoYXQvJHtzZWxlY3RlZENoYXQubWVldGluZ0lkfWBcbiAgICAgICAgICAgIDpcbiAgICAgICAgICAgIGAke2xvY2F0aW9uICsgJy8nICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L2NhbGVuZGFyL2FwaS92MS9jaGF0L2ZldGNoLyR7c2VsZWN0ZWRDaGF0LmlkfWA7XG4gICAgICAgIHNlbmRSZXF1ZXN0KHVybCwgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICBpZiAocmVzcG9uc2UgJiYgcmVzcG9uc2UuaWQpIHtcbiAgICAgICAgICAgICAgICBzZXRTZWxlY3RlZENoYXQocmVzcG9uc2UpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCAoZSkgPT4ge1xuXG4gICAgICAgIH0sIHRydWUsIGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgY2xvc2VQb2xsSGFuZGxlciA9IChlLCBwb2xsKSA9PiB7XG4gICAgICAgIHBvc3REYXRhKGAke2xvY2F0aW9uICsgJy8nICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L2NhbGVuZGFyL2FwaS92MS9wb2xsL2Nsb3NlYCxcbiAgICAgICAgICAgIChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlKGUsIGBQb2xsOiAke3BvbGwucXVlc3Rpb259IGhhcyBiZWVuIGNsb3NlZC5gKTtcbiAgICAgICAgICAgICAgICBmZXRjaENoYXQoKTtcbiAgICAgICAgICAgIH0sIChlKSA9PiB7XG5cbiAgICAgICAgICAgIH0sIHRydWUsXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgaWQ6IHBvbGwuaWRcbiAgICAgICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBzdWJtaXRQb2xsVm90ZUhhbmRsZXIgPSAocG9sbCkgPT4ge1xuICAgICAgICBsZXQgY2hhdFBhcnRpY2lwYW50ID0gc2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50cy5maW5kKHAgPT4gcC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUpO1xuXG4gICAgICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICAgICAgICBwb2xsSWQ6IHBvbGwuaWQsXG4gICAgICAgICAgICBvcHRpb25JZDogcG9sbC5zZWxlY3RlZE9wdGlvbiB8fCBwb2xsLnRpZUJyZWFrZXJPcHRpb24sXG4gICAgICAgICAgICBjaGF0UGFydGljaXBhbnQ6IGNoYXRQYXJ0aWNpcGFudCxcbiAgICAgICAgICAgIHRpZUJyZWFrZXI6ICFVdGlscy5pc051bGwocG9sbC50aWVCcmVha2VyT3B0aW9uKVxuICAgICAgICB9O1xuXG4gICAgICAgIHBvc3REYXRhKGAke2xvY2F0aW9uICsgJy8nICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCl9L2NhbGVuZGFyL2FwaS92MS9wb2xsL3ZvdGVgLFxuICAgICAgICAgICAgKHJlc3BvbnNlKSA9PiB7XG4gICAgICAgICAgICAgICAgZmV0Y2hDaGF0KCk7XG4gICAgICAgICAgICB9LCAoZSkgPT4ge1xuXG4gICAgICAgICAgICB9LCB0cnVlLCBkYXRhKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgb25TeXN0ZW1FdmVudCA9IChwYXlsb2FkKSA9PiB7XG4gICAgICAgIGlmIChwYXlsb2FkLnN5c3RlbUV2ZW50VHlwZSA9PT0gXCJORVdfUE9MTF9WT1RFXCIpIHtcbiAgICAgICAgICAgIGxldCBmaW5kID0gbWVzc2FnZXMuZmluZCgobXNnKSA9PiBtc2cucG9sbCAmJiBtc2cucG9sbC5pZCA9PT0gcGF5bG9hZC5kYXRhLnBvbGxJZCk7XG4gICAgICAgICAgICBpZiAoZmluZCkge1xuICAgICAgICAgICAgICAgIC8vZmluZC50b3RhbFZvdGVzKys7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgb25NZXNzYWdlID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhdCAmJiBzZWxlY3RlZENoYXQuaWQgPT09IHBheWxvYWQucm9vbUlkKSB7XG4gICAgICAgICAgICBpZiAocHJvcHMub25NZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgcHJvcHMub25NZXNzYWdlKHBheWxvYWQuY2hhdE1lc3NhZ2UsIHNlbGVjdGVkQ2hhdCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwYXlsb2FkLmNoYXRNZXNzYWdlLnR5cGUgPT09ICdFVkVOVCcpIHtcbiAgICAgICAgICAgICAgICBpZiAocHJvcHMuY2hhdFRhYikge1xuICAgICAgICAgICAgICAgICAgICBmZXRjaENoYXQoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5hZGRlZFBlb3BsZUhhbmRsZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNlbGVjdGVkQ2hhdC5tZXNzYWdlcy5wdXNoKHBheWxvYWQuY2hhdE1lc3NhZ2UpO1xuICAgICAgICAgICAgbG9hZE1lc3NhZ2VzKCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3Qgb25EZWxldGVNZXNzYWdlID0gKHBheWxvYWQpID0+IHtcbiAgICAgICAgY29uc29sZS5sb2coXCJNRVNTQUdFUyA6IFwiLCBtZXNzYWdlcyk7XG4gICAgICAgIGxldCBtc2cgPSBtZXNzYWdlcy5maW5kKChtKSA9PiBtLmlkID09PSBwYXlsb2FkLm1lc3NhZ2VJZCk7XG4gICAgICAgIGNvbnNvbGUubG9nKG1zZyk7XG4gICAgICAgIGlmIChtc2cpIHtcbiAgICAgICAgICAgIG1zZy5hY3RpdmUgPSBmYWxzZTtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBvbkRvd25sb2FkID0gKGZpbGVOYW1lLCB1cmwpID0+IHtcbiAgICAgICAgZmV0Y2godXJsKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuYmxvYigpKVxuICAgICAgICAgICAgLnRoZW4oYmxvYiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgICAgICAgICAgIGxpbmsuaHJlZiA9IFVSTC5jcmVhdGVPYmplY3RVUkwoYmxvYik7XG4gICAgICAgICAgICAgICAgbGluay5kb3dubG9hZCA9IGZpbGVOYW1lO1xuICAgICAgICAgICAgICAgIGxpbmsuY2xpY2soKTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAuY2F0Y2goY29uc29sZS5lcnJvcik7XG4gICAgfTtcblxuICAgIGNvbnN0IGxvYWRNZXNzYWdlcyA9ICgpID0+IHtcbiAgICAgICAgc2Nyb2xsVG9Cb3R0b20oKTtcblxuICAgICAgICBpZiAoc2VsZWN0ZWRDaGF0KSB7XG4gICAgICAgICAgICBjb25zdCBuZXdNZXNzYWdlcyA9IFtdLmNvbmNhdChzZWxlY3RlZENoYXQubWVzc2FnZXMpO1xuICAgICAgICAgICAgaWYgKCFwcm9wcy5zaG93QWxsTWVzc2FnZXNGb3JOZXdQYXJ0aWNpcGFudHMpIHtcbiAgICAgICAgICAgICAgICBsZXQgZmluZCA9IHNlbGVjdGVkQ2hhdC5wYXJ0aWNpcGFudHMuZmluZChwID0+IHAudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lKTtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlQWRkZWRUb0NoYXQgPSBmaW5kID8gZmluZC5kYXRlQWRkZWRUb0NoYXQgOiBuZXcgRGF0ZSgpO1xuICAgICAgICAgICAgICAgIGNvbnN0IGZpbHRlcmVkTWVzc2FnZXMgPSBuZXdNZXNzYWdlc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKHR4dCA9PiBkYXRlQWRkZWRUb0NoYXQgPT09IG51bGwgfHwgbmV3IERhdGUoZGF0ZUFkZGVkVG9DaGF0KSA8IG5ldyBEYXRlKHR4dC5jcmVhdGVkRGF0ZSkpO1xuICAgICAgICAgICAgICAgIHNldE1lc3NhZ2VzKGZpbHRlcmVkTWVzc2FnZXMpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBzZXRNZXNzYWdlcyhuZXdNZXNzYWdlcyk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0Q2hhdFJvb21UaXRsZSA9ICgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhdC50eXBlID09PSAnQ0FMRU5EQVJfTUVFVElORycgfHwgc2VsZWN0ZWRDaGF0LnRpdGxlKSB7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRDaGF0LnRpdGxlO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH07XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzZXRTZWxlY3RlZENoYXQocHJvcHMuc2VsZWN0ZWRDaGF0KTtcbiAgICB9LCBbcHJvcHMuc2VsZWN0ZWRDaGF0XSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzY3JvbGxUb0JvdHRvbSgpO1xuICAgIH0sIFttZXNzYWdlc10pO1xuXG4gICAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHNlbGVjdGVkQ2hhdCAmJiBjdXJyZW50VXNlcikge1xuICAgICAgICAgICAgc2V0TWVzc2FnZSgnJyk7XG4gICAgICAgICAgICBzZXREb2N1bWVudHMobnVsbCk7XG5cbiAgICAgICAgICAgIGxldCBmaW5kID0gc2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50cy5maW5kKHAgPT4gcC51c2VySWQgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lIHx8IHAudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZmluZCkpIHtcbiAgICAgICAgICAgICAgICBwb3N0RGF0YShgJHtsb2NhdGlvbiArICcvJyArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpfS9jYWxlbmRhci9hcGkvdjEvY2hhdC9hZGRQYXJ0aWNpcGFudHNgLCAoKSA9PiB7XG4gICAgICAgICAgICAgICAgfSwgKGUpID0+IHtcblxuICAgICAgICAgICAgICAgIH0sIHRydWUsIHtcbiAgICAgICAgICAgICAgICAgICAgY2hhdElkOiBzZWxlY3RlZENoYXQuaWQsXG4gICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50czogW2N1cnJlbnRVc2VyXVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsb2FkTWVzc2FnZXMoKTtcbiAgICAgICAgfVxuICAgIH0sIFtzZWxlY3RlZENoYXQsIGN1cnJlbnRVc2VyXSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBzb2NrZXRFdmVudEhhbmRsZXIuYXBpID0gc29ja2V0RXZlbnRIYW5kbGVyQXBpKCk7XG4gICAgfSk7XG5cbiAgICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICB2Y0V2ZW50TWFuYWdlci5hZGRTdWJzY3JpcHRpb25zKHNvY2tldEV2ZW50SGFuZGxlciwgVkNFdmVudFR5cGUuREVMRVRFX0NIQVRfTUVTU0FHRSwgVkNFdmVudFR5cGUuQ0hBVF9NRVNTQUdFLCBWQ0V2ZW50VHlwZS5TWVNURU1fRVZFTlQpO1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgdmNFdmVudE1hbmFnZXIucmVtb3ZlU3Vic2NyaXB0aW9ucyhzb2NrZXRFdmVudEhhbmRsZXIpO1xuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIGNvbnN0IHNjcm9sbFRvQm90dG9tID0gKCkgPT4ge1xuICAgICAgICBpZiAobWVzc2FnZXNFbmRSZWYuY3VycmVudCkge1xuICAgICAgICAgICAgbWVzc2FnZXNFbmRSZWYuY3VycmVudC5zY3JvbGwoe3RvcDogbWVzc2FnZXNFbmRSZWYuY3VycmVudC5zY3JvbGxIZWlnaHQsIGJlaGF2aW9yOiAnc21vb3RoJ30pO1xuICAgICAgICB9XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZSA9IChlKSA9PiB7XG4gICAgICAgIHNldE1lc3NhZ2UoZS50YXJnZXQudmFsdWUpO1xuICAgIH07XG5cbiAgICBjb25zdCBwYXJ0aWNpcGFudHNVc2VySWRzID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gc2VsZWN0ZWRDaGF0XG4gICAgICAgICAgICAucGFydGljaXBhbnRzXG4gICAgICAgICAgICAuZmlsdGVyKHVzZXIgPT4gdXNlci51c2VybmFtZSAhPT0gY3VycmVudFVzZXIudXNlcm5hbWUpXG4gICAgICAgICAgICAubWFwKHVzZXIgPT4gdXNlci51c2VybmFtZSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNlbmRNZXNzYWdlID0gKGUsIGZpbmFsTWVzc2FnZSA9IG51bGwsIHBvbGwgPSBudWxsKSA9PiB7XG4gICAgICAgIGlmIChlKSB7XG4gICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAobWVzc2FnZSB8fCBkb2N1bWVudHMgfHwgZmluYWxNZXNzYWdlIHx8IHBvbGwpIHtcblxuICAgICAgICAgICAgbGV0IG1UeXBlID0gJ1RFWFQnO1xuXG4gICAgICAgICAgICBpZiAoZG9jdW1lbnRzICYmIGRvY3VtZW50cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbWJpbmVkU2l6ZSA9IDA7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBkb2Mgb2YgZG9jdW1lbnRzKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbWJpbmVkU2l6ZSA9IGNvbWJpbmVkU2l6ZSArIHBhcnNlSW50KGRvYy5zaXplKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoY29tYmluZWRTaXplID4gNzUwMDAwMCkge1xuICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuYWxlcnQoYXBwbGljYXRpb25NYW5hZ2VyLmdldFRvcFZpZXcoKS5pZCwgU3lzdGVtRXZlbnRUeXBlLkFQSV9FUlJPUiwge1xuICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0F0dGFjaG1lbnQgc2hvdWxkIGJlIG5vdCBtb3JlIHRoYW4gNy41TUIuJ1xuICAgICAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgbVR5cGUgPSAnRklMRSc7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKHBvbGwpIHtcbiAgICAgICAgICAgICAgICBtVHlwZSA9ICdQT0xMJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoZmluYWxNZXNzYWdlKSB7XG4gICAgICAgICAgICAgICAgbVR5cGUgPSAnRVZFTlQnXG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG1zZyA9IHtcbiAgICAgICAgICAgICAgICBjcmVhdGVkRGF0ZTogbmV3IERhdGUoKSxcbiAgICAgICAgICAgICAgICB0eXBlOiBtVHlwZSxcbiAgICAgICAgICAgICAgICBhY3RpdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgY29udGVudDogZmluYWxNZXNzYWdlID8gZmluYWxNZXNzYWdlIDogbWVzc2FnZSxcbiAgICAgICAgICAgICAgICBwYXJ0aWNpcGFudDogY3VycmVudFVzZXJcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGlmIChkb2N1bWVudHMgJiYgZG9jdW1lbnRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICBtc2cuZG9jdW1lbnRzID0gZG9jdW1lbnRzO1xuICAgICAgICAgICAgICAgIHNldENsZWFyVXBsb2FkZWRGaWxlU3dpdGNoKCFjbGVhclVwbG9hZGVkRmlsZVN3aXRjaCk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwb2xsKSB7XG4gICAgICAgICAgICAgICAgbXNnLnBvbGwgPSBwb2xsO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBtc2cucGFydGljaXBhbnQuYWN0aXZlID0gdHJ1ZTtcblxuICAgICAgICAgICAgY29uc3QgcGFydGljaXBhbnRzVG9TaWduYWxJZHMgPSBwYXJ0aWNpcGFudHNVc2VySWRzKCk7XG4gICAgICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5DSEFUX01FU1NBR0UsIHtcbiAgICAgICAgICAgICAgICByb29tSWQ6IHNlbGVjdGVkQ2hhdC5pZCxcbiAgICAgICAgICAgICAgICBjaGF0TWVzc2FnZTogbXNnLFxuICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50c1RvU2lnbmFsSWRzLFxuICAgICAgICAgICAgICAgIHNraXBBbGVydDogcHJvcHMuY2hhdFRhYiB8fCBmaW5hbE1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgbmV3Q2hhdDogc2VsZWN0ZWRDaGF0Lm1lc3NhZ2VzLmxlbmd0aCA9PT0gMCxcbiAgICAgICAgICAgICAgICBtZWV0aW5nSWQ6IHByb3BzLm1lZXRpbmdJZCA/IHByb3BzLm1lZXRpbmdJZCA6IG51bGwsXG4gICAgICAgICAgICAgICAgcHJvZmlsZTogKGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBY3RpdmVUZW5hbnQoKSB8fCBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0VXNlckRldGFpbHMoKS5wcm9maWxlKVxuICAgICAgICAgICAgfSkudGhlbigoZGF0YSkgPT4ge1xuICAgICAgICAgICAgICAgIG1zZy5pZCA9IGRhdGEuaWQ7XG4gICAgICAgICAgICAgICAgc2V0TWVzc2FnZXMob2xkTXNncyA9PiBbLi4ub2xkTXNncywgbXNnXSk7XG4gICAgICAgICAgICAgICAgc2VsZWN0ZWRDaGF0Lm1lc3NhZ2VzLnB1c2gobXNnKTtcblxuICAgICAgICAgICAgICAgIGlmIChwcm9wcy5vbk1lc3NhZ2UgJiYgc2VsZWN0ZWRDaGF0KSB7XG4gICAgICAgICAgICAgICAgICAgIHByb3BzLm9uTWVzc2FnZShtc2csIHNlbGVjdGVkQ2hhdCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSkuY2F0Y2goKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coXCJFcnJvciBzZW5kaW5nIGNoYXQgbWVzc2FnZSA6IFwiLCBlcnJvcilcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIHNldE1lc3NhZ2UoJycpO1xuICAgICAgICBzZXRJbWdVcGxvYWRDb25maXJtKCcnKTtcbiAgICAgICAgc2V0RG9jdW1lbnRzKG51bGwpXG4gICAgfTtcblxuICAgIGNvbnN0IG9wZW5BZGRQZW9wbGVEaWFsb2cgPSAoZSkgPT4ge1xuICAgICAgICBzZXRPcGVuQWRkUGVvcGxlKHRydWUpXG4gICAgfTtcblxuICAgIGNvbnN0IHJlbmRlckZpbGVUaHVtYm5haWwgPSAobWVzc2FnZSkgPT4ge1xuICAgICAgICBjb25zdCB7ZG9jdW1lbnRzfSA9IG1lc3NhZ2U7XG4gICAgICAgIGNvbnN0IHRodW1ibmFpbHMgPSBbXTtcbiAgICAgICAgLy8gVE9ETyA6IE1ha2UgZG9jcyBVUkwgcGF0aCBhIGNvbmZpZ1xuICAgICAgICBjb25zdCBkb2N1bWVudERvd25sb2FkVXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci9kb3dubG9hZCc7XG4gICAgICAgIGNvbnN0IHRva2Vuc1F1ZXJ5U3RyaW5nID0gJ2FjY2Vzc190b2tlbj0nICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnYWNjZXNzVG9rZW4nKSArICcmaWRUb2tlbj0nICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSgnaWRUb2tlbicpO1xuXG4gICAgICAgIGRvY3VtZW50cy5mb3JFYWNoKChkb2MsIGluZGV4KSA9PiB7XG4gICAgICAgICAgICBpZiAoZG9jLnR5cGUuaW5jbHVkZXMoJ2ltYWdlJykpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICB0aHVtYm5haWxzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2RvYy5wYXlsb2FkID8gZG9jLnBheWxvYWQgOiBgJHtkb2N1bWVudERvd25sb2FkVXJsICsgJy8nICsgZG9jLnJlcG9zaXRvcnlJZCArICc/JyArIHRva2Vuc1F1ZXJ5U3RyaW5nfWB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogMjUwLCBoZWlnaHQ6ICdhdXRvJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JvdyBuby1tYXJnaW4gbm8tcGFkZGluZyd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChkb2N1bWVudHNbaW5kZXhdLm5hbWUsIGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnRE9XTkxPQUQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6ICcxNHB4JywgbWFyZ2luVG9wOiAnMTRweCd9fT57ZG9jLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoZG9jLnR5cGUuaW5jbHVkZXMoJ3BkZicpKSB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlscy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17cGRmSWNvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3t3aWR0aDogMjUwLCBoZWlnaHQ6ICdhdXRvJ319XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgIT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkRvd25sb2FkKGRvY3VtZW50c1tpbmRleF0ubmFtZSwgYCR7ZG9jdW1lbnREb3dubG9hZFVybCArICcvJyArIGRvYy5yZXBvc2l0b3J5SWQgKyAnPycgKyB0b2tlbnNRdWVyeVN0cmluZ31gKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydET1dOTE9BRCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sIG5vLW1hcmdpbiBuby1wYWRkaW5nJ31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2ZvbnRTaXplOiAnMTRweCcsIG1hcmdpblRvcDogJzE0cHgnfX0+e2RvYy5uYW1lfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9IGVsc2UgaWYgKGRvYy50eXBlLmluY2x1ZGVzKCdkb2MnKSkge1xuICAgICAgICAgICAgICAgIHRodW1ibmFpbHMucHVzaChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17e2JvcmRlckJvdHRvbTogJzVweCBzb2xpZCBibGFjayd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2luZGV4fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e2RvY0ljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IDI1MCwgaGVpZ2h0OiAnYXV0byd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChkb2N1bWVudHNbaW5kZXhdLm5hbWUsIGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnRE9XTkxPQUQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTogJzE0cHgnLCBtYXJnaW5Ub3A6ICcxNHB4J319Pntkb2MubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MudHlwZS5pbmNsdWRlcygnd29yZCcpKSB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlscy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IHN0eWxlPXt7Ym9yZGVyQm90dG9tOiAnNXB4IHNvbGlkIGJsYWNrJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW1nXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17aW5kZXh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNyYz17d29yZEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7d2lkdGg6IDI1MCwgaGVpZ2h0OiAnYXV0byd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25Eb3dubG9hZChkb2N1bWVudHNbaW5kZXhdLm5hbWUsIGAke2RvY3VtZW50RG93bmxvYWRVcmwgKyAnLycgKyBkb2MucmVwb3NpdG9yeUlkICsgJz8nICsgdG9rZW5zUXVlcnlTdHJpbmd9YClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnRE9XTkxPQUQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTogJzE0cHgnLCBtYXJnaW5Ub3A6ICcxNHB4J319Pntkb2MubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSBlbHNlIGlmIChkb2MudHlwZS5pbmNsdWRlcygneGxzJykpIHtcbiAgICAgICAgICAgICAgICB0aHVtYm5haWxzLnB1c2goXG4gICAgICAgICAgICAgICAgICAgIDxkaXYga2V5PXtpbmRleH0gc3R5bGU9e3tib3JkZXJCb3R0b206ICc1cHggc29saWQgYmxhY2snfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXt4c2xJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAyNTAsIGhlaWdodDogJ2F1dG8nfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSAhPT0gY3VycmVudFVzZXIudXNlcm5hbWUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J3JvdyBuby1tYXJnaW4gbm8tcGFkZGluZyd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQoZG9jdW1lbnRzW2luZGV4XS5uYW1lLCBgJHtkb2N1bWVudERvd25sb2FkVXJsICsgJy8nICsgZG9jLnJlcG9zaXRvcnlJZCArICc/JyArIHRva2Vuc1F1ZXJ5U3RyaW5nfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RPV05MT0FEJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7Zm9udFNpemU6ICcxNHB4JywgbWFyZ2luVG9wOiAnMTRweCd9fT57ZG9jLm5hbWV9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGh1bWJuYWlscy5wdXNoKFxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e2JvcmRlckJvdHRvbTogJzAuN3B4IHNvbGlkIGJsYWNrJywgcGFkZGluZ0JvdHRvbTogJzhweCcsIGJvcmRlcldpZHRoOiAnNTAlJ319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtpbmRleH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtwaHBJY29ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e3dpZHRoOiAxMDAsIGhlaWdodDogJ2F1dG8nfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgc3R5bGU9e3ttYXJnaW5Ub3A6ICc0cHgnfX0+e2RvY3VtZW50c1tpbmRleF0ubmFtZX08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93IG5vLW1hcmdpbiBuby1wYWRkaW5nJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uRG93bmxvYWQoZG9jdW1lbnRzW2luZGV4XS5uYW1lLCBgJHtkb2N1bWVudERvd25sb2FkVXJsICsgJy8nICsgZG9jLnJlcG9zaXRvcnlJZCArICc/JyArIHRva2Vuc1F1ZXJ5U3RyaW5nfWApXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RPV05MT0FEJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tmb250U2l6ZTogJzE0cHgnLCBtYXJnaW5Ub3A6ICcxNHB4J319Pntkb2MubmFtZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aHVtYm5haWxzO1xuICAgIH07XG5cbiAgICBjb25zdCByZW5kZXJMaW5rID0gKHthdHRyaWJ1dGVzLCBjb250ZW50fSkgPT4ge1xuICAgICAgICBjb25zdCB7aHJlZn0gPSBhdHRyaWJ1dGVzO1xuICAgICAgICByZXR1cm4gPGFcbiAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cub3BlbihocmVmKTtcbiAgICAgICAgICAgIH19XG4gICAgICAgID5cbiAgICAgICAgICAgIHtjb250ZW50fVxuICAgICAgICA8L2E+O1xuICAgIH07XG5cbiAgICBjb25zdCBkZWxldGVDaGF0TWVzc2FnZSA9IChtZXNzYWdlKSA9PiB7XG4gICAgICAgIGNvbnN0IHBhcnRpY2lwYW50c1RvU2lnbmFsSWRzID0gcGFydGljaXBhbnRzVXNlcklkcygpO1xuICAgICAgICBzb2NrZXRNYW5hZ2VyLmVtaXRFdmVudChWQ0V2ZW50VHlwZS5ERUxFVEVfQ0hBVF9NRVNTQUdFLCB7XG4gICAgICAgICAgICBtZXNzYWdlSWQ6IG1lc3NhZ2UuaWQsXG4gICAgICAgICAgICBwYXJ0aWNpcGFudHNUb1NpZ25hbElkcyxcbiAgICAgICAgICAgIHByb2ZpbGU6IChhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KCkgfHwgYXBwbGljYXRpb25NYW5hZ2VyLmdldFVzZXJEZXRhaWxzKCkucHJvZmlsZSksXG4gICAgICAgICAgICB1c2VySWQ6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lLFxuICAgICAgICAgICAgdXNlcm5hbWU6IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRVc2VyRGV0YWlscygpLnVzZXJuYW1lXG4gICAgICAgIH0pLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgIG1lc3NhZ2UuYWN0aXZlID0gZmFsc2U7XG4gICAgICAgICAgICBzZXRSZWZyZXNoZXIoIXJlZnJlc2hlcik7XG4gICAgICAgIH0pLmNhdGNoKChlcnJvcikgPT4ge1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCByZW5kZXJNZXNzYWdlID0gKG1lc3NhZ2UsIGluZGV4KSA9PiB7XG4gICAgICAgIGlmICghbWVzc2FnZS5hY3RpdmUpIHtcbiAgICAgICAgICAgIHJldHVybiA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT17J2NoYXRyb29tX19tZXNzYWdlIHJvdyBuby1tYXJnaW4nfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17bWVzc2FnZS5wYXJ0aWNpcGFudC51c2VybmFtZSA9PT0gY3VycmVudFVzZXIudXNlcm5hbWUgPyBcIm15Y2hhdC1kZWxldGVkXCIgOiBcInBlZXJjaGF0XCJ9PlxuICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lICE9PSBjdXJyZW50VXNlci51c2VybmFtZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e3BhZGRpbmdSaWdodDogJzEycHgnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEF2YXRhcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1V0aWxzLmdldEluaXRpYWxzKG1lc3NhZ2UucGFydGljaXBhbnQubmFtZSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9BdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lID8gbnVsbCA6IFwiMXB4IHNvbGlkICM1MjVmN2ZcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6IG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lID8gbnVsbCA6IFwiMTZweFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lID8gbnVsbCA6IFwiMCA4cHhcIlxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9IHN0eWxlPXt7Zm9udFN0eWxlOiAnaXRhbGljJ319PmRlbGV0ZWQ8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKG1lc3NhZ2UudHlwZSA9PT0gJ0ZJTEUnKSB7XG4gICAgICAgICAgICAgICAgaWYgKG1lc3NhZ2UucGFydGljaXBhbnQudXNlcm5hbWUgPT09IGN1cnJlbnRVc2VyLnVzZXJuYW1lKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGtleT17aW5kZXh9IGNsYXNzTmFtZT1cImNoYXRyb29tX19tZXNzYWdlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJteWNoYXRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfSBzdHlsZT17e21hcmdpbjogJzRweCAwIDAgMCd9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sIGNoYXQtdGltZSd9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttb21lbnQobWVzc2FnZS5jcmVhdGVkRGF0ZSkuZm9ybWF0KCdERC9NTSwgSEg6bW0nKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9wcy5kaXNhYmxlTWVzc2FnZURlbGV0ZSAmJlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWxldGVDaGF0TWVzc2FnZShtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnREVMRVRFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJGaWxlVGh1bWJuYWlsKG1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAga2V5PXtpbmRleH0+e21lc3NhZ2UuY29udGVudH08L3A+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJjaGF0cm9vbV9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwZWVyY2hhdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVdGlscy5nZXRJbml0aWFscyhtZXNzYWdlLnBhcnRpY2lwYW50Lm5hbWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGVlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57bWVzc2FnZS5wYXJ0aWNpcGFudC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e21vbWVudChtZXNzYWdlLmNyZWF0ZWREYXRlKS5mb3JtYXQoJ0REL01NLCBISDptbScpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW5kZXJGaWxlVGh1bWJuYWlsKG1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBrZXk9e2luZGV4fT57bWVzc2FnZS5jb250ZW50fTwvcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChtZXNzYWdlLnR5cGUgPT09ICdURVhUJykge1xuICAgICAgICAgICAgICAgIGlmIChtZXNzYWdlLnBhcnRpY2lwYW50LnVzZXJuYW1lID09PSBjdXJyZW50VXNlci51c2VybmFtZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJjaGF0cm9vbV9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwibXljaGF0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30gc3R5bGU9e3ttYXJnaW46ICc0cHggMCAwIDAnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBjaGF0LXRpbWUnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7bW9tZW50KG1lc3NhZ2UuY3JlYXRlZERhdGUpLmZvcm1hdCgnREQvTU0sIEhIOm1tJyl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhcHJvcHMuZGlzYWJsZU1lc3NhZ2VEZWxldGUgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29tcG9uZW50PVwic3BhblwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVsZXRlQ2hhdE1lc3NhZ2UobWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RFTEVURSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtpZnkga2V5PXtpbmRleH0gb3B0aW9ucz17e3JlbmRlcjogcmVuZGVyTGlua319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17e21hcmdpbjogJzAgOHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlLmNvbnRlbnQuc3BsaXQoJ1xcbicpLm1hcCgodG9rZW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVhY3QuRnJhZ21lbnQga2V5PXtpbmRleH0+e3Rva2VufTxici8+PC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbmtpZnk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBjbGFzc05hbWU9XCJjaGF0cm9vbV9fbWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJwZWVyY2hhdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBdmF0YXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtVdGlscy5nZXRJbml0aWFscyhtZXNzYWdlLnBhcnRpY2lwYW50Lm5hbWUpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvQXZhdGFyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwicGVlclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3Bhbj57bWVzc2FnZS5wYXJ0aWNpcGFudC5uYW1lfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e21vbWVudChtZXNzYWdlLmNyZWF0ZWREYXRlKS5mb3JtYXQoJ0REL01NLCBISDptbScpfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpbmtpZnkga2V5PXtpbmRleH0gb3B0aW9ucz17e3JlbmRlcjogcmVuZGVyTGlua319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBrZXk9e2luZGV4fSBzdHlsZT17e21hcmdpbjogJzAgMCA0cHggNHB4J319PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHttZXNzYWdlLmNvbnRlbnQuc3BsaXQoJ1xcbicpLm1hcCgodG9rZW4sIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8UmVhY3QuRnJhZ21lbnQga2V5PXtpbmRleH0+e3Rva2VufTxici8+PC9SZWFjdC5GcmFnbWVudD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpbmtpZnk+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAobWVzc2FnZS50eXBlID09PSAnRVZFTlQnKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjdi1wb2xsLWNob2ljZVwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT1cImN2LXBvbGwtY2hvaWNlLWRldGFpbHNcIj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjdi1jaG9pY2UtcGVyY2VudGFnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5mb1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwic2VsZWN0ZWQtY2hvaWNlLWljb25cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9XCJjdi1jaG9pY2UtdGV4dFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7bWVzc2FnZS5jb250ZW50fVxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzc05hbWU9eydjdi1jaG9pY2UtcGVyY2VudC1jaGFydCBldmVudCd9IHN0eWxlPXt7d2lkdGg6ICcxMDAlJ319PlxuICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIDxQb2xsQ29udGFpbmVyXG4gICAgICAgICAgICAgICAgICAgIHBvbGw9e21lc3NhZ2UucG9sbH1cbiAgICAgICAgICAgICAgICAgICAgY2hhdFRhYj17cHJvcHMuY2hhdFRhYn1cbiAgICAgICAgICAgICAgICAgICAgaXNIb3N0PXtwcm9wcy5pc0hvc3R9XG4gICAgICAgICAgICAgICAgICAgIGlzQ2hhaXJQZXJzb249e3Byb3BzLmlzQ2hhaXJQZXJzb259XG4gICAgICAgICAgICAgICAgICAgIHBvbGxDcmVhdG9yPXttZXNzYWdlLnBhcnRpY2lwYW50fVxuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkRGF0ZT17bWVzc2FnZS5jcmVhdGVkRGF0ZX1cbiAgICAgICAgICAgICAgICAgICAgc3VibWl0UG9sbFZvdGVIYW5kbGVyPXsocG9sbCkgPT4gc3VibWl0UG9sbFZvdGVIYW5kbGVyKHBvbGwpfVxuICAgICAgICAgICAgICAgICAgICBwb2xsUGFydGljaXBhbnRJRHM9e3NlbGVjdGVkQ2hhdC5wYXJ0aWNpcGFudHMubWFwKHAgPT4gcC51c2VybmFtZSl9XG4gICAgICAgICAgICAgICAgICAgIGN1cnJlbnRVc2VyPXtjdXJyZW50VXNlcn1cbiAgICAgICAgICAgICAgICAgICAgY2xvc2VQb2xsSGFuZGxlcj17KGUsIHBvbGwpID0+IGNsb3NlUG9sbEhhbmRsZXIoZSwgcG9sbCl9XG4gICAgICAgICAgICAgICAgICAgIG51bWJlck9mUG9sbFBhcnRpY2lwYW50cz17c2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50cy5sZW5ndGh9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBpZiAoc2VsZWN0ZWRDaGF0ICYmIG1lc3NhZ2VzKSB7XG4gICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNoYXRyb29tXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJjaGF0cm9vbV9faGVhZGVyXCIgc3R5bGU9e1V0aWxzLm1lcmdlT2JqZWN0cyh7fSwgcHJvcHMuaGVhZGVyU3R5bGUpfT5cbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgIXByb3BzLmNoYXRUYWIgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY2hhdHJvb21fX2hlYWRlcnJpZ2h0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9XCJQb2xsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vZGUoJ1BPTEwnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxQb2xsIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBwcm9wcy5jaGF0VGFiID8gJ3JlZCcgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6IHByb3BzLmNoYXRUYWIgPyAnOHB4JyA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdQT0xMJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8Q2hhdFBvbGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGF0VGFiPXtwcm9wcy5jaGF0VGFifVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcnRpY2lwYW50cz17c2VsZWN0ZWRDaGF0LnBhcnRpY2lwYW50c31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVQb2xsSGFuZGxlcj17KHBvbGxEYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbmRNZXNzYWdlKG51bGwsIG51bGwsIHBvbGxEYXRhKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSgnQ0hBVCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FuY2VsUG9sbEhhbmRsZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0TW9kZSgnQ0hBVCcpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAvPiA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdDSEFUJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGlkPVwibWVzc2FnZXNcIiByZWY9e21lc3NhZ2VzRW5kUmVmfSBjbGFzc05hbWU9XCJjaGF0cm9vbV9fYm9keVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZXNcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBuZXcgRGF0ZShhLmNyZWF0ZWREYXRlKSAtIG5ldyBEYXRlKGIuY3JlYXRlZERhdGUpKT8ubWFwKHJlbmRlck1lc3NhZ2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8PjwvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIG1vZGUgPT09ICdDSEFUJyAmJiAhcHJvcHMucmVhZE9ubHkgJiZcbiAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxmb3JtIGNsYXNzTmFtZT1cImNoYXRyb29tX19zZW5kTWVzc2FnZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPVwibWVzc2FnZV9faW1hZ2VTZWxlY3RvclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NoYXQtaW5wdXQnfSBzdHlsZT17e3Bvc2l0aW9uOiAncmVsYXRpdmUnfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFwcm9wcy5kaXNhYmxlRmlsZUF0dGFjaG1lbnQgJiZcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcImZpbGUtdXBsb2FkIGNoYXRzLWZpbGUtdXBsb2FkXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7ekluZGV4OiAhVXRpbHMuaXNOdWxsKGRvY3VtZW50cykgPyAxIDogMH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxGaWxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuYWJsZUZpbGU9e3RydWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD17J2RvY3VtZW50cyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGljb25Db2xvcj17cHJvcHMuY2hhdFRhYiA/ICd3aGl0ZScgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT17ZG9jdW1lbnRzfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGVhclVwbG9hZGVkRmlsZVN3aXRjaD17Y2xlYXJVcGxvYWRlZEZpbGVTd2l0Y2h9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KHZhbHVlLCBpZCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0RG9jdW1lbnRzKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEN1c3RvbUlucHV0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogIVV0aWxzLmlzTnVsbChkb2N1bWVudHMpID8gMCA6IDEsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IHByb3BzLmNoYXRUYWIgPyAnd2hpdGUnIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsVGV4dD17ZG9jdW1lbnRzID8gXCJcIiA6IFwiVHlwZSBhIG5ldyBtZXNzYWdlXCJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17IVV0aWxzLmlzTnVsbChkb2N1bWVudHMpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlsaW5lPXt0cnVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJtZXNzYWdlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sUHJvcHM9e3tmdWxsV2lkdGg6IHRydWV9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9e3Byb3BzLmNoYXRUYWIgPyAnd2hpdGUnIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG9Gb2N1c1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5wdXRQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVuZEFkb3JubWVudDogKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5wdXRBZG9ybm1lbnQgcG9zaXRpb249XCJlbmRcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3N0eWxlcy5pbnB1dEFkb3JubWVudEljb259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VuZE1lc3NhZ2UoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2VuZEljb24gc3R5bGU9e3tmb250U2l6ZTogJzI0cHgnfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lucHV0QWRvcm5tZW50PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWU6IG1lc3NhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DaGFuZ2U6IChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhhbmRsZUNoYW5nZShlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICk7XG4gICAgfSBlbHNlIGlmICghbG9hZGluZyAmJiBzZWxlY3RlZENoYXQpIHtcbiAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY2VudGVyZWQtZmxleC1ib3gnfT5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImVtcHR5Y2hhdFwiPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydjZW50ZXJlZC1mbGV4LWJveCd9IHN0eWxlPXt7Zm9udFNpemU6ICcyMHB4JywgZm9udFdlaWdodDogJ2JvbGQnfX0+WW91J3JlIHN0YXJ0aW5nIGFcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ld1xuICAgICAgICAgICAgICAgICAgICAgICAgY29udmVyc2F0aW9uPC9wPlxuICAgICAgICAgICAgICAgICAgICA8cCBjbGFzc05hbWU9eydjZW50ZXJlZC1mbGV4LWJveCd9IHN0eWxlPXt7Zm9udFNpemU6ICcxNnB4J319PlR5cGUgeW91ciBmaXJzdCBtZXNzYWdlIGJlbG93PC9wPlxuICAgICAgICAgICAgICAgICAgICA8TG90dGllSWNvbiBpZD17J2NoYXQnfS8+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG59O1xuXG5leHBvcnQgZGVmYXVsdCBDaGF0Um9vbTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsSUFBQUEsTUFBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBQ0EsSUFBQUUsS0FBQSxHQUFBQyxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUksUUFBQSxHQUFBRCxzQkFBQSxDQUFBSCxPQUFBO0FBQ0EsSUFBQUssZUFBQSxHQUFBTCxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBTSxPQUFBLEdBQUFILHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFKLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUSxPQUFBLEdBQUFMLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBUyxZQUFBLEdBQUFOLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVSxXQUFBLEdBQUFQLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBVyxhQUFBLEdBQUFYLE9BQUE7QUFDQSxJQUFBWSxNQUFBLEdB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