@agilemotion/oui-react-js 2.0.26 → 2.0.28

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 (31) hide show
  1. package/dist/AuthImage.js +68 -0
  2. package/dist/RestService.js +7 -2
  3. package/dist/components/AlertBar.js +2 -2
  4. package/dist/components/Button.js +59 -7
  5. package/dist/components/DataGrid.js +42 -16
  6. package/dist/components/DocumentTemplateDesignerComponent.js +2 -2
  7. package/dist/components/FileThumb.js +48 -15
  8. package/dist/components/TabPanel.js +14 -3
  9. package/dist/components/WordDocumentViewer.js +2 -2
  10. package/dist/components/dashboard/components/blackDashboard/sidebar/FoldingTabSidebar.js +6 -2
  11. package/dist/components/form/BaseField.js +4 -2
  12. package/dist/components/form/Checkbox.js +3 -2
  13. package/dist/components/form/FieldSet.js +2 -2
  14. package/dist/components/form/Form.css +1 -1
  15. package/dist/components/form/Form.js +40 -38
  16. package/dist/components/form/GridField.js +6 -5
  17. package/dist/components/form/RadioGroup.js +5 -5
  18. package/dist/components/form/UploadField.js +40 -7
  19. package/dist/components/layout/Layout.js +9 -1
  20. package/dist/components/layout/View.css +2 -0
  21. package/dist/components/media/ChatViewer.js +103 -0
  22. package/dist/components/media/TrainingRoom.js +5 -5
  23. package/dist/components/media/VCRoomParticipant.js +11 -11
  24. package/dist/components/media/VCRoomWorkspace.js +19 -4
  25. package/dist/components/media/VideoPlayer.js +61 -7
  26. package/dist/components/media/chat/ChatRoom.js +37 -28
  27. package/dist/components/media/chat/PollContainer.js +85 -18
  28. package/dist/documentDownload.js +79 -0
  29. package/dist/js/ProcurementMeetings.js +11 -4
  30. package/dist/view/PortalDashboard.js +6 -5
  31. package/package.json +1 -1
@@ -73,7 +73,10 @@ const GridFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
73
73
  }, [latestAddedRow]);
74
74
  return /*#__PURE__*/_react.default.createElement("div", {
75
75
  className: "MuiFormControl-root MuiTextField-root MuiFormControl-marginDense",
76
- style: _Utils.default.mergeStyles({}, props.config)
76
+ style: _Utils.default.mergeStyles({
77
+ marginTop: '8px',
78
+ marginBottom: '8px'
79
+ }, props.config)
77
80
  }, label && label.trim().length > 0 && /*#__PURE__*/_react.default.createElement(_InputLabel.default, {
78
81
  required: base.required,
79
82
  error: base.hasError
@@ -82,9 +85,7 @@ const GridFieldWrapper = /*#__PURE__*/_react.default.memo(props => {
82
85
  border: "1px solid ".concat(base.hasError ? '#f44336' : '#e1e1e1'),
83
86
  width: '100%',
84
87
  height: '100%',
85
- borderRadius: '4px',
86
- marginTop: '8px',
87
- marginBottom: '8px'
88
+ borderRadius: '4px'
88
89
  }
89
90
  }, hasButtons ? /*#__PURE__*/_react.default.createElement("div", {
90
91
  style: {
@@ -215,4 +216,4 @@ const GridField = /*#__PURE__*/_react.default.memo(props => {
215
216
  }, props)));
216
217
  });
217
218
  var _default = exports.default = GridField;
218
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfRGF0YUdyaWQiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX0lucHV0TGFiZWwiLCJfVG9vbGJhciIsIl9EeW5hbWljSlMiLCJfRm9ybUhlbHBlclRleHQiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJjcmVhdGVSZWNvcmQiLCJyb3ciLCJncmlkQ29uZmlnIiwiaW5ib3VuZCIsInJlY29yZCIsImNvbHVtbiIsImNvbHVtbnMiLCJwcm9wZXJ0eSIsIlV0aWxzIiwiaXNOdWxsIiwiZGF0YUJpbmRpbmciLCJpZCIsInZhbCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsInVwZGF0ZU5lc3RlZFByb3BlcnR5IiwiR3JpZEZpZWxkV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm5ld1Jvd0lkQ291bnRlciIsInVzZVJlZiIsInNlbGVjdGlvbiIsInNldFNlbGVjdGlvbiIsInVzZVN0YXRlIiwibGFiZWwiLCJzZXRMYWJlbCIsImxvYWRlZCIsInJvd01vZGVsIiwic2V0Um93TW9kZWwiLCJsYXRlc3RBZGRlZFJvdyIsInNldExhdGVzdEFkZGVkUm93IiwiaGFzRXJyb3JzIiwiY3J1ZFRvb2xzdHJpcFdpZHRoIiwic2V0Q3J1ZFRvb2xzdHJpcFdpZHRoIiwiZWRpdGluZyIsImhhc0J1dHRvbnMiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiYWRkRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwicmVtb3ZlRGlzYWJsZWQiLCJ1c2VFZmZlY3QiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwibnVtQ3J1ZEJ1dHRvbnMiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjdXJyZW50IiwidmFsdWUiLCJncmlkSGFuZGxlIiwiYXBpIiwic2VsZWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJ0cmltIiwicmVxdWlyZWQiLCJlcnJvciIsImhhc0Vycm9yIiwiYm9yZGVyIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwib25DbGljayIsImFkZFJvd3MiLCJkaXNhYmxlZCIsImRlbGV0ZVNlbGVjdGVkUm93cyIsInRvb2xzdHJpcCIsImhhbmRsZSIsInRvb2xzdHJpcEhhbmRsZSIsIkRhdGFHcmlkIiwiZ3JpZCIsInJvd3MiLCJmb3JtVmFsdWVzIiwidmFsdWVzIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwibmV3Um93cyIsImhhc1Jvd0Vycm9ycyIsIm1hcCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwicGFnaW5hdGlvbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwiZmlsdGVyV3JhcHBlckNsYXNzIiwiaGFzQm9yZGVyIiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiY29sb3IiLCJHcmlkRmllbGQiLCJ0b29sSGFuZGxlIiwiQmFzZUZpZWxkIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInB1c2giLCJtb3JlQ2hpbGRyZW4iLCJqIiwidmFsdWVQYXJzZXIiLCJvYmplY3RBcnJheSIsIm51bGxJZFJlY29yZHMiLCJvYmplY3RBcnJheUVsZW1lbnQiLCJjbGVhckhhbmRsZXIiLCJjbGVhciIsInJvd3NIYW5kbGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vR3JpZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtEYXRhR3JpZH0gZnJvbSBcIi4uL0RhdGFHcmlkXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRMYWJlbCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IEZvcm1IZWxwZXJUZXh0IGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKHJvdywgZ3JpZENvbmZpZywgaW5ib3VuZCkge1xuICAgIGxldCByZWNvcmQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncmlkQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgbGV0IHByb3BlcnR5ID0gIVV0aWxzLmlzTnVsbChjb2x1bW4uZGF0YUJpbmRpbmcpID8gY29sdW1uLmRhdGFCaW5kaW5nIDogY29sdW1uLmlkO1xuICAgICAgICBsZXQgdmFsID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHJvdywgcHJvcGVydHkpO1xuICAgICAgICBVdGlscy51cGRhdGVOZXN0ZWRQcm9wZXJ0eShyZWNvcmQsIHByb3BlcnR5LCB2YWw/P251bGwpO1xuICAgIH1cblxuICAgIC8vcmVjb3JkLmlkID0gcm93LmlkID49IDAgPyByb3cuaWQgOiBudWxsO1xuICAgIHJlY29yZC5pZCA9IHJvdy5pZDtcbiAgICByZXR1cm4gcmVjb3JkO1xufVxuXG5jb25zdCBHcmlkRmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBuZXdSb3dJZENvdW50ZXIgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IFtzZWxlY3Rpb24sIHNldFNlbGVjdGlvbl0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW3Jvd01vZGVsLCBzZXRSb3dNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhdGVzdEFkZGVkUm93LCBzZXRMYXRlc3RBZGRlZFJvd10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgaGFzRXJyb3JzID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbY3J1ZFRvb2xzdHJpcFdpZHRoLCBzZXRDcnVkVG9vbHN0cmlwV2lkdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdGluZyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2hhc0J1dHRvbnNdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fFxuICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpIHx8XG4gICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlIHx8XG4gICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCkgfHxcbiAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IG51bUNydWRCdXR0b25zID0gMDtcbiAgICAgICAgbGV0IGFkZERpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIGxldCByZW1vdmVEaXNhYmxlZCA9IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghYWRkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIG51bUNydWRCdXR0b25zKys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW92ZURpc2FibGVkKSB7XG4gICAgICAgICAgICBudW1DcnVkQnV0dG9ucysrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q3J1ZFRvb2xzdHJpcFdpZHRoKChudW1DcnVkQnV0dG9ucyAqIDQwKSArICdweCcpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArICdsYWJlbCcsIFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsICcnKSwgcHJvcHMuY29uZmlnLnZpZXdJZCwgdHJ1ZSwgbnVsbCwgbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgOiBwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXTtcbiAgICAgICAgICAgIHNldExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW10pO1xuXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdGluZy5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0aW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJvd01vZGVsKGJhc2UudmFsdWUpO1xuXG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLnNlbGVjdChbbGF0ZXN0QWRkZWRSb3cuaWRdKTtcbiAgICB9LCBbbGF0ZXN0QWRkZWRSb3ddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIk11aUZvcm1Db250cm9sLXJvb3QgTXVpVGV4dEZpZWxkLXJvb3QgTXVpRm9ybUNvbnRyb2wtbWFyZ2luRGVuc2VcIn1cbiAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe30sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsICYmIGxhYmVsLnRyaW0oKS5sZW5ndGggPiAwICYmXG4gICAgICAgICAgICAgICAgPElucHV0TGFiZWwgcmVxdWlyZWQ9e2Jhc2UucmVxdWlyZWR9IGVycm9yPXtiYXNlLmhhc0Vycm9yfT57bGFiZWx9PC9JbnB1dExhYmVsPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgIGJvcmRlcjogYDFweCBzb2xpZCAke2Jhc2UuaGFzRXJyb3IgPyAnI2Y0NDMzNicgOiAnI2UxZTFlMSd9YCxcbiAgICAgICAgICAgICAgICB3aWR0aDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGhlaWdodDogJzEwMCUnLFxuICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICB7aGFzQnV0dG9ucyA/XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdMZWZ0OiAnMzJweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nVG9wOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmdCb3R0b206ICc4cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyQm90dG9tOiAnMXB4IHNvbGlkICNlMWUxZTEnXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbC0qLSonfSBzdHlsZT17e3dpZHRoOiBjcnVkVG9vbHN0cmlwV2lkdGh9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydyb3cnfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5hZGREaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLmFkZERpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpID09PSBmYWxzZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCByb3cgPSB7aWQ6IG5ld1Jvd0lkQ291bnRlci5jdXJyZW50LS19O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRSb3dNb2RlbChwcm9wcy5ncmlkSGFuZGxlLmFwaS5hZGRSb3dzKFtyb3ddKSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldExhdGVzdEFkZGVkUm93KHJvdyk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0FERCd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcykgfHwgVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnJlbW92ZURpc2FibGVkKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHx8IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMucmVtb3ZlRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtY29udHJvbHM9XCJtZW51LWxpc3QtZ3Jvd1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZWxlY3Rpb24ubGVuZ3RoID09PSAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuZ3JpZEhhbmRsZS5hcGkuZGVsZXRlU2VsZWN0ZWRSb3dzKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J1JFTU9WRSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnRvb2xzdHJpcCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2xiYXIgY29uZmlnPXtwcm9wcy5jb25maWcudG9vbHN0cmlwfSBoYW5kbGU9e3Byb3BzLnRvb2xzdHJpcEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aWV3SWQ9e3Byb3BzLnZpZXdJZH0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPERhdGFHcmlkIGNvbmZpZz17cHJvcHMuY29uZmlnLmdyaWR9IGhhbmRsZT17cHJvcHMuZ3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGxvYWRlZD17bG9hZGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgcm93cz17cm93TW9kZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1WYWx1ZXM9e3Byb3BzLnZhbHVlc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyPXsobmV3Um93cywgaGFzUm93RXJyb3JzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChuZXdSb3dzKSAmJiAhaGFzUm93RXJyb3JzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdGluZy5jdXJyZW50ID0gdHJ1ZTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IG5ld1Jvd3MubWFwKHJvdyA9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVSZWNvcmQocm93LCBwcm9wcy5jb25maWcuZ3JpZCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UodmFsdWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhZ2luYXRpb249e2ZhbHNlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBvblNlbGVjdGlvbkNoYW5nZT17KHNlbGVjdGlvbikgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0U2VsZWN0aW9uKHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIH19XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsdGVyV3JhcHBlckNsYXNzPXsndHJhbnNmZXJMaXN0RmlsdGVyV3JhcHBlcid9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGhhc0JvcmRlcj17ZmFsc2V9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGJhc2UuZXJyb3JNZXNzYWdlICYmXG4gICAgICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dCBzdHlsZT17e21hcmdpbjogXCI4cHhcIiwgY29sb3I6IFwicmdiKDI0NCwgNjcsIDU0KVwifX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7YmFzZS5lcnJvck1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuY29uc3QgR3JpZEZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZ3JpZEhhbmRsZV0gPSBSZWFjdC51c2VTdGF0ZSh7fSk7XG4gICAgY29uc3QgW3Rvb2xIYW5kbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudG9vbHN0cmlwKSA/IHt9IDogbnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IGdldENoaWxkcmVuPXtcbiAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgY2hpbGRyZW4gPSBbXTtcblxuICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2goZ3JpZEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgbGV0IG1vcmVDaGlsZHJlbiA9IGdyaWRIYW5kbGUuYXBpLmdldENoaWxkcmVuKCk7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy50b29sc3RyaXApKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2godG9vbEhhbmRsZSk7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSB0b29sSGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vcmVDaGlsZHJlbi5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hpbGRyZW4ucHVzaChtb3JlQ2hpbGRyZW5bal0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIGNoaWxkcmVuO1xuICAgICAgICAgICAgfX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgbGV0IG9iamVjdEFycmF5ID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IFtdO1xuXG4gICAgICAgICAgICAgICAgaWYgKG9iamVjdEFycmF5Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG51bGxJZFJlY29yZHMgPSAxO1xuICAgICAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IG9iamVjdEFycmF5RWxlbWVudCBvZiBvYmplY3RBcnJheSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGluYm91bmQgJiYgVXRpbHMuaXNOdWxsKG9iamVjdEFycmF5RWxlbWVudC5pZCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSAtMSAqIG51bGxJZFJlY29yZHMrKztcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFpbmJvdW5kICYmIG9iamVjdEFycmF5RWxlbWVudC5pZCA8IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvYmplY3RBcnJheUVsZW1lbnQuaWQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICB2YWwucHVzaChvYmplY3RBcnJheUVsZW1lbnQpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSBjbGVhckhhbmRsZXI9eygpID0+IGdyaWRIYW5kbGUuYXBpLmNsZWFyKCl9IHJvd3NIYW5kbGVyPXsoKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gZ3JpZEhhbmRsZS5hcGkucm93c1xuICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPEdyaWRGaWVsZFdyYXBwZXJcbiAgICAgICAgICAgICAgICAgICAgZ3JpZEhhbmRsZT17Z3JpZEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgdG9vbHN0cmlwSGFuZGxlPXt0b29sSGFuZGxlfVxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvR3JpZEZpZWxkV3JhcHBlcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBHcmlkRmllbGQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFVBQUEsR0FBQUQsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLFNBQUEsR0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFdBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFdBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFFBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFVBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLGVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFX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
219
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CYXNlRmllbGQiLCJfVXRpbHMiLCJfRGF0YUdyaWQiLCJfSWNvbiIsIl9JY29uQnV0dG9uIiwiX0lucHV0TGFiZWwiLCJfVG9vbGJhciIsIl9EeW5hbWljSlMiLCJfRm9ybUhlbHBlclRleHQiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJjcmVhdGVSZWNvcmQiLCJyb3ciLCJncmlkQ29uZmlnIiwiaW5ib3VuZCIsInJlY29yZCIsImNvbHVtbiIsImNvbHVtbnMiLCJwcm9wZXJ0eSIsIlV0aWxzIiwiaXNOdWxsIiwiZGF0YUJpbmRpbmciLCJpZCIsInZhbCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsInVwZGF0ZU5lc3RlZFByb3BlcnR5IiwiR3JpZEZpZWxkV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm5ld1Jvd0lkQ291bnRlciIsInVzZVJlZiIsInNlbGVjdGlvbiIsInNldFNlbGVjdGlvbiIsInVzZVN0YXRlIiwibGFiZWwiLCJzZXRMYWJlbCIsImxvYWRlZCIsInJvd01vZGVsIiwic2V0Um93TW9kZWwiLCJsYXRlc3RBZGRlZFJvdyIsInNldExhdGVzdEFkZGVkUm93IiwiaGFzRXJyb3JzIiwiY3J1ZFRvb2xzdHJpcFdpZHRoIiwic2V0Q3J1ZFRvb2xzdHJpcFdpZHRoIiwiZWRpdGluZyIsImhhc0J1dHRvbnMiLCJjb25maWciLCJhdHRyaWJ1dGVzIiwiYWRkRGlzYWJsZWQiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwicmVtb3ZlRGlzYWJsZWQiLCJ1c2VFZmZlY3QiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUyIiwibnVtQ3J1ZEJ1dHRvbnMiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImlzRXhwcmVzc2lvbiIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHQiLCJnZXRDb21wb25lbnRBdHRyaWJ1dGUiLCJjdXJyZW50IiwidmFsdWUiLCJncmlkSGFuZGxlIiwiYXBpIiwic2VsZWN0IiwiY3JlYXRlRWxlbWVudCIsImNsYXNzTmFtZSIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJtYXJnaW5Cb3R0b20iLCJ0cmltIiwicmVxdWlyZWQiLCJlcnJvciIsImhhc0Vycm9yIiwiYm9yZGVyIiwiY29uY2F0Iiwid2lkdGgiLCJoZWlnaHQiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nTGVmdCIsInBhZGRpbmdUb3AiLCJwYWRkaW5nQm90dG9tIiwiYm9yZGVyQm90dG9tIiwib25DbGljayIsImFkZFJvd3MiLCJkaXNhYmxlZCIsImRlbGV0ZVNlbGVjdGVkUm93cyIsInRvb2xzdHJpcCIsImhhbmRsZSIsInRvb2xzdHJpcEhhbmRsZSIsIkRhdGFHcmlkIiwiZ3JpZCIsInJvd3MiLCJmb3JtVmFsdWVzIiwidmFsdWVzIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwibmV3Um93cyIsImhhc1Jvd0Vycm9ycyIsIm1hcCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwicGFnaW5hdGlvbiIsIm9uU2VsZWN0aW9uQ2hhbmdlIiwiZmlsdGVyV3JhcHBlckNsYXNzIiwiaGFzQm9yZGVyIiwiZXJyb3JNZXNzYWdlIiwibWFyZ2luIiwiY29sb3IiLCJHcmlkRmllbGQiLCJ0b29sSGFuZGxlIiwiQmFzZUZpZWxkIiwiZ2V0Q2hpbGRyZW4iLCJjaGlsZHJlbiIsInB1c2giLCJtb3JlQ2hpbGRyZW4iLCJqIiwidmFsdWVQYXJzZXIiLCJvYmplY3RBcnJheSIsIm51bGxJZFJlY29yZHMiLCJvYmplY3RBcnJheUVsZW1lbnQiLCJjbGVhckhhbmRsZXIiLCJjbGVhciIsInJvd3NIYW5kbGVyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vR3JpZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IHtEYXRhR3JpZH0gZnJvbSBcIi4uL0RhdGFHcmlkXCI7XG5pbXBvcnQgSWNvbiBmcm9tIFwiLi4vSWNvblwiO1xuaW1wb3J0IEljb25CdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9JY29uQnV0dG9uJztcbmltcG9ydCBJbnB1dExhYmVsIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSW5wdXRMYWJlbCc7XG5pbXBvcnQgVG9vbGJhciBmcm9tICcuLi9Ub29sYmFyJztcbmltcG9ydCBkeW5hbWljSlMgZnJvbSBcIi4uLy4uL0R5bmFtaWNKU1wiO1xuaW1wb3J0IEZvcm1IZWxwZXJUZXh0IGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1IZWxwZXJUZXh0XCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcblxuZnVuY3Rpb24gY3JlYXRlUmVjb3JkKHJvdywgZ3JpZENvbmZpZywgaW5ib3VuZCkge1xuICAgIGxldCByZWNvcmQgPSB7fTtcbiAgICBmb3IgKGNvbnN0IGNvbHVtbiBvZiBncmlkQ29uZmlnLmNvbHVtbnMpIHtcbiAgICAgICAgbGV0IHByb3BlcnR5ID0gIVV0aWxzLmlzTnVsbChjb2x1bW4uZGF0YUJpbmRpbmcpID8gY29sdW1uLmRhdGFCaW5kaW5nIDogY29sdW1uLmlkO1xuICAgICAgICBsZXQgdmFsID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHJvdywgcHJvcGVydHkpO1xuICAgICAgICBVdGlscy51cGRhdGVOZXN0ZWRQcm9wZXJ0eShyZWNvcmQsIHByb3BlcnR5LCB2YWw/P251bGwpO1xuICAgIH1cblxuICAgIC8vcmVjb3JkLmlkID0gcm93LmlkID49IDAgPyByb3cuaWQgOiBudWxsO1xuICAgIHJlY29yZC5pZCA9IHJvdy5pZDtcbiAgICByZXR1cm4gcmVjb3JkO1xufVxuXG5jb25zdCBHcmlkRmllbGRXcmFwcGVyID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcbiAgICBjb25zdCBuZXdSb3dJZENvdW50ZXIgPSBSZWFjdC51c2VSZWYoLTEpO1xuICAgIGNvbnN0IFtzZWxlY3Rpb24sIHNldFNlbGVjdGlvbl0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZSgpO1xuICAgIGNvbnN0IGxvYWRlZCA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW3Jvd01vZGVsLCBzZXRSb3dNb2RlbF0gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xhdGVzdEFkZGVkUm93LCBzZXRMYXRlc3RBZGRlZFJvd10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgaGFzRXJyb3JzID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcbiAgICBjb25zdCBbY3J1ZFRvb2xzdHJpcFdpZHRoLCBzZXRDcnVkVG9vbHN0cmlwV2lkdGhdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgZWRpdGluZyA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG4gICAgY29uc3QgW2hhc0J1dHRvbnNdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fFxuICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpIHx8XG4gICAgICAgIFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCkgPT09IGZhbHNlIHx8XG4gICAgICAgIFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCkgfHxcbiAgICAgICAgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgbGV0IG51bUNydWRCdXR0b25zID0gMDtcbiAgICAgICAgbGV0IGFkZERpc2FibGVkID0gVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWRkRGlzYWJsZWQsIHByb3BzLmNvbmZpZy5pZCk7XG4gICAgICAgIGxldCByZW1vdmVEaXNhYmxlZCA9IFV0aWxzLmV2YWx1YXRlQm9vbGVhbkV4cHJlc3Npb24ocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpO1xuXG4gICAgICAgIGlmICghYWRkRGlzYWJsZWQpIHtcbiAgICAgICAgICAgIG51bUNydWRCdXR0b25zKys7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXJlbW92ZURpc2FibGVkKSB7XG4gICAgICAgICAgICBudW1DcnVkQnV0dG9ucysrO1xuICAgICAgICB9XG5cbiAgICAgICAgc2V0Q3J1ZFRvb2xzdHJpcFdpZHRoKChudW1DcnVkQnV0dG9ucyAqIDQwKSArICdweCcpO1xuXG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXSkgP1xuICAgICAgICAgICAgICAgIGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0KHByb3BzLmNvbmZpZy5pZCArICdsYWJlbCcsIFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsICcnKSwgcHJvcHMuY29uZmlnLnZpZXdJZCwgdHJ1ZSwgbnVsbCwgbnVsbCwgZmFsc2UpXG4gICAgICAgICAgICAgICAgOiBwYXJzZWRDb25maWcuYXR0cmlidXRlc1snbGFiZWwnXTtcbiAgICAgICAgICAgIHNldExhYmVsKGxhYmVsKTtcbiAgICAgICAgfSBjYXRjaCAoZSkge1xuICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgfVxuXG4gICAgfSwgW10pO1xuXG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoZWRpdGluZy5jdXJyZW50KSB7XG4gICAgICAgICAgICBlZGl0aW5nLmN1cnJlbnQgPSBmYWxzZTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHNldFJvd01vZGVsKGJhc2UudmFsdWUpO1xuXG4gICAgfSwgW2Jhc2UudmFsdWVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLnNlbGVjdChbbGF0ZXN0QWRkZWRSb3cuaWRdKTtcbiAgICB9LCBbbGF0ZXN0QWRkZWRSb3ddKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxkaXYgY2xhc3NOYW1lPXtcIk11aUZvcm1Db250cm9sLXJvb3QgTXVpVGV4dEZpZWxkLXJvb3QgTXVpRm9ybUNvbnRyb2wtbWFyZ2luRGVuc2VcIn1cbiAgICAgICAgICAgICBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICc4cHgnLFxuICAgICAgICAgICAgICAgICBtYXJnaW5Cb3R0b206ICc4cHgnXG4gICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX0+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbGFiZWwgJiYgbGFiZWwudHJpbSgpLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgICAgICAgICA8SW5wdXRMYWJlbCByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH0gZXJyb3I9e2Jhc2UuaGFzRXJyb3J9PntsYWJlbH08L0lucHV0TGFiZWw+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgYm9yZGVyOiBgMXB4IHNvbGlkICR7YmFzZS5oYXNFcnJvciA/ICcjZjQ0MzM2JyA6ICcjZTFlMWUxJ31gLFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgaGVpZ2h0OiAnMTAwJScsXG4gICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4J1xuICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAge2hhc0J1dHRvbnMgP1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nTGVmdDogJzMycHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1RvcDogJzhweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nQm90dG9tOiAnOHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckJvdHRvbTogJzFweCBzb2xpZCAjZTFlMWUxJ1xuICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wtKi0qJ30gc3R5bGU9e3t3aWR0aDogY3J1ZFRvb2xzdHJpcFdpZHRofX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsncm93J30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzKSB8fCBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMuYWRkRGlzYWJsZWQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfHwgVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihwcm9wcy5jb25maWcuYXR0cmlidXRlcy5hZGREaXNhYmxlZCwgcHJvcHMuY29uZmlnLmlkKSA9PT0gZmFsc2UgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbC0qLSonfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgcm93ID0ge2lkOiBuZXdSb3dJZENvdW50ZXIuY3VycmVudC0tfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0Um93TW9kZWwocHJvcHMuZ3JpZEhhbmRsZS5hcGkuYWRkUm93cyhbcm93XSkpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZXRMYXRlc3RBZGRlZFJvdyhyb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydBREQnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXMpIHx8IFV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcy5yZW1vdmVEaXNhYmxlZClcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8fCBVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzLnJlbW92ZURpc2FibGVkLCBwcm9wcy5jb25maWcuaWQpID09PSBmYWxzZSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VsZWN0aW9uLmxlbmd0aCA9PT0gMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmdyaWRIYW5kbGUuYXBpLmRlbGV0ZVNlbGVjdGVkUm93cygpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb24gaWQ9eydSRU1PVkUnfS8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0ljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy50b29sc3RyaXApID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPXsnY29sLSotKid9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sYmFyIGNvbmZpZz17cHJvcHMuY29uZmlnLnRvb2xzdHJpcH0gaGFuZGxlPXtwcm9wcy50b29sc3RyaXBIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmlld0lkPXtwcm9wcy52aWV3SWR9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDxEYXRhR3JpZCBjb25maWc9e3Byb3BzLmNvbmZpZy5ncmlkfSBoYW5kbGU9e3Byb3BzLmdyaWRIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBsb2FkZWQ9e2xvYWRlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHJvd3M9e3Jvd01vZGVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtVmFsdWVzPXtwcm9wcy52YWx1ZXN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcj17KG5ld1Jvd3MsIGhhc1Jvd0Vycm9ycykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobmV3Um93cykgJiYgIWhhc1Jvd0Vycm9ycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVkaXRpbmcuY3VycmVudCA9IHRydWU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsZXQgdmFsdWUgPSBuZXdSb3dzLm1hcChyb3cgPT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3JlYXRlUmVjb3JkKHJvdywgcHJvcHMuY29uZmlnLmdyaWQsIGZhbHNlKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cblxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYWdpbmF0aW9uPXtmYWxzZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgb25TZWxlY3Rpb25DaGFuZ2U9eyhzZWxlY3Rpb24pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNldFNlbGVjdGlvbihzZWxlY3Rpb24pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZpbHRlcldyYXBwZXJDbGFzcz17J3RyYW5zZmVyTGlzdEZpbHRlcldyYXBwZXInfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBoYXNCb3JkZXI9e2ZhbHNlfVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBiYXNlLmVycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAgICAgICA8Rm9ybUhlbHBlclRleHQgc3R5bGU9e3ttYXJnaW46IFwiOHB4XCIsIGNvbG9yOiBcInJnYigyNDQsIDY3LCA1NClcIn19PlxuICAgICAgICAgICAgICAgICAgICAgICAge2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICApO1xufSk7XG5cbmNvbnN0IEdyaWRGaWVsZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2dyaWRIYW5kbGVdID0gUmVhY3QudXNlU3RhdGUoe30pO1xuICAgIGNvbnN0IFt0b29sSGFuZGxlXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnRvb2xzdHJpcCkgPyB7fSA6IG51bGwpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfSBnZXRDaGlsZHJlbj17XG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGNoaWxkcmVuID0gW107XG5cbiAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKGdyaWRIYW5kbGUpO1xuICAgICAgICAgICAgICAgIGxldCBtb3JlQ2hpbGRyZW4gPSBncmlkSGFuZGxlLmFwaS5nZXRDaGlsZHJlbigpO1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGogPSAwOyBqIDwgbW9yZUNoaWxkcmVuLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobW9yZUNoaWxkcmVuW2pdKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcudG9vbHN0cmlwKSkge1xuICAgICAgICAgICAgICAgICAgICBjaGlsZHJlbi5wdXNoKHRvb2xIYW5kbGUpO1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9yZUNoaWxkcmVuID0gdG9vbEhhbmRsZS5hcGkuZ2V0Q2hpbGRyZW4oKTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb3JlQ2hpbGRyZW4ubGVuZ3RoOyBqKyspIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNoaWxkcmVuLnB1c2gobW9yZUNoaWxkcmVuW2pdKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBjaGlsZHJlbjtcbiAgICAgICAgICAgIH19IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGxldCBvYmplY3RBcnJheSA9IHZhbHVlO1xuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBbXTtcblxuICAgICAgICAgICAgICAgIGlmIChvYmplY3RBcnJheS5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudWxsSWRSZWNvcmRzID0gMTtcbiAgICAgICAgICAgICAgICAgICAgZm9yIChjb25zdCBvYmplY3RBcnJheUVsZW1lbnQgb2Ygb2JqZWN0QXJyYXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChpbmJvdW5kICYmIFV0aWxzLmlzTnVsbChvYmplY3RBcnJheUVsZW1lbnQuaWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0QXJyYXlFbGVtZW50LmlkID0gLTEgKiBudWxsSWRSZWNvcmRzKys7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghaW5ib3VuZCAmJiBvYmplY3RBcnJheUVsZW1lbnQuaWQgPCAwKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2JqZWN0QXJyYXlFbGVtZW50LmlkID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgdmFsLnB1c2gob2JqZWN0QXJyYXlFbGVtZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gY2xlYXJIYW5kbGVyPXsoKSA9PiBncmlkSGFuZGxlLmFwaS5jbGVhcigpfSByb3dzSGFuZGxlcj17KCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIGdyaWRIYW5kbGUuYXBpLnJvd3NcbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxHcmlkRmllbGRXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGdyaWRIYW5kbGU9e2dyaWRIYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgIHRvb2xzdHJpcEhhbmRsZT17dG9vbEhhbmRsZX1cbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0dyaWRGaWVsZFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgR3JpZEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxVQUFBLEdBQUFELE9BQUE7QUFDQSxJQUFBRSxNQUFBLEdBQUFILHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRyxTQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxLQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxXQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxXQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxRQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxVQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxlQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxtQkFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBELFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEs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
@@ -21,10 +21,10 @@ const RadioGroupWrapper = /*#__PURE__*/_react.default.memo(props => {
21
21
  const base = props.base;
22
22
  // TODO : Support calling a rest end-point to get options
23
23
  const options = _Utils.default.getComponentAttribute(props.config, 'options', []);
24
- const [value, setValue] = _react.default.useState(base.value ? base.value : props.defaultValue);
25
- const [label, setLabel] = _react.default.useState(base.value ? base.value : props.defaultValue);
24
+ const [value, setValue] = _react.default.useState(_Utils.default.isNull(base.value) ? props.defaultValue : base.value);
25
+ const [label, setLabel] = _react.default.useState(_Utils.default.isNull(base.value) ? props.defaultValue : base.value);
26
26
  _react.default.useEffect(() => {
27
- if (base.value) {
27
+ if (!_Utils.default.isNull(base.value)) {
28
28
  setValue(base.value);
29
29
  }
30
30
  }, [base.value]);
@@ -66,7 +66,7 @@ const RadioGroupWrapper = /*#__PURE__*/_react.default.memo(props => {
66
66
  value: option.value,
67
67
  control: /*#__PURE__*/_react.default.createElement(_Radio.default, {
68
68
  disabled: base.disabled,
69
- checked: option.value === value
69
+ checked: !_Utils.default.isNull(value) && String(option.value) === String(value)
70
70
  }),
71
71
  label: label
72
72
  });
@@ -93,4 +93,4 @@ const RadioGroup = /*#__PURE__*/_react.default.memo(props => {
93
93
  }, props)));
94
94
  });
95
95
  var _default = exports.default = RadioGroup;
96
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SYWRpb0dyb3VwIiwiX1JhZGlvIiwiX0Zvcm1Db250cm9sTGFiZWwiLCJfRm9ybUxhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsIl9Gb3JtSGVscGVyVGV4dCIsIl9Gb3JtQ29udHJvbCIsIl9EeW5hbWljSlMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJSYWRpb0dyb3VwV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm9wdGlvbnMiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwic2V0TGFiZWwiLCJ1c2VFZmZlY3QiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInByb3AiLCJjcmVhdGVFbGVtZW50IiwiZXJyb3IiLCJoYXNFcnJvciIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJjb21wb25lbnQiLCJyZXF1aXJlZCIsInJvdyIsIm5hbWUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwib25DaGFuZ2UiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsInRhcmdldCIsIm1hcCIsIm9wdGlvbiIsImluZGV4IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNFeHByZXNzaW9uIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImlkIiwia2V5IiwiY29udHJvbCIsImRpc2FibGVkIiwiY2hlY2tlZCIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImNvbG9yIiwiUmFkaW9Hcm91cCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiaXNOdWxsIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vUmFkaW9Hcm91cC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSYWRpb0dyb3VwQ29tcG9uZW50IGZyb20gJ0BtdWkvbWF0ZXJpYWwvUmFkaW9Hcm91cCc7XG5pbXBvcnQgUmFkaW8gZnJvbSAnQG11aS9tYXRlcmlhbC9SYWRpbyc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IEZvcm1MYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1MYWJlbCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSAnLi9CYXNlRmllbGQnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBGb3JtSGVscGVyVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IEZvcm1Db250cm9sIGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBSYWRpb0dyb3VwV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgLy8gVE9ETyA6IFN1cHBvcnQgY2FsbGluZyBhIHJlc3QgZW5kLXBvaW50IHRvIGdldCBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9ucyA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdvcHRpb25zJywgW10pO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUgOiBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuICAgIGNvbnN0IFtsYWJlbCwgc2V0TGFiZWxdID0gUmVhY3QudXNlU3RhdGUoYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUgOiBwcm9wcy5kZWZhdWx0VmFsdWUpO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgIHNldFZhbHVlKGJhc2UudmFsdWUpXG4gICAgICAgICAgICB9XG4gICAgICAgIH0sIFtiYXNlLnZhbHVlXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICAgIHRyeXtcbiAgICAgICAgICAgICAgICBsZXQgcGFyc2VkQ29uZmlnID0gVXRpbHMucGFyc2VDb25maWcocHJvcHMuY29uZmlnLCBwcm9wcy52aWV3SWQpO1xuICAgICAgICAgICAgICAgIHNldExhYmVsKFV0aWxzLnByb3AoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHBhcnNlZENvbmZpZywgJ2xhYmVsJywgbnVsbCkpKTtcbiAgICAgICAgICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBzZXRMYWJlbChVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnbGFiZWwnLCAnJykpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbXSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Rm9ybUNvbnRyb2wgZXJyb3I9e2Jhc2UuaGFzRXJyb3J9IHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICBtYXJnaW5Ub3A6ICc4cHgnXG4gICAgICAgIH0sIHByb3BzLmNvbmZpZyl9PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGxhYmVsICE9PSBudWxsID9cbiAgICAgICAgICAgICAgICAgICAgPEZvcm1MYWJlbCBjb21wb25lbnQ9XCJsZWdlbmRcIj57YmFzZS5yZXF1aXJlZCA/IGxhYmVsICsgJyonIDogbGFiZWx9PC9Gb3JtTGFiZWw+IDpcbiAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICA8UmFkaW9Hcm91cENvbXBvbmVudCByb3cgZGVmYXVsdFZhbHVlPXtwcm9wcy5kZWZhdWx0VmFsdWV9IGFyaWEtbGFiZWw9XCJcIiBuYW1lPVwicmFkaW9zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e2Jhc2UuaGFzRXJyb3IgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiAnMXB4IHNvbGlkICNmNDQzMzYnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlclJhZGl1czogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzhweCA0cHggNHB4IDhweCdcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0gOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGUudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uLCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGxhYmVsID0gYXBwbGljYXRpb25NYW5hZ2VyLmlzRXhwcmVzc2lvbihvcHRpb24ubGFiZWwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdChwcm9wcy5jb25maWcuaWQgKyAnbGFiZWwnLCBvcHRpb24ubGFiZWwsIHByb3BzLmNvbmZpZy52aWV3SWQsIHRydWUsIG51bGwsIG51bGwsIGZhbHNlKSA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3B0aW9uLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtQ29udHJvbExhYmVsIGtleT17aW5kZXh9IHZhbHVlPXtvcHRpb24udmFsdWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udHJvbD17PFJhZGlvIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjaGVja2VkPXtvcHRpb24udmFsdWUgPT09IHZhbHVlfS8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhYmVsPXtsYWJlbH0vPjtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L1JhZGlvR3JvdXBDb21wb25lbnQ+XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgYmFzZS5lcnJvck1lc3NhZ2UgJiZcbiAgICAgICAgICAgICAgICA8Rm9ybUhlbHBlclRleHQgc3R5bGU9e3ttYXJnaW46IFwiNHB4IDBcIiwgY29sb3I6IFwicmdiKDI0NCwgNjcsIDU0KVwifX0+XG4gICAgICAgICAgICAgICAgICAgIHtiYXNlLmVycm9yTWVzc2FnZX1cbiAgICAgICAgICAgICAgICA8L0Zvcm1IZWxwZXJUZXh0PlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Zvcm1Db250cm9sPlxuICAgICk7XG59KTtcblxuY29uc3QgUmFkaW9Hcm91cCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgZGVmYXVsdFZhbHVlID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2RlZmF1bHRWYWx1ZScsIG51bGwpO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEJhc2VGaWVsZCB7Li4ucHJvcHN9IGhhbmRsZT17cHJvcHMuaGFuZGxlfVxuICAgICAgICAgICAgICAgICAgIHZhbHVlUGFyc2VyPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbCh2YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBkZWZhdWx0VmFsdWU7XG4gICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdmFsdWU7XG4gICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxSYWRpb0dyb3VwV3JhcHBlclxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBkZWZhdWx0VmFsdWU9e2RlZmF1bHRWYWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L1JhZGlvR3JvdXBXcmFwcGVyPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFJhZGlvR3JvdXA7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFDLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNELElBQUFDLFdBQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLGlCQUFBLEdBQUFKLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSSxVQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxVQUFBLEdBQUFMLE9BQUE7QUFDQSxJQUFBTSxNQUFBLEdBQUFQLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTyxlQUFBLEdBQUFSLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUSxZQUFBLEdBQUFULHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBUyxVQUFBLEdBQUFWLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVSxtQkFBQSxHQUFBWCxzQkFBQSxDQUFBQyxPQUFBO0FBQTBELFNBQUFELHVCQUFBWSxDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQUcsU0FBQSxXQUFBQSxRQUFBLEdBQUFDLE1BQUEsQ0FBQUMsTUFBQSxHQUFBRCxNQUFBLENBQUFDLE1BQUEsQ0FBQUMsSUFBQSxlQUFBQyxDQUFBLGFBQUFQLENBQUEsTUFBQUEsQ0FBQSxHQUFBUSxTQUFBLENBQUFDLE1BQUEsRUFBQVQsQ0FBQSxVQUFBVSxDQUFBLEdBQUFGLFNBQUEsQ0FBQVIsQ0FBQSxZQUFBVyxDQUFBLElBQUFELENBQUEsT0FBQUUsY0FBQSxDQUFBQyxJQUFBLENBQUFILENBQUEsRUFBQUMsQ0FBQSxNQUFBSixDQUFBLENBQUFJLENBQUEsSUFBQUQsQ0FBQSxDQUFB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
96
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9SYWRpb0dyb3VwIiwiX1JhZGlvIiwiX0Zvcm1Db250cm9sTGFiZWwiLCJfRm9ybUxhYmVsIiwiX0Jhc2VGaWVsZCIsIl9VdGlscyIsIl9Gb3JtSGVscGVyVGV4dCIsIl9Gb3JtQ29udHJvbCIsIl9EeW5hbWljSlMiLCJfQXBwbGljYXRpb25NYW5hZ2VyIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJSYWRpb0dyb3VwV3JhcHBlciIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiYmFzZSIsIm9wdGlvbnMiLCJVdGlscyIsImdldENvbXBvbmVudEF0dHJpYnV0ZSIsImNvbmZpZyIsInZhbHVlIiwic2V0VmFsdWUiLCJ1c2VTdGF0ZSIsImlzTnVsbCIsImRlZmF1bHRWYWx1ZSIsImxhYmVsIiwic2V0TGFiZWwiLCJ1c2VFZmZlY3QiLCJwYXJzZWRDb25maWciLCJwYXJzZUNvbmZpZyIsInZpZXdJZCIsInByb3AiLCJjcmVhdGVFbGVtZW50IiwiZXJyb3IiLCJoYXNFcnJvciIsInN0eWxlIiwibWVyZ2VTdHlsZXMiLCJtYXJnaW5Ub3AiLCJjb21wb25lbnQiLCJyZXF1aXJlZCIsInJvdyIsIm5hbWUiLCJib3JkZXIiLCJib3JkZXJSYWRpdXMiLCJwYWRkaW5nIiwib25DaGFuZ2UiLCJoYW5kbGVWYWx1ZUNoYW5nZSIsInRhcmdldCIsIm1hcCIsIm9wdGlvbiIsImluZGV4IiwiYXBwbGljYXRpb25NYW5hZ2VyIiwiaXNFeHByZXNzaW9uIiwiZHluYW1pY0pTIiwiZXhlY3V0ZVNjcmlwdCIsImlkIiwia2V5IiwiY29udHJvbCIsImRpc2FibGVkIiwiY2hlY2tlZCIsIlN0cmluZyIsImVycm9yTWVzc2FnZSIsIm1hcmdpbiIsImNvbG9yIiwiUmFkaW9Hcm91cCIsIkJhc2VGaWVsZCIsImhhbmRsZSIsInZhbHVlUGFyc2VyIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vUmFkaW9Hcm91cC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBSYWRpb0dyb3VwQ29tcG9uZW50IGZyb20gJ0BtdWkvbWF0ZXJpYWwvUmFkaW9Hcm91cCc7XG5pbXBvcnQgUmFkaW8gZnJvbSAnQG11aS9tYXRlcmlhbC9SYWRpbyc7XG5pbXBvcnQgRm9ybUNvbnRyb2xMYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sTGFiZWwnO1xuaW1wb3J0IEZvcm1MYWJlbCBmcm9tICdAbXVpL21hdGVyaWFsL0Zvcm1MYWJlbCc7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSAnLi9CYXNlRmllbGQnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uLy4uL1V0aWxzJztcbmltcG9ydCBGb3JtSGVscGVyVGV4dCBmcm9tIFwiQG11aS9tYXRlcmlhbC9Gb3JtSGVscGVyVGV4dFwiO1xuaW1wb3J0IEZvcm1Db250cm9sIGZyb20gXCJAbXVpL21hdGVyaWFsL0Zvcm1Db250cm9sXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi8uLi9EeW5hbWljSlNcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuXG5jb25zdCBSYWRpb0dyb3VwV3JhcHBlciA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG4gICAgLy8gVE9ETyA6IFN1cHBvcnQgY2FsbGluZyBhIHJlc3QgZW5kLXBvaW50IHRvIGdldCBvcHRpb25zXG4gICAgY29uc3Qgb3B0aW9ucyA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICdvcHRpb25zJywgW10pO1xuICAgIGNvbnN0IFt2YWx1ZSwgc2V0VmFsdWVdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID8gcHJvcHMuZGVmYXVsdFZhbHVlIDogYmFzZS52YWx1ZSk7XG4gICAgY29uc3QgW2xhYmVsLCBzZXRMYWJlbF0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBwcm9wcy5kZWZhdWx0VmFsdWUgOiBiYXNlLnZhbHVlKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdChcbiAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBzZXRWYWx1ZShiYXNlLnZhbHVlKVxuICAgICAgICAgICAgfVxuICAgICAgICB9LCBbYmFzZS52YWx1ZV0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KFxuICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICB0cnl7XG4gICAgICAgICAgICAgICAgbGV0IHBhcnNlZENvbmZpZyA9IFV0aWxzLnBhcnNlQ29uZmlnKHByb3BzLmNvbmZpZywgcHJvcHMudmlld0lkKTtcbiAgICAgICAgICAgICAgICBzZXRMYWJlbChVdGlscy5wcm9wKFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwYXJzZWRDb25maWcsICdsYWJlbCcsIG51bGwpKSk7XG4gICAgICAgICAgICB9IGNhdGNoIChlKSB7XG4gICAgICAgICAgICAgICAgc2V0TGFiZWwoVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2xhYmVsJywgJycpKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSwgW10pO1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPEZvcm1Db250cm9sIGVycm9yPXtiYXNlLmhhc0Vycm9yfSBzdHlsZT17VXRpbHMubWVyZ2VTdHlsZXMoe1xuICAgICAgICAgICAgbWFyZ2luVG9wOiAnOHB4J1xuICAgICAgICB9LCBwcm9wcy5jb25maWcpfT5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBsYWJlbCAhPT0gbnVsbCA/XG4gICAgICAgICAgICAgICAgICAgIDxGb3JtTGFiZWwgY29tcG9uZW50PVwibGVnZW5kXCI+e2Jhc2UucmVxdWlyZWQgPyBsYWJlbCArICcqJyA6IGxhYmVsfTwvRm9ybUxhYmVsPiA6XG4gICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgPFJhZGlvR3JvdXBDb21wb25lbnQgcm93IGRlZmF1bHRWYWx1ZT17cHJvcHMuZGVmYXVsdFZhbHVlfSBhcmlhLWxhYmVsPVwiXCIgbmFtZT1cInJhZGlvc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtiYXNlLmhhc0Vycm9yID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogJzFweCBzb2xpZCAjZjQ0MzM2JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6ICc4cHggNHB4IDRweCA4cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IDoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhZGRpbmc6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShlLnRhcmdldC52YWx1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgb3B0aW9ucy5tYXAoKG9wdGlvbiwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBsYWJlbCA9IGFwcGxpY2F0aW9uTWFuYWdlci5pc0V4cHJlc3Npb24ob3B0aW9uLmxhYmVsKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHQocHJvcHMuY29uZmlnLmlkICsgJ2xhYmVsJywgb3B0aW9uLmxhYmVsLCBwcm9wcy5jb25maWcudmlld0lkLCB0cnVlLCBudWxsLCBudWxsLCBmYWxzZSkgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbi5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiA8Rm9ybUNvbnRyb2xMYWJlbCBrZXk9e2luZGV4fSB2YWx1ZT17b3B0aW9uLnZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRyb2w9ezxSYWRpbyBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tlZD17IVV0aWxzLmlzTnVsbCh2YWx1ZSkgJiYgU3RyaW5nKG9wdGlvbi52YWx1ZSkgPT09IFN0cmluZyh2YWx1ZSl9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2xhYmVsfS8+O1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvUmFkaW9Hcm91cENvbXBvbmVudD5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBiYXNlLmVycm9yTWVzc2FnZSAmJlxuICAgICAgICAgICAgICAgIDxGb3JtSGVscGVyVGV4dCBzdHlsZT17e21hcmdpbjogXCI0cHggMFwiLCBjb2xvcjogXCJyZ2IoMjQ0LCA2NywgNTQpXCJ9fT5cbiAgICAgICAgICAgICAgICAgICAge2Jhc2UuZXJyb3JNZXNzYWdlfVxuICAgICAgICAgICAgICAgIDwvRm9ybUhlbHBlclRleHQ+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvRm9ybUNvbnRyb2w+XG4gICAgKTtcbn0pO1xuXG5jb25zdCBSYWRpb0dyb3VwID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBkZWZhdWx0VmFsdWUgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnZGVmYXVsdFZhbHVlJywgbnVsbCk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgdmFsdWVQYXJzZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGRlZmF1bHRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgIHtiYXNlID0+XG4gICAgICAgICAgICAgICAgPFJhZGlvR3JvdXBXcmFwcGVyXG4gICAgICAgICAgICAgICAgICAgIGJhc2U9e2Jhc2V9XG4gICAgICAgICAgICAgICAgICAgIGRlZmF1bHRWYWx1ZT17ZGVmYXVsdFZhbHVlfVxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvUmFkaW9Hcm91cFdyYXBwZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvQmFzZUZpZWxkPlxuICAgICk7XG59KTtcblxuZXhwb3J0IGRlZmF1bHQgUmFkaW9Hcm91cDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsV0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsTUFBQSxHQUFBSCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUcsaUJBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFVBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLFVBQUEsR0FBQUwsT0FBQTtBQUNBLElBQUFNLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLFlBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQVYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFVLG1CQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFBMEQsU0FBQUQsdUJBQUFZLENBQUEsV0FBQUEsQ0FBQSxJQUFBQSxDQUFBLENBQUFDLFVBQUEsR0FBQUQsQ0FBQSxLQUFBRSxPQUFBLEVBQUFGLENBQUE7QUFBQSxTQUFBRyxTQUFBLFdBQUFBLFFBQUEsR0FBQUMsTUFBQSxDQUFBQyxNQUFBLEdBQUFELE1BQUEsQ0FBQUMsTUFBQSxDQUFBQyxJQUFBLGVBQUFDLENBQUEsYUFBQVAsQ0FBQSxNQUFBQSxDQUFBLEdBQUFRLFNBQUEsQ0FBQUMsTUFBQSxFQUFBVCxDQUFBLFVBQUFVLENBQUEsR0FBQUYsU0FBQSxDQUFBUixDQUFBLFlBQUFXLENBQUEs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
@@ -18,6 +18,7 @@ var _Event = _interopRequireDefault(require("../../event/Event"));
18
18
  var _Observable = _interopRequireDefault(require("../../event/Observable"));
19
19
  var _EventType = _interopRequireDefault(require("../../event/EventType"));
20
20
  var _noimage = _interopRequireDefault(require("./noimage.png"));
21
+ var _documentDownload = require("../../documentDownload");
21
22
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
22
23
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
23
24
  function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
@@ -51,7 +52,7 @@ const json = response => {
51
52
  };
52
53
  const location = window.location.protocol + "//" + window.location.hostname;
53
54
  const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo(props => {
54
- var _props$config$attribu, _props$config$attribu2, _props$config$attribu3;
55
+ var _base$value$documentR4, _props$config$attribu, _props$config$attribu2, _props$config$attribu3;
55
56
  const [viewerFile, setViewerFile] = _react.default.useState(!_Utils.default.isNull(props.initialFile) ? props.initialFile : null);
56
57
  const [payloadStorageMode, setPayloadStorageMode] = _react.default.useState(props.config.payloadStorageMode || 'base64');
57
58
  const [files, setFiles] = _react.default.useState(!_Utils.default.isNull(props.initialFile) ? [props.initialFile] : null);
@@ -64,6 +65,7 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
64
65
  const width = _Utils.default.getComponentAttribute(props.config, 'width', '200px');
65
66
  const height = _Utils.default.getComponentAttribute(props.config, 'height', '200px');
66
67
  const [errorMessage, setErrorMessage] = _react.default.useState("");
68
+ const [imageObjectUrl, setImageObjectUrl] = _react.default.useState(null);
67
69
  const cacheId = _react.default.useRef(!_Utils.default.isNull(props.base.value) ? props.base.value.documentRepositoryCacheId : null);
68
70
  const base = props.base;
69
71
  _react.default.useEffect(() => {
@@ -104,7 +106,8 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
104
106
  };
105
107
  let url = location + uploadUrl;
106
108
  (0, _reactPromiseTracker.trackPromise)(fetch(encodeURI(url), fetchConfig).then(status).then(json).then(data => {
107
- metadata.documentRepositoryId = !_Utils.default.isNull(base.value) ? base.value.documentRepositoryId : null;
109
+ var _base$value$documentR;
110
+ metadata.documentRepositoryId = !_Utils.default.isNull(base.value) ? (_base$value$documentR = base.value.documentRepositoryId) !== null && _base$value$documentR !== void 0 ? _base$value$documentR : base.value.repositoryId : null;
108
111
  metadata.documentRepositoryCacheId = data;
109
112
  cacheId.current = data;
110
113
  base.handleValueChange(metadata);
@@ -155,6 +158,31 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
155
158
  }));
156
159
  });
157
160
  };
161
+
162
+ // IMAGE-style preview: fetch the stored image (header auth) and hold it as an object URL.
163
+ _react.default.useEffect(() => {
164
+ var _base$value$documentR2, _base$value$documentR3;
165
+ if (props.style !== 'IMAGE' || !_Utils.default.isNull(viewerFile) || _Utils.default.isNull(base.value) || _Utils.default.isNull((_base$value$documentR2 = base.value.documentRepositoryId) !== null && _base$value$documentR2 !== void 0 ? _base$value$documentR2 : base.value.repositoryId)) {
166
+ setImageObjectUrl(null);
167
+ return;
168
+ }
169
+ let active = true;
170
+ let created = null;
171
+ (0, _documentDownload.fetchDocumentObjectUrl)((_base$value$documentR3 = base.value.documentRepositoryId) !== null && _base$value$documentR3 !== void 0 ? _base$value$documentR3 : base.value.repositoryId).then(objectUrl => {
172
+ if (active) {
173
+ created = objectUrl;
174
+ setImageObjectUrl(objectUrl);
175
+ } else {
176
+ URL.revokeObjectURL(objectUrl);
177
+ }
178
+ }).catch(() => {});
179
+ return () => {
180
+ active = false;
181
+ if (created) {
182
+ URL.revokeObjectURL(created);
183
+ }
184
+ };
185
+ }, [props.style, viewerFile, base.value ? (_base$value$documentR4 = base.value.documentRepositoryId) !== null && _base$value$documentR4 !== void 0 ? _base$value$documentR4 : base.value.repositoryId : null]);
158
186
  const handleChange = () => event => {
159
187
  let files = event.target.files;
160
188
  var allFiles = [];
@@ -193,8 +221,9 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
193
221
  fileMetaData.type = allFiles[0].type;
194
222
  fileMetaData.size = allFiles[0].size;
195
223
  if (base.value) {
224
+ var _base$value$documentR5;
196
225
  fileMetaData.id = base.value.id;
197
- fileMetaData.documentRepositoryId = base.value.documentRepositoryId;
226
+ fileMetaData.documentRepositoryId = (_base$value$documentR5 = base.value.documentRepositoryId) !== null && _base$value$documentR5 !== void 0 ? _base$value$documentR5 : base.value.repositoryId;
198
227
  }
199
228
  if ('base64' === payloadStorageMode) {
200
229
  fileMetaData.payload = allFiles[0].base64;
@@ -242,7 +271,7 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
242
271
  backgroundColor: 'transparent',
243
272
  border: base.hasError ? "1px solid #f44336" : null,
244
273
  color: base.hasError ? "#f44336" : null,
245
- backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(base.value) ? "url(".concat(location + _ApplicationManager.default.getContextRoot() + '/docs/api/v1/manager/download/' + base.value.documentRepositoryId + '?access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"), ")") : "url(".concat(_noimage.default, ")")
274
+ backgroundImage: !_Utils.default.isNull(viewerFile) ? "url(".concat(viewerFile.base64, ")") : !_Utils.default.isNull(imageObjectUrl) ? "url(".concat(imageObjectUrl, ")") : "url(".concat(_noimage.default, ")")
246
275
  }
247
276
  })), base.hasError ? /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("div", {
248
277
  style: {
@@ -269,8 +298,12 @@ const DocumentUpload = exports.DocumentUpload = /*#__PURE__*/_react.default.memo
269
298
  padding: "0 8px"
270
299
  }
271
300
  }, base.errorMessage)) : null), /*#__PURE__*/_react.default.createElement("label", null, !_Utils.default.isNull(base.value) ? _Utils.default.isNull(base.value.id) ? base.value.name : /*#__PURE__*/_react.default.createElement("a", {
272
- href: location + _ApplicationManager.default.getContextRoot() + '/docs/api/v1/manager/download/' + base.value.documentRepositoryId + '?access_token=' + sessionStorage.getItem("accessToken") + '&idToken=' + sessionStorage.getItem("idToken"),
273
- target: '_blank'
301
+ href: '#',
302
+ onClick: e => {
303
+ var _base$value$documentR6;
304
+ e.preventDefault();
305
+ (0, _documentDownload.downloadDocument)((_base$value$documentR6 = base.value.documentRepositoryId) !== null && _base$value$documentR6 !== void 0 ? _base$value$documentR6 : base.value.repositoryId, base.value.name);
306
+ }
274
307
  }, base.value.name) : null), !base.disabled && nullable && base.value ? /*#__PURE__*/_react.default.createElement(_IconButton.default, {
275
308
  "aria-controls": "menu-list-grow",
276
309
  "aria-haspopup": "true",
@@ -310,4 +343,4 @@ const UploadField = exports.UploadField = /*#__PURE__*/_react.default.memo(props
310
343
  }, props)));
311
344
  });
312
345
  var _default = exports.default = UploadField;
313
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsIl9leHRlbmRzIiwiT2JqZWN0IiwiYXNzaWduIiwiYmluZCIsIm4iLCJhcmd1bWVudHMiLCJsZW5ndGgiLCJ0IiwiciIsImhhc093blByb3BlcnR5IiwiY2FsbCIsImFwcGx5Iiwib3duS2V5cyIsImtleXMiLCJnZXRPd25Qcm9wZXJ0eVN5bWJvbHMiLCJvIiwiZmlsdGVyIiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yIiwiZW51bWVyYWJsZSIsInB1c2giLCJfb2JqZWN0U3ByZWFkIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJUeXBlRXJyb3IiLCJTdHJpbmciLCJOdW1iZXIiLCJ1c2VTdHlsZXMiLCJtYWtlU3R5bGVzIiwidGhlbWUiLCJidXR0b24iLCJtYXJnaW4iLCJzcGFjaW5nIiwiaW5wdXQiLCJkaXNwbGF5IiwiZXJyb3JNZXNzYWdlRGlzcGxheSIsImNvbG9yIiwic3RhdHVzIiwicmVzcG9uc2UiLCJvayIsIlByb21pc2UiLCJyZXNvbHZlIiwicmVqZWN0IiwiY29kZSIsIm1lc3NhZ2UiLCJzdGF0dXNUZXh0IiwianNvbiIsInRleHQiLCJsb2NhdGlvbiIsIndpbmRvdyIsInByb3RvY29sIiwiaG9zdG5hbWUiLCJEb2N1bWVudFVwbG9hZCIsImV4cG9ydHMiLCJSZWFjdCIsIm1lbW8iLCJwcm9wcyIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiY2FjaGVJZCIsInVzZVJlZiIsImJhc2UiLCJkb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIiwidXNlRWZmZWN0IiwiY3VycmVudCIsImhhbmRsZVZpZXdlckxvYWQiLCJudW1QYWdlcyIsInVwbG9hZCIsIm1ldGFkYXRhIiwiZmlsZSIsInJlYWRlciIsInVwbG9hZFVybCIsImFwcGxpY2F0aW9uTWFuYWdlciIsImdldENvbnRleHRSb290IiwiYWNjZXNzVG9rZW4iLCJzZXNzaW9uU3RvcmFnZSIsImdldEl0ZW0iLCJpZFRva2VuIiwiZGF0YSIsIkZvcm1EYXRhIiwiY29ycmVsYXRpb25JZCIsInZpZXdJZCIsImlkIiwicm93SWQiLCJhcHBlbmQiLCJKU09OIiwic3RyaW5naWZ5IiwiZmV0Y2hDb25maWciLCJtZXRob2QiLCJoZWFkZXJzIiwiZ2V0QWN0aXZlVGVuYW50IiwiYm9keSIsInVybCIsInRyYWNrUHJvbWlzZSIsImZldGNoIiwiZW5jb2RlVVJJIiwidGhlbiIsImRvY3VtZW50UmVwb3NpdG9yeUlkIiwiaGFuZGxlVmFsdWVDaGFuZ2UiLCJldmVudCIsIkV2ZW50IiwiaGFuZGxlIiwicmVzdWx0IiwiZXZlbnRNYW5hZ2VyIiwiZmlyZUV2ZW50IiwiRXZlbnRUeXBlIiwiRE9DVU1FTlRfQ0FDSEVEIiwiY2F0Y2giLCJjbGVhciIsImdldEFwcGxpY2F0aW9uSGlzdG9yeSIsIm1lc3NhZ2VUeXBlIiwiTUVTU0FHRV9BUlJJVkVEIiwicGF5bG9hZCIsInJlbW92ZSIsImhhbmRsZUNoYW5nZSIsInRhcmdldCIsImFsbEZpbGVzIiwiRmlsZVJlYWRlciIsInJlYWRBc0RhdGFVUkwiLCJvbmxvYWQiLCJmaWxlSW5mbyIsIm5hbWUiLCJ0eXBlIiwic2l6ZSIsImJhc2U2NCIsIm9uVXBsb2FkSGFuZGxlciIsIm9ubG9hZGVuZCIsImZvcm0iLCJmaWxlTWV0YURhdGEiLCJkb21haW4iLCJjb250ZW50IiwiY3JlYXRlRWxlbWVudCIsImFjY2VwdCIsInN0eWxlIiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImNvbmNhdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJ2YXJpYW50IiwiY29tcG9uZW50IiwiYmFja2dyb3VuZFJlcGVhdCIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYmFja2dyb3VuZEltYWdlIiwiZGVmYXVsdEltYWdlIiwicGFkZGluZyIsInN0YXJ0SWNvbiIsImxhYmVsIiwiaHJlZiIsIm9uQ2xpY2siLCJkb2N1bWVudCIsImdldEVsZW1lbnRCeUlkIiwic2hvd1ZpZXdlciIsIm9uRG9jdW1lbnRMb2FkU3VjY2VzcyIsIlVwbG9hZEZpZWxkIiwic2V0RmlsZSIsImNsZWFyVHJpZ2dlciIsIkJhc2VGaWVsZCIsInZhbHVlUGFyc2VyIiwiaW5ib3VuZCIsInZhbHVlQ2hhbmdlQ2FsbGJhY2siLCJfZGVmYXVsdCJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL1VwbG9hZEZpZWxkLmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyLvu79pbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IEJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0J1dHRvbic7XG5pbXBvcnQge0Jhc2VGaWVsZH0gZnJvbSBcIi4vQmFzZUZpZWxkXCI7XG5pbXBvcnQge21ha2VTdHlsZXN9IGZyb20gJ0BtdWkvc3R5bGVzJztcbmltcG9ydCBEb2N1bWVudFZpZXdlckNvbXBvbmVudCBmcm9tIFwiLi4vRG9jdW1lbnRWaWV3ZXJcIjtcbmltcG9ydCBVdGlscyBmcm9tICcuLi8uLi9VdGlscyc7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBJY29uQnV0dG9uIGZyb20gJ0BtdWkvbWF0ZXJpYWwvSWNvbkJ1dHRvbic7XG5pbXBvcnQgSWNvbiBmcm9tICcuLi9JY29uJztcbmltcG9ydCB7dHJhY2tQcm9taXNlfSBmcm9tIFwicmVhY3QtcHJvbWlzZS10cmFja2VyXCI7XG5pbXBvcnQgRXZlbnQgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnQnO1xuaW1wb3J0IGV2ZW50TWFuYWdlciBmcm9tICcuLi8uLi9ldmVudC9PYnNlcnZhYmxlJztcbmltcG9ydCBFdmVudFR5cGUgZnJvbSAnLi4vLi4vZXZlbnQvRXZlbnRUeXBlJztcbmltcG9ydCBkZWZhdWx0SW1hZ2UgZnJvbSAnLi9ub2ltYWdlLnBuZyc7XG5cbmNvbnN0IHVzZVN0eWxlcyA9IG1ha2VTdHlsZXModGhlbWUgPT4gKHtcbiAgICBidXR0b246IHtcbiAgICAgICAgbWFyZ2luOiB0aGVtZS5zcGFjaW5nKDEpLFxuICAgIH0sXG4gICAgaW5wdXQ6IHtcbiAgICAgICAgZGlzcGxheTogJ25vbmUnLFxuICAgIH0sXG4gICAgZXJyb3JNZXNzYWdlRGlzcGxheToge1xuICAgICAgICBjb2xvcjogJ3JlZCdcbiAgICB9XG59KSk7XG5cbmNvbnN0IHN0YXR1cyA9IChyZXNwb25zZSkgPT4ge1xuICAgIGlmIChyZXNwb25zZS5vaykge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3BvbnNlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3Qoe2NvZGU6IHJlc3BvbnNlLnN0YXR1cywgbWVzc2FnZTogcmVzcG9uc2Uuc3RhdHVzVGV4dH0pO1xuICAgIH1cbn07XG5cbmNvbnN0IGpzb24gPSAocmVzcG9uc2UpID0+IHtcbiAgICByZXR1cm4gcmVzcG9uc2UudGV4dCgpO1xufTtcblxuY29uc3QgbG9jYXRpb24gPSB3aW5kb3cubG9jYXRpb24ucHJvdG9jb2wgKyBcIi8vXCIgKyB3aW5kb3cubG9jYXRpb24uaG9zdG5hbWU7XG5leHBvcnQgY29uc3QgRG9jdW1lbnRVcGxvYWQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFt2aWV3ZXJGaWxlLCBzZXRWaWV3ZXJGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gcHJvcHMuaW5pdGlhbEZpbGUgOiBudWxsKTtcbiAgICBjb25zdCBbcGF5bG9hZFN0b3JhZ2VNb2RlLCBzZXRQYXlsb2FkU3RvcmFnZU1vZGVdID0gUmVhY3QudXNlU3RhdGUocHJvcHMuY29uZmlnLnBheWxvYWRTdG9yYWdlTW9kZSB8fCAnYmFzZTY0Jyk7XG4gICAgY29uc3QgW2ZpbGVzLCBzZXRGaWxlc10gPSBSZWFjdC51c2VTdGF0ZSghVXRpbHMuaXNOdWxsKHByb3BzLmluaXRpYWxGaWxlKSA/IFtwcm9wcy5pbml0aWFsRmlsZV0gOiBudWxsKTtcbiAgICBjb25zdCBbbG9hZGluZywgc2V0TG9hZGluZ10gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbbnVsbGFibGVdID0gUmVhY3QudXNlU3RhdGUoVXRpbHMuaXNOdWxsKHByb3BzLmNvbmZpZy52YWxpZGF0b3IpIHx8IHByb3BzLmNvbmZpZy52YWxpZGF0b3IubnVsbGFibGUgPT09IHRydWUpO1xuICAgIGNvbnN0IFttdWx0aXBsZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5tdWx0aXBsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgW3Nob3csIHNldFNob3ddID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuICAgIGNvbnN0IGNsYXNzZXMgPSB1c2VTdHlsZXMoKTtcbiAgICBjb25zdCBbaGFzRXJyb3IsIHNldEhhc0Vycm9yXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IHdpZHRoID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3dpZHRoJywgJzIwMHB4Jyk7XG4gICAgY29uc3QgaGVpZ2h0ID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ2hlaWdodCcsICcyMDBweCcpO1xuICAgIGNvbnN0IFtlcnJvck1lc3NhZ2UsIHNldEVycm9yTWVzc2FnZV0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBjYWNoZUlkID0gUmVhY3QudXNlUmVmKCFVdGlscy5pc051bGwocHJvcHMuYmFzZS52YWx1ZSkgPyBwcm9wcy5iYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgOiBudWxsKTtcbiAgICBjb25zdCBiYXNlID0gcHJvcHMuYmFzZTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAvL3JlbW92ZSgpLmNhdGNoKChlKSA9PiB7fSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgc2V0Vmlld2VyRmlsZShwcm9wcy5pbml0aWFsRmlsZSk7XG4gICAgfSwgW3Byb3BzLmluaXRpYWxGaWxlXSk7XG5cbiAgICBjb25zdCBoYW5kbGVWaWV3ZXJMb2FkID0gKG51bVBhZ2VzKSA9PiB7XG4gICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgIH07XG5cbiAgICBjb25zdCB1cGxvYWQgPSAobWV0YWRhdGEsIGZpbGUsIHJlYWRlcikgPT4ge1xuICAgICAgICBsZXQgdXBsb2FkVXJsID0gVXRpbHMuZ2V0Q29tcG9uZW50QXR0cmlidXRlKHByb3BzLmNvbmZpZywgJ3VwbG9hZFVybCcsIG51bGwpO1xuICAgICAgICBpZih1cGxvYWRVcmwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHVwbG9hZFVybCA9IGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgXCIvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvc2F2ZVwiO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IHBheWxvYWRTdG9yYWdlTW9kZSA9IHByb3BzLmNvbmZpZy5wYXlsb2FkU3RvcmFnZU1vZGU7XG4gICAgICAgIGlmKHBheWxvYWRTdG9yYWdlTW9kZSA9PT0gJ3Bvc3QnKXtcbiAgICAgICAgICAgIGNvbnN0IGFjY2Vzc1Rva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpO1xuICAgICAgICAgICAgY29uc3QgaWRUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpO1xuICAgICAgICAgICAgbGV0IGRhdGEgPSBuZXcgRm9ybURhdGEoKTtcbiAgICAgICAgICAgIG1ldGFkYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy52aWV3SWQgKyBcIi5cIiArIHByb3BzLmNvbmZpZy5pZCArIChwcm9wcy5jb25maWcucm93SWQgPyBcIi5cIiArIHByb3BzLmNvbmZpZy5yb3dJZCA6IFwiXCIpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJtZXRhZGF0YVwiLCBKU09OLnN0cmluZ2lmeShtZXRhZGF0YSkpO1xuICAgICAgICAgICAgZGF0YS5hcHBlbmQoXCJmaWxlXCIsIGZpbGUpO1xuXG4gICAgICAgICAgICBsZXQgZmV0Y2hDb25maWcgPSB7XG4gICAgICAgICAgICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIGJvZHk6IGRhdGFcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIGxldCB1cmwgPSBsb2NhdGlvbiArIHVwbG9hZFVybDtcbiAgICAgICAgICAgIHRyYWNrUHJvbWlzZShcbiAgICAgICAgICAgICAgICBmZXRjaChlbmNvZGVVUkkodXJsKSwgZmV0Y2hDb25maWcpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKHN0YXR1cylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oanNvbilcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUlkID0gIVV0aWxzLmlzTnVsbChiYXNlLnZhbHVlKSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgbWV0YWRhdGEuZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCA9IGRhdGE7XG4gICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChwcm9wcy5oYW5kbGUsIHByb3BzLnZpZXdJZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Li4ubWV0YWRhdGEsIHVybDogcmVhZGVyLnJlc3VsdH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnRNYW5hZ2VyLmZpcmVFdmVudChFdmVudFR5cGUuRE9DVU1FTlRfQ0FDSEVELCBldmVudCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgbWVzc2FnZSA9IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlVHlwZTogJ0VSUk9SJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBtZXNzYWdlOiAnQW4gZXJyb3IgaGFzIGFjY3VycmVkIHdoaWxlIHVwbG9hZGluZyBmaWxlJ1xuICAgICAgICAgICAgICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IGV2ZW50ID0gbmV3IEV2ZW50KGFwcGxpY2F0aW9uTWFuYWdlciwgcHJvcHMudmlld0lkLCBtZXNzYWdlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLk1FU1NBR0VfQVJSSVZFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbWV0YWRhdGEucGF5bG9hZCA9IHJlYWRlci5yZXN1bHQ7XG4gICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKG1ldGFkYXRhKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCByZW1vdmUgPSAoKSA9PiB7XG4gICAgICAgIHJldHVybiBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgICAgICAgICAgaGVhZGVyczoge1xuICAgICAgICAgICAgICAgICAgICAnQWNjZXB0JzogJ2FwcGxpY2F0aW9uL2pzb24nLFxuICAgICAgICAgICAgICAgICAgICAnQXV0aG9yaXphdGlvbic6ICdCZWFyZXIgJyArIGFjY2Vzc1Rva2VuLFxuICAgICAgICAgICAgICAgICAgICAnaWRUb2tlbic6IGlkVG9rZW4sXG4gICAgICAgICAgICAgICAgICAgICd0ZW5hbnQnOiBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QWN0aXZlVGVuYW50KClcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArICcvZG9jcy9hcGkvdjEvbWFuYWdlci91cGxvYWQvcmVtb3ZlLycgKyBjYWNoZUlkLmN1cnJlbnQ7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlc29sdmUoKTtcbiAgICAgICAgICAgICAgICAgICAgfSkuY2F0Y2goXG4gICAgICAgICAgICAgICAgICAgIChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoZS5jb2RlID09PSA0MDEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0QXBwbGljYXRpb25IaXN0b3J5KCkucHVzaCgnL2xvZ2luJyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlamVjdChlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSlcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQ2hhbmdlID0gKCkgPT4gZXZlbnQgPT4ge1xuICAgICAgICBsZXQgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XG4gICAgICAgIHZhciBhbGxGaWxlcyA9IFtdO1xuICAgICAgICBmb3IgKHZhciBpID0gMDsgaSA8IGZpbGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICBsZXQgZmlsZSA9IGZpbGVzW2ldO1xuICAgICAgICAgICAgbGV0IHJlYWRlciA9IG5ldyBGaWxlUmVhZGVyKCk7XG4gICAgICAgICAgICByZWFkZXIucmVhZEFzRGF0YVVSTChmaWxlKTtcbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpbGVJbmZvID0ge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBmaWxlLm5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHR5cGU6IGZpbGUudHlwZSxcbiAgICAgICAgICAgICAgICAgICAgc2l6ZTogZmlsZS5zaXplLFxuICAgICAgICAgICAgICAgICAgICBiYXNlNjQ6IHJlYWRlci5yZXN1bHQsXG4gICAgICAgICAgICAgICAgICAgIGZpbGU6IGZpbGVcbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgYWxsRmlsZXMucHVzaChmaWxlSW5mbyk7XG4gICAgICAgICAgICAgICAgaWYgKGFsbEZpbGVzLmxlbmd0aCA9PT0gZmlsZXMubGVuZ3RoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChtdWx0aXBsZSA9PT0gdHJ1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMub25VcGxvYWRIYW5kbGVyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLm9uVXBsb2FkSGFuZGxlcihhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzWzBdKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgc2V0TG9hZGluZyh0cnVlKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldFZpZXdlckZpbGUoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgc2V0RmlsZXMoYWxsRmlsZXMpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHJlYWRlci5vbmxvYWRlbmQgPSAoKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZm9ybSkpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGZpbGVNZXRhRGF0YSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEubmFtZSA9IGFsbEZpbGVzWzBdLm5hbWU7XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS50eXBlID0gYWxsRmlsZXNbMF0udHlwZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnNpemUgPSBhbGxGaWxlc1swXS5zaXplO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmKGJhc2UudmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5pZCA9IGJhc2UudmFsdWUuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPSBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkO1xuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKCdiYXNlNjQnID09PSBwYXlsb2FkU3RvcmFnZU1vZGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5wYXlsb2FkID0gYWxsRmlsZXNbMF0uYmFzZTY0O1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShmaWxlTWV0YURhdGEpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQgPSBwcm9wcy5jb25maWcuaWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuZG9tYWluID0gcHJvcHMudmlld0lkO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZS5jb3JyZWxhdGlvbklkID0gZmlsZU1ldGFEYXRhLmNvcnJlbGF0aW9uSWQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmNvbnRlbnQgPSBhbGxGaWxlc1swXS5maWxlO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjYWNoZUlkLmN1cnJlbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZW1vdmUoKS50aGVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaCgoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVwbG9hZChmaWxlTWV0YURhdGEsIGFsbEZpbGVzWzBdLmZpbGUsIHJlYWRlcik7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgcmV0dXJuIChcbiAgICAgICAgPGRpdj5cbiAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgPGlucHV0XG4gICAgICAgICAgICAgICAgICAgIGFjY2VwdD17cHJvcHMuc3R5bGUgPT09ICdJTUFHRScgPyBcImltYWdlL2pwZWcsaW1hZ2UvZ2lmLGltYWdlL3BuZyxpbWFnZS94LWVwc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICA6IChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uYWNjZXB0IHx8IFwiYXBwbGljYXRpb24vcGRmXCIpfVxuICAgICAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2NsYXNzZXMuaW5wdXR9XG4gICAgICAgICAgICAgICAgICAgIGlkPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZD17YmFzZS5yZXF1aXJlZH1cbiAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGU9e211bHRpcGxlfVxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlKCl9XG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuc3R5bGUgPT09ICdJTUFHRScgP1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgaHRtbEZvcj17YGNvbnRhaW5lZC1idXR0b24tZmlsZS0ke3Byb3BzLmNvbmZpZy5pZH1gfT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cImNvbnRhaW5lZFwiIGNvbXBvbmVudD1cInNwYW5cIiBjbGFzc05hbWU9e2NsYXNzZXMuYnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aWR0aCwgaGVpZ2h0OiBoZWlnaHQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kUmVwZWF0OiAnbm8tcmVwZWF0JyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRTaXplOiAnY292ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndHJhbnNwYXJlbnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyOiBiYXNlLmhhc0Vycm9yID8gXCIxcHggc29saWQgI2Y0NDMzNlwiIDogbnVsbCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiBiYXNlLmhhc0Vycm9yID8gXCIjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZEltYWdlOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwodmlld2VyRmlsZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7dmlld2VyRmlsZS5iYXNlNjR9KWAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHtsb2NhdGlvbiArIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRDb250ZXh0Um9vdCgpICsgJy9kb2NzL2FwaS92MS9tYW5hZ2VyL2Rvd25sb2FkLycgKyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICc/YWNjZXNzX3Rva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIikgKyAnJmlkVG9rZW49JyArIHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJpZFRva2VuXCIpfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBgdXJsKCR7ZGVmYXVsdEltYWdlfSlgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e2NvbG9yOiBcIiNmNDQzMzZcIiwgcGFkZGluZzogXCIwIDhweFwifX0+e2Jhc2UuZXJyb3JNZXNzYWdlfTwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBudWxsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+IDpcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGh0bWxGb3I9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHsvKjxCdXR0b24gdmFyaWFudD17cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yID09PSAnc2Vjb25kYXJ5JyB8fCBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgPT09ICdwcmltYXJ5JyA/ICdjb250YWluZWQnIDogJ3RleHQnfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17IVV0aWxzLmlzTnVsbChwcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IpID9wcm9wcy5jb25maWcuYXR0cmlidXRlcz8uY29sb3IgOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e1V0aWxzLm1lcmdlU3R5bGVzKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LCBwcm9wcy5jb25maWcpfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj4qL31cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwidGV4dFwiIGNvbXBvbmVudD1cInNwYW5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17YmFzZS5kaXNhYmxlZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzLmJ1dHRvbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcjogYmFzZS5oYXNFcnJvciA/IFwiMXB4IHNvbGlkICNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogYmFzZS5oYXNFcnJvciA/IFwiI2Y0NDMzNlwiIDogbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdGFydEljb249ezxJY29uIGlkPXsnVVBMT0FEJ30vPn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5sYWJlbCA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0J1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiMCA4cHhcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFV0aWxzLmlzTnVsbChiYXNlLnZhbHVlLmlkKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxhIGhyZWY9e2xvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvZG93bmxvYWQvJyArIGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnP2FjY2Vzc190b2tlbj0nICsgc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImFjY2Vzc1Rva2VuXCIpICsgJyZpZFRva2VuPScgKyBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0PXsnX2JsYW5rJ30+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS52YWx1ZS5uYW1lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFiYXNlLmRpc2FibGVkICYmIG51bGxhYmxlICYmIGJhc2UudmFsdWUgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPVwibWVudS1saXN0LWdyb3dcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGFzcG9wdXA9XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShudWxsKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKGBjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YCkudmFsdWUgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVtb3ZlKCkudGhlbigoKSA9PiBjYWNoZUlkLmN1cnJlbnQgPSBudWxsKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uIGlkPXsnREVMRVRFJ30vPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIHByb3BzLnNob3dWaWV3ZXIgJiYgIW11bHRpcGxlIHx8IHNob3cgP1xuICAgICAgICAgICAgICAgICAgICA8RG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZmlsZT17dmlld2VyRmlsZX0gb25Eb2N1bWVudExvYWRTdWNjZXNzPXtoYW5kbGVWaWV3ZXJMb2FkfS8+XG4gICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgXCJcIlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3NOYW1lPXtjbGFzc2VzLmVycm9yTWVzc2FnZURpc3BsYXl9PntlcnJvck1lc3NhZ2V9PC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgY29uc3QgVXBsb2FkRmllbGQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtmaWxlLCBzZXRGaWxlXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGNsZWFyVHJpZ2dlcj0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCYXNlRmllbGQgey4uLnByb3BzfSBoYW5kbGU9e3Byb3BzLmhhbmRsZX0gdmFsdWVQYXJzZXI9eyh2YWx1ZSwgaW5ib3VuZCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgICB9fSB2YWx1ZUNoYW5nZUNhbGxiYWNrPXsodmFsdWUpID0+IHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwodmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyLmN1cnJlbnQgPSAhY2xlYXJUcmlnZ2VyLmN1cnJlbnRcbiAgICAgICAgICAgIH1cbiAgICAgICAgfX0+XG4gICAgICAgICAgICB7YmFzZSA9PlxuICAgICAgICAgICAgICAgIDxEb2N1bWVudFVwbG9hZFxuICAgICAgICAgICAgICAgICAgICBiYXNlPXtiYXNlfVxuICAgICAgICAgICAgICAgICAgICBpbml0aWFsRmlsZT17ZmlsZX1cbiAgICAgICAgICAgICAgICAgICAgY2xlYXJUcmlnZ2VyPXtjbGVhclRyaWdnZXIuY3VycmVudH1cbiAgICAgICAgICAgICAgICAgICAgey4uLnByb3BzfVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8L0RvY3VtZW50VXBsb2FkPlxuICAgICAgICAgICAgfVxuICAgICAgICA8L0Jhc2VGaWVsZD5cbiAgICApO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFVwbG9hZEZpZWxkO1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQyxJQUFBQSxNQUFBLEdBQUFDLHNCQUFBLENBQUFDLE9BQUE7QUFDRCxJQUFBQyxPQUFBLEdBQUFGLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBRSxVQUFBLEdBQUFGLE9BQUE7QUFDQSxJQUFBRyxPQUFBLEdBQUFILE9BQUE7QUFDQSxJQUFBSSxlQUFBLEdBQUFMLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBSyxNQUFBLEdBQUFOLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBTSxtQkFBQSxHQUFBUCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU8sV0FBQSxHQUFBUixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQVEsS0FBQSxHQUFBVCxzQkFBQSxDQUFBQyxP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
346
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9CdXR0b24iLCJfQmFzZUZpZWxkIiwiX3N0eWxlcyIsIl9Eb2N1bWVudFZpZXdlciIsIl9VdGlscyIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfSWNvbkJ1dHRvbiIsIl9JY29uIiwiX3JlYWN0UHJvbWlzZVRyYWNrZXIiLCJfRXZlbnQiLCJfT2JzZXJ2YWJsZSIsIl9FdmVudFR5cGUiLCJfbm9pbWFnZSIsIl9kb2N1bWVudERvd25sb2FkIiwiZSIsIl9fZXNNb2R1bGUiLCJkZWZhdWx0IiwiX2V4dGVuZHMiLCJPYmplY3QiLCJhc3NpZ24iLCJiaW5kIiwibiIsImFyZ3VtZW50cyIsImxlbmd0aCIsInQiLCJyIiwiaGFzT3duUHJvcGVydHkiLCJjYWxsIiwiYXBwbHkiLCJvd25LZXlzIiwia2V5cyIsImdldE93blByb3BlcnR5U3ltYm9scyIsIm8iLCJmaWx0ZXIiLCJnZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IiLCJlbnVtZXJhYmxlIiwicHVzaCIsIl9vYmplY3RTcHJlYWQiLCJmb3JFYWNoIiwiX2RlZmluZVByb3BlcnR5IiwiZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9ycyIsImRlZmluZVByb3BlcnRpZXMiLCJkZWZpbmVQcm9wZXJ0eSIsIl90b1Byb3BlcnR5S2V5IiwidmFsdWUiLCJjb25maWd1cmFibGUiLCJ3cml0YWJsZSIsImkiLCJfdG9QcmltaXRpdmUiLCJTeW1ib2wiLCJ0b1ByaW1pdGl2ZSIsIlR5cGVFcnJvciIsIlN0cmluZyIsIk51bWJlciIsInVzZVN0eWxlcyIsIm1ha2VTdHlsZXMiLCJ0aGVtZSIsImJ1dHRvbiIsIm1hcmdpbiIsInNwYWNpbmciLCJpbnB1dCIsImRpc3BsYXkiLCJlcnJvck1lc3NhZ2VEaXNwbGF5IiwiY29sb3IiLCJzdGF0dXMiLCJyZXNwb25zZSIsIm9rIiwiUHJvbWlzZSIsInJlc29sdmUiLCJyZWplY3QiLCJjb2RlIiwibWVzc2FnZSIsInN0YXR1c1RleHQiLCJqc29uIiwidGV4dCIsImxvY2F0aW9uIiwid2luZG93IiwicHJvdG9jb2wiLCJob3N0bmFtZSIsIkRvY3VtZW50VXBsb2FkIiwiZXhwb3J0cyIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNCIsIl9wcm9wcyRjb25maWckYXR0cmlidSIsIl9wcm9wcyRjb25maWckYXR0cmlidTIiLCJfcHJvcHMkY29uZmlnJGF0dHJpYnUzIiwidmlld2VyRmlsZSIsInNldFZpZXdlckZpbGUiLCJ1c2VTdGF0ZSIsIlV0aWxzIiwiaXNOdWxsIiwiaW5pdGlhbEZpbGUiLCJwYXlsb2FkU3RvcmFnZU1vZGUiLCJzZXRQYXlsb2FkU3RvcmFnZU1vZGUiLCJjb25maWciLCJmaWxlcyIsInNldEZpbGVzIiwibG9hZGluZyIsInNldExvYWRpbmciLCJudWxsYWJsZSIsInZhbGlkYXRvciIsIm11bHRpcGxlIiwic2hvdyIsInNldFNob3ciLCJjbGFzc2VzIiwiaGFzRXJyb3IiLCJzZXRIYXNFcnJvciIsIndpZHRoIiwiZ2V0Q29tcG9uZW50QXR0cmlidXRlIiwiaGVpZ2h0IiwiZXJyb3JNZXNzYWdlIiwic2V0RXJyb3JNZXNzYWdlIiwiaW1hZ2VPYmplY3RVcmwiLCJzZXRJbWFnZU9iamVjdFVybCIsImNhY2hlSWQiLCJ1c2VSZWYiLCJiYXNlIiwiZG9jdW1lbnRSZXBvc2l0b3J5Q2FjaGVJZCIsInVzZUVmZmVjdCIsImN1cnJlbnQiLCJoYW5kbGVWaWV3ZXJMb2FkIiwibnVtUGFnZXMiLCJ1cGxvYWQiLCJtZXRhZGF0YSIsImZpbGUiLCJyZWFkZXIiLCJ1cGxvYWRVcmwiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJnZXRDb250ZXh0Um9vdCIsImFjY2Vzc1Rva2VuIiwic2Vzc2lvblN0b3JhZ2UiLCJnZXRJdGVtIiwiaWRUb2tlbiIsImRhdGEiLCJGb3JtRGF0YSIsImNvcnJlbGF0aW9uSWQiLCJ2aWV3SWQiLCJpZCIsInJvd0lkIiwiYXBwZW5kIiwiSlNPTiIsInN0cmluZ2lmeSIsImZldGNoQ29uZmlnIiwibWV0aG9kIiwiaGVhZGVycyIsImdldEFjdGl2ZVRlbmFudCIsImJvZHkiLCJ1cmwiLCJ0cmFja1Byb21pc2UiLCJmZXRjaCIsImVuY29kZVVSSSIsInRoZW4iLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIiLCJkb2N1bWVudFJlcG9zaXRvcnlJZCIsInJlcG9zaXRvcnlJZCIsImhhbmRsZVZhbHVlQ2hhbmdlIiwiZXZlbnQiLCJFdmVudCIsImhhbmRsZSIsInJlc3VsdCIsImV2ZW50TWFuYWdlciIsImZpcmVFdmVudCIsIkV2ZW50VHlwZSIsIkRPQ1VNRU5UX0NBQ0hFRCIsImNhdGNoIiwiY2xlYXIiLCJnZXRBcHBsaWNhdGlvbkhpc3RvcnkiLCJtZXNzYWdlVHlwZSIsIk1FU1NBR0VfQVJSSVZFRCIsInBheWxvYWQiLCJyZW1vdmUiLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFIyIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSMyIsInN0eWxlIiwiYWN0aXZlIiwiY3JlYXRlZCIsImZldGNoRG9jdW1lbnRPYmplY3RVcmwiLCJvYmplY3RVcmwiLCJVUkwiLCJyZXZva2VPYmplY3RVUkwiLCJoYW5kbGVDaGFuZ2UiLCJ0YXJnZXQiLCJhbGxGaWxlcyIsIkZpbGVSZWFkZXIiLCJyZWFkQXNEYXRhVVJMIiwib25sb2FkIiwiZmlsZUluZm8iLCJuYW1lIiwidHlwZSIsInNpemUiLCJiYXNlNjQiLCJvblVwbG9hZEhhbmRsZXIiLCJvbmxvYWRlbmQiLCJmb3JtIiwiZmlsZU1ldGFEYXRhIiwiX2Jhc2UkdmFsdWUkZG9jdW1lbnRSNSIsImRvbWFpbiIsImNvbnRlbnQiLCJjcmVhdGVFbGVtZW50IiwiYWNjZXB0IiwiYXR0cmlidXRlcyIsImNsYXNzTmFtZSIsImNvbmNhdCIsImRpc2FibGVkIiwicmVxdWlyZWQiLCJvbkNoYW5nZSIsImh0bWxGb3IiLCJ2YXJpYW50IiwiY29tcG9uZW50IiwiYmFja2dyb3VuZFJlcGVhdCIsImJhY2tncm91bmRTaXplIiwiYmFja2dyb3VuZENvbG9yIiwiYm9yZGVyIiwiYmFja2dyb3VuZEltYWdlIiwiZGVmYXVsdEltYWdlIiwicGFkZGluZyIsInN0YXJ0SWNvbiIsImxhYmVsIiwiaHJlZiIsIm9uQ2xpY2siLCJfYmFzZSR2YWx1ZSRkb2N1bWVudFI2IiwicHJldmVudERlZmF1bHQiLCJkb3dubG9hZERvY3VtZW50IiwiZG9jdW1lbnQiLCJnZXRFbGVtZW50QnlJZCIsInNob3dWaWV3ZXIiLCJvbkRvY3VtZW50TG9hZFN1Y2Nlc3MiLCJVcGxvYWRGaWVsZCIsInNldEZpbGUiLCJjbGVhclRyaWdnZXIiLCJCYXNlRmllbGQiLCJ2YWx1ZVBhcnNlciIsImluYm91bmQiLCJ2YWx1ZUNoYW5nZUNhbGxiYWNrIiwiX2RlZmF1bHQiXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9VcGxvYWRGaWVsZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsi77u/aW1wb3J0IFJlYWN0IGZyb20gJ3JlYWN0JztcbmltcG9ydCBCdXR0b24gZnJvbSAnQG11aS9tYXRlcmlhbC9CdXR0b24nO1xuaW1wb3J0IHtCYXNlRmllbGR9IGZyb20gXCIuL0Jhc2VGaWVsZFwiO1xuaW1wb3J0IHttYWtlU3R5bGVzfSBmcm9tICdAbXVpL3N0eWxlcyc7XG5pbXBvcnQgRG9jdW1lbnRWaWV3ZXJDb21wb25lbnQgZnJvbSBcIi4uL0RvY3VtZW50Vmlld2VyXCI7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vLi4vVXRpbHMnO1xuaW1wb3J0IGFwcGxpY2F0aW9uTWFuYWdlciBmcm9tIFwiLi4vLi4vQXBwbGljYXRpb25NYW5hZ2VyXCI7XG5pbXBvcnQgSWNvbkJ1dHRvbiBmcm9tICdAbXVpL21hdGVyaWFsL0ljb25CdXR0b24nO1xuaW1wb3J0IEljb24gZnJvbSAnLi4vSWNvbic7XG5pbXBvcnQge3RyYWNrUHJvbWlzZX0gZnJvbSBcInJlYWN0LXByb21pc2UtdHJhY2tlclwiO1xuaW1wb3J0IEV2ZW50IGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50JztcbmltcG9ydCBldmVudE1hbmFnZXIgZnJvbSAnLi4vLi4vZXZlbnQvT2JzZXJ2YWJsZSc7XG5pbXBvcnQgRXZlbnRUeXBlIGZyb20gJy4uLy4uL2V2ZW50L0V2ZW50VHlwZSc7XG5pbXBvcnQgZGVmYXVsdEltYWdlIGZyb20gJy4vbm9pbWFnZS5wbmcnO1xuaW1wb3J0IHtkb3dubG9hZERvY3VtZW50LCBmZXRjaERvY3VtZW50T2JqZWN0VXJsfSBmcm9tICcuLi8uLi9kb2N1bWVudERvd25sb2FkJztcblxuY29uc3QgdXNlU3R5bGVzID0gbWFrZVN0eWxlcyh0aGVtZSA9PiAoe1xuICAgIGJ1dHRvbjoge1xuICAgICAgICBtYXJnaW46IHRoZW1lLnNwYWNpbmcoMSksXG4gICAgfSxcbiAgICBpbnB1dDoge1xuICAgICAgICBkaXNwbGF5OiAnbm9uZScsXG4gICAgfSxcbiAgICBlcnJvck1lc3NhZ2VEaXNwbGF5OiB7XG4gICAgICAgIGNvbG9yOiAncmVkJ1xuICAgIH1cbn0pKTtcblxuY29uc3Qgc3RhdHVzID0gKHJlc3BvbnNlKSA9PiB7XG4gICAgaWYgKHJlc3BvbnNlLm9rKSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlc29sdmUocmVzcG9uc2UpO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBQcm9taXNlLnJlamVjdCh7Y29kZTogcmVzcG9uc2Uuc3RhdHVzLCBtZXNzYWdlOiByZXNwb25zZS5zdGF0dXNUZXh0fSk7XG4gICAgfVxufTtcblxuY29uc3QganNvbiA9IChyZXNwb25zZSkgPT4ge1xuICAgIHJldHVybiByZXNwb25zZS50ZXh0KCk7XG59O1xuXG5jb25zdCBsb2NhdGlvbiA9IHdpbmRvdy5sb2NhdGlvbi5wcm90b2NvbCArIFwiLy9cIiArIHdpbmRvdy5sb2NhdGlvbi5ob3N0bmFtZTtcbmV4cG9ydCBjb25zdCBEb2N1bWVudFVwbG9hZCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW3ZpZXdlckZpbGUsIHNldFZpZXdlckZpbGVdID0gUmVhY3QudXNlU3RhdGUoIVV0aWxzLmlzTnVsbChwcm9wcy5pbml0aWFsRmlsZSkgPyBwcm9wcy5pbml0aWFsRmlsZSA6IG51bGwpO1xuICAgIGNvbnN0IFtwYXlsb2FkU3RvcmFnZU1vZGUsIHNldFBheWxvYWRTdG9yYWdlTW9kZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlIHx8ICdiYXNlNjQnKTtcbiAgICBjb25zdCBbZmlsZXMsIHNldEZpbGVzXSA9IFJlYWN0LnVzZVN0YXRlKCFVdGlscy5pc051bGwocHJvcHMuaW5pdGlhbEZpbGUpID8gW3Byb3BzLmluaXRpYWxGaWxlXSA6IG51bGwpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtudWxsYWJsZV0gPSBSZWFjdC51c2VTdGF0ZShVdGlscy5pc051bGwocHJvcHMuY29uZmlnLnZhbGlkYXRvcikgfHwgcHJvcHMuY29uZmlnLnZhbGlkYXRvci5udWxsYWJsZSA9PT0gdHJ1ZSk7XG4gICAgY29uc3QgW211bHRpcGxlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLm11bHRpcGxlID09PSB0cnVlKTtcbiAgICBjb25zdCBbc2hvdywgc2V0U2hvd10gPSBSZWFjdC51c2VTdGF0ZShmYWxzZSk7XG4gICAgY29uc3QgY2xhc3NlcyA9IHVzZVN0eWxlcygpO1xuICAgIGNvbnN0IFtoYXNFcnJvciwgc2V0SGFzRXJyb3JdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3Qgd2lkdGggPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnd2lkdGgnLCAnMjAwcHgnKTtcbiAgICBjb25zdCBoZWlnaHQgPSBVdGlscy5nZXRDb21wb25lbnRBdHRyaWJ1dGUocHJvcHMuY29uZmlnLCAnaGVpZ2h0JywgJzIwMHB4Jyk7XG4gICAgY29uc3QgW2Vycm9yTWVzc2FnZSwgc2V0RXJyb3JNZXNzYWdlXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtpbWFnZU9iamVjdFVybCwgc2V0SW1hZ2VPYmplY3RVcmxdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgY2FjaGVJZCA9IFJlYWN0LnVzZVJlZighVXRpbHMuaXNOdWxsKHByb3BzLmJhc2UudmFsdWUpID8gcHJvcHMuYmFzZS52YWx1ZS5kb2N1bWVudFJlcG9zaXRvcnlDYWNoZUlkIDogbnVsbCk7XG4gICAgY29uc3QgYmFzZSA9IHByb3BzLmJhc2U7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgaWYoY2FjaGVJZC5jdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgLy9yZW1vdmUoKS5jYXRjaCgoZSkgPT4ge30pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIHNldFZpZXdlckZpbGUocHJvcHMuaW5pdGlhbEZpbGUpO1xuICAgIH0sIFtwcm9wcy5pbml0aWFsRmlsZV0pO1xuXG4gICAgY29uc3QgaGFuZGxlVmlld2VyTG9hZCA9IChudW1QYWdlcykgPT4ge1xuICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3QgdXBsb2FkID0gKG1ldGFkYXRhLCBmaWxlLCByZWFkZXIpID0+IHtcbiAgICAgICAgbGV0IHVwbG9hZFVybCA9IFV0aWxzLmdldENvbXBvbmVudEF0dHJpYnV0ZShwcm9wcy5jb25maWcsICd1cGxvYWRVcmwnLCBudWxsKTtcbiAgICAgICAgaWYodXBsb2FkVXJsID09PSBudWxsKSB7XG4gICAgICAgICAgICB1cGxvYWRVcmwgPSBhcHBsaWNhdGlvbk1hbmFnZXIuZ2V0Q29udGV4dFJvb3QoKSArIFwiL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3NhdmVcIjtcbiAgICAgICAgfVxuXG4gICAgICAgIGxldCBwYXlsb2FkU3RvcmFnZU1vZGUgPSBwcm9wcy5jb25maWcucGF5bG9hZFN0b3JhZ2VNb2RlO1xuICAgICAgICBpZihwYXlsb2FkU3RvcmFnZU1vZGUgPT09ICdwb3N0Jyl7XG4gICAgICAgICAgICBjb25zdCBhY2Nlc3NUb2tlbiA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oXCJhY2Nlc3NUb2tlblwiKTtcbiAgICAgICAgICAgIGNvbnN0IGlkVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiaWRUb2tlblwiKTtcbiAgICAgICAgICAgIGxldCBkYXRhID0gbmV3IEZvcm1EYXRhKCk7XG4gICAgICAgICAgICBtZXRhZGF0YS5jb3JyZWxhdGlvbklkID0gcHJvcHMudmlld0lkICsgXCIuXCIgKyBwcm9wcy5jb25maWcuaWQgKyAocHJvcHMuY29uZmlnLnJvd0lkID8gXCIuXCIgKyBwcm9wcy5jb25maWcucm93SWQgOiBcIlwiKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwibWV0YWRhdGFcIiwgSlNPTi5zdHJpbmdpZnkobWV0YWRhdGEpKTtcbiAgICAgICAgICAgIGRhdGEuYXBwZW5kKFwiZmlsZVwiLCBmaWxlKTtcblxuICAgICAgICAgICAgbGV0IGZldGNoQ29uZmlnID0ge1xuICAgICAgICAgICAgICAgIG1ldGhvZDogJ1BPU1QnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBib2R5OiBkYXRhXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBsZXQgdXJsID0gbG9jYXRpb24gKyB1cGxvYWRVcmw7XG4gICAgICAgICAgICB0cmFja1Byb21pc2UoXG4gICAgICAgICAgICAgICAgZmV0Y2goZW5jb2RlVVJJKHVybCksIGZldGNoQ29uZmlnKVxuICAgICAgICAgICAgICAgICAgICAudGhlbihzdGF0dXMpXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKGpzb24pXG4gICAgICAgICAgICAgICAgICAgIC50aGVuKChkYXRhKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtZXRhZGF0YS5kb2N1bWVudFJlcG9zaXRvcnlJZCA9ICFVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgPyBiYXNlLnZhbHVlLmRvY3VtZW50UmVwb3NpdG9yeUlkID8/IGJhc2UudmFsdWUucmVwb3NpdG9yeUlkIDogbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgIG1ldGFkYXRhLmRvY3VtZW50UmVwb3NpdG9yeUNhY2hlSWQgPSBkYXRhO1xuICAgICAgICAgICAgICAgICAgICAgICAgY2FjaGVJZC5jdXJyZW50ID0gZGF0YTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobWV0YWRhdGEpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBsZXQgZXZlbnQgPSBuZXcgRXZlbnQocHJvcHMuaGFuZGxlLCBwcm9wcy52aWV3SWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgey4uLm1ldGFkYXRhLCB1cmw6IHJlYWRlci5yZXN1bHR9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50TWFuYWdlci5maXJlRXZlbnQoRXZlbnRUeXBlLkRPQ1VNRU5UX0NBQ0hFRCwgZXZlbnQpO1xuICAgICAgICAgICAgICAgICAgICB9KS5jYXRjaChcbiAgICAgICAgICAgICAgICAgICAgKGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlLmNvZGUgPT09IDQwMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbGVhcigpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5nZXRBcHBsaWNhdGlvbkhpc3RvcnkoKS5wdXNoKCcvbG9naW4nKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lc3NhZ2UgPSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZVR5cGU6ICdFUlJPUicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVzc2FnZTogJ0FuIGVycm9yIGhhcyBhY2N1cnJlZCB3aGlsZSB1cGxvYWRpbmcgZmlsZSdcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBldmVudCA9IG5ldyBFdmVudChhcHBsaWNhdGlvbk1hbmFnZXIsIHByb3BzLnZpZXdJZCwgbWVzc2FnZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBldmVudE1hbmFnZXIuZmlyZUV2ZW50KEV2ZW50VHlwZS5NRVNTQUdFX0FSUklWRUQsIGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1ldGFkYXRhLnBheWxvYWQgPSByZWFkZXIucmVzdWx0O1xuICAgICAgICAgICAgYmFzZS5oYW5kbGVWYWx1ZUNoYW5nZShtZXRhZGF0YSk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVtb3ZlID0gKCkgPT4ge1xuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlc29sdmUsIHJlamVjdCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgYWNjZXNzVG9rZW4gPSBzZXNzaW9uU3RvcmFnZS5nZXRJdGVtKFwiYWNjZXNzVG9rZW5cIik7XG4gICAgICAgICAgICBjb25zdCBpZFRva2VuID0gc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbShcImlkVG9rZW5cIik7XG5cbiAgICAgICAgICAgIGxldCBmZXRjaENvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICBtZXRob2Q6ICdHRVQnLFxuICAgICAgICAgICAgICAgIGhlYWRlcnM6IHtcbiAgICAgICAgICAgICAgICAgICAgJ0FjY2VwdCc6ICdhcHBsaWNhdGlvbi9qc29uJyxcbiAgICAgICAgICAgICAgICAgICAgJ0F1dGhvcml6YXRpb24nOiAnQmVhcmVyICcgKyBhY2Nlc3NUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgJ2lkVG9rZW4nOiBpZFRva2VuLFxuICAgICAgICAgICAgICAgICAgICAndGVuYW50JzogYXBwbGljYXRpb25NYW5hZ2VyLmdldEFjdGl2ZVRlbmFudCgpXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgbGV0IHVybCA9IGxvY2F0aW9uICsgYXBwbGljYXRpb25NYW5hZ2VyLmdldENvbnRleHRSb290KCkgKyAnL2RvY3MvYXBpL3YxL21hbmFnZXIvdXBsb2FkL3JlbW92ZS8nICsgY2FjaGVJZC5jdXJyZW50O1xuICAgICAgICAgICAgdHJhY2tQcm9taXNlKFxuICAgICAgICAgICAgICAgIGZldGNoKGVuY29kZVVSSSh1cmwpLCBmZXRjaENvbmZpZylcbiAgICAgICAgICAgICAgICAgICAgLnRoZW4oc3RhdHVzKVxuICAgICAgICAgICAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKFxuICAgICAgICAgICAgICAgICAgICAoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGUuY29kZSA9PT0gNDAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmdldEFwcGxpY2F0aW9uSGlzdG9yeSgpLnB1c2goJy9sb2dpbicpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZWplY3QoZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgfTtcblxuICAgIC8vIElNQUdFLXN0eWxlIHByZXZpZXc6IGZldGNoIHRoZSBzdG9yZWQgaW1hZ2UgKGhlYWRlciBhdXRoKSBhbmQgaG9sZCBpdCBhcyBhbiBvYmplY3QgVVJMLlxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5zdHlsZSAhPT0gJ0lNQUdFJyB8fCAhVXRpbHMuaXNOdWxsKHZpZXdlckZpbGUpXG4gICAgICAgICAgICB8fCBVdGlscy5pc051bGwoYmFzZS52YWx1ZSkgfHwgVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQpKSB7XG4gICAgICAgICAgICBzZXRJbWFnZU9iamVjdFVybChudWxsKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBsZXQgYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgbGV0IGNyZWF0ZWQgPSBudWxsO1xuICAgICAgICBmZXRjaERvY3VtZW50T2JqZWN0VXJsKGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQpXG4gICAgICAgICAgICAudGhlbigob2JqZWN0VXJsKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKGFjdGl2ZSkge1xuICAgICAgICAgICAgICAgICAgICBjcmVhdGVkID0gb2JqZWN0VXJsO1xuICAgICAgICAgICAgICAgICAgICBzZXRJbWFnZU9iamVjdFVybChvYmplY3RVcmwpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIFVSTC5yZXZva2VPYmplY3RVUkwob2JqZWN0VXJsKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKCgpID0+IHt9KTtcbiAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZSA9IGZhbHNlO1xuICAgICAgICAgICAgaWYgKGNyZWF0ZWQpIHtcbiAgICAgICAgICAgICAgICBVUkwucmV2b2tlT2JqZWN0VVJMKGNyZWF0ZWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuICAgIH0sIFtwcm9wcy5zdHlsZSwgdmlld2VyRmlsZSwgYmFzZS52YWx1ZSA/IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQgOiBudWxsXSk7XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2UgPSAoKSA9PiBldmVudCA9PiB7XG4gICAgICAgIGxldCBmaWxlcyA9IGV2ZW50LnRhcmdldC5maWxlcztcbiAgICAgICAgdmFyIGFsbEZpbGVzID0gW107XG4gICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgZmlsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGxldCBmaWxlID0gZmlsZXNbaV07XG4gICAgICAgICAgICBsZXQgcmVhZGVyID0gbmV3IEZpbGVSZWFkZXIoKTtcbiAgICAgICAgICAgIHJlYWRlci5yZWFkQXNEYXRhVVJMKGZpbGUpO1xuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBsZXQgZmlsZUluZm8gPSB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogZmlsZS50eXBlLFxuICAgICAgICAgICAgICAgICAgICBzaXplOiBmaWxlLnNpemUsXG4gICAgICAgICAgICAgICAgICAgIGJhc2U2NDogcmVhZGVyLnJlc3VsdCxcbiAgICAgICAgICAgICAgICAgICAgZmlsZTogZmlsZVxuICAgICAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgICAgICBhbGxGaWxlcy5wdXNoKGZpbGVJbmZvKTtcbiAgICAgICAgICAgICAgICBpZiAoYWxsRmlsZXMubGVuZ3RoID09PSBmaWxlcy5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKG11bHRpcGxlID09PSB0cnVlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5vblVwbG9hZEhhbmRsZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMub25VcGxvYWRIYW5kbGVyKGFsbEZpbGVzKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLm9uVXBsb2FkSGFuZGxlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5vblVwbG9hZEhhbmRsZXIoYWxsRmlsZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgICAgICBzZXRMb2FkaW5nKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgc2V0Vmlld2VyRmlsZShhbGxGaWxlc1swXSk7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBzZXRGaWxlcyhhbGxGaWxlcyk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgcmVhZGVyLm9ubG9hZGVuZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5mb3JtKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZmlsZU1ldGFEYXRhID0ge307XG4gICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5uYW1lID0gYWxsRmlsZXNbMF0ubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnR5cGUgPSBhbGxGaWxlc1swXS50eXBlO1xuICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuc2l6ZSA9IGFsbEZpbGVzWzBdLnNpemU7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYoYmFzZS52YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLmlkID0gYmFzZS52YWx1ZS5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5kb2N1bWVudFJlcG9zaXRvcnlJZCA9IGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQ7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBpZiAoJ2Jhc2U2NCcgPT09IHBheWxvYWRTdG9yYWdlTW9kZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZmlsZU1ldGFEYXRhLnBheWxvYWQgPSBhbGxGaWxlc1swXS5iYXNlNjQ7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhbmRsZVZhbHVlQ2hhbmdlKGZpbGVNZXRhRGF0YSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlTWV0YURhdGEuY29ycmVsYXRpb25JZCA9IHByb3BzLmNvbmZpZy5pZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGVNZXRhRGF0YS5kb21haW4gPSBwcm9wcy52aWV3SWQ7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGxldCBmaWxlID0ge307XG4gICAgICAgICAgICAgICAgICAgICAgICBmaWxlLmNvcnJlbGF0aW9uSWQgPSBmaWxlTWV0YURhdGEuY29ycmVsYXRpb25JZDtcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpbGUuY29udGVudCA9IGFsbEZpbGVzWzBdLmZpbGU7XG5cbiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZSgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjYWNoZUlkLmN1cnJlbnQgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1cGxvYWQoZmlsZU1ldGFEYXRhLCBhbGxGaWxlc1swXS5maWxlLCByZWFkZXIpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXBsb2FkKGZpbGVNZXRhRGF0YSwgYWxsRmlsZXNbMF0uZmlsZSwgcmVhZGVyKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH07XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgICAgYWNjZXB0PXtwcm9wcy5zdHlsZSA9PT0gJ0lNQUdFJyA/IFwiaW1hZ2UvanBlZyxpbWFnZS9naWYsaW1hZ2UvcG5nLGltYWdlL3gtZXBzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogKHByb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5hY2NlcHQgfHwgXCJhcHBsaWNhdGlvbi9wZGZcIil9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5pbnB1dH1cbiAgICAgICAgICAgICAgICAgICAgaWQ9e2Bjb250YWluZWQtYnV0dG9uLWZpbGUtJHtwcm9wcy5jb25maWcuaWR9YH1cbiAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkPXtiYXNlLnJlcXVpcmVkfVxuICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZT17bXVsdGlwbGV9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVDaGFuZ2UoKX1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImZpbGVcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBwcm9wcy5zdHlsZSA9PT0gJ0lNQUdFJyA/XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEJ1dHRvbiB2YXJpYW50PVwiY29udGFpbmVkXCIgY29tcG9uZW50PVwic3BhblwiIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtiYXNlLmRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpZHRoLCBoZWlnaHQ6IGhlaWdodCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRSZXBlYXQ6ICduby1yZXBlYXQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZFNpemU6ICdjb3ZlcicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGwsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kSW1hZ2U6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIVV0aWxzLmlzTnVsbCh2aWV3ZXJGaWxlKSA/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHt2aWV3ZXJGaWxlLmJhc2U2NH0pYCA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICFVdGlscy5pc051bGwoaW1hZ2VPYmplY3RVcmwpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGB1cmwoJHtpbWFnZU9iamVjdFVybH0pYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYHVybCgke2RlZmF1bHRJbWFnZX0pYFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tjb2xvcjogXCIjZjQ0MzM2XCIsIHBhZGRpbmc6IFwiMCA4cHhcIn19PntiYXNlLmVycm9yTWVzc2FnZX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiA6XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBodG1sRm9yPXtgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWB9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7Lyo8QnV0dG9uIHZhcmlhbnQ9e3Byb3BzLmNvbmZpZy5hdHRyaWJ1dGVzPy5jb2xvciA9PT0gJ3NlY29uZGFyeScgfHwgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yID09PSAncHJpbWFyeScgPyAnY29udGFpbmVkJyA6ICd0ZXh0J31cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I9eyFVdGlscy5pc051bGwocHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yKSA/cHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmNvbG9yIDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXtVdGlscy5tZXJnZVN0eWxlcyh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfSwgcHJvcHMuY29uZmlnKX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+Ki99XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCdXR0b24gdmFyaWFudD1cInRleHRcIiBjb21wb25lbnQ9XCJzcGFuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ9e2Jhc2UuZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3Nlcy5idXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib3JkZXI6IGJhc2UuaGFzRXJyb3IgPyBcIjFweCBzb2xpZCAjZjQ0MzM2XCIgOiBudWxsLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29sb3I6IGJhc2UuaGFzRXJyb3IgPyBcIiNmNDQzMzZcIiA6IG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3RhcnRJY29uPXs8SWNvbiBpZD17J1VQTE9BRCd9Lz59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwcm9wcy5jb25maWcuYXR0cmlidXRlcz8ubGFiZWwgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHJvcHMuY29uZmlnLmF0dHJpYnV0ZXM/LmxhYmVsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CdXR0b24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLmhhc0Vycm9yID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7Y29sb3I6IFwiI2Y0NDMzNlwiLCBwYWRkaW5nOiBcIjAgOHB4XCJ9fT57YmFzZS5lcnJvck1lc3NhZ2V9PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhVXRpbHMuaXNOdWxsKGJhc2UudmFsdWUpID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBVdGlscy5pc051bGwoYmFzZS52YWx1ZS5pZCkgP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBiYXNlLnZhbHVlLm5hbWVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPXsnIyd9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eyhlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb3dubG9hZERvY3VtZW50KGJhc2UudmFsdWUuZG9jdW1lbnRSZXBvc2l0b3J5SWQgPz8gYmFzZS52YWx1ZS5yZXBvc2l0b3J5SWQsIGJhc2UudmFsdWUubmFtZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UudmFsdWUubmFtZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2E+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAhYmFzZS5kaXNhYmxlZCAmJiBudWxsYWJsZSAmJiBiYXNlLnZhbHVlID9cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz1cIm1lbnUtbGlzdC1ncm93XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJhc2UuaGFuZGxlVmFsdWVDaGFuZ2UobnVsbCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZChgY29udGFpbmVkLWJ1dHRvbi1maWxlLSR7cHJvcHMuY29uZmlnLmlkfWApLnZhbHVlID0gbnVsbDtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGNhY2hlSWQuY3VycmVudCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlbW92ZSgpLnRoZW4oKCkgPT4gY2FjaGVJZC5jdXJyZW50ID0gbnVsbCkuY2F0Y2goKGUpID0+IHt9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SWNvbiBpZD17J0RFTEVURSd9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDpcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG51bGxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBwcm9wcy5zaG93Vmlld2VyICYmICFtdWx0aXBsZSB8fCBzaG93ID9cbiAgICAgICAgICAgICAgICAgICAgPERvY3VtZW50Vmlld2VyQ29tcG9uZW50IGZpbGU9e3ZpZXdlckZpbGV9IG9uRG9jdW1lbnRMb2FkU3VjY2Vzcz17aGFuZGxlVmlld2VyTG9hZH0vPlxuICAgICAgICAgICAgICAgICAgICA6XG4gICAgICAgICAgICAgICAgICAgIFwiXCJcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBoYXNFcnJvciA/XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzTmFtZT17Y2xhc3Nlcy5lcnJvck1lc3NhZ2VEaXNwbGF5fT57ZXJyb3JNZXNzYWdlfTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgOlxuICAgICAgICAgICAgICAgICAgICBcIlwiXG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICk7XG59KTtcblxuZXhwb3J0IGNvbnN0IFVwbG9hZEZpZWxkID0gUmVhY3QubWVtbygocHJvcHMpID0+IHtcbiAgICBjb25zdCBbZmlsZSwgc2V0RmlsZV0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBjbGVhclRyaWdnZXI9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8QmFzZUZpZWxkIHsuLi5wcm9wc30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9IHZhbHVlUGFyc2VyPXsodmFsdWUsIGluYm91bmQpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB2YWx1ZTtcbiAgICAgICAgfX0gdmFsdWVDaGFuZ2VDYWxsYmFjaz17KHZhbHVlKSA9PiB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlci5jdXJyZW50ID0gIWNsZWFyVHJpZ2dlci5jdXJyZW50XG4gICAgICAgICAgICB9XG4gICAgICAgIH19PlxuICAgICAgICAgICAge2Jhc2UgPT5cbiAgICAgICAgICAgICAgICA8RG9jdW1lbnRVcGxvYWRcbiAgICAgICAgICAgICAgICAgICAgYmFzZT17YmFzZX1cbiAgICAgICAgICAgICAgICAgICAgaW5pdGlhbEZpbGU9e2ZpbGV9XG4gICAgICAgICAgICAgICAgICAgIGNsZWFyVHJpZ2dlcj17Y2xlYXJUcmlnZ2VyLmN1cnJlbnR9XG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9Eb2N1bWVudFVwbG9hZD5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9CYXNlRmllbGQ+XG4gICAgKTtcbn0pO1xuXG5leHBvcnQgZGVmYXVsdCBVcGxvYWRGaWVsZDtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUMsSUFBQUEsTUFBQSxHQUFBQyxzQkFBQSxDQUFBQyxPQUFBO0FBQ0QsSUFBQUMsT0FBQSxHQUFBRixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUUsVUFBQSxHQUFBRixPQUFBO0FBQ0EsSUFBQUcsT0FBQSxHQUFBSCxPQUFBO0FBQ0EsSUFBQUksZUFBQSxHQUFBTCxzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUssTUFBQSxHQUFBTixzQkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQU0sbUJBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFPLFdBQUEsR0FBQVIsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFRLEtBQUEsR0FBQVQsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFTLG9CQUFBLEdBQUFULE9BQUE7QUFDQSxJQUFBVSxNQUFBLEdBQUFYLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBVyxXQUFBLEdBQUFaLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBWSxVQUFBLEdBQUFiLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYSxRQUFBLEdBQUFkLHNCQUFBLENBQUFDLE9BQUE7QUFDQSxJQUFBYyxpQkFBQSxHQUFBZCxPQUFBO0FBQWdGLFNBQUFELHVCQUFBZ0IsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFNBQUEsV0FBQUEsUUFBQSxHQUFBQyxNQUFBLENBQUFDLE1BQUEsR0FBQUQsTUFBQSxDQUFBQyxNQUFBLENBQUFDLElBQUEsZUFBQUMsQ0FBQSxhQUFBUCxDQUFBLE1BQUFBLENBQUEsR0FBQVEsU0FBQSxDQUFBQyxNQUFBLEVBQUFULENBQUEsVUFBQVUsQ0FBQSxHQUFBRixTQUFBLENBQUFSLENBQUEsWUFBQVcsQ0FBQSxJQUFBRCxDQUFBLE9BQUFFLGNBQUEsQ0FBQUMsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsTUFBQUosQ0FBQSxDQUFBSSxDQUFBLElBQUFELENBQUEsQ0FBQUMsQ0FBQSxhQUFBSixDQUFBLEtBQUFKLFFBQUEsQ0FBQVcsS0FBQSxPQUFBTixTQUFBO0FBQUEsU0FBQU8sUUFBQWYsQ0FBQSxFQUFBVyxDQUFBLFFBQUFELENBQUEsR0FBQU4sTUFBQSxDQUFBWSxJQUFBLENBQUFoQixDQUFBLE9BQUFJLE1BQUEsQ0FBQWEscUJBQUEsUUFBQUMsQ0FBQSxHQUFBZCxNQUFBLENBQUFhLHFCQUFBLENBQUFqQixDQUFBLEdBQUFXLENBQUEsS0FBQU8sQ0FBQSxHQUFBQSxDQUFBLENBQUFDLE1BQUEsV0FBQVIsQ0FBQSxXQUFBUCxNQUFBLENBQUFnQix3QkFBQSxDQUFBcEIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFVLFVBQUEsT0FBQVgsQ0FBQSxDQUFBWSxJQUFBLENBQUFSLEtBQUEsQ0FBQUosQ0FBQSxFQUFBUSxDQUFBLFlBQUFSLENBQUE7QUFBQSxTQUFBYSxjQUFBdkIsQ0FBQSxhQUFBVyxDQUFBLE1BQUFBLENBQUEsR0FBQUgsU0FBQSxDQUFBQyxNQUFBLEVBQUFFLENBQUEsVUFBQUQsQ0FBQSxXQUFBRixTQUFBLENBQUFHLENBQUEsSUFBQUgsU0FBQSxDQUFBRyxDQUFBLFFBQUFBLENBQUEsT0FBQUksT0FBQSxDQUFBWCxNQUFBLENBQUFNLENBQUEsT0FBQWMsT0FBQSxXQUFBYixDQUFBLElBQUFjLGVBQUEsQ0FBQXpCLENBQUEsRUFBQVcsQ0FBQSxFQUFBRCxDQUFBLENBQUFDLENBQUEsU0FBQVAsTUFBQSxDQUFBc0IseUJBQUEsR0FBQXRCLE1BQUEsQ0FBQXVCLGdCQUFBLENBQUEzQixDQUFBLEVBQUFJLE1BQUEsQ0FBQXNCLHlCQUFBLENBQUFoQixDQUFBLEtBQUFLLE9BQUEsQ0FBQVgsTUFBQSxDQUFBTSxDQUFBLEdBQUFjLE9BQUEsV0FBQWIsQ0FBQSxJQUFBUCxNQUFBLENBQUF3QixjQUFBLENBQUE1QixDQUFBLEVBQUFXLENBQUEsRUFBQVAsTUFBQSxDQUFBZ0Isd0JBQUEsQ0FBQVYsQ0FBQSxFQUFBQyxDQUFBLGlCQUFBWCxDQUFBO0FBQUEsU0FBQXlCLGdCQUFBekIsQ0FBQSxFQUFBVyxDQUFBLEVBQUFELENBQUEsWUFBQUMsQ0FBQSxHQUFBa0IsY0FBQSxDQUFBbEIsQ0FBQSxNQUFBWCxDQUFBLEdBQUFJLE1BQUEsQ0FBQXdCLGNBQUEsQ0FBQTVCLENBQUEsRUFBQVcsQ0FBQSxJQUFBbUIsS0FBQSxFQUFBcEIsQ0FBQSxFQUFBVyxVQUFBLE1BQUFVLFlBQUEsTUFBQUMsUUFBQSxVQUFBaEMsQ0FBQSxDQUFBVyxDQUFBLElBQUFELENBQUEsRUFBQVYsQ0FBQTtBQUFBLFNBQUE2QixlQUFBbkIsQ0FBQSxRQUFBdUIsQ0FBQSxHQUFBQyxZQUFBLENBQUF4QixDQUFBLHVDQUFBdUIsQ0FBQSxHQUFBQSxDQUFBLEdBQUFBLENBQUE7QUFBQSxTQUFBQyxhQUFBeEIsQ0FBQSxFQUFBQyxDQUFBLDJCQUFBRCxDQUFBLEtBQUFBLENBQUEsU0FBQUEsQ0FBQSxNQUFBVixDQUFBLEdBQUFVLENBQUEsQ0FBQXlCLE1BQUEsQ0FBQUMsV0FBQSxrQkFBQXBDLENBQUEsUUFBQWlDLENBQUEsR0FBQWpDLENBQUEsQ0FBQWEsSUFBQSxDQUFBSCxDQUFBLEVBQUFDLENBQUEsdUNBQUFzQixDQUFBLFNBQUFBLENBQUEsWUFBQUksU0FBQSx5RUFBQTFCLENBQUEsR0FBQTJCLE1BQUEsR0FBQUMsTUFBQSxFQUFBN0IsQ0FBQTtBQUVoRixNQUFNOEIsU0FBUyxHQUFHLElBQUFDLGtCQUFVLEVBQUNDLEtBQUssS0FBSztFQUNuQ0MsTUFBTSxFQUFFO0lBQ0pDLE1BQU0sRUFBRUYsS0FBSyxDQUFDRyxPQUFPLENBQUMsQ0FBQztFQUMzQixDQUFDO0VBQ0RDLEtBQUssRUFBRTtJQUNIQyxPQUFPLEVBQUU7RUFDYixDQUFDO0VBQ0RDLG1CQUFtQixFQUFFO0lBQ2pCQyxLQUFLLEVBQUU7RUFDWDtBQUNKLENBQUMsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsTUFBTSxHQUFJQyxRQUFRLElBQUs7RUFDekIsSUFBSUEsUUFBUSxDQUFDQyxFQUFFLEVBQUU7SUFDYixPQUFPQyxPQUFPLENBQUNDLE9BQU8sQ0FBQ0gsUUFBUSxDQUFDO0VBQ3BDLENBQUMsTUFBTTtJQUNILE9BQU9FLE9BQU8sQ0FBQ0UsTUFBTSxDQUFDO01BQUNDLElBQUksRUFBRUwsUUFBUSxDQUFDRCxNQUFNO01BQUVPLE9BQU8sRUFBRU4sUUFBUSxDQUFDTztJQUFVLENBQUMsQ0FBQztFQUNoRjtBQUNKLENBQUM7QUFFRCxNQUFNQyxJQUFJLEdBQUlSLFFBQVEsSUFBSztFQUN2QixPQUFPQSxRQUFRLENBQUNTLElBQUksQ0FBQyxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNQyxRQUFRLEdBQUdDLE1BQU0sQ0FBQ0QsUUFBUSxDQUFDRSxRQUFRLEdBQUcsSUFBSSxHQUFHRCxNQUFNLENBQUNELFFBQVEsQ0FBQ0csUUFBUTtBQUNwRSxNQUFNQyxjQUFjLEdBQUFDLE9BQUEsQ0FBQUQsY0FBQSxnQkFBR0UsY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUFBLElBQUFDLHNCQUFBLEVBQUFDLHFCQUFBLEVBQUFDLHNCQUFBLEVBQUFDLHNCQUFBO0VBQ2hELE1BQU0sQ0FBQ0MsVUFBVSxFQUFFQyxhQUFhLENBQUMsR0FBR1IsY0FBSyxDQUFDUyxRQUFRLENBQUMsQ0FBQ0MsY0FBSyxDQUFDQyxNQUFNLENBQUNULEtBQUssQ0FBQ1UsV0FBVyxDQUFDLEdBQUdWLEtBQUssQ0FBQ1UsV0FBVyxHQUFHLElBQUksQ0FBQztFQUMvRyxNQUFNLENBQUNDLGtCQUFrQixFQUFFQyxxQkFBcUIsQ0FBQyxHQUFHZCxjQUFLLENBQUNTLFFBQVEsQ0FBQ1AsS0FBSyxDQUFDYSxNQUFNLENBQUNGLGtCQUFrQixJQUFJLFFBQVEsQ0FBQztFQUMvRyxNQUFNLENBQUNHLEtBQUssRUFBRUMsUUFBUSxDQUFDLEdBQUdqQixjQUFLLENBQUNTLFFBQVEsQ0FBQyxDQUFDQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDVSxXQUFXLENBQUMsR0FBRyxDQUFDVixLQUFLLENBQUNVLFdBQVcsQ0FBQyxHQUFHLElBQUksQ0FBQztFQUN2RyxNQUFNLENBQUNNLE9BQU8sRUFBRUMsVUFBVSxDQUFDLEdBQUduQixjQUFLLENBQUNTLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDbEQsTUFBTSxDQUFDVyxRQUFRLENBQUMsR0FBR3BCLGNBQUssQ0FBQ1MsUUFBUSxDQUFDQyxjQUFLLENBQUNDLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDYSxNQUFNLENBQUNNLFNBQVMsQ0FBQyxJQUFJbkIsS0FBSyxDQUFDYSxNQUFNLENBQUNNLFNBQVMsQ0FBQ0QsUUFBUSxLQUFLLElBQUksQ0FBQztFQUNuSCxNQUFNLENBQUNFLFFBQVEsQ0FBQyxHQUFHdEIsY0FBSyxDQUFDUyxRQUFRLENBQUNQLEtBQUssQ0FBQ29CLFFBQVEsS0FBSyxJQUFJLENBQUM7RUFDMUQsTUFBTSxDQUFDQyxJQUFJLEVBQUVDLE9BQU8sQ0FBQyxHQUFHeEIsY0FBSyxDQUFDUyxRQUFRLENBQUMsS0FBSyxDQUFDO0VBQzdDLE1BQU1nQixPQUFPLEdBQUdwRCxTQUFTLENBQUMsQ0FBQztFQUMzQixNQUFNLENBQUNxRCxRQUFRLEVBQUVDLFdBQVcsQ0FBQyxHQUFHM0IsY0FBSyxDQUFDUyxRQUFRLENBQUMsSUFBSSxDQUFDO0VBQ3BELE1BQU1tQixLQUFLLEdBQUdsQixjQUFLLENBQUNtQixxQkFBcUIsQ0FBQzNCLEtBQUssQ0FBQ2EsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLENBQUM7RUFDekUsTUFBTWUsTUFBTSxHQUFHcEIsY0FBSyxDQUFDbUIscUJBQXFCLENBQUMzQixLQUFLLENBQUNhLE1BQU0sRUFBRSxRQUFRLEVBQUUsT0FBTyxDQUFDO0VBQzNFLE1BQU0sQ0FBQ2dCLFlBQVksRUFBRUMsZUFBZSxDQUFDLEdBQUdoQyxjQUFLLENBQUNTLFFBQVEsQ0FBQyxFQUFFLENBQUM7RUFDMUQsTUFBTSxDQUFDd0IsY0FBYyxFQUFFQyxpQkFBaUIsQ0FBQyxHQUFHbEMsY0FBSyxDQUFDUyxRQUFRLENBQUMsSUFBSSxDQUFDO0VBQ2hFLE1BQU0wQixPQUFPLEdBQUduQyxjQUFLLENBQUNvQyxNQUFNLENBQUMsQ0FBQzFCLGNBQUssQ0FBQ0MsTUFBTSxDQUFDVCxLQUFLLENBQUNtQyxJQUFJLENBQUMxRSxLQUFLLENBQUMsR0FBR3VDLEtBQUssQ0FBQ21DLElBQUksQ0FBQzFFLEtBQUssQ0FBQzJFLHlCQUF5QixHQUFHLElBQUksQ0FBQztFQUNqSCxNQUFNRCxJQUFJLEdBQUduQyxLQUFLLENBQUNtQyxJQUFJO0VBRXZCckMsY0FBSyxDQUFDdUMsU0FBUyxDQUFDLE1BQU07SUFDbEIsT0FBTyxNQUFNO01BQ1QsSUFBR0osT0FBTyxDQUFDSyxPQUFPLEVBQUU7UUFDaEI7TUFBQTtJQUVSLENBQUM7RUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU54QyxjQUFLLENBQUN1QyxTQUFTLENBQUMsTUFBTTtJQUNsQi9CLGFBQWEsQ0FBQ04sS0FBSyxDQUFDVSxXQUFXLENBQUM7RUFDcEMsQ0FBQyxFQUFFLENBQUNWLEtBQUssQ0FBQ1UsV0FBVyxDQUFDLENBQUM7RUFFdkIsTUFBTTZCLGdCQUFnQixHQUFJQyxRQUFRLElBQUs7SUFDbkN2QixVQUFVLENBQUMsS0FBSyxDQUFDO0VBQ3JCLENBQUM7RUFFRCxNQUFNd0IsTUFBTSxHQUFHQSxDQUFDQyxRQUFRLEVBQUVDLElBQUksRUFBRUMsTUFBTSxLQUFLO0lBQ3ZDLElBQUlDLFNBQVMsR0FBR3JDLGNBQUssQ0FBQ21CLHFCQUFxQixDQUFDM0IsS0FBSyxDQUFDYSxNQUFNLEVBQUUsV0FBVyxFQUFFLElBQUksQ0FBQztJQUM1RSxJQUFHZ0MsU0FBUyxLQUFLLElBQUksRUFBRTtNQUNuQkEsU0FBUyxHQUFHQywyQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsR0FBRyxrQ0FBa0M7SUFDeEY7SUFFQSxJQUFJcEMsa0JBQWtCLEdBQUdYLEtBQUssQ0FBQ2EsTUFBTSxDQUFDRixrQkFBa0I7SUFDeEQsSUFBR0Esa0JBQWtCLEtBQUssTUFBTSxFQUFDO01BQzdCLE1BQU1xQyxXQUFXLEdBQUdDLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDLGFBQWEsQ0FBQztNQUN6RCxNQUFNQyxPQUFPLEdBQUdGLGNBQWMsQ0FBQ0MsT0FBTyxDQUFDLFNBQVMsQ0FBQztNQUNqRCxJQUFJRSxJQUFJLEdBQUcsSUFBSUMsUUFBUSxDQUFDLENBQUM7TUFDekJYLFFBQVEsQ0FBQ1ksYUFBYSxHQUFHdEQsS0FBSyxDQUFDdUQsTUFBTSxHQUFHLEdBQUcsR0FBR3ZELEtBQUssQ0FBQ2EsTUFBTSxDQUFDMkMsRUFBRSxJQUFJeEQsS0FBSyxDQUFDYSxNQUFNLENBQUM0QyxLQUFLLEdBQUcsR0FBRyxHQUFHekQsS0FBSyxDQUFDYSxNQUFNLENBQUM0QyxLQUFLLEdBQUcsRUFBRSxDQUFDO01BQ3BITCxJQUFJLENBQUNNLE1BQU0sQ0FBQyxVQUFVLEVBQUVDLElBQUksQ0FBQ0MsU0FBUyxDQUFDbEIsUUFBUSxDQUFDLENBQUM7TUFDakRVLElBQUksQ0FBQ00sTUFBTSxDQUFDLE1BQU0sRUFBRWYsSUFBSSxDQUFDO01BRXpCLElBQUlrQixXQUFXLEdBQUc7UUFDZEMsTUFBTSxFQUFFLE1BQU07UUFDZEMsT0FBTyxFQUFFO1VBQ0wsUUFBUSxFQUFFLGtCQUFrQjtVQUM1QixlQUFlLEVBQUUsU0FBUyxHQUFHZixXQUFXO1VBQ3hDLFNBQVMsRUFBRUcsT0FBTztVQUNsQixRQUFRLEVBQUVMLDJCQUFrQixDQUFDa0IsZUFBZSxDQUFDO1FBQ2pELENBQUM7UUFDREMsSUFBSSxFQUFFYjtNQUNWLENBQUM7TUFFRCxJQUFJYyxHQUFHLEdBQUcxRSxRQUFRLEdBQUdxRCxTQUFTO01BQzlCLElBQUFzQixpQ0FBWSxFQUNSQyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0gsR0FBRyxDQUFDLEVBQUVMLFdBQVcsQ0FBQyxDQUM3QlMsSUFBSSxDQUFDekYsTUFBTSxDQUFDLENBQ1p5RixJQUFJLENBQUNoRixJQUFJLENBQUMsQ0FDVmdGLElBQUksQ0FBRWxCLElBQUksSUFBSztRQUFBLElBQUFtQixxQkFBQTtRQUNaN0IsUUFBUSxDQUFDOEIsb0JBQW9CLEdBQUcsQ0FBQ2hFLGNBQUssQ0FBQ0MsTUFBTSxDQUFDMEIsSUFBSSxDQUFDMUUsS0FBSyxDQUFDLElBQUE4RyxxQkFBQSxHQUFHcEMsSUFBSSxDQUFDMUUsS0FBSyxDQUFDK0csb0JBQW9CLGNBQUFELHFCQUFBLGNBQUFBLHFCQUFBLEdBQUlwQyxJQUFJLENBQUMxRSxLQUFLLENBQUNnSCxZQUFZLEdBQUcsSUFBSTtRQUM3SC9CLFFBQVEsQ0FBQ04seUJBQXlCLEdBQUdnQixJQUFJO1FBQ3pDbkIsT0FBTyxDQUFDSyxPQUFPLEdBQUdjLElBQUk7UUFDdEJqQixJQUFJLENBQUN1QyxpQkFBaUIsQ0FBQ2hDLFFBQVEsQ0FBQztRQUVoQyxJQUFJaUMsS0FBSyxHQUFHLElBQUlDLGNBQUssQ0FBQzVFLEtBQUssQ0FBQzZFLE1BQU0sRUFBRTdFLEtBQUssQ0FBQ3VELE1BQU0sRUFBQXJHLGFBQUEsQ0FBQUEsYUFBQSxLQUN4Q3dGLFFBQVE7VUFBRXdCLEdBQUcsRUFBRXRCLE1BQU0sQ0FBQ2tDO1FBQU0sRUFBQyxDQUFDO1FBQ3RDQyxtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNDLGVBQWUsRUFBRVAsS0FBSyxDQUFDO01BQzVELENBQUMsQ0FBQyxDQUFDUSxLQUFLLENBQ1B4SixDQUFDLElBQUs7UUFDSCxJQUFJQSxDQUFDLENBQUN3RCxJQUFJLEtBQUssR0FBRyxFQUFFO1VBQ2hCMkQsMkJBQWtCLENBQUNzQyxLQUFLLENBQUMsQ0FBQztVQUMxQnRDLDJCQUFrQixDQUFDdUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDcEksSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUM3RDtRQUVBLElBQUltQyxPQUFPLEdBQUc7VUFDVmtHLFdBQVcsRUFBRSxPQUFPO1VBQ3BCbEcsT0FBTyxFQUFFO1FBQ2IsQ0FBQztRQUVELElBQUl1RixLQUFLLEdBQUcsSUFBSUMsY0FBSyxDQUFDOUIsMkJBQWtCLEVBQUU5QyxLQUFLLENBQUN1RCxNQUFNLEVBQUVuRSxPQUFPLENBQUM7UUFDaEUyRixtQkFBWSxDQUFDQyxTQUFTLENBQUNDLGtCQUFTLENBQUNNLGVBQWUsRUFBRVosS0FBSyxDQUFDO01BQzVELENBQUMsQ0FDVCxDQUFDO0lBQ0wsQ0FBQyxNQUFNO01BQ0hqQyxRQUFRLENBQUM4QyxPQUFPLEdBQUc1QyxNQUFNLENBQUNrQyxNQUFNO01BQ2hDM0MsSUFBSSxDQUFDdUMsaUJBQWlCLENBQUNoQyxRQUFRLENBQUM7SUFDcEM7RUFDSixDQUFDO0VBRUQsTUFBTStDLE1BQU0sR0FBR0EsQ0FBQSxLQUFNO0lBQ2pCLE9BQU8sSUFBSXpHLE9BQU8sQ0FBQyxDQUFDQyxPQUFPLEVBQUVDLE1BQU0sS0FBSztNQUNwQyxNQUFNOEQsV0FBVyxHQUFHQyxjQUFjLENBQUNDLE9BQU8sQ0FBQyxhQUFhLENBQUM7TUFDekQsTUFBTUMsT0FBTyxHQUFHRixjQUFjLENBQUNDLE9BQU8sQ0FBQyxTQUFTLENBQUM7TUFFakQsSUFBSVcsV0FBVyxHQUFHO1FBQ2RDLE1BQU0sRUFBRSxLQUFLO1FBQ2JDLE9BQU8sRUFBRTtVQUNMLFFBQVEsRUFBRSxrQkFBa0I7VUFDNUIsZUFBZSxFQUFFLFNBQVMsR0FBR2YsV0FBVztVQUN4QyxTQUFTLEVBQUVHLE9BQU87VUFDbEIsUUFBUSxFQUFFTCwyQkFBa0IsQ0FBQ2tCLGVBQWUsQ0FBQztRQUNqRDtNQUNKLENBQUM7TUFFRCxJQUFJRSxHQUFHLEdBQUcxRSxRQUFRLEdBQUdzRCwyQkFBa0IsQ0FBQ0MsY0FBYyxDQUFDLENBQUMsR0FBRyxxQ0FBcUMsR0FBR2QsT0FBTyxDQUFDSyxPQUFPO01BQ2xILElBQUE2QixpQ0FBWSxFQUNSQyxLQUFLLENBQUNDLFNBQVMsQ0FBQ0gsR0FBRyxDQUFDLEVBQUVMLFdBQVcsQ0FBQyxDQUM3QlMsSUFBSSxDQUFDekYsTUFBTSxDQUFDLENBQ1p5RixJQUFJLENBQUMsTUFBTTtRQUNSckYsT0FBTyxDQUFDLENBQUM7TUFDYixDQUFDLENBQUMsQ0FBQ2tHLEtBQUssQ0FDUHhKLENBQUMsSUFBSztRQUNILElBQUlBLENBQUMsQ0FBQ3dELElBQUksS0FBSyxHQUFHLEVBQUU7VUFDaEIyRCwyQkFBa0IsQ0FBQ3NDLEtBQUssQ0FBQyxDQUFDO1VBQzFCdEMsMkJBQWtCLENBQUN1QyxxQkFBcUIsQ0FBQyxDQUFDLENBQUNwSSxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQzdELENBQUMsTUFBTTtVQUNIaUMsTUFBTSxDQUFDdkQsQ0FBQyxDQUFDO1FBQ2I7TUFDSixDQUFDLENBQ1QsQ0FBQztJQUNMLENBQUMsQ0FBQztFQUNOLENBQUM7O0VBRUQ7RUFDQW1FLGNBQUssQ0FBQ3VDLFNBQVMsQ0FBQyxNQUFNO0lBQUEsSUFBQXFELHNCQUFBLEVBQUFDLHNCQUFBO0lBQ2xCLElBQUkzRixLQUFLLENBQUM0RixLQUFLLEtBQUssT0FBTyxJQUFJLENBQUNwRixjQUFLLENBQUNDLE1BQU0sQ0FBQ0osVUFBVSxDQUFDLElBQ2pERyxjQUFLLENBQUNDLE1BQU0sQ0FBQzBCLElBQUksQ0FBQzFFLEtBQUssQ0FBQyxJQUFJK0MsY0FBSyxDQUFDQyxNQUFNLEVBQUFpRixzQkFBQSxHQUFDdkQsSUFBSSxDQUFDMUUsS0FBSyxDQUFDK0csb0JBQW9CLGNBQUFrQixzQkFBQSxjQUFBQSxzQkFBQSxHQUFJdkQsSUFBSSxDQUFDMUUsS0FBSyxDQUFDZ0gsWUFBWSxDQUFDLEVBQUU7TUFDekd6QyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7TUFDdkI7SUFDSjtJQUNBLElBQUk2RCxNQUFNLEdBQUcsSUFBSTtJQUNqQixJQUFJQyxPQUFPLEdBQUcsSUFBSTtJQUNsQixJQUFBQyx3Q0FBc0IsR0FBQUosc0JBQUEsR0FBQ3hELElBQUksQ0FBQzFFLEtBQUssQ0FBQytHLG9CQUFvQixjQUFBbUIsc0JBQUEsY0FBQUEsc0JBQUEsR0FBSXhELElBQUksQ0FBQzFFLEtBQUssQ0FBQ2dILFlBQVksQ0FBQyxDQUM3RUgsSUFBSSxDQUFFMEIsU0FBUyxJQUFLO01BQ2pCLElBQUlILE1BQU0sRUFBRTtRQUNSQyxPQUFPLEdBQUdFLFNBQVM7UUFDbkJoRSxpQkFBaUIsQ0FBQ2dFLFNBQVMsQ0FBQztNQUNoQyxDQUFDLE1BQU07UUFDSEMsR0FBRyxDQUFDQyxlQUFlLENBQUNGLFNBQVMsQ0FBQztNQUNsQztJQUNKLENBQUMsQ0FBQyxDQUNEYixLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNwQixPQUFPLE1BQU07TUFDVFUsTUFBTSxHQUFHLEtBQUs7TUFDZCxJQUFJQyxPQUFPLEVBQUU7UUFDVEcsR0FBRyxDQUFDQyxlQUFlLENBQUNKLE9BQU8sQ0FBQztNQUNoQztJQUNKLENBQUM7RUFDTCxDQUFDLEVBQUUsQ0FBQzlGLEtBQUssQ0FBQzRGLEtBQUssRUFBRXZGLFVBQVUsRUFBRThCLElBQUksQ0FBQzFFLEtBQUssSUFBQXdDLHNCQUFBLEdBQUdrQyxJQUFJLENBQUMxRSxLQUFLLENBQUMrRyxvQkFBb0IsY0FBQXZFLHNCQUFBLGNBQUFBLHNCQUFBLEdBQUlrQyxJQUFJLENBQUMxRSxLQUFLLENBQUNnSCxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUM7RUFFN0csTUFBTTBCLFlBQVksR0FBR0EsQ0FBQSxLQUFNeEIsS0FBSyxJQUFJO0lBQ2hDLElBQUk3RCxLQUFLLEdBQUc2RCxLQUFLLENBQUN5QixNQUFNLENBQUN0RixLQUFLO0lBQzlCLElBQUl1RixRQUFRLEdBQUcsRUFBRTtJQUNqQixLQUFLLElBQUl6SSxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdrRCxLQUFLLENBQUMxRSxNQUFNLEVBQUV3QixDQUFDLEVBQUUsRUFBRTtNQUNuQyxJQUFJK0UsSUFBSSxHQUFHN0IsS0FBSyxDQUFDbEQsQ0FBQyxDQUFDO01BQ25CLElBQUlnRixNQUFNLEdBQUcsSUFBSTBELFVBQVUsQ0FBQyxDQUFDO01BQzdCMUQsTUFBTSxDQUFDMkQsYUFBYSxDQUFDNUQsSUFBSSxDQUFDO01BQzFCQyxNQUFNLENBQUM0RCxNQUFNLEdBQUcsTUFBTTtRQUNsQixJQUFJQyxRQUFRLEdBQUc7VUFDWEMsSUFBSSxFQUFFL0QsSUFBSSxDQUFDK0QsSUFBSTtVQUNmQyxJQUFJLEVBQUVoRSxJQUFJLENBQUNnRSxJQUFJO1VBQ2ZDLElBQUksRUFBRWpFLElBQUksQ0FBQ2lFLElBQUk7VUFDZkMsTUFBTSxFQUFFakUsTUFBTSxDQUFDa0MsTUFBTTtVQUNyQm5DLElBQUksRUFBRUE7UUFDVixDQUFDO1FBRUQwRCxRQUFRLENBQUNwSixJQUFJLENBQUN3SixRQUFRLENBQUM7UUFDdkIsSUFBSUosUUFBUSxDQUFDakssTUFBTSxLQUFLMEUsS0FBSyxDQUFDMUUsTUFBTSxFQUFFO1VBQ2xDLElBQUlnRixRQUFRLEtBQUssSUFBSSxFQUFFO1lBQ25CLElBQUksQ0FBQ1osY0FBSyxDQUFDQyxNQUFNLENBQUNULEtBQUssQ0FBQzhHLGVBQWUsQ0FBQyxFQUFFO2NBQ3RDOUcsS0FBSyxDQUFDOEcsZUFBZSxDQUFDVCxRQUFRLENBQUM7WUFDbkM7VUFDSixDQUFDLE1BQU07WUFDSCxJQUFJLENBQUM3RixjQUFLLENBQUNDLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDOEcsZUFBZSxDQUFDLEVBQUU7Y0FDdEM5RyxLQUFLLENBQUM4RyxlQUFlLENBQUNULFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN0QztZQUVBcEYsVUFBVSxDQUFDLElBQUksQ0FBQztZQUNoQlgsYUFBYSxDQUFDK0YsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1VBQzlCO1VBRUF0RixRQUFRLENBQUNzRixRQUFRLENBQUM7UUFDdEI7TUFDSixDQUFDO01BRUR6RCxNQUFNLENBQUNtRSxTQUFTLEdBQUcsTUFBTTtRQUNyQixJQUFJLENBQUN2RyxjQUFLLENBQUNDLE1BQU0sQ0FBQ1QsS0FBSyxDQUFDZ0gsSUFBSSxDQUFDLEVBQUU7VUFDM0IsSUFBSUMsWUFBWSxHQUFHLENBQUMsQ0FBQztVQUNyQkEsWUFBWSxDQUFDUCxJQUFJLEdBQUdMLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ0ssSUFBSTtVQUNwQ08sWUFBWSxDQUFDTixJQUFJLEdBQUdOLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ00sSUFBSTtVQUNwQ00sWUFBWSxDQUFDTCxJQUFJLEdBQUdQLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQ08sSUFBSTtVQUVwQyxJQUFHekUsSUFBSSxDQUFDMUUsS0FBSyxFQUFFO1lBQUEsSUFBQXlKLHNCQUFBO1lBQ1hELFlBQVksQ0FBQ3pELEVBQUUsR0FBR3JCLElBQUksQ0FBQzFFLEtBQUssQ0FBQytGLEVBQUU7WUFDL0J5RCxZQUFZLENBQUN6QyxvQkFBb0IsSUFBQTBDLHNCQUFBLEdBQUcvRSxJQUFJLENBQUMxRSxLQUFLLENBQUMrRyxvQkFBb0IsY0FBQTBDLHNCQUFBLGNBQUFBLHNCQUFBLEdBQUkvRSxJQUFJLENBQUMxRSxLQUFLLENBQUNnSCxZQUFZO1VBQ2xHO1VBRUEsSUFBSSxRQUFRLEtBQUs5RCxrQkFBa0IsRUFBRTtZQUNqQ3NHLFlBQVksQ0FBQ3pCLE9BQU8sR0FBR2EsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDUSxNQUFNO1lBQ3pDMUUsSUFBSSxDQUFDdUMsaUJBQWlCLENBQUN1QyxZQUFZLENBQUM7VUFDeEMsQ0FBQyxNQUFNO1lBQ0hBLFlBQVksQ0FBQzNELGFBQWEsR0FBR3RELEtBQUssQ0FBQ2EsTUFBTSxDQUFDMkMsRUFBRTtZQUM1Q3lELFlBQVksQ0FBQ0UsTUFBTSxHQUFHbkgsS0FBSyxDQUFDdUQsTUFBTTtZQUVsQyxJQUFJWixJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2JBLElBQUksQ0FBQ1csYUFBYSxHQUFHMkQsWUFBWSxDQUFDM0QsYUFBYTtZQUMvQ1gsSUFBSSxDQUFDeUUsT0FBTyxHQUFHZixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMxRCxJQUFJO1lBRS9CLElBQUdWLE9BQU8sQ0FBQ0ssT0FBTyxFQUFFO2NBQ2hCbUQsTUFBTSxDQUFDLENBQUMsQ0FBQ25CLElBQUksQ0FBQyxNQUFNO2dCQUNoQnJDLE9BQU8sQ0FBQ0ssT0FBTyxHQUFHLElBQUk7Z0JBQ3RCRyxNQUFNLENBQUN3RSxZQUFZLEVBQUVaLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQzFELElBQUksRUFBRUMsTUFBTSxDQUFDO2NBQ2xELENBQUMsQ0FBQyxDQUFDdUMsS0FBSyxDQUFFeEosQ0FBQyxJQUFLLENBQ2hCLENBQUMsQ0FBQztZQUNOLENBQUMsTUFBTTtjQUNIOEcsTUFBTSxDQUFDd0UsWUFBWSxFQUFFWixRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMxRCxJQUFJLEVBQUVDLE1BQU0sQ0FBQztZQUNsRDtVQUNKO1FBQ0o7TUFDSixDQUFDO0lBQ0w7RUFDSixDQUFDO0VBRUQsb0JBQ0lsSSxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLDJCQUNJM00sTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSwyQkFDSTNNLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXdMLGFBQUE7SUFDSUMsTUFBTSxFQUFFdEgsS0FBSyxDQUFDNEYsS0FBSyxLQUFLLE9BQU8sR0FBRyw0Q0FBNEMsR0FDdkUsRUFBQTFGLHFCQUFBLEdBQUFGLEtBQUssQ0FBQ2EsTUFBTSxDQUFDMEcsVUFBVSxjQUFBckgscUJBQUEsdUJBQXZCQSxxQkFBQSxDQUF5Qm9ILE1BQU0sS0FBSSxpQkFBbUI7SUFDN0RFLFNBQVMsRUFBRWpHLE9BQU8sQ0FBQzlDLEtBQU07SUFDekIrRSxFQUFFLDJCQUFBaUUsTUFBQSxDQUEyQnpILEtBQUssQ0FBQ2EsTUFBTSxDQUFDMkMsRUFBRSxDQUFHO0lBQy9Da0UsUUFBUSxFQUFFdkYsSUFBSSxDQUFDdUYsUUFBUztJQUN4QkMsUUFBUSxFQUFFeEYsSUFBSSxDQUFDd0YsUUFBUztJQUN4QnZHLFFBQVEsRUFBRUEsUUFBUztJQUNuQndHLFFBQVEsRUFBRXpCLFlBQVksQ0FBQyxDQUFFO0lBQ3pCUSxJQUFJLEVBQUM7RUFBTSxDQUNkLENBQUMsRUFFRTNHLEtBQUssQ0FBQzRGLEtBQUssS0FBSyxPQUFPLGdCQUNuQmxMLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXdMLGFBQUEsMkJBQ0kzTSxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBO0lBQU9RLE9BQU8sMkJBQUFKLE1BQUEsQ0FBMkJ6SCxLQUFLLENBQUNhLE1BQU0sQ0FBQzJDLEVBQUU7RUFBRyxnQkFDdkQ5SSxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLDJCQUNJM00sTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSxDQUFDeE0sT0FBQSxDQUFBZ0IsT0FBTTtJQUFDaU0sT0FBTyxFQUFDLFdBQVc7SUFBQ0MsU0FBUyxFQUFDLE1BQU07SUFBQ1AsU0FBUyxFQUFFakcsT0FBTyxDQUFDakQsTUFBTztJQUMvRG9KLFFBQVEsRUFBRXZGLElBQUksQ0FBQ3VGLFFBQVM7SUFDeEI5QixLQUFLLEVBQUU7TUFDSGxFLEtBQUssRUFBRUEsS0FBSztNQUFFRSxNQUFNLEVBQUVBLE1BQU07TUFDNUJvRyxnQkFBZ0IsRUFBRSxXQUFXO01BQzdCQyxjQUFjLEVBQUUsT0FBTztNQUN2QkMsZUFBZSxFQUFFLGFBQWE7TUFDOUJDLE1BQU0sRUFBRWhHLElBQUksQ0FBQ1gsUUFBUSxHQUFHLG1CQUFtQixHQUFHLElBQUk7TUFDbEQ1QyxLQUFLLEVBQUV1RCxJQUFJLENBQUNYLFFBQVEsR0FBRyxTQUFTLEdBQUcsSUFBSTtNQUN2QzRHLGVBQWUsRUFDWCxDQUFDNUgsY0FBSyxDQUFDQyxNQUFNLENBQUNKLFVBQVUsQ0FBQyxVQUFBb0gsTUFBQSxDQUNkcEgsVUFBVSxDQUFDd0csTUFBTSxTQUN4QixDQUFDckcsY0FBSyxDQUFDQyxNQUFNLENBQUNzQixjQUFjLENBQUMsVUFBQTBGLE1BQUEsQ0FDbEIxRixjQUFjLGdCQUFBMEYsTUFBQSxDQUVkWSxnQkFBWTtJQUNuQztFQUFFLENBQ1QsQ0FDQSxDQUFDLEVBRUZsRyxJQUFJLENBQUNYLFFBQVEsZ0JBQ1Q5RyxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLDJCQUNJM00sTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQTtJQUFLekIsS0FBSyxFQUFFO01BQUNoSCxLQUFLLEVBQUUsU0FBUztNQUFFMEosT0FBTyxFQUFFO0lBQU87RUFBRSxHQUFFbkcsSUFBSSxDQUFDTixZQUFrQixDQUN6RSxDQUFDLEdBRU4sSUFFTCxDQUNOLENBQUMsZ0JBQ05uSCxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLDJCQUNJM00sTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQTtJQUFPUSxPQUFPLDJCQUFBSixNQUFBLENBQTJCekgsS0FBSyxDQUFDYSxNQUFNLENBQUMyQyxFQUFFO0VBQUcsZ0JBQ3ZEOUksTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSwyQkFvQkkzTSxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLENBQUN4TSxPQUFBLENBQUFnQixPQUFNO0lBQUNpTSxPQUFPLEVBQUMsTUFBTTtJQUFDQyxTQUFTLEVBQUMsTUFBTTtJQUMvQkwsUUFBUSxFQUFFdkYsSUFBSSxDQUFDdUYsUUFBUztJQUN4QkYsU0FBUyxFQUFFakcsT0FBTyxDQUFDakQsTUFBTztJQUMxQnNILEtBQUssRUFBRTtNQUNIdUMsTUFBTSxFQUFFaEcsSUFBSSxDQUFDWCxRQUFRLEdBQUcsbUJBQW1CLEdBQUcsSUFBSTtNQUNsRDVDLEtBQUssRUFBRXVELElBQUksQ0FBQ1gsUUFBUSxHQUFHLFNBQVMsR0FBRztJQUN2QyxDQUFFO0lBQ0YrRyxTQUFTLGVBQUU3TixNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLENBQUNqTSxLQUFBLENBQUFTLE9BQUk7TUFBQzJILEVBQUUsRUFBRTtJQUFTLENBQUM7RUFBRSxHQUdqQyxDQUFBckQsc0JBQUEsR0FBQUgsS0FBSyxDQUFDYSxNQUFNLENBQUMwRyxVQUFVLGNBQUFwSCxzQkFBQSxlQUF2QkEsc0JBQUEsQ0FBeUJxSSxLQUFLLElBQUFwSSxzQkFBQSxHQUMxQkosS0FBSyxDQUFDYSxNQUFNLENBQUMwRyxVQUFVLGNBQUFuSCxzQkFBQSx1QkFBdkJBLHNCQUFBLENBQXlCb0ksS0FBSyxHQUU5QixFQUVKLENBQ1AsQ0FBQyxFQUVGckcsSUFBSSxDQUFDWCxRQUFRLGdCQUNUOUcsTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSwyQkFDSTNNLE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXdMLGFBQUE7SUFBS3pCLEtBQUssRUFBRTtNQUFDaEgsS0FBSyxFQUFFLFNBQVM7TUFBRTBKLE9BQU8sRUFBRTtJQUFPO0VBQUUsR0FBRW5HLElBQUksQ0FBQ04sWUFBa0IsQ0FDekUsQ0FBQyxHQUVOLElBRUwsQ0FBQyxlQUNSbkgsTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSxnQkFFUSxDQUFDN0csY0FBSyxDQUFDQyxNQUFNLENBQUMwQixJQUFJLENBQUMxRSxLQUFLLENBQUMsR0FDckIrQyxjQUFLLENBQUNDLE1BQU0sQ0FBQzBCLElBQUksQ0FBQzFFLEtBQUssQ0FBQytGLEVBQUUsQ0FBQyxHQUN2QnJCLElBQUksQ0FBQzFFLEtBQUssQ0FBQ2lKLElBQUksZ0JBRWZoTSxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBO0lBQUdvQixJQUFJLEVBQUUsR0FBSTtJQUNWQyxPQUFPLEVBQUcvTSxDQUFDLElBQUs7TUFBQSxJQUFBZ04sc0JBQUE7TUFDWmhOLENBQUMsQ0FBQ2lOLGNBQWMsQ0FBQyxDQUFDO01BQ2xCLElBQUFDLGtDQUFnQixHQUFBRixzQkFBQSxHQUFDeEcsSUFBSSxDQUFDMUUsS0FBSyxDQUFDK0csb0JBQW9CLGNBQUFtRSxzQkFBQSxjQUFBQSxzQkFBQSxHQUFJeEcsSUFBSSxDQUFDMUUsS0FBSyxDQUFDZ0gsWUFBWSxFQUFFdEMsSUFBSSxDQUFDMUUsS0FBSyxDQUFDaUosSUFBSSxDQUFDO0lBQ2pHO0VBQUUsR0FFR3ZFLElBQUksQ0FBQzFFLEtBQUssQ0FBQ2lKLElBRWhCLENBQUMsR0FFUixJQUVMLENBQUMsRUFFSixDQUFDdkUsSUFBSSxDQUFDdUYsUUFBUSxJQUFJeEcsUUFBUSxJQUFJaUIsSUFBSSxDQUFDMUUsS0FBSyxnQkFDcEMvQyxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLENBQUNsTSxXQUFBLENBQUFVLE9BQVU7SUFDUCxpQkFBYyxnQkFBZ0I7SUFDOUIsaUJBQWMsTUFBTTtJQUNwQjZNLE9BQU8sRUFDSEEsQ0FBQSxLQUFNO01BQ0Z2RyxJQUFJLENBQUN1QyxpQkFBaUIsQ0FBQyxJQUFJLENBQUM7TUFDNUJvRSxRQUFRLENBQUNDLGNBQWMsMEJBQUF0QixNQUFBLENBQTBCekgsS0FBSyxDQUFDYSxNQUFNLENBQUMyQyxFQUFFLENBQUUsQ0FBQyxDQUFDL0YsS0FBSyxHQUFHLElBQUk7TUFDaEYsSUFBR3dFLE9BQU8sQ0FBQ0ssT0FBTyxFQUFFO1FBQ2hCbUQsTUFBTSxDQUFDLENBQUMsQ0FBQ25CLElBQUksQ0FBQyxNQUFNckMsT0FBTyxDQUFDSyxPQUFPLEdBQUcsSUFBSSxDQUFDLENBQUM2QyxLQUFLLENBQUV4SixDQUFDLElBQUssQ0FBQyxDQUFDLENBQUM7TUFDaEU7SUFDSjtFQUNILGdCQUVEakIsTUFBQSxDQUFBbUIsT0FBQSxDQUFBd0wsYUFBQSxDQUFDak0sS0FBQSxDQUFBUyxPQUFJO0lBQUMySCxFQUFFLEVBQUU7RUFBUyxDQUFDLENBQ1osQ0FBQyxHQUViLElBRVAsQ0FFWixDQUFDLEVBRUZ4RCxLQUFLLENBQUNnSixVQUFVLElBQUksQ0FBQzVILFFBQVEsSUFBSUMsSUFBSSxnQkFDakMzRyxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBLENBQUNyTSxlQUFBLENBQUFhLE9BQXVCO0lBQUM4RyxJQUFJLEVBQUV0QyxVQUFXO0lBQUM0SSxxQkFBcUIsRUFBRTFHO0VBQWlCLENBQUMsQ0FBQyxHQUVyRixFQUFFLEVBR05mLFFBQVEsZ0JBQ0o5RyxNQUFBLENBQUFtQixPQUFBLENBQUF3TCxhQUFBO0lBQU1HLFNBQVMsRUFBRWpHLE9BQU8sQ0FBQzVDO0VBQW9CLEdBQUVrRCxZQUFtQixDQUFDLEdBRW5FLEVBRVAsQ0FBQztBQUVkLENBQUMsQ0FBQztBQUVLLE1BQU1xSCxXQUFXLEdBQUFySixPQUFBLENBQUFxSixXQUFBLGdCQUFHcEosY0FBSyxDQUFDQyxJQUFJLENBQUVDLEtBQUssSUFBSztFQUM3QyxNQUFNLENBQUMyQyxJQUFJLEVBQUV3RyxPQUFPLENBQUMsR0FBR3JKLGNBQUssQ0FBQ1MsUUFBUSxDQUFDLElBQUksQ0FBQztFQUM1QyxNQUFNNkksWUFBWSxHQUFFdEosY0FBSyxDQUFDb0MsTUFBTSxDQUFDLEtBQUssQ0FBQztFQUV2QyxvQkFDSXhILE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXdMLGFBQUEsQ0FBQ3ZNLFVBQUEsQ0FBQXVPLFNBQVMsRUFBQXZOLFFBQUEsS0FBS2tFLEtBQUs7SUFBRTZFLE1BQU0sRUFBRTdFLEtBQUssQ0FBQzZFLE1BQU87SUFBQ3lFLFdBQVcsRUFBRUEsQ0FBQzdMLEtBQUssRUFBRThMLE9BQU8sS0FBSztNQUN6RSxPQUFPOUwsS0FBSztJQUNoQixDQUFFO0lBQUMrTCxtQkFBbUIsRUFBRy9MLEtBQUssSUFBSztNQUMvQixJQUFJK0MsY0FBSyxDQUFDQyxNQUFNLENBQUNoRCxLQUFLLENBQUMsRUFBRTtRQUNyQjJMLFlBQVksQ0FBQzlHLE9BQU8sR0FBRyxDQUFDOEcsWUFBWSxDQUFDOUcsT0FBTztNQUNoRDtJQUNKO0VBQUUsSUFDR0gsSUFBSSxpQkFDRHpILE1BQUEsQ0FBQW1CLE9BQUEsQ0FBQXdMLGFBQUEsQ0FBQ3pILGNBQWMsRUFBQTlELFFBQUE7SUFDWHFHLElBQUksRUFBRUEsSUFBSztJQUNYekIsV0FBVyxFQUFFaUMsSUFBSztJQUNsQnlHLFlBQVksRUFBRUEsWUFBWSxDQUFDOUc7RUFBUSxHQUMvQnRDLEtBQUssQ0FFRyxDQUViLENBQUM7QUFFcEIsQ0FBQyxDQUFDO0FBQUMsSUFBQXlKLFFBQUEsR0FBQTVKLE9BQUEsQ0FBQWhFLE9BQUEsR0FFWXFOLFdBQVciLCJpZ25vcmVMaXN0IjpbXX0=