@projectcor/maia-components 2.11.97 → 2.11.99
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.
- package/CHANGELOG.md +15 -0
- package/lib/components/atoms/AttachmentCard/AttachmentCard.js +3 -1
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.js +35 -26
- package/lib/components/atoms/AttachmentPreviewModal/AttachmentPreviewModal.styles.js +25 -1
- package/lib/components/atoms/AttachmentPreviewModal/PptPreview.js +313 -0
- package/lib/components/atoms/MAIAInput/MAIAInput.js +3 -3
- package/lib/components/atoms/MAIAInput/styles.js +2 -2
- package/lib/components/atoms/icons/PptFile.js +47 -0
- package/lib/components/atoms/icons/PptxFile.js +49 -0
- package/lib/components/atoms/icons/index.js +3 -1
- package/lib/components/molecules/AbmSection/AbmKnowledgeSection.js +2 -2
- package/lib/components/molecules/ChatFooter/ChatFooter.js +12 -6
- package/lib/constants/formatExtensions.js +6 -4
- package/lib/lang/br/index.js +9 -3
- package/lib/lang/en/index.js +9 -3
- package/lib/lang/es/index.js +9 -3
- package/lib/services/maia/Orchestrator/orchestrator.js +2 -2
- package/package.json +3 -2
|
@@ -507,7 +507,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
507
507
|
return ['.png', '.jpg', '.jpeg', '.pdf'].includes(extension);
|
|
508
508
|
};
|
|
509
509
|
var isOldFormat = function isOldFormat(extension) {
|
|
510
|
-
return ['.txt', '.md', '.csv', '.doc', '.docx', '.xlsx', '.xls'].includes(extension);
|
|
510
|
+
return ['.txt', '.md', '.csv', '.doc', '.docx', '.ppt', '.pptx', '.xlsx', '.xls'].includes(extension);
|
|
511
511
|
};
|
|
512
512
|
var isAudioFormat = function isAudioFormat(extension) {
|
|
513
513
|
return ['.flac', '.m4a', '.mp3', '.mp4', '.oga', '.ogg', '.wav', '.webm'].includes(extension);
|
|
@@ -892,7 +892,7 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
892
892
|
ref: fileInputRef,
|
|
893
893
|
type: "file",
|
|
894
894
|
multiple: true,
|
|
895
|
-
accept: ".txt,.md,.csv,.doc,.docx,.png,.jpg,.jpeg,.pdf,.xlsx,.xls,.flac,.m4a,.mp3,.mp4,.oga,.ogg,.wav,.webm",
|
|
895
|
+
accept: ".txt,.md,.csv,.doc,.docx,.ppt,.pptx,.png,.jpg,.jpeg,.pdf,.xlsx,.xls,.flac,.m4a,.mp3,.mp4,.oga,.ogg,.wav,.webm",
|
|
896
896
|
onChange: handleFileSelect,
|
|
897
897
|
style: {
|
|
898
898
|
display: 'none'
|
|
@@ -915,4 +915,4 @@ export var MAIAInput = function MAIAInput(_ref) {
|
|
|
915
915
|
}), popoverNode && /*#__PURE__*/createPortal(popoverNode, document.body)]
|
|
916
916
|
});
|
|
917
917
|
};
|
|
918
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQURyb3BPdmVybGF5IiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJyZXNvbHZlUXVpY2tBY3Rpb25UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwiZGF0YVRyYW5zZmVySGFzRmlsZXMiLCJmaWxlc0Zyb21EYXRhVHJhbnNmZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJUT09MX0NISVBfRVhJVF9NUyIsIk1BSUFJbnB1dCIsIl9yZWYiLCJfYWdlbnQkZW50aXR5Iiwib25TZW5kTWVzc2FnZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9yZWYkYWxpZ25CdXR0b25zIiwiYWxpZ25CdXR0b25zIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiX3JlZiRhdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsInRvb2x0aXBaSW5kZXgiLCJleHRlcm5hbFBvcG92ZXJBbmNob3JSZWYiLCJwb3BvdmVyQW5jaG9yUmVmIiwibGF5b3V0TW9kZSIsIl91c2VUIiwidCIsImVkaXRvclJlZiIsImZpbGVJbnB1dFJlZiIsImludGVybmFsV3JhcHBlclJlZiIsIndyYXBwZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJoYXNXcmFwcGVkVG9TZWNvbmRMaW5lIiwic2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaGFzVHlwaW5nUHJlc2VuY2UiLCJzZXRIYXNUeXBpbmdQcmVzZW5jZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiX3VzZVN0YXRlNyIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJleGNlZWRlZEZpbGVzIiwiZmlsZVNpemVzIiwiX3VzZVN0YXRlOCIsIm1vZGFsUHJvcHMiLCJzZXRNb2RhbFByb3BzIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInRvZ2dsZVdlYlNlYXJjaCIsImlzV2ViU2VhcmNoQWN0aXZlIiwidG9nZ2xlRGVlcFNlYXJjaCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImFnZW50IiwiaW5pdGlhbERyYWZ0IiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsInBsdXNNZW51WkluZGV4IiwiaW5pdGlhbERyYWZ0QXBwbGllZFJlZiIsIl91c2VNZW50aW9uUG9wb3ZlciIsInBvcG92ZXJPcGVuIiwicmVzZXRNZW50aW9uT3BlblRyYWNraW5nIiwiaGFuZGxlVHJpZ2dlciIsImhhbmRsZVBvcG92ZXJLZXlEb3duIiwiaGFuZGxlS2V5RG93biIsInBvcG92ZXJOb2RlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJwbHVzTWVudUFuY2hvciIsInNldFBsdXNNZW51QW5jaG9yIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiYWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwic2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInRvb2xDaGlwRXhpdGluZyIsInNldFRvb2xDaGlwRXhpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJpc0ZpbGVEcmFnQWN0aXZlIiwic2V0SXNGaWxlRHJhZ0FjdGl2ZSIsInRvb2xDaGlwRXhpdFRpbWVyUmVmIiwiZmlsZURyYWdDb3VudGVyUmVmIiwic2VhcmNoTW9kZUFjdGl2ZVJlZiIsIndlYiIsImRlZXAiLCJwbHVzTWVudU9wZW4iLCJCb29sZWFuIiwicHJldmlvdXNBZ2VudElkUmVmIiwidW5kZWZpbmVkIiwicHJldmlvdXNDaGF0SWRSZWYiLCJwcmV2aW91c05ld0NoYXRLZXlSZWYiLCJwcmV2aW91c0xheW91dE1vZGVSZWYiLCJhbmFseXRpY3NBZ2VudFR5cGUiLCJhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQiLCJ0eXBlIiwiZW50aXR5IiwiX3VzZVNsYXNoQ29tbWFuZHMiLCJpZCIsInNsYXNoQ29tbWFuZHMiLCJjb21tYW5kcyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJzaG93U2xhc2hEcm9wZG93biIsInNldFNob3dTbGFzaERyb3Bkb3duIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsInNsYXNoUXVlcnkiLCJzZXRTbGFzaFF1ZXJ5Iiwic2xhc2hNZW51V2FzT3BlblJlZiIsInNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiZm9jdXMiLCJjbG9zZVBsdXNNZW51IiwiY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCIsImNsZWFyVGltZW91dCIsImhhbmRsZVBsdXNCdXR0b25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50VGFyZ2V0IiwiYWlDaGF0UGx1c09wZW4iLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfdHlwZSIsImhhbmRsZVBsdXNNZW51QXR0YWNoIiwiX2ZpbGVJbnB1dFJlZiRjdXJyZW50IiwiYWlDaGF0VG9vbHMiLCJvcHRpb24iLCJsZW5ndGgiLCJjbGljayIsImJlZ2luVG9vbENoaXBFeGl0Iiwid2FzV2ViIiwid2FzRGVlcCIsIl9zZWFyY2hNb2RlQWN0aXZlUmVmJCIsImhhbmRsZVBsdXNNZW51V2ViU2VhcmNoIiwiaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoIiwiX2VkaXRvclJlZiRjdXJyZW50MiIsIl9lZGl0b3JSZWYkY3VycmVudDMiLCJkcmFmdCIsInRyaW0iLCJzZXRQbGFpblRleHQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwiY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIiLCJzZW5kRGlzYWJsZWQiLCJhZ2VudENoYW5nZWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJwcmV2aW91c0xheW91dE1vZGUiLCJ0aW1lb3V0SWQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ2IiwiaXNTcGVjaWFsaXN0QWdlbnQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiX3JlZjIiLCJfcmVmMyIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJtYWlhQ29udGV4dE1lbnRpb25Jbml0IiwiZGlzY29ubmVjdCIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50NyIsImNsZWFyIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVJlZm9jdXMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ4IiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQ5IiwiX3N0YXRlJHRleHQiLCJfc3RhdGUkbWVudGlvbnMiLCJfZWRpdG9yUmVmJGN1cnJlbnQwIiwic3RhdGUiLCJzZXJpYWxpemUiLCJ0ZXh0IiwibWVudGlvbnMiLCJoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiX2VkaXRvclJlZiRjdXJyZW50MSIsIl9zdGF0ZSR0ZXh0MiIsIl9lZGl0b3JSZWYkY3VycmVudDExIiwiYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QiLCJ0eXBlX3F1aWNrX2FjdGlvbiIsIm9yaWdpbl9xdWlja19hY3Rpb24iLCJ0cmlnZ2VyUGFydCIsImNvbmNhdCIsImJlZm9yZVRyaWdnZXIiLCJlbmRzV2l0aCIsInNsaWNlIiwiaXNFbXB0eUJlZm9yZVRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQxMCIsInRpdGxlIiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwibGFiZWwiLCJoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24iLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWY0IiwiX2VkaXRvclJlZiRjdXJyZW50MTIiLCJ0cmlnZ2VyIiwic2xhc2hUcmlnZ2VyIiwidmlzdWFsTXVsdGlsaW5lIiwiaGFzVmlzdWFsTXVsdGlsaW5lIiwiZXhwbGljaXRNdWx0aWxpbmUiLCJpbmNsdWRlcyIsImlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2giLCJzdGFibGVWaXN1YWxNdWx0aWxpbmUiLCJuZXh0SXNNdWx0aWxpbmUiLCJuZXh0SGFzVHlwaW5nUHJlc2VuY2UiLCJuZXh0VHlwaW5nUHJlc2VuY2UiLCJwcmV2IiwibmV4dCIsImFjdGl2ZSIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsInF1ZXJ5Iiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEZpbGVzIiwiaW5jb21pbmciLCJmaWxlc0luc2VydGVkIiwiaXNOZXdGb3JtYXQiLCJleHRlbnNpb24iLCJpc09sZEZvcm1hdCIsImlzQXVkaW9Gb3JtYXQiLCJmb3JFYWNoIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImV4Y2x1ZGVkRmlsZSIsImZpbGVOYW1lUGFydHMiLCJuYW1lIiwic3BsaXQiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJoYW5kbGVGaWxlU2VsZWN0IiwiZmlsZXMiLCJ0YXJnZXQiLCJBcnJheSIsImZyb20iLCJ2YWx1ZSIsInJlc2V0RmlsZURyYWciLCJoYW5kbGVEcmFnRW50ZXIiLCJkYXRhVHJhbnNmZXIiLCJoYW5kbGVEcmFnTGVhdmUiLCJNYXRoIiwibWF4IiwiaGFuZGxlRHJhZ092ZXIiLCJkcm9wRWZmZWN0IiwiaGFuZGxlRHJvcCIsImhhbmRsZVBhc3RlRmlsZXMiLCJoYW5kbGVXcmFwcGVyUGFzdGUiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiZWRpdG9yRWwiLCJxdWVyeVNlbGVjdG9yIiwiY29udGFpbnMiLCJjbGlwYm9hcmREYXRhIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudDIiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJwbHVzSWNvbkNvbG9yIiwic2Vjb25kYXJ5IiwibWVkaXVtR3JheSIsInBsdXNNZW51SWNvbkNvbG9yIiwibWVudUljb24iLCJwbHVzTWVudVNlbGVjdGVkQ29sb3IiLCJ0ZXh0QnJhbmRCb2xkIiwiYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiIsImNvbG9yIiwiY2hpcENsb3NlSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2hpbGRyZW4iLCJyZWYiLCJoYXNBdHRhY2htZW50cyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvblBhc3RlIiwib25EcmFnRW50ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJhZ092ZXIiLCJvbkRyb3AiLCJvblNlbGVjdCIsIm9uQ2xvc2UiLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJ6SW5kZXgiLCJpY29uIiwib25DbGljayIsIiRjb21wYWN0Um93IiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic3giLCJzbG90UHJvcHMiLCJwYXBlciIsImVsZXZhdGlvbiIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiZ3JpZENvbHVtbiIsImdyaWRSb3ciLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsIm9uSW5wdXQiLCJvbktleURvd24iLCJvblBhc3RlRmlsZXMiLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQge1xuICBDaGFuZ2VFdmVudCxcbiAgQ2xpcGJvYXJkRXZlbnQsXG4gIERyYWdFdmVudCxcbiAgS2V5Ym9hcmRFdmVudCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxuICBNdXRhYmxlUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHtcbiAgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uLFxuICBBY3RpdmVUb29sQ2hpcExhYmVsLFxuICBBY3RpdmVUb29sQ2hpcFJvb3QsXG4gIFBsdXNNZW51RGl2aWRlcixcbiAgUGx1c01lbnVJbm5lckNvbHVtbixcbiAgUGx1c01lbnVJdGVtQnV0dG9uLFxuICBQbHVzTWVudUl0ZW1MYWJlbCxcbiAgUGx1c01lbnVQYXBlcixcbiAgUGx1c01lbnVUb29sc1JvdyxcbiAgUGx1c1RvZ2dsZUJ1dHRvbixcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQsXG4gIFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG4gIFN0eWxlZE1BSUFEcm9wT3ZlcmxheSxcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IFNsYXNoQ29tbWFuZERyb3Bkb3duIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kRHJvcGRvd24nXG5pbXBvcnQgeyB1c2VTbGFzaENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU2xhc2hDb21tYW5kcydcbmltcG9ydCB7IHJlc29sdmVRdWlja0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ob3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcbmltcG9ydCB7IE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxuICBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5pbXBvcnQgeyBBUFBDVUVTX0VWRU5UUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3IsIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25FZGl0b3InXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZU1lbnRpb25Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZGF0YVRyYW5zZmVySGFzRmlsZXMsIGZpbGVzRnJvbURhdGFUcmFuc2ZlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NoYXRJbnB1dEZpbGVzJ1xuXG5jb25zdCBUT09MX0NISVBfRVhJVF9NUyA9IDIyMFxuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICAvKiogRXhwb25lIGVsIHdyYXBwZXIgZGVsIGlucHV0IHBhcmEgYW5jbGFyIHBvcG92ZXJzIChtZW5jaW9uZXMsIHBpbiBkZSBjb250ZXh0bykuICovXG4gIHBvcG92ZXJBbmNob3JSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgbGF5b3V0TW9kZT86ICdzaWRlYmFyJyB8ICdmdWxsc2NyZWVuJyB8ICdmbG9hdGluZydcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbiAgcG9wb3ZlckFuY2hvclJlZjogZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmLFxuICBsYXlvdXRNb2RlLFxufTogTUFJQUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlPihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgaW50ZXJuYWxXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmID8/IGludGVybmFsV3JhcHBlclJlZlxuICBjb25zdCBbaGFzV3JhcHBlZFRvU2Vjb25kTGluZSwgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc1R5cGluZ1ByZXNlbmNlLCBzZXRIYXNUeXBpbmdQcmVzZW5jZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7XG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHRvZ2dsZURlZXBTZWFyY2gsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGFnZW50LFxuICAgIGluaXRpYWxEcmFmdCxcbiAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLFxuICB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHBsdXNNZW51WkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMzAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IGluaXRpYWxEcmFmdEFwcGxpZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICB9KVxuXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRmlsZURyYWdBY3RpdmUsIHNldElzRmlsZURyYWdBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRvb2xDaGlwRXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZmlsZURyYWdDb3VudGVyUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNlYXJjaE1vZGVBY3RpdmVSZWYgPSB1c2VSZWYoeyB3ZWI6IGZhbHNlLCBkZWVwOiBmYWxzZSB9KVxuICBjb25zdCBwbHVzTWVudU9wZW4gPSBCb29sZWFuKHBsdXNNZW51QW5jaG9yKVxuXG4gIC8vIEluaWNpYWxpemFyIGxhcyByZWZlcmVuY2lhcyBjb21vIHVuZGVmaW5lZCBwYXJhIGRldGVjdGFyIGVsIHByaW1lciBjYW1iaW8gY29ycmVjdGFtZW50ZVxuICBjb25zdCBwcmV2aW91c0FnZW50SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzQ2hhdElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c05ld0NoYXRLZXlSZWYgPSB1c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTGF5b3V0TW9kZVJlZiA9IHVzZVJlZjxNQUlBSW5wdXRQcm9wc1snbGF5b3V0TW9kZSddPih1bmRlZmluZWQpXG5cbiAgY29uc3QgYW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZShhZ2VudClcbiAgY29uc3QgYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyB7IGVudGl0eTogYWdlbnQuZW50aXR5ID8/IG51bGwgfSA6IHt9XG5cbiAgLy8gU2xhc2ggY29tbWFuZHMgYXBsaWNhbiBhIGNsb25lcyBlc3BlY2lhbGlzdGFzIHkgYWwgb3JjaGVzdHJhdG9yIGdsb2JhbCAoZXN0ZSBhZ3JlZ2EgbG9zIGRlIHN1cyBzdWJhZ2VudGVzKS5cbiAgLy8gTG9zIGN1c3RvbSB5IGxvcyBjbG9uZSBnbG9iYWwvbWFpYWtlciBubyBsb3MgdGllbmVuIGhhYmlsaXRhZG9zLlxuICBjb25zdCB7IGNvbW1hbmRzOiBzbGFzaENvbW1hbmRzIH0gPSB1c2VTbGFzaENvbW1hbmRzKFxuICAgIChhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcpIHx8XG4gICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgYWdlbnQ/LmVudGl0eSAhPT0gJ2dsb2JhbCcpXG4gICAgICA/IGFnZW50Py5pZFxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuICBjb25zdCBbc2hvd1NsYXNoRHJvcGRvd24sIHNldFNob3dTbGFzaERyb3Bkb3duXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2xhc2hRdWVyeSwgc2V0U2xhc2hRdWVyeV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3Qgc2xhc2hNZW51V2FzT3BlblJlZiA9IHVzZVJlZihmYWxzZSlcblxuICAvKiogVHJhcyBlbGVnaXIgbyBxdWl0YXIgYsO6c3F1ZWRhIHdlYi9wcm9mdW5kYTogdm9sdmVyIGFsIHRleHRhcmVhIChQb3BvdmVyL21lbnUgcHVlZGUgcm9iYXIgZm9jbykuICovXG4gIGNvbnN0IHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgMClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY2xvc2VQbHVzTWVudSA9ICgpID0+IHtcbiAgICBzZXRQbHVzTWVudUFuY2hvcihudWxsKVxuICB9XG5cbiAgY29uc3QgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHJldHVyblxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBiZWdpblRvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHdhc1dlYiA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgY29uc3Qgd2FzRGVlcCA9IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgIGlmICghd2FzV2ViICYmICF3YXNEZWVwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKHRydWUpXG4gICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGNvbnN0IHsgd2ViLCBkZWVwIH0gPSBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnRcbiAgICAgIGlmICh3YXNXZWIgJiYgd2ViKSB7XG4gICAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgICB9IGVsc2UgaWYgKHdhc0RlZXAgJiYgZGVlcCkge1xuICAgICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICAgIH1cbiAgICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gICAgfSwgVE9PTF9DSElQX0VYSVRfTVMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZGVlcF9zZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkcmFmdCA9IGluaXRpYWxEcmFmdD8udHJpbSgpXG4gICAgaWYgKCFkcmFmdCB8fCBpbml0aWFsRHJhZnRBcHBsaWVkUmVmLmN1cnJlbnQgfHwgZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpbml0aWFsRHJhZnRBcHBsaWVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYpIHtcbiAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnNldFBsYWluVGV4dChkcmFmdClcbiAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZSh0cnVlKVxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuICB9LCBbaW5pdGlhbERyYWZ0LCBkaXNhYmxlZCwgZGVlcExpbmtTZW5kUGVuZGluZ1JlZl0pXG5cbiAgY29uc3QgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIgPSB1c2VNZW1vKFxuICAgICgpID0+IGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSAmJiAhaGFzV3JhcHBlZFRvU2Vjb25kTGluZSxcbiAgICBbYXR0YWNobWVudHMubGVuZ3RoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlLCBoYXNXcmFwcGVkVG9TZWNvbmRMaW5lXVxuICApXG5cbiAgY29uc3Qgc2VuZERpc2FibGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiAhaGFzVHlwaW5nUHJlc2VuY2UgJiYgYXR0YWNobWVudHMubGVuZ3RoID09PSAwLFxuICAgIFtoYXNUeXBpbmdQcmVzZW5jZSwgYXR0YWNobWVudHMubGVuZ3RoXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnQgPSB7IHdlYjogaXNXZWJTZWFyY2hBY3RpdmUsIGRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpXG4gICAgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhZ2VudENoYW5nZWQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCAhPT0gYWdlbnQ/LmlkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICBjb25zdCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPVxuICAgICAgKHByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNDaGF0SWQgPT09IG51bGwpICYmIGN1cnJlbnRDaGF0SWQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50Q2hhdElkICE9PSBudWxsXG4gICAgY29uc3QgbmV3Q2hhdFN0YXJ0ZWQgPSBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCAhPT0gbmV3Q2hhdEtleVxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWRcblxuICAgIGlmICgoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiYgIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZWQpIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGxhIGRpc3Bvc2ljacOzbiBkZWwgbW9kYWwgKHNpZGViYXIgLyBmdWxsc2NyZWVuIC8gZmxvYXRpbmcpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsYXlvdXRNb2RlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNMYXlvdXRNb2RlID0gcHJldmlvdXNMYXlvdXRNb2RlUmVmLmN1cnJlbnRcbiAgICBwcmV2aW91c0xheW91dE1vZGVSZWYuY3VycmVudCA9IGxheW91dE1vZGVcblxuICAgIGlmIChwcmV2aW91c0xheW91dE1vZGUgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0xheW91dE1vZGUgPT09IGxheW91dE1vZGUgfHwgZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9XG4gICAgfSwgMjAwKVxuXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKVxuICB9LCBbbGF5b3V0TW9kZSwgZGlzYWJsZWRdKVxuXG4gIC8vIEFwcGN1ZXM6IG5vdGlmeSB0aGF0IHRoZSBpbnB1dCBpcyB2aXNpYmxlIGZvciBzcGVjaWFsaXN0IGFnZW50cyAoY2xvbmUgKyBwcm9qZWN0L2NsaWVudClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpc1NwZWNpYWxpc3RBZ2VudCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIChhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcpXG4gICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQgfHwgIWlzU3BlY2lhbGlzdEFnZW50KSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChbZW50cnldKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIHRyYWNrQXBwY3Vlc0V2ZW50KEFQUENVRVNfRVZFTlRTLm1haWFDb250ZXh0TWVudGlvbkluaXQpXG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHRocmVzaG9sZDogMC4xIH1cbiAgICApXG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJSZWYuY3VycmVudClcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py50eXBlLCBhZ2VudD8uZW50aXR5XSlcblxuICAvLyBDbGVhciBpbnB1dCB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gIH0sIFtyZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWZdKVxuXG4gIC8vIE1hbnRlbmVyIGZvY28gYWwgc2VsZWNjaW9uYXIgdW4gY29udGV4dG8gcmVjaWVudGUgKGVsIGNsaWNrIGVuIGVsIHBpbGwgbG8gcm9iYSBhbCBpbnB1dCkuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUmVmb2N1cyA9ICgpID0+IHtcbiAgICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLWlucHV0LXJlZm9jdXMnLCBoYW5kbGVSZWZvY3VzKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLWlucHV0LXJlZm9jdXMnLCBoYW5kbGVSZWZvY3VzKVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LnNlcmlhbGl6ZSgpXG4gICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgaWYgKCF0ZXh0LnRyaW0oKSAmJiAhYXR0YWNobWVudHMubGVuZ3RoKSByZXR1cm5cbiAgICBjb25zdCBtZW50aW9ucyA9IHN0YXRlPy5tZW50aW9ucyA/PyBbXVxuICAgIG9uU2VuZE1lc3NhZ2UodGV4dCwgYXR0YWNobWVudHMsIG1lbnRpb25zKVxuICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UoZmFsc2UpXG4gICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gIH0sIFthdHRhY2htZW50cywgb25TZW5kTWVzc2FnZSwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZDogQWN0aW9uKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QsIHtcbiAgICAgICAgdHlwZV9xdWlja19hY3Rpb246IHJlc29sdmVRdWlja0FjdGlvblR5cGUoY29tbWFuZCksXG4gICAgICAgIG9yaWdpbl9xdWlja19hY3Rpb246ICdzbGFzaF9tZW51JyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHN0YXRlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LnNlcmlhbGl6ZSgpXG4gICAgICBjb25zdCB0ZXh0ID0gc3RhdGU/LnRleHQgPz8gJydcbiAgICAgIGNvbnN0IHRyaWdnZXJQYXJ0ID0gYC8ke3NsYXNoUXVlcnl9YFxuICAgICAgY29uc3QgYmVmb3JlVHJpZ2dlciA9IHRleHQuZW5kc1dpdGgodHJpZ2dlclBhcnQpID8gdGV4dC5zbGljZSgwLCAtdHJpZ2dlclBhcnQubGVuZ3RoKSA6IHRleHRcbiAgICAgIGNvbnN0IGlzRW1wdHlCZWZvcmVUcmlnZ2VyID0gYmVmb3JlVHJpZ2dlci50cmltKCkgPT09ICcnXG5cbiAgICAgIGlmIChpc0VtcHR5QmVmb3JlVHJpZ2dlcikge1xuICAgICAgICBvblNlbmRNZXNzYWdlKGNvbW1hbmQudGl0bGUsIGF0dGFjaG1lbnRzLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbW1hbmQuaWQpXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgICAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKGZhbHNlKVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5pbnNlcnRTbGFzaENvbW1hbmQoeyBpZDogY29tbWFuZC5pZCwgbGFiZWw6IGNvbW1hbmQudGl0bGUgfSlcbiAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfSxcbiAgICBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgc2xhc2hRdWVyeSwgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24gPSAoKSA9PiB7XG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRvcklucHV0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHRleHQsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgc2xhc2hUcmlnZ2VyLFxuICAgIH06IHtcbiAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICAgIHNsYXNoVHJpZ2dlcj86IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCB2aXN1YWxNdWx0aWxpbmUgPSAhIWVkaXRvclJlZi5jdXJyZW50Py5oYXNWaXN1YWxNdWx0aWxpbmUoKVxuICAgICAgY29uc3QgZXhwbGljaXRNdWx0aWxpbmUgPSB0ZXh0LmluY2x1ZGVzKCdcXG4nKVxuICAgICAgY29uc3QgaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA9IHRleHQubGVuZ3RoIDw9IDEgJiYgIWV4cGxpY2l0TXVsdGlsaW5lICYmIHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3Qgc3RhYmxlVmlzdWFsTXVsdGlsaW5lID0gaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA/IGZhbHNlIDogdmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SXNNdWx0aWxpbmUgPSBleHBsaWNpdE11bHRpbGluZSB8fCBzdGFibGVWaXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IG5leHRIYXNUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IG5leHRUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcblxuICAgICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UobmV4dFR5cGluZ1ByZXNlbmNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShwcmV2ID0+IHtcbiAgICAgICAgbGV0IG5leHQgPSBwcmV2XG4gICAgICAgIGlmICghbmV4dEhhc1R5cGluZ1ByZXNlbmNlKSB7XG4gICAgICAgICAgbmV4dCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSBpZiAobmV4dElzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgbmV4dCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9KVxuICAgICAgb25DaGFuZ2U/LigpXG4gICAgICBoYW5kbGVUcmlnZ2VyKHRyaWdnZXIpXG5cbiAgICAgIGlmIChzbGFzaFRyaWdnZXI/LmFjdGl2ZSAmJiBzbGFzaENvbW1hbmRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKCFzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25PcGVuKVxuICAgICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bih0cnVlKVxuICAgICAgICBzZXRTbGFzaFF1ZXJ5KHNsYXNoVHJpZ2dlci5xdWVyeSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBoYW5kbGVUcmlnZ2VyLCBzbGFzaENvbW1hbmRzLCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChoYW5kbGVQb3BvdmVyS2V5RG93bihlKSkgcmV0dXJuXG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkgJiYgIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBpZiAoIXNlbmREaXNhYmxlZCAmJiAhZGlzYWJsZWQpIGhhbmRsZVNlbmRNZXNzYWdlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVQb3BvdmVyS2V5RG93biwgcG9wb3Zlck9wZW4sIHNlbmREaXNhYmxlZCwgZGlzYWJsZWQsIGhhbmRsZVNlbmRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgYWRkRmlsZXMgPSAoaW5jb21pbmc6IEZpbGVbXSkgPT4ge1xuICAgIGlmICghaW5jb21pbmcubGVuZ3RoIHx8IGRpc2FibGVkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcueGxzeCcsICcueGxzJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuICAgIGNvbnN0IGlzQXVkaW9Gb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy5mbGFjJywgJy5tNGEnLCAnLm1wMycsICcubXA0JywgJy5vZ2EnLCAnLm9nZycsICcud2F2JywgJy53ZWJtJ10uaW5jbHVkZXMoZXh0ZW5zaW9uKVxuXG4gICAgaW5jb21pbmcuZm9yRWFjaChmaWxlID0+IHtcbiAgICAgIGxldCBleGNsdWRlZEZpbGUgPSBmYWxzZVxuICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGZpbGUubmFtZS5zcGxpdCgnLicpXG4gICAgICBjb25zdCBmaWxlRXh0ZW5zaW9uID0gZmlsZU5hbWVQYXJ0cy5sZW5ndGggPiAxID8gYC4ke2ZpbGVOYW1lUGFydHMucG9wKCk/LnRvTG93ZXJDYXNlKCl9YCA6ICcnXG5cbiAgICAgIGlmICghYWxsb3dlZEZpbGVUeXBlcz8uaW5jbHVkZXMoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGZpbGVTaXplc1tmaWxlLm5hbWVdID0gZmlsZS5zaXplXG5cbiAgICAgIGlmIChpc05ld0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzT2xkRm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX09MRCAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9IGVsc2UgaWYgKGlzQXVkaW9Gb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfQVVESU8gKiAxMDI0ICogMTAyNCkge1xuICAgICAgICAgIGV4Y2VlZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGZpbGVzSW5zZXJ0ZWQgKyAxID4gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHtcbiAgICAgICAgICBleGNsdWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoIWV4Y2x1ZGVkRmlsZSkge1xuICAgICAgICBmaWxlc0luc2VydGVkICs9IDFcbiAgICAgICAgY29uc3QgdHlwZUZpbGUgPSBmaWxlLnR5cGUgfHwgZmlsZVR5cGVzW2ZpbGVFeHRlbnNpb25dXG4gICAgICAgIGNvbnN0IHBhcnNlZEZpbGUgPSBuZXcgRmlsZShbZmlsZV0sIGZpbGUubmFtZSwgeyB0eXBlOiB0eXBlRmlsZSB9KVxuICAgICAgICBvbkZpbGVBdHRhY2g/LihwYXJzZWRGaWxlKVxuICAgICAgfVxuICAgIH0pXG5cbiAgICBpZiAoZXhjbHVkZWRGaWxlcy5sZW5ndGggfHwgZXhjZWVkZWRGaWxlcy5sZW5ndGgpIHtcbiAgICAgIHNldE1vZGFsUHJvcHMoeyBpc09wZW46IHRydWUsIGV4Y2x1ZGVkRmlsZXMsIGV4Y2VlZGVkRmlsZXMsIGZpbGVTaXplcyB9KVxuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUZpbGVTZWxlY3QgPSAoZTogQ2hhbmdlRXZlbnQ8SFRNTElucHV0RWxlbWVudD4pID0+IHtcbiAgICBjb25zdCBmaWxlcyA9IGUudGFyZ2V0LmZpbGVzXG4gICAgaWYgKGZpbGVzKSB7XG4gICAgICBhZGRGaWxlcyhBcnJheS5mcm9tKGZpbGVzKSlcbiAgICB9XG4gICAgaWYgKGZpbGVJbnB1dFJlZi5jdXJyZW50KSB7XG4gICAgICBmaWxlSW5wdXRSZWYuY3VycmVudC52YWx1ZSA9ICcnXG4gICAgfVxuICB9XG5cbiAgY29uc3QgcmVzZXRGaWxlRHJhZyA9ICgpID0+IHtcbiAgICBmaWxlRHJhZ0NvdW50ZXJSZWYuY3VycmVudCA9IDBcbiAgICBzZXRJc0ZpbGVEcmFnQWN0aXZlKGZhbHNlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0VudGVyID0gKGU6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWRhdGFUcmFuc2Zlckhhc0ZpbGVzKGUuZGF0YVRyYW5zZmVyKSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuXG4gICAgZmlsZURyYWdDb3VudGVyUmVmLmN1cnJlbnQgKz0gMVxuICAgIHNldElzRmlsZURyYWdBY3RpdmUodHJ1ZSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyYWdMZWF2ZSA9IChlOiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFpc0ZpbGVEcmFnQWN0aXZlICYmICFkYXRhVHJhbnNmZXJIYXNGaWxlcyhlLmRhdGFUcmFuc2ZlcikpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBmaWxlRHJhZ0NvdW50ZXJSZWYuY3VycmVudCA9IE1hdGgubWF4KDAsIGZpbGVEcmFnQ291bnRlclJlZi5jdXJyZW50IC0gMSlcbiAgICBpZiAoZmlsZURyYWdDb3VudGVyUmVmLmN1cnJlbnQgPT09IDApIHtcbiAgICAgIHNldElzRmlsZURyYWdBY3RpdmUoZmFsc2UpXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ092ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmICghZGF0YVRyYW5zZmVySGFzRmlsZXMoZS5kYXRhVHJhbnNmZXIpKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm5cbiAgICBlLmRhdGFUcmFuc2Zlci5kcm9wRWZmZWN0ID0gJ2NvcHknXG4gIH1cblxuICBjb25zdCBoYW5kbGVEcm9wID0gKGU6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWRhdGFUcmFuc2Zlckhhc0ZpbGVzKGUuZGF0YVRyYW5zZmVyKSkge1xuICAgICAgcmVzZXRGaWxlRHJhZygpXG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIHJlc2V0RmlsZURyYWcoKVxuICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuXG4gICAgYWRkRmlsZXMoZmlsZXNGcm9tRGF0YVRyYW5zZmVyKGUuZGF0YVRyYW5zZmVyKSlcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVBhc3RlRmlsZXMgPSAoZmlsZXM6IEZpbGVbXSkgPT4ge1xuICAgIGFkZEZpbGVzKGZpbGVzKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcHBlclBhc3RlID0gKGU6IENsaXBib2FyZEV2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGVkaXRvckVsID0gd3JhcHBlclJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yKCdbY29udGVudGVkaXRhYmxlPVwidHJ1ZVwiXScpXG4gICAgaWYgKGVkaXRvckVsICYmIGVkaXRvckVsLmNvbnRhaW5zKGUudGFyZ2V0IGFzIE5vZGUpKSByZXR1cm5cbiAgICBjb25zdCBmaWxlcyA9IGZpbGVzRnJvbURhdGFUcmFuc2ZlcihlLmNsaXBib2FyZERhdGEpXG4gICAgaWYgKCFmaWxlcy5sZW5ndGgpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGFkZEZpbGVzKGZpbGVzKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRGVsZXRlQXR0YWNobWVudCA9IChmaWxlSWQ6IHN0cmluZykgPT4ge1xuICAgIG9uRGVsZXRlQXR0YWNobWVudD8uKGZpbGVJZClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJGb2N1cyA9ICgpID0+IHNldElzRm9jdXNlZCh0cnVlKVxuICBjb25zdCBoYW5kbGVXcmFwcGVyQmx1ciA9ICgpID0+IHtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGlmICghd3JhcHBlclJlZi5jdXJyZW50Py5jb250YWlucyhkb2N1bWVudC5hY3RpdmVFbGVtZW50KSkge1xuICAgICAgICBzZXRJc0ZvY3VzZWQoZmFsc2UpXG4gICAgICB9XG4gICAgfSwgMClcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZVN0b3BHZW5lcmF0aW9uID0gKCkgPT4ge1xuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRTdG9wUmVzcG9uc2UpXG4gICAgb25TdG9wR2VuZXJhdGlvbj8uKClcbiAgfVxuXG4gIGNvbnN0IHBsdXNJY29uQ29sb3IgPSBpc0ZvY3VzZWQgPyBjb2xvcnMudGV4dC5zZWNvbmRhcnkgOiBjb2xvcnMudGV4dC5tZWRpdW1HcmF5XG4gIGNvbnN0IHBsdXNNZW51SWNvbkNvbG9yID0gTUFJQV9DSEFUX0lOUFVUX1VJLm1lbnVJY29uXG4gIGNvbnN0IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA9IE1BSUFfQ0hBVF9JTlBVVF9VSS50ZXh0QnJhbmRCb2xkXG5cbiAgbGV0IGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb246IFJlYWN0Tm9kZVxuICBpZiAoYWN0aXZlVG9vbENoaXBIb3ZlcmVkKSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxDcm9zcyBjb2xvcj17TUFJQV9DSEFUX0lOUFVUX1VJLmNoaXBDbG9zZUljb259IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfSBlbHNlIGlmIChpc1dlYlNlYXJjaEFjdGl2ZSkge1xuICAgIGFjdGl2ZVRvb2xDaGlwTGVhZGluZ0ljb24gPSA8R2xvYmUgY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH0gZWxzZSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxUZWxlc2NvcGVJY29uIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFN0eWxlZE1BSUFJbnB1dFdyYXBwZXJcbiAgICAgICAgcmVmPXt3cmFwcGVyUmVmfVxuICAgICAgICBkaXNhYmxlZD17ZmFsc2V9XG4gICAgICAgIGFsaWduQnV0dG9ucz17YWxpZ25CdXR0b25zfVxuICAgICAgICBoYXNBdHRhY2htZW50cz17ISFhdHRhY2htZW50cy5sZW5ndGh9XG4gICAgICAgIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyPXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn1cbiAgICAgICAgJGZpbGVEcmFnQWN0aXZlPXtpc0ZpbGVEcmFnQWN0aXZlfVxuICAgICAgICBkYXRhLWFwcGN1ZXM9XCJtYWlhX2NoYXRfaW5wdXRcIlxuICAgICAgICBkYXRhLW1haWEtc3RyZWFtaW5nPXtpc1N0cmVhbWluZyA/ICd0cnVlJyA6ICdmYWxzZSd9XG4gICAgICAgIG9uRm9jdXM9e2hhbmRsZVdyYXBwZXJGb2N1c31cbiAgICAgICAgb25CbHVyPXtoYW5kbGVXcmFwcGVyQmx1cn1cbiAgICAgICAgb25QYXN0ZT17aGFuZGxlV3JhcHBlclBhc3RlfVxuICAgICAgICBvbkRyYWdFbnRlcj17aGFuZGxlRHJhZ0VudGVyfVxuICAgICAgICBvbkRyYWdMZWF2ZT17aGFuZGxlRHJhZ0xlYXZlfVxuICAgICAgICBvbkRyYWdPdmVyPXtoYW5kbGVEcmFnT3Zlcn1cbiAgICAgICAgb25Ecm9wPXtoYW5kbGVEcm9wfVxuICAgICAgPlxuICAgICAgICB7c2hvd1NsYXNoRHJvcGRvd24gJiYgKFxuICAgICAgICAgIDxTbGFzaENvbW1hbmREcm9wZG93blxuICAgICAgICAgICAgY29tbWFuZHM9e3NsYXNoQ29tbWFuZHN9XG4gICAgICAgICAgICBxdWVyeT17c2xhc2hRdWVyeX1cbiAgICAgICAgICAgIG9uU2VsZWN0PXtoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmR9XG4gICAgICAgICAgICBvbkNsb3NlPXtoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd259XG4gICAgICAgICAgLz5cbiAgICAgICAgKX1cbiAgICAgICAgeyEhYXR0YWNobWVudHMubGVuZ3RoICYmIChcbiAgICAgICAgICA8ZGl2IHN0eWxlPXt7IGRpc3BsYXk6ICdmbGV4JywgZ2FwOiAnMTJweCcsIGFsaWduSXRlbXM6ICdjZW50ZXInIH19PlxuICAgICAgICAgICAge2F0dGFjaG1lbnRzLm1hcCgoYXR0YWNobWVudCwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgY29uc3QgZmlsZU5hbWVQYXJ0cyA9IGF0dGFjaG1lbnQubmFtZS5zcGxpdCgnLicpXG4gICAgICAgICAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcbiAgICAgICAgICAgICAgY29uc3QgaXNJbWFnZUJ5RXh0ZW5zaW9uID0gWycucG5nJywgJy5qcGcnLCAnLmpwZWcnXS5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlNaW1lID0gYXR0YWNobWVudC50eXBlPy5zdGFydHNXaXRoKCdpbWFnZS8nKVxuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlID0gaXNJbWFnZUJ5TWltZSAmJiBpc0ltYWdlQnlFeHRlbnNpb25cbiAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17YXR0YWNobWVudC5uYW1lfSBrZXk9e2Ake2luZGV4fS0ke2F0dGFjaG1lbnQubmFtZX1gfSB6SW5kZXg9e3Rvb2x0aXBaSW5kZXh9PlxuICAgICAgICAgICAgICAgICAgPFNDTUlBdHRhY2htZW50IGlzSW1hZ2U9e2lzSW1hZ2V9PlxuICAgICAgICAgICAgICAgICAgICB7YXR0YWNobWVudC5pY29ufVxuICAgICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnREZWxldGVJY29uIG9uQ2xpY2s9eygpID0+IGhhbmRsZURlbGV0ZUF0dGFjaG1lbnQoYXR0YWNobWVudC5pZCl9PlxuICAgICAgICAgICAgICAgICAgICAgIDxUcmFzaCBjb2xvcj1cInJnYmEoMTkxLCAxOTEsIDE5MSwgMSlcIiB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvU0NNSUF0dGFjaG1lbnREZWxldGVJY29uPlxuICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudD5cbiAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH0pfVxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICApfVxuICAgICAgICA8U3R5bGVkTUFJQU1haW5Ub29sYmFyR3JpZCAkY29tcGFjdFJvdz17Y29tcGFjdFNpbmdsZVJvd1Rvb2xiYXJ9PlxuICAgICAgICAgIDxTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICA8UGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICAgICAgPFBsdXNUb2dnbGVCdXR0b25cbiAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAkbWVudU9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVQbHVzQnV0dG9uQ2xpY2t9XG4gICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5vcGVuUGx1c01lbnVBcmlhJyl9XG4gICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzIGNvbG9yPXtwbHVzSWNvbkNvbG9yfSB3aWR0aD17MjB9IGhlaWdodD17MjB9IC8+XG4gICAgICAgICAgICAgIDwvUGx1c1RvZ2dsZUJ1dHRvbj5cbiAgICAgICAgICAgICAgPFBvcG92ZXJcbiAgICAgICAgICAgICAgICBvcGVuPXtwbHVzTWVudU9wZW59XG4gICAgICAgICAgICAgICAgYW5jaG9yRWw9e3BsdXNNZW51QW5jaG9yfVxuICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2Nsb3NlUGx1c01lbnV9XG4gICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IHZlcnRpY2FsOiAndG9wJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgdHJhbnNmb3JtT3JpZ2luPXt7IHZlcnRpY2FsOiAnYm90dG9tJywgaG9yaXpvbnRhbDogJ2xlZnQnIH19XG4gICAgICAgICAgICAgICAgc3g9e3sgekluZGV4OiBwbHVzTWVudVpJbmRleCB9fVxuICAgICAgICAgICAgICAgIHNsb3RQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgcGFwZXI6IHtcbiAgICAgICAgICAgICAgICAgICAgZWxldmF0aW9uOiAwLFxuICAgICAgICAgICAgICAgICAgICBzeDoge1xuICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAndmlzaWJsZScsXG4gICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICBib3hTaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd0cmFuc3BhcmVudCcsXG4gICAgICAgICAgICAgICAgICAgICAgbWFyZ2luVG9wOiAnLTRweCcsXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8UGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUlubmVyQ29sdW1uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudUF0dGFjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEF0dGFjaCBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXtmYWxzZX0+e3QoJ2NoYXQucGx1c01lbnVBdHRhY2gnKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51RGl2aWRlciAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudVdlYlNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgICAgPEdsb2JlXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcj17aXNXZWJTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzV2ViU2VhcmNoQWN0aXZlfT57dCgnY2hhdC5zZWFyY2hXZWInKX08L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtQnV0dG9uIHR5cGU9XCJidXR0b25cIiBvbkNsaWNrPXtoYW5kbGVQbHVzTWVudURlZXBTZWFyY2h9PlxuICAgICAgICAgICAgICAgICAgICA8VGVsZXNjb3BlSWNvblxuICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc0RlZXBTZWFyY2hBY3RpdmUgPyBwbHVzTWVudVNlbGVjdGVkQ29sb3IgOiBwbHVzTWVudUljb25Db2xvcn1cbiAgICAgICAgICAgICAgICAgICAgICB3aWR0aD17MjB9XG4gICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SXRlbUxhYmVsICRzZWxlY3RlZD17ISFpc0RlZXBTZWFyY2hBY3RpdmV9PlxuICAgICAgICAgICAgICAgICAgICAgIHt0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1MYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzRGVlcFNlYXJjaEFjdGl2ZSA/IDxDaGVjayBjb2xvcj17cGx1c01lbnVTZWxlY3RlZENvbG9yfSB3aWR0aD17MTZ9IGhlaWdodD17MTZ9IC8+IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgIDwvUGx1c01lbnVQYXBlcj5cbiAgICAgICAgICAgICAgPC9Qb3BvdmVyPlxuICAgICAgICAgICAgICB7KGlzV2ViU2VhcmNoQWN0aXZlIHx8IGlzRGVlcFNlYXJjaEFjdGl2ZSkgJiYgKFxuICAgICAgICAgICAgICAgIDxBY3RpdmVUb29sQ2hpcFJvb3RcbiAgICAgICAgICAgICAgICAgICRob3ZlcmVkPXthY3RpdmVUb29sQ2hpcEhvdmVyZWR9XG4gICAgICAgICAgICAgICAgICAkZXhpdGluZz17dG9vbENoaXBFeGl0aW5nfVxuICAgICAgICAgICAgICAgICAgb25Nb3VzZUVudGVyPXsoKSA9PiBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQodHJ1ZSl9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlTGVhdmU9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZChmYWxzZSl9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgICAgJGNsb3NlU2hvd249e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17dCgnY2hhdC5yZW1vdmVBY3RpdmVUb29sQXJpYScpfVxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtlID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgICAgICAgICAgICAgICAgICAgYmVnaW5Ub29sQ2hpcEV4aXQoKVxuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICB7YWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbn1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIHtpc1dlYlNlYXJjaEFjdGl2ZSA/IHQoJ2NoYXQuc2VhcmNoV2ViJykgOiB0KCdjaGF0LnBsdXNNZW51RGVlcEludmVzdGlnYXRpb24nKX1cbiAgICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICA8L0FjdGl2ZVRvb2xDaGlwUm9vdD5cbiAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDwvUGx1c01lbnVUb29sc1Jvdz5cbiAgICAgICAgICA8L1N0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGw+XG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgc3R5bGU9e1xuICAgICAgICAgICAgICBjb21wYWN0U2luZ2xlUm93VG9vbGJhclxuICAgICAgICAgICAgICAgID8geyBncmlkQ29sdW1uOiAyLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCwgYWxpZ25TZWxmOiAnY2VudGVyJyB9XG4gICAgICAgICAgICAgICAgOiB7IGdyaWRDb2x1bW46ICcxIC8gLTEnLCBncmlkUm93OiAxLCBtaW5XaWR0aDogMCB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgPlxuICAgICAgICAgICAgPENvbnRleHRNZW50aW9uRWRpdG9yXG4gICAgICAgICAgICAgIHJlZj17ZWRpdG9yUmVmfVxuICAgICAgICAgICAgICBkaXNhYmxlZD17ZGlzYWJsZWR9XG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtwbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgb25JbnB1dD17aGFuZGxlRWRpdG9ySW5wdXR9XG4gICAgICAgICAgICAgIG9uS2V5RG93bj17aGFuZGxlS2V5RG93bn1cbiAgICAgICAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICAgICAgICBvblBhc3RlRmlsZXM9e2hhbmRsZVBhc3RlRmlsZXN9XG4gICAgICAgICAgICAvPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgICB7aXNXcml0aW5nID8gKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zdG9wJyl9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wQnV0dG9uIGRpc2FibGVkPXtmYWxzZX0gb25DbGljaz17aGFuZGxlU3RvcEdlbmVyYXRpb259IGNsYXNzTmFtZT17Y2xhc3NOYW1lfT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU3RvcEljb24gLz5cbiAgICAgICAgICAgICAgICA8L1N0eWxlZE1BSUFTdG9wQnV0dG9uPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17dCgnY2hhdC5zZW5kJyl9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgICAgPHNwYW4gc3R5bGU9e3sgZGlzcGxheTogJ2lubGluZS1mbGV4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVNlbmRCdXR0b25cbiAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlU2VuZE1lc3NhZ2V9XG4gICAgICAgICAgICAgICAgICAgIGNsYXNzTmFtZT17Y2xhc3NOYW1lfVxuICAgICAgICAgICAgICAgICAgICBkaXNhYmxlZD17c2VuZERpc2FibGVkIHx8IGRpc2FibGVkfVxuICAgICAgICAgICAgICAgICAgICBoYXNWYWx1ZXM9e2hhc1R5cGluZ1ByZXNlbmNlIHx8IGF0dGFjaG1lbnRzLmxlbmd0aCA+IDB9XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxQYXBlclBsYW5lIGNvbG9yPVwiI0JGQkZCRlwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRCdXR0b24+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICApfVxuICAgICAgICAgIDwvU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbD5cbiAgICAgICAgPC9TdHlsZWRNQUlBTWFpblRvb2xiYXJHcmlkPlxuICAgICAgICA8aW5wdXRcbiAgICAgICAgICByZWY9e2ZpbGVJbnB1dFJlZn1cbiAgICAgICAgICB0eXBlPVwiZmlsZVwiXG4gICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICBhY2NlcHQ9XCIudHh0LC5tZCwuY3N2LC5kb2MsLmRvY3gsLnBuZywuanBnLC5qcGVnLC5wZGYsLnhsc3gsLnhscywuZmxhYywubTRhLC5tcDMsLm1wNCwub2dhLC5vZ2csLndhdiwud2VibVwiXG4gICAgICAgICAgb25DaGFuZ2U9e2hhbmRsZUZpbGVTZWxlY3R9XG4gICAgICAgICAgc3R5bGU9e3sgZGlzcGxheTogJ25vbmUnIH19XG4gICAgICAgIC8+XG4gICAgICAgIHtpc0ZpbGVEcmFnQWN0aXZlICYmIDxTdHlsZWRNQUlBRHJvcE92ZXJsYXk+e3QoJ2NoYXQuZHJvcEZpbGVzSGVyZScpfTwvU3R5bGVkTUFJQURyb3BPdmVybGF5Pn1cbiAgICAgIDwvU3R5bGVkTUFJQUlucHV0V3JhcHBlcj5cbiAgICAgIHttb2RhbFByb3BzLmlzT3BlbiAmJiAoXG4gICAgICAgIDxNb2RhbEZpbGVFeGNlZWRzXG4gICAgICAgICAgb25DbG9zZT17KCkgPT4gc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogZmFsc2UsIGV4Y2x1ZGVkRmlsZXM6IFtdLCBleGNlZWRlZEZpbGVzOiBbXSwgZmlsZVNpemVzOiB7fSB9KX1cbiAgICAgICAgICBleGNsdWRlZEZpbGVzPXttb2RhbFByb3BzLmV4Y2x1ZGVkRmlsZXN9XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNlZWRlZEZpbGVzfVxuICAgICAgICAgIGZpbGVTaXplcz17bW9kYWxQcm9wcy5maWxlU2l6ZXN9XG4gICAgICAgIC8+XG4gICAgICApfVxuICAgICAge3BvcG92ZXJOb2RlICYmIGNyZWF0ZVBvcnRhbChwb3BvdmVyTm9kZSwgZG9jdW1lbnQuYm9keSl9XG4gICAgPC8+XG4gIClcbn1cbiJdLCJtYXBwaW5ncyI6Ijs7OztBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBLFNBUUVBLFdBQVcsRUFDWEMsU0FBUyxFQUNUQyxPQUFPLEVBQ1BDLE1BQU0sRUFDTkMsUUFBUSxRQUNILE9BQU87QUFDZCxTQUFTQyxZQUFZLFFBQVEsV0FBVztBQUN4QyxTQUFTQyxPQUFPLFFBQVEsZUFBZTtBQUN2QyxTQUFTQyxVQUFVLFFBQVEsNkNBQTZDO0FBQ3hFLFNBQVNDLE1BQU0sUUFBUSx5Q0FBeUM7QUFDaEUsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLElBQUksUUFBUSx1Q0FBdUM7QUFDNUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxLQUFLLFFBQVEsd0NBQXdDO0FBQzlELFNBQVNDLE9BQU8sUUFBUSw4Q0FBOEM7QUFDdEUsT0FBT0MsTUFBTSxNQUFNLG1DQUFtQztBQUV0RCxTQUNFQyx3QkFBd0IsRUFDeEJDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxlQUFlLEVBQ2ZDLG1CQUFtQixFQUNuQkMsa0JBQWtCLEVBQ2xCQyxpQkFBaUIsRUFDakJDLGFBQWEsRUFDYkMsZ0JBQWdCLEVBQ2hCQyxnQkFBZ0IsRUFDaEJDLGNBQWMsRUFDZEMsd0JBQXdCLEVBQ3hCQyxzQkFBc0IsRUFDdEJD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
|
|
918
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJ1c2VDYWxsYmFjayIsInVzZUVmZmVjdCIsInVzZU1lbW8iLCJ1c2VSZWYiLCJ1c2VTdGF0ZSIsImNyZWF0ZVBvcnRhbCIsIlBvcG92ZXIiLCJQYXBlclBsYW5lIiwiQXR0YWNoIiwiR2xvYmUiLCJUcmFzaCIsIlBsdXMiLCJDaGVjayIsIkNyb3NzIiwiVG9vbHRpcCIsImNvbG9ycyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIkFjdGl2ZVRvb2xDaGlwTGFiZWwiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJQbHVzTWVudURpdmlkZXIiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJQbHVzTWVudVBhcGVyIiwiUGx1c01lbnVUb29sc1JvdyIsIlBsdXNUb2dnbGVCdXR0b24iLCJTQ01JQXR0YWNobWVudCIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJTdHlsZWRNQUlBU2VuZEJ1dHRvbiIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJTdHlsZWRNQUlBUGx1c1Rvb2xiYXJDZWxsIiwiU3R5bGVkTUFJQVNlbmRUb29sYmFyQ2VsbCIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIiwiU3R5bGVkTUFJQVN0b3BJY29uIiwiU3R5bGVkTUFJQURyb3BPdmVybGF5IiwidXNlR2xvYmFsQ29udGV4dCIsIk1vZGFsRmlsZUV4Y2VlZHMiLCJTbGFzaENvbW1hbmREcm9wZG93biIsInVzZVNsYXNoQ29tbWFuZHMiLCJyZXNvbHZlUXVpY2tBY3Rpb25UeXBlIiwidXNlVCIsIlRlbGVzY29wZUljb24iLCJFVkVOVFMiLCJ1c2VFdmVudCIsImdldENoYXRUb29sc01lbnVBZ2VudFR5cGUiLCJNQUlBX0NIQVRfSU5QVVRfVUkiLCJhbGxvd2VkRmlsZVR5cGVzIiwiZmlsZVR5cGVzIiwiTUFYX0ZJTEVfU0laRV9NQl9NQUlBX1ZJU0lPTiIsIk1BWF9GSUxFX1NJWkVfTUJfT0xEIiwiTUFYX0ZJTEVfU0laRV9NQl9BVURJTyIsIk1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTIiwiQVBQQ1VFU19FVkVOVFMiLCJ0cmFja0FwcGN1ZXNFdmVudCIsIkNvbnRleHRNZW50aW9uRWRpdG9yIiwidXNlTWFpYVRhc2tQYW5lbFpJbmRleCIsInVzZU1lbnRpb25Qb3BvdmVyIiwiZGF0YVRyYW5zZmVySGFzRmlsZXMiLCJmaWxlc0Zyb21EYXRhVHJhbnNmZXIiLCJqc3giLCJfanN4IiwianN4cyIsIl9qc3hzIiwiRnJhZ21lbnQiLCJfRnJhZ21lbnQiLCJUT09MX0NISVBfRVhJVF9NUyIsIk1BSUFJbnB1dCIsIl9yZWYiLCJfYWdlbnQkZW50aXR5Iiwib25TZW5kTWVzc2FnZSIsImNsYXNzTmFtZSIsImRpc2FibGVkIiwiaXNTdHJlYW1pbmciLCJpc1dyaXRpbmciLCJvblN0b3BHZW5lcmF0aW9uIiwicGxhY2Vob2xkZXIiLCJvbkNoYW5nZSIsIl9yZWYkYWxpZ25CdXR0b25zIiwiYWxpZ25CdXR0b25zIiwib25GaWxlQXR0YWNoIiwib25EZWxldGVBdHRhY2htZW50IiwiX3JlZiRhdHRhY2htZW50cyIsImF0dGFjaG1lbnRzIiwiY2hhdElkIiwibmV3Q2hhdEtleSIsInRvb2x0aXBaSW5kZXgiLCJleHRlcm5hbFBvcG92ZXJBbmNob3JSZWYiLCJwb3BvdmVyQW5jaG9yUmVmIiwibGF5b3V0TW9kZSIsIl91c2VUIiwidCIsImVkaXRvclJlZiIsImZpbGVJbnB1dFJlZiIsImludGVybmFsV3JhcHBlclJlZiIsIndyYXBwZXJSZWYiLCJfdXNlU3RhdGUiLCJfdXNlU3RhdGUyIiwiX3NsaWNlZFRvQXJyYXkiLCJoYXNXcmFwcGVkVG9TZWNvbmRMaW5lIiwic2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZSIsIl91c2VTdGF0ZTMiLCJfdXNlU3RhdGU0IiwiaGFzVHlwaW5nUHJlc2VuY2UiLCJzZXRIYXNUeXBpbmdQcmVzZW5jZSIsIl91c2VTdGF0ZTUiLCJfdXNlU3RhdGU2IiwiaXNGb2N1c2VkIiwic2V0SXNGb2N1c2VkIiwiX3VzZVN0YXRlNyIsImlzT3BlbiIsImV4Y2x1ZGVkRmlsZXMiLCJleGNlZWRlZEZpbGVzIiwiZmlsZVNpemVzIiwiX3VzZVN0YXRlOCIsIm1vZGFsUHJvcHMiLCJzZXRNb2RhbFByb3BzIiwiZXZlbnRBbXBsaXR1ZGUiLCJfdXNlR2xvYmFsQ29udGV4dCIsInRvZ2dsZVdlYlNlYXJjaCIsImlzV2ViU2VhcmNoQWN0aXZlIiwidG9nZ2xlRGVlcFNlYXJjaCIsImlzRGVlcFNlYXJjaEFjdGl2ZSIsImFnZW50IiwiaW5pdGlhbERyYWZ0IiwiZGVlcExpbmtTZW5kUGVuZGluZ1JlZiIsInBsdXNNZW51WkluZGV4IiwiaW5pdGlhbERyYWZ0QXBwbGllZFJlZiIsIl91c2VNZW50aW9uUG9wb3ZlciIsInBvcG92ZXJPcGVuIiwicmVzZXRNZW50aW9uT3BlblRyYWNraW5nIiwiaGFuZGxlVHJpZ2dlciIsImhhbmRsZVBvcG92ZXJLZXlEb3duIiwiaGFuZGxlS2V5RG93biIsInBvcG92ZXJOb2RlIiwiX3VzZVN0YXRlOSIsIl91c2VTdGF0ZTAiLCJwbHVzTWVudUFuY2hvciIsInNldFBsdXNNZW51QW5jaG9yIiwiX3VzZVN0YXRlMSIsIl91c2VTdGF0ZTEwIiwiYWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwic2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkIiwiX3VzZVN0YXRlMTEiLCJfdXNlU3RhdGUxMiIsInRvb2xDaGlwRXhpdGluZyIsInNldFRvb2xDaGlwRXhpdGluZyIsIl91c2VTdGF0ZTEzIiwiX3VzZVN0YXRlMTQiLCJpc0ZpbGVEcmFnQWN0aXZlIiwic2V0SXNGaWxlRHJhZ0FjdGl2ZSIsInRvb2xDaGlwRXhpdFRpbWVyUmVmIiwiZmlsZURyYWdDb3VudGVyUmVmIiwic2VhcmNoTW9kZUFjdGl2ZVJlZiIsIndlYiIsImRlZXAiLCJwbHVzTWVudU9wZW4iLCJCb29sZWFuIiwicHJldmlvdXNBZ2VudElkUmVmIiwidW5kZWZpbmVkIiwicHJldmlvdXNDaGF0SWRSZWYiLCJwcmV2aW91c05ld0NoYXRLZXlSZWYiLCJwcmV2aW91c0xheW91dE1vZGVSZWYiLCJhbmFseXRpY3NBZ2VudFR5cGUiLCJhbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQiLCJ0eXBlIiwiZW50aXR5IiwiX3VzZVNsYXNoQ29tbWFuZHMiLCJpZCIsInNsYXNoQ29tbWFuZHMiLCJjb21tYW5kcyIsIl91c2VTdGF0ZTE1IiwiX3VzZVN0YXRlMTYiLCJzaG93U2xhc2hEcm9wZG93biIsInNldFNob3dTbGFzaERyb3Bkb3duIiwiX3VzZVN0YXRlMTciLCJfdXNlU3RhdGUxOCIsInNsYXNoUXVlcnkiLCJzZXRTbGFzaFF1ZXJ5Iiwic2xhc2hNZW51V2FzT3BlblJlZiIsInNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiIsInJlcXVlc3RBbmltYXRpb25GcmFtZSIsIndpbmRvdyIsInNldFRpbWVvdXQiLCJfZWRpdG9yUmVmJGN1cnJlbnQiLCJjdXJyZW50IiwiZm9jdXMiLCJjbG9zZVBsdXNNZW51IiwiY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCIsImNsZWFyVGltZW91dCIsImhhbmRsZVBsdXNCdXR0b25DbGljayIsImUiLCJzdG9wUHJvcGFnYXRpb24iLCJjdXJyZW50VGFyZ2V0IiwiYWlDaGF0UGx1c09wZW4iLCJfb2JqZWN0U3ByZWFkIiwiYWdlbnRfdHlwZSIsImhhbmRsZVBsdXNNZW51QXR0YWNoIiwiX2ZpbGVJbnB1dFJlZiRjdXJyZW50IiwiYWlDaGF0VG9vbHMiLCJvcHRpb24iLCJsZW5ndGgiLCJjbGljayIsImJlZ2luVG9vbENoaXBFeGl0Iiwid2FzV2ViIiwid2FzRGVlcCIsIl9zZWFyY2hNb2RlQWN0aXZlUmVmJCIsImhhbmRsZVBsdXNNZW51V2ViU2VhcmNoIiwiaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoIiwiX2VkaXRvclJlZiRjdXJyZW50MiIsIl9lZGl0b3JSZWYkY3VycmVudDMiLCJkcmFmdCIsInRyaW0iLCJzZXRQbGFpblRleHQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ0IiwiY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIiLCJzZW5kRGlzYWJsZWQiLCJhZ2VudENoYW5nZWQiLCJwcmV2aW91c0NoYXRJZCIsImN1cnJlbnRDaGF0SWQiLCJjaGF0Q2hhbmdlZCIsImNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCIsIm5ld0NoYXRTdGFydGVkIiwiaXNJbml0aWFsTW91bnQiLCJkZWxheSIsIl9lZGl0b3JSZWYkY3VycmVudDUiLCJwcmV2aW91c0xheW91dE1vZGUiLCJ0aW1lb3V0SWQiLCJfZWRpdG9yUmVmJGN1cnJlbnQ2IiwiaXNTcGVjaWFsaXN0QWdlbnQiLCJvYnNlcnZlciIsIkludGVyc2VjdGlvbk9ic2VydmVyIiwiX3JlZjIiLCJfcmVmMyIsImVudHJ5IiwiaXNJbnRlcnNlY3RpbmciLCJtYWlhQ29udGV4dE1lbnRpb25Jbml0IiwiZGlzY29ubmVjdCIsInRocmVzaG9sZCIsIm9ic2VydmUiLCJoYW5kbGVTZXNzaW9uQ2hhbmdlIiwiX2VkaXRvclJlZiRjdXJyZW50NyIsImNsZWFyIiwiZG9jdW1lbnQiLCJhZGRFdmVudExpc3RlbmVyIiwicmVtb3ZlRXZlbnRMaXN0ZW5lciIsImhhbmRsZVJlZm9jdXMiLCJfZWRpdG9yUmVmJGN1cnJlbnQ4IiwiaGFuZGxlU2VuZE1lc3NhZ2UiLCJfZWRpdG9yUmVmJGN1cnJlbnQ5IiwiX3N0YXRlJHRleHQiLCJfc3RhdGUkbWVudGlvbnMiLCJfZWRpdG9yUmVmJGN1cnJlbnQwIiwic3RhdGUiLCJzZXJpYWxpemUiLCJ0ZXh0IiwibWVudGlvbnMiLCJoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQiLCJjb21tYW5kIiwiX2VkaXRvclJlZiRjdXJyZW50MSIsIl9zdGF0ZSR0ZXh0MiIsIl9lZGl0b3JSZWYkY3VycmVudDExIiwiYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QiLCJ0eXBlX3F1aWNrX2FjdGlvbiIsIm9yaWdpbl9xdWlja19hY3Rpb24iLCJ0cmlnZ2VyUGFydCIsImNvbmNhdCIsImJlZm9yZVRyaWdnZXIiLCJlbmRzV2l0aCIsInNsaWNlIiwiaXNFbXB0eUJlZm9yZVRyaWdnZXIiLCJfZWRpdG9yUmVmJGN1cnJlbnQxMCIsInRpdGxlIiwiaW5zZXJ0U2xhc2hDb21tYW5kIiwibGFiZWwiLCJoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24iLCJoYW5kbGVFZGl0b3JJbnB1dCIsIl9yZWY0IiwiX2VkaXRvclJlZiRjdXJyZW50MTIiLCJ0cmlnZ2VyIiwic2xhc2hUcmlnZ2VyIiwidmlzdWFsTXVsdGlsaW5lIiwiaGFzVmlzdWFsTXVsdGlsaW5lIiwiZXhwbGljaXRNdWx0aWxpbmUiLCJpbmNsdWRlcyIsImlzTGlrZWx5Rmlyc3RDaGFyTWVhc3VyZW1lbnRHbGl0Y2giLCJzdGFibGVWaXN1YWxNdWx0aWxpbmUiLCJuZXh0SXNNdWx0aWxpbmUiLCJuZXh0SGFzVHlwaW5nUHJlc2VuY2UiLCJuZXh0VHlwaW5nUHJlc2VuY2UiLCJwcmV2IiwibmV4dCIsImFjdGl2ZSIsImFpQ2hhdFF1aWNrQWN0aW9uT3BlbiIsInF1ZXJ5Iiwia2V5Iiwic2hpZnRLZXkiLCJwcmV2ZW50RGVmYXVsdCIsImFkZEZpbGVzIiwiaW5jb21pbmciLCJmaWxlc0luc2VydGVkIiwiaXNOZXdGb3JtYXQiLCJleHRlbnNpb24iLCJpc09sZEZvcm1hdCIsImlzQXVkaW9Gb3JtYXQiLCJmb3JFYWNoIiwiZmlsZSIsIl9maWxlTmFtZVBhcnRzJHBvcCIsImV4Y2x1ZGVkRmlsZSIsImZpbGVOYW1lUGFydHMiLCJuYW1lIiwic3BsaXQiLCJmaWxlRXh0ZW5zaW9uIiwicG9wIiwidG9Mb3dlckNhc2UiLCJzaXplIiwicHVzaCIsInR5cGVGaWxlIiwicGFyc2VkRmlsZSIsIkZpbGUiLCJoYW5kbGVGaWxlU2VsZWN0IiwiZmlsZXMiLCJ0YXJnZXQiLCJBcnJheSIsImZyb20iLCJ2YWx1ZSIsInJlc2V0RmlsZURyYWciLCJoYW5kbGVEcmFnRW50ZXIiLCJkYXRhVHJhbnNmZXIiLCJoYW5kbGVEcmFnTGVhdmUiLCJNYXRoIiwibWF4IiwiaGFuZGxlRHJhZ092ZXIiLCJkcm9wRWZmZWN0IiwiaGFuZGxlRHJvcCIsImhhbmRsZVBhc3RlRmlsZXMiLCJoYW5kbGVXcmFwcGVyUGFzdGUiLCJfd3JhcHBlclJlZiRjdXJyZW50IiwiZWRpdG9yRWwiLCJxdWVyeVNlbGVjdG9yIiwiY29udGFpbnMiLCJjbGlwYm9hcmREYXRhIiwiaGFuZGxlRGVsZXRlQXR0YWNobWVudCIsImZpbGVJZCIsImhhbmRsZVdyYXBwZXJGb2N1cyIsImhhbmRsZVdyYXBwZXJCbHVyIiwiX3dyYXBwZXJSZWYkY3VycmVudDIiLCJhY3RpdmVFbGVtZW50IiwiaGFuZGxlU3RvcEdlbmVyYXRpb24iLCJhaUNoYXRTdG9wUmVzcG9uc2UiLCJwbHVzSWNvbkNvbG9yIiwic2Vjb25kYXJ5IiwibWVkaXVtR3JheSIsInBsdXNNZW51SWNvbkNvbG9yIiwibWVudUljb24iLCJwbHVzTWVudVNlbGVjdGVkQ29sb3IiLCJ0ZXh0QnJhbmRCb2xkIiwiYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiIsImNvbG9yIiwiY2hpcENsb3NlSWNvbiIsIndpZHRoIiwiaGVpZ2h0IiwiY2hpbGRyZW4iLCJyZWYiLCJoYXNBdHRhY2htZW50cyIsIiRmaWxlRHJhZ0FjdGl2ZSIsIm9uRm9jdXMiLCJvbkJsdXIiLCJvblBhc3RlIiwib25EcmFnRW50ZXIiLCJvbkRyYWdMZWF2ZSIsIm9uRHJhZ092ZXIiLCJvbkRyb3AiLCJvblNlbGVjdCIsIm9uQ2xvc2UiLCJzdHlsZSIsImRpc3BsYXkiLCJnYXAiLCJhbGlnbkl0ZW1zIiwibWFwIiwiYXR0YWNobWVudCIsImluZGV4IiwiX2ZpbGVOYW1lUGFydHMkcG9wMiIsIl9hdHRhY2htZW50JHR5cGUiLCJpc0ltYWdlQnlFeHRlbnNpb24iLCJpc0ltYWdlQnlNaW1lIiwic3RhcnRzV2l0aCIsImlzSW1hZ2UiLCJ6SW5kZXgiLCJpY29uIiwib25DbGljayIsIiRjb21wYWN0Um93IiwiJG1lbnVPcGVuIiwib3BlbiIsImFuY2hvckVsIiwiYW5jaG9yT3JpZ2luIiwidmVydGljYWwiLCJob3Jpem9udGFsIiwidHJhbnNmb3JtT3JpZ2luIiwic3giLCJzbG90UHJvcHMiLCJwYXBlciIsImVsZXZhdGlvbiIsIm92ZXJmbG93IiwiYm9yZGVyUmFkaXVzIiwiYm94U2hhZG93IiwiYmFja2dyb3VuZENvbG9yIiwibWFyZ2luVG9wIiwiJHNlbGVjdGVkIiwiJGhvdmVyZWQiLCIkZXhpdGluZyIsIm9uTW91c2VFbnRlciIsIm9uTW91c2VMZWF2ZSIsIiRjbG9zZVNob3duIiwiZ3JpZENvbHVtbiIsImdyaWRSb3ciLCJtaW5XaWR0aCIsImFsaWduU2VsZiIsIm9uSW5wdXQiLCJvbktleURvd24iLCJvblBhc3RlRmlsZXMiLCJoYXNWYWx1ZXMiLCJtdWx0aXBsZSIsImFjY2VwdCIsImJvZHkiXSwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9hdG9tcy9NQUlBSW5wdXQvTUFJQUlucHV0LnRzeCJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1yZXN0cmljdGVkLXN5bnRheCAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tY29udGludWUgKi9cbi8qIGVzbGludC1kaXNhYmxlIG5vLXZvaWQgKi9cbi8qIGVzbGludC1kaXNhYmxlIHJlYWN0L25vLWFycmF5LWluZGV4LWtleSAqL1xuLyogZXNsaW50LWRpc2FibGUgbm8tbG9uZWx5LWlmICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG4vKiBlc2xpbnQtZGlzYWJsZSBwcmVmZXItZGVzdHJ1Y3R1cmluZyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvY2xpY2stZXZlbnRzLWhhdmUta2V5LWV2ZW50cyAqL1xuLyogZXNsaW50LWRpc2FibGUganN4LWExMXkvbm8tc3RhdGljLWVsZW1lbnQtaW50ZXJhY3Rpb25zICovXG5pbXBvcnQge1xuICBDaGFuZ2VFdmVudCxcbiAgQ2xpcGJvYXJkRXZlbnQsXG4gIERyYWdFdmVudCxcbiAgS2V5Ym9hcmRFdmVudCxcbiAgTW91c2VFdmVudCxcbiAgUmVhY3ROb2RlLFxuICBNdXRhYmxlUmVmT2JqZWN0LFxuICB1c2VDYWxsYmFjayxcbiAgdXNlRWZmZWN0LFxuICB1c2VNZW1vLFxuICB1c2VSZWYsXG4gIHVzZVN0YXRlLFxufSBmcm9tICdyZWFjdCdcbmltcG9ydCB7IGNyZWF0ZVBvcnRhbCB9IGZyb20gJ3JlYWN0LWRvbSdcbmltcG9ydCB7IFBvcG92ZXIgfSBmcm9tICdAbXVpL21hdGVyaWFsJ1xuaW1wb3J0IHsgUGFwZXJQbGFuZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL1BhcGVyUGxhbmUnXG5pbXBvcnQgeyBBdHRhY2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9BdHRhY2gnXG5pbXBvcnQgeyBHbG9iZSB9IGZyb20gJ0Bwcm9qZWN0Y29yL2ljb25zL2xpYi9jb21wb25lbnRzL0dsb2JlJ1xuaW1wb3J0IHsgVHJhc2ggfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9UcmFzaCdcbmltcG9ydCB7IFBsdXMgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9QbHVzJ1xuaW1wb3J0IHsgQ2hlY2sgfSBmcm9tICdAcHJvamVjdGNvci9pY29ucy9saWIvY29tcG9uZW50cy9DaGVjaydcbmltcG9ydCB7IENyb3NzIH0gZnJvbSAnQHByb2plY3Rjb3IvaWNvbnMvbGliL2NvbXBvbmVudHMvQ3Jvc3MnXG5pbXBvcnQgeyBUb29sdGlwIH0gZnJvbSAnQHByb2plY3Rjb3IvdG9vbHRpcHYyL2xpYi9jb21wb25lbnRzL1Rvb2x0aXAnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcblxuaW1wb3J0IHtcbiAgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uLFxuICBBY3RpdmVUb29sQ2hpcExhYmVsLFxuICBBY3RpdmVUb29sQ2hpcFJvb3QsXG4gIFBsdXNNZW51RGl2aWRlcixcbiAgUGx1c01lbnVJbm5lckNvbHVtbixcbiAgUGx1c01lbnVJdGVtQnV0dG9uLFxuICBQbHVzTWVudUl0ZW1MYWJlbCxcbiAgUGx1c01lbnVQYXBlcixcbiAgUGx1c01lbnVUb29sc1JvdyxcbiAgUGx1c1RvZ2dsZUJ1dHRvbixcbiAgU0NNSUF0dGFjaG1lbnQsXG4gIFNDTUlBdHRhY2htZW50RGVsZXRlSWNvbixcbiAgU3R5bGVkTUFJQUlucHV0V3JhcHBlcixcbiAgU3R5bGVkTUFJQVNlbmRCdXR0b24sXG4gIFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQsXG4gIFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwsXG4gIFN0eWxlZE1BSUFTdG9wQnV0dG9uLFxuICBTdHlsZWRNQUlBU3RvcEljb24sXG4gIFN0eWxlZE1BSUFEcm9wT3ZlcmxheSxcbn0gZnJvbSAnLi9zdHlsZXMnXG5pbXBvcnQgeyB1c2VHbG9iYWxDb250ZXh0IH0gZnJvbSAnLi4vLi4vLi4vY29udGV4dC9nbG9iYWwtY29udGV4dCdcbmltcG9ydCB7IE1vZGFsRmlsZUV4Y2VlZHMgfSBmcm9tICcuLi8uLi9vcmdhbmlzbXMvTW9kYWxGaWxlRXhjZWVkcydcbmltcG9ydCB7IFNsYXNoQ29tbWFuZERyb3Bkb3duIH0gZnJvbSAnLi4vU2xhc2hDb21tYW5kRHJvcGRvd24nXG5pbXBvcnQgeyB1c2VTbGFzaENvbW1hbmRzIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlU2xhc2hDb21tYW5kcydcbmltcG9ydCB7IHJlc29sdmVRdWlja0FjdGlvblR5cGUgfSBmcm9tICcuLi8uLi8uLi91dGlscy9ob3Vyc1BsYW5uZXJRdWlja0FjdGlvblR5cGUnXG5pbXBvcnQgdHlwZSB7IEFjdGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL0FjdGlvbidcbmltcG9ydCB7IHVzZVQgfSBmcm9tICcuLi8uLi8uLi9ob29rcy91c2VUJ1xuaW1wb3J0IHsgVGVsZXNjb3BlSWNvbiB9IGZyb20gJy4uL2ljb25zL1RlbGVzY29wZUljb24nXG5pbXBvcnQgeyBFVkVOVFMsIHVzZUV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlRXZlbnQnXG5pbXBvcnQgeyBnZXRDaGF0VG9vbHNNZW51QWdlbnRUeXBlIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMvaGl0bEFuYWx5dGljcydcbmltcG9ydCB7IE1BSUFfQ0hBVF9JTlBVVF9VSSB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9jb25maWcnXG5pbXBvcnQge1xuICBhbGxvd2VkRmlsZVR5cGVzLFxuICBmaWxlVHlwZXMsXG4gIE1BWF9GSUxFX1NJWkVfTUJfTUFJQV9WSVNJT04sXG4gIE1BWF9GSUxFX1NJWkVfTUJfT0xELFxuICBNQVhfRklMRV9TSVpFX01CX0FVRElPLFxuICBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUyxcbn0gZnJvbSAnLi4vLi4vLi4vY29uc3RhbnRzL2Zvcm1hdEV4dGVuc2lvbnMnXG5pbXBvcnQgeyBBUFBDVUVTX0VWRU5UUywgdHJhY2tBcHBjdWVzRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9hcHBjdWVzJ1xuaW1wb3J0IHsgQ29udGV4dE1lbnRpb25FZGl0b3IsIENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlIH0gZnJvbSAnLi4vQ29udGV4dE1lbnRpb25FZGl0b3InXG5pbXBvcnQgeyB1c2VNYWlhVGFza1BhbmVsWkluZGV4IH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWFpYVRhc2tQYW5lbFpJbmRleCdcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBpbXBvcnQvbm8tY3ljbGVcbmltcG9ydCB7IHVzZU1lbnRpb25Qb3BvdmVyIH0gZnJvbSAnLi4vLi4vLi4vaG9va3MvdXNlTWVudGlvblBvcG92ZXInXG5pbXBvcnQgeyBDb250ZXh0TWVudGlvbiB9IGZyb20gJy4uLy4uLy4uL3R5cGVzL2NvbnRleHRNZW50aW9uJ1xuaW1wb3J0IHsgZGF0YVRyYW5zZmVySGFzRmlsZXMsIGZpbGVzRnJvbURhdGFUcmFuc2ZlciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzL2NoYXRJbnB1dEZpbGVzJ1xuXG5jb25zdCBUT09MX0NISVBfRVhJVF9NUyA9IDIyMFxuXG50eXBlIEF0dGFjaG1lbnRGaWxlID0ge1xuICBmaWxlOiBGaWxlXG4gIG9yaWdpbmFsRmlsZT86IEZpbGVcbiAgaWQ6IHN0cmluZ1xuICBuYW1lOiBzdHJpbmdcbiAgc2l6ZTogbnVtYmVyXG4gIHR5cGU6IHN0cmluZ1xuICBpY29uPzogUmVhY3ROb2RlXG59XG5cbnR5cGUgTUFJQUlucHV0UHJvcHMgPSB7XG4gIGNsYXNzTmFtZT86IHN0cmluZ1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgb25TZW5kTWVzc2FnZTogKFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW10sXG4gICAgbWVudGlvbnM/OiBDb250ZXh0TWVudGlvbltdLFxuICAgIGZhcUlkPzogc3RyaW5nLFxuICAgIGFnZW50U3VnZ2VzdGlvbklkPzogc3RyaW5nLFxuICAgIGZ1YUlkPzogc3RyaW5nLFxuICAgIHNjSWQ/OiBzdHJpbmdcbiAgKSA9PiB2b2lkXG4gIG9uU3RvcEdlbmVyYXRpb24/OiAoKCkgPT4gdm9pZCkgfCBudWxsXG4gIGlzU3RyZWFtaW5nPzogYm9vbGVhblxuICBpc1dyaXRpbmc/OiBib29sZWFuXG4gIHBsYWNlaG9sZGVyPzogc3RyaW5nXG4gIG9uQ2hhbmdlPzogKCkgPT4gdm9pZFxuICBhbGlnbkJ1dHRvbnM/OiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnXG4gIG9uRmlsZUF0dGFjaD86IChmaWxlOiBGaWxlKSA9PiB2b2lkXG4gIG9uRGVsZXRlQXR0YWNobWVudD86IChmaWxlSWQ6IHN0cmluZykgPT4gdm9pZFxuICBhdHRhY2htZW50cz86IEF0dGFjaG1lbnRGaWxlW11cbiAgY2hhdElkPzogc3RyaW5nXG4gIG5ld0NoYXRLZXk/OiBudW1iZXJcbiAgdG9vbHRpcFpJbmRleD86IG51bWJlclxuICAvKiogRXhwb25lIGVsIHdyYXBwZXIgZGVsIGlucHV0IHBhcmEgYW5jbGFyIHBvcG92ZXJzIChtZW5jaW9uZXMsIHBpbiBkZSBjb250ZXh0bykuICovXG4gIHBvcG92ZXJBbmNob3JSZWY/OiBNdXRhYmxlUmVmT2JqZWN0PEhUTUxEaXZFbGVtZW50IHwgbnVsbD5cbiAgbGF5b3V0TW9kZT86ICdzaWRlYmFyJyB8ICdmdWxsc2NyZWVuJyB8ICdmbG9hdGluZydcbn1cblxuZXhwb3J0IGNvbnN0IE1BSUFJbnB1dCA9ICh7XG4gIG9uU2VuZE1lc3NhZ2UsXG4gIGNsYXNzTmFtZSxcbiAgZGlzYWJsZWQsXG4gIGlzU3RyZWFtaW5nLFxuICBpc1dyaXRpbmcsXG4gIG9uU3RvcEdlbmVyYXRpb24sXG4gIHBsYWNlaG9sZGVyLFxuICBvbkNoYW5nZSxcbiAgYWxpZ25CdXR0b25zID0gJ3ZlcnRpY2FsJyxcbiAgb25GaWxlQXR0YWNoLFxuICBvbkRlbGV0ZUF0dGFjaG1lbnQsXG4gIGF0dGFjaG1lbnRzID0gW10sXG4gIGNoYXRJZCxcbiAgbmV3Q2hhdEtleSxcbiAgdG9vbHRpcFpJbmRleCxcbiAgcG9wb3ZlckFuY2hvclJlZjogZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmLFxuICBsYXlvdXRNb2RlLFxufTogTUFJQUlucHV0UHJvcHMpID0+IHtcbiAgY29uc3QgeyB0IH0gPSB1c2VUKClcbiAgY29uc3QgZWRpdG9yUmVmID0gdXNlUmVmPENvbnRleHRNZW50aW9uRWRpdG9ySGFuZGxlPihudWxsKVxuICBjb25zdCBmaWxlSW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbClcbiAgY29uc3QgaW50ZXJuYWxXcmFwcGVyUmVmID0gdXNlUmVmPEhUTUxEaXZFbGVtZW50PihudWxsKVxuICBjb25zdCB3cmFwcGVyUmVmID0gZXh0ZXJuYWxQb3BvdmVyQW5jaG9yUmVmID8/IGludGVybmFsV3JhcHBlclJlZlxuICBjb25zdCBbaGFzV3JhcHBlZFRvU2Vjb25kTGluZSwgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2hhc1R5cGluZ1ByZXNlbmNlLCBzZXRIYXNUeXBpbmdQcmVzZW5jZV0gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRm9jdXNlZCwgc2V0SXNGb2N1c2VkXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbbW9kYWxQcm9wcywgc2V0TW9kYWxQcm9wc10gPSB1c2VTdGF0ZSh7XG4gICAgaXNPcGVuOiBmYWxzZSxcbiAgICBleGNsdWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBleGNlZWRlZEZpbGVzOiBbXSBhcyBzdHJpbmdbXSxcbiAgICBmaWxlU2l6ZXM6IHt9IGFzIFJlY29yZDxzdHJpbmcsIG51bWJlcj4sXG4gIH0pXG4gIGNvbnN0IGV2ZW50QW1wbGl0dWRlID0gdXNlRXZlbnQoKVxuICBjb25zdCB7XG4gICAgdG9nZ2xlV2ViU2VhcmNoLFxuICAgIGlzV2ViU2VhcmNoQWN0aXZlLFxuICAgIHRvZ2dsZURlZXBTZWFyY2gsXG4gICAgaXNEZWVwU2VhcmNoQWN0aXZlLFxuICAgIGFnZW50LFxuICAgIGluaXRpYWxEcmFmdCxcbiAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLFxuICB9ID0gdXNlR2xvYmFsQ29udGV4dCgpXG4gIGNvbnN0IHBsdXNNZW51WkluZGV4ID0gdXNlTWFpYVRhc2tQYW5lbFpJbmRleCgxMzAwLCAnb3ZlcmxheScpXG4gIGNvbnN0IGluaXRpYWxEcmFmdEFwcGxpZWRSZWYgPSB1c2VSZWYoZmFsc2UpXG5cbiAgY29uc3Qge1xuICAgIHBvcG92ZXJPcGVuLFxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZyxcbiAgICBoYW5kbGVUcmlnZ2VyLFxuICAgIGhhbmRsZUtleURvd246IGhhbmRsZVBvcG92ZXJLZXlEb3duLFxuICAgIHBvcG92ZXJOb2RlLFxuICB9ID0gdXNlTWVudGlvblBvcG92ZXIoe1xuICAgIGVkaXRvclJlZixcbiAgICBwb3BvdmVyQW5jaG9yUmVmOiB3cmFwcGVyUmVmLFxuICB9KVxuXG4gIGNvbnN0IFtwbHVzTWVudUFuY2hvciwgc2V0UGx1c01lbnVBbmNob3JdID0gdXNlU3RhdGU8SFRNTEJ1dHRvbkVsZW1lbnQgfCBudWxsPihudWxsKVxuICBjb25zdCBbYWN0aXZlVG9vbENoaXBIb3ZlcmVkLCBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWRdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IFt0b29sQ2hpcEV4aXRpbmcsIHNldFRvb2xDaGlwRXhpdGluZ10gPSB1c2VTdGF0ZShmYWxzZSlcbiAgY29uc3QgW2lzRmlsZURyYWdBY3RpdmUsIHNldElzRmlsZURyYWdBY3RpdmVdID0gdXNlU3RhdGUoZmFsc2UpXG4gIGNvbnN0IHRvb2xDaGlwRXhpdFRpbWVyUmVmID0gdXNlUmVmPFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbD4obnVsbClcbiAgY29uc3QgZmlsZURyYWdDb3VudGVyUmVmID0gdXNlUmVmKDApXG4gIGNvbnN0IHNlYXJjaE1vZGVBY3RpdmVSZWYgPSB1c2VSZWYoeyB3ZWI6IGZhbHNlLCBkZWVwOiBmYWxzZSB9KVxuICBjb25zdCBwbHVzTWVudU9wZW4gPSBCb29sZWFuKHBsdXNNZW51QW5jaG9yKVxuXG4gIC8vIEluaWNpYWxpemFyIGxhcyByZWZlcmVuY2lhcyBjb21vIHVuZGVmaW5lZCBwYXJhIGRldGVjdGFyIGVsIHByaW1lciBjYW1iaW8gY29ycmVjdGFtZW50ZVxuICBjb25zdCBwcmV2aW91c0FnZW50SWRSZWYgPSB1c2VSZWY8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzQ2hhdElkUmVmID0gdXNlUmVmPHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKVxuICBjb25zdCBwcmV2aW91c05ld0NoYXRLZXlSZWYgPSB1c2VSZWY8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpXG4gIGNvbnN0IHByZXZpb3VzTGF5b3V0TW9kZVJlZiA9IHVzZVJlZjxNQUlBSW5wdXRQcm9wc1snbGF5b3V0TW9kZSddPih1bmRlZmluZWQpXG5cbiAgY29uc3QgYW5hbHl0aWNzQWdlbnRUeXBlID0gZ2V0Q2hhdFRvb2xzTWVudUFnZW50VHlwZShhZ2VudClcbiAgY29uc3QgYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkID0gYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgPyB7IGVudGl0eTogYWdlbnQuZW50aXR5ID8/IG51bGwgfSA6IHt9XG5cbiAgLy8gU2xhc2ggY29tbWFuZHMgYXBsaWNhbiBhIGNsb25lcyBlc3BlY2lhbGlzdGFzIHkgYWwgb3JjaGVzdHJhdG9yIGdsb2JhbCAoZXN0ZSBhZ3JlZ2EgbG9zIGRlIHN1cyBzdWJhZ2VudGVzKS5cbiAgLy8gTG9zIGN1c3RvbSB5IGxvcyBjbG9uZSBnbG9iYWwvbWFpYWtlciBubyBsb3MgdGllbmVuIGhhYmlsaXRhZG9zLlxuICBjb25zdCB7IGNvbW1hbmRzOiBzbGFzaENvbW1hbmRzIH0gPSB1c2VTbGFzaENvbW1hbmRzKFxuICAgIChhZ2VudD8udHlwZSA9PT0gJ29yY2hlc3RyYXRvcicgJiYgYWdlbnQ/LmVudGl0eSA9PT0gJ2dsb2JhbCcpIHx8XG4gICAgICAoYWdlbnQ/LnR5cGUgPT09ICdjbG9uZScgJiYgYWdlbnQ/LmVudGl0eSAhPT0gJ2dsb2JhbCcpXG4gICAgICA/IGFnZW50Py5pZFxuICAgICAgOiB1bmRlZmluZWRcbiAgKVxuICBjb25zdCBbc2hvd1NsYXNoRHJvcGRvd24sIHNldFNob3dTbGFzaERyb3Bkb3duXSA9IHVzZVN0YXRlKGZhbHNlKVxuICBjb25zdCBbc2xhc2hRdWVyeSwgc2V0U2xhc2hRdWVyeV0gPSB1c2VTdGF0ZSgnJylcbiAgY29uc3Qgc2xhc2hNZW51V2FzT3BlblJlZiA9IHVzZVJlZihmYWxzZSlcblxuICAvKiogVHJhcyBlbGVnaXIgbyBxdWl0YXIgYsO6c3F1ZWRhIHdlYi9wcm9mdW5kYTogdm9sdmVyIGFsIHRleHRhcmVhIChQb3BvdmVyL21lbnUgcHVlZGUgcm9iYXIgZm9jbykuICovXG4gIGNvbnN0IHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbiA9ICgpID0+IHtcbiAgICBpZiAoZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgd2luZG93LnNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSwgMClcbiAgICB9KVxuICB9XG5cbiAgY29uc3QgY2xvc2VQbHVzTWVudSA9ICgpID0+IHtcbiAgICBzZXRQbHVzTWVudUFuY2hvcihudWxsKVxuICB9XG5cbiAgY29uc3QgY2FuY2VsUGVuZGluZ1Rvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgY2xlYXJUaW1lb3V0KHRvb2xDaGlwRXhpdFRpbWVyUmVmLmN1cnJlbnQpXG4gICAgICB0b29sQ2hpcEV4aXRUaW1lclJlZi5jdXJyZW50ID0gbnVsbFxuICAgIH1cbiAgICBzZXRUb29sQ2hpcEV4aXRpbmcoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzQnV0dG9uQ2xpY2sgPSAoZTogTW91c2VFdmVudDxIVE1MQnV0dG9uRWxlbWVudD4pID0+IHtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKHBsdXNNZW51QW5jaG9yKSB7XG4gICAgICBjbG9zZVBsdXNNZW51KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBzZXRQbHVzTWVudUFuY2hvcihlLmN1cnJlbnRUYXJnZXQpXG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFBsdXNPcGVuLCB7IGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSwgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkIH0pXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudUF0dGFjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ2ZpbGVzJyxcbiAgICAgIC4uLmFuYWx5dGljc0Nsb25lRW50aXR5UGF5bG9hZCxcbiAgICB9KVxuICAgIGlmIChhdHRhY2htZW50cy5sZW5ndGggPj0gTUFYX0NIQVRfSU5QVVRfQVRUQUNITUVOVFMpIHJldHVyblxuICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50Py5jbGljaygpXG4gIH1cblxuICBjb25zdCBiZWdpblRvb2xDaGlwRXhpdCA9ICgpID0+IHtcbiAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuXG4gICAgfVxuICAgIGNvbnN0IHdhc1dlYiA9IGlzV2ViU2VhcmNoQWN0aXZlXG4gICAgY29uc3Qgd2FzRGVlcCA9IGlzRGVlcFNlYXJjaEFjdGl2ZVxuICAgIGlmICghd2FzV2ViICYmICF3YXNEZWVwKSB7XG4gICAgICByZXR1cm5cbiAgICB9XG4gICAgc2V0VG9vbENoaXBFeGl0aW5nKHRydWUpXG4gICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCA9IG51bGxcbiAgICAgIGNvbnN0IHsgd2ViLCBkZWVwIH0gPSBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnRcbiAgICAgIGlmICh3YXNXZWIgJiYgd2ViKSB7XG4gICAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgICB9IGVsc2UgaWYgKHdhc0RlZXAgJiYgZGVlcCkge1xuICAgICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICAgIH1cbiAgICAgIHNldFRvb2xDaGlwRXhpdGluZyhmYWxzZSlcbiAgICAgIHNjaGVkdWxlSW5wdXRGb2N1c0FmdGVyVG9vbEFjdGlvbigpXG4gICAgfSwgVE9PTF9DSElQX0VYSVRfTVMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVQbHVzTWVudVdlYlNlYXJjaCA9ICgpID0+IHtcbiAgICBjbG9zZVBsdXNNZW51KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICB0b2dnbGVEZWVwU2VhcmNoKClcbiAgICB9XG4gICAgdG9nZ2xlV2ViU2VhcmNoKClcbiAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0VG9vbHMsIHtcbiAgICAgIGFnZW50X3R5cGU6IGFuYWx5dGljc0FnZW50VHlwZSxcbiAgICAgIG9wdGlvbjogJ3NlYXJjaCcsXG4gICAgICAuLi5hbmFseXRpY3NDbG9uZUVudGl0eVBheWxvYWQsXG4gICAgfSlcbiAgICBzY2hlZHVsZUlucHV0Rm9jdXNBZnRlclRvb2xBY3Rpb24oKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGx1c01lbnVEZWVwU2VhcmNoID0gKCkgPT4ge1xuICAgIGNsb3NlUGx1c01lbnUoKVxuICAgIGlmIChpc0RlZXBTZWFyY2hBY3RpdmUpIHtcbiAgICAgIGJlZ2luVG9vbENoaXBFeGl0KClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBjYW5jZWxQZW5kaW5nVG9vbENoaXBFeGl0KClcbiAgICBpZiAoaXNXZWJTZWFyY2hBY3RpdmUpIHtcbiAgICAgIHRvZ2dsZVdlYlNlYXJjaCgpXG4gICAgfVxuICAgIHRvZ2dsZURlZXBTZWFyY2goKVxuICAgIGV2ZW50QW1wbGl0dWRlKEVWRU5UUy5haUNoYXRUb29scywge1xuICAgICAgYWdlbnRfdHlwZTogYW5hbHl0aWNzQWdlbnRUeXBlLFxuICAgICAgb3B0aW9uOiAnZGVlcF9zZWFyY2gnLFxuICAgICAgLi4uYW5hbHl0aWNzQ2xvbmVFbnRpdHlQYXlsb2FkLFxuICAgIH0pXG4gICAgc2NoZWR1bGVJbnB1dEZvY3VzQWZ0ZXJUb29sQWN0aW9uKClcbiAgfVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFkaXNhYmxlZCkge1xuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmZvY3VzKClcbiAgICB9XG4gIH0sIFtkaXNhYmxlZF0pXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBkcmFmdCA9IGluaXRpYWxEcmFmdD8udHJpbSgpXG4gICAgaWYgKCFkcmFmdCB8fCBpbml0aWFsRHJhZnRBcHBsaWVkUmVmLmN1cnJlbnQgfHwgZGlzYWJsZWQpIHtcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBpbml0aWFsRHJhZnRBcHBsaWVkUmVmLmN1cnJlbnQgPSB0cnVlXG4gICAgaWYgKGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYpIHtcbiAgICAgIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWYuY3VycmVudCA9IHRydWVcbiAgICB9XG4gICAgZWRpdG9yUmVmLmN1cnJlbnQ/LnNldFBsYWluVGV4dChkcmFmdClcbiAgICBzZXRIYXNUeXBpbmdQcmVzZW5jZSh0cnVlKVxuICAgIGlmICghZGlzYWJsZWQpIHtcbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgfVxuICB9LCBbaW5pdGlhbERyYWZ0LCBkaXNhYmxlZCwgZGVlcExpbmtTZW5kUGVuZGluZ1JlZl0pXG5cbiAgY29uc3QgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXIgPSB1c2VNZW1vKFxuICAgICgpID0+IGF0dGFjaG1lbnRzLmxlbmd0aCA9PT0gMCAmJiAhaXNXZWJTZWFyY2hBY3RpdmUgJiYgIWlzRGVlcFNlYXJjaEFjdGl2ZSAmJiAhaGFzV3JhcHBlZFRvU2Vjb25kTGluZSxcbiAgICBbYXR0YWNobWVudHMubGVuZ3RoLCBpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlLCBoYXNXcmFwcGVkVG9TZWNvbmRMaW5lXVxuICApXG5cbiAgY29uc3Qgc2VuZERpc2FibGVkID0gdXNlTWVtbyhcbiAgICAoKSA9PiAhaGFzVHlwaW5nUHJlc2VuY2UgJiYgYXR0YWNobWVudHMubGVuZ3RoID09PSAwLFxuICAgIFtoYXNUeXBpbmdQcmVzZW5jZSwgYXR0YWNobWVudHMubGVuZ3RoXVxuICApXG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBzZWFyY2hNb2RlQWN0aXZlUmVmLmN1cnJlbnQgPSB7IHdlYjogaXNXZWJTZWFyY2hBY3RpdmUsIGRlZXA6IGlzRGVlcFNlYXJjaEFjdGl2ZSB9XG4gIH0sIFtpc1dlYlNlYXJjaEFjdGl2ZSwgaXNEZWVwU2VhcmNoQWN0aXZlXSlcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudCAhPT0gbnVsbCkge1xuICAgICAgICBjbGVhclRpbWVvdXQodG9vbENoaXBFeGl0VGltZXJSZWYuY3VycmVudClcbiAgICAgIH1cbiAgICB9XG4gIH0sIFtdKVxuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFpc1dlYlNlYXJjaEFjdGl2ZSAmJiAhaXNEZWVwU2VhcmNoQWN0aXZlKSB7XG4gICAgICBzZXRBY3RpdmVUb29sQ2hpcEhvdmVyZWQoZmFsc2UpXG4gICAgfVxuICB9LCBbaXNXZWJTZWFyY2hBY3RpdmUsIGlzRGVlcFNlYXJjaEFjdGl2ZV0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGVsIGFnZW50ZSBvIGxhIGNvbnZlcnNhY2nDs24sIG8gYWwgbW9udGFyIGVsIGNvbXBvbmVudGVcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBhZ2VudENoYW5nZWQgPSBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCAhPT0gYWdlbnQ/LmlkXG4gICAgY29uc3QgcHJldmlvdXNDaGF0SWQgPSBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50XG4gICAgY29uc3QgY3VycmVudENoYXRJZCA9IGNoYXRJZFxuICAgIGNvbnN0IGNoYXRDaGFuZ2VkID0gcHJldmlvdXNDaGF0SWQgIT09IGN1cnJlbnRDaGF0SWRcbiAgICBjb25zdCBjaGFuZ2VkRnJvbU5ld0NoYXRUb09sZENoYXQgPVxuICAgICAgKHByZXZpb3VzQ2hhdElkID09PSB1bmRlZmluZWQgfHwgcHJldmlvdXNDaGF0SWQgPT09IG51bGwpICYmIGN1cnJlbnRDaGF0SWQgIT09IHVuZGVmaW5lZCAmJiBjdXJyZW50Q2hhdElkICE9PSBudWxsXG4gICAgY29uc3QgbmV3Q2hhdFN0YXJ0ZWQgPSBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCAhPT0gbmV3Q2hhdEtleVxuICAgIGNvbnN0IGlzSW5pdGlhbE1vdW50ID0gcHJldmlvdXNBZ2VudElkUmVmLmN1cnJlbnQgPT09IHVuZGVmaW5lZCAmJiBwcmV2aW91c0NoYXRJZFJlZi5jdXJyZW50ID09PSB1bmRlZmluZWRcblxuICAgIGlmICgoYWdlbnRDaGFuZ2VkIHx8IGNoYXRDaGFuZ2VkIHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCB8fCBuZXdDaGF0U3RhcnRlZCB8fCBpc0luaXRpYWxNb3VudCkgJiYgIWRpc2FibGVkKSB7XG4gICAgICBjb25zdCBkZWxheSA9IGlzSW5pdGlhbE1vdW50IHx8IGNoYW5nZWRGcm9tTmV3Q2hhdFRvT2xkQ2hhdCA/IDIwMCA6IDEwMFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmICghZGlzYWJsZWQpIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9LCBkZWxheSlcbiAgICB9XG5cbiAgICBwcmV2aW91c0FnZW50SWRSZWYuY3VycmVudCA9IGFnZW50Py5pZFxuICAgIHByZXZpb3VzQ2hhdElkUmVmLmN1cnJlbnQgPSBjaGF0SWRcbiAgICBwcmV2aW91c05ld0NoYXRLZXlSZWYuY3VycmVudCA9IG5ld0NoYXRLZXlcbiAgfSwgW2FnZW50Py5pZCwgY2hhdElkLCBuZXdDaGF0S2V5LCBkaXNhYmxlZF0pXG5cbiAgLy8gQXV0by1mb2N1cyBjdWFuZG8gY2FtYmlhIGxhIGRpc3Bvc2ljacOzbiBkZWwgbW9kYWwgKHNpZGViYXIgLyBmdWxsc2NyZWVuIC8gZmxvYXRpbmcpXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCFsYXlvdXRNb2RlKSB7XG4gICAgICByZXR1cm4gdW5kZWZpbmVkXG4gICAgfVxuXG4gICAgY29uc3QgcHJldmlvdXNMYXlvdXRNb2RlID0gcHJldmlvdXNMYXlvdXRNb2RlUmVmLmN1cnJlbnRcbiAgICBwcmV2aW91c0xheW91dE1vZGVSZWYuY3VycmVudCA9IGxheW91dE1vZGVcblxuICAgIGlmIChwcmV2aW91c0xheW91dE1vZGUgPT09IHVuZGVmaW5lZCB8fCBwcmV2aW91c0xheW91dE1vZGUgPT09IGxheW91dE1vZGUgfHwgZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgICB9XG5cbiAgICBjb25zdCB0aW1lb3V0SWQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoIWRpc2FibGVkKSB7XG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5mb2N1cygpXG4gICAgICB9XG4gICAgfSwgMjAwKVxuXG4gICAgcmV0dXJuICgpID0+IHdpbmRvdy5jbGVhclRpbWVvdXQodGltZW91dElkKVxuICB9LCBbbGF5b3V0TW9kZSwgZGlzYWJsZWRdKVxuXG4gIC8vIEFwcGN1ZXM6IG5vdGlmeSB0aGF0IHRoZSBpbnB1dCBpcyB2aXNpYmxlIGZvciBzcGVjaWFsaXN0IGFnZW50cyAoY2xvbmUgKyBwcm9qZWN0L2NsaWVudClcbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBjb25zdCBpc1NwZWNpYWxpc3RBZ2VudCA9IGFnZW50Py50eXBlID09PSAnY2xvbmUnICYmIChhZ2VudD8uZW50aXR5ID09PSAncHJvamVjdCcgfHwgYWdlbnQ/LmVudGl0eSA9PT0gJ2NsaWVudCcpXG4gICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQgfHwgIWlzU3BlY2lhbGlzdEFnZW50KSByZXR1cm4gdW5kZWZpbmVkXG5cbiAgICBjb25zdCBvYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25PYnNlcnZlcihcbiAgICAgIChbZW50cnldKSA9PiB7XG4gICAgICAgIGlmIChlbnRyeS5pc0ludGVyc2VjdGluZykge1xuICAgICAgICAgIHRyYWNrQXBwY3Vlc0V2ZW50KEFQUENVRVNfRVZFTlRTLm1haWFDb250ZXh0TWVudGlvbkluaXQpXG4gICAgICAgICAgb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IHRocmVzaG9sZDogMC4xIH1cbiAgICApXG5cbiAgICBvYnNlcnZlci5vYnNlcnZlKHdyYXBwZXJSZWYuY3VycmVudClcbiAgICByZXR1cm4gKCkgPT4gb2JzZXJ2ZXIuZGlzY29ubmVjdCgpXG4gIH0sIFthZ2VudD8uaWQsIGFnZW50Py50eXBlLCBhZ2VudD8uZW50aXR5XSlcblxuICAvLyBDbGVhciBpbnB1dCB3aGVuIHNlc3Npb24gY2hhbmdlcyAodXNlciBzd2l0Y2hlcyB0byBhIGRpZmZlcmVudCBjaGF0KVxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZVNlc3Npb25DaGFuZ2UgPSAoKSA9PiB7XG4gICAgICBpZiAoZGVlcExpbmtTZW5kUGVuZGluZ1JlZikge1xuICAgICAgICBkZWVwTGlua1NlbmRQZW5kaW5nUmVmLmN1cnJlbnQgPSBmYWxzZVxuICAgICAgfVxuICAgICAgZWRpdG9yUmVmLmN1cnJlbnQ/LmNsZWFyKClcbiAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gICAgfVxuXG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2hhdC1zZXNzaW9uLWNoYW5nZWQnLCBoYW5kbGVTZXNzaW9uQ2hhbmdlKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjaGF0LXNlc3Npb24tY2hhbmdlZCcsIGhhbmRsZVNlc3Npb25DaGFuZ2UpXG4gIH0sIFtyZXNldE1lbnRpb25PcGVuVHJhY2tpbmcsIGRlZXBMaW5rU2VuZFBlbmRpbmdSZWZdKVxuXG4gIC8vIE1hbnRlbmVyIGZvY28gYWwgc2VsZWNjaW9uYXIgdW4gY29udGV4dG8gcmVjaWVudGUgKGVsIGNsaWNrIGVuIGVsIHBpbGwgbG8gcm9iYSBhbCBpbnB1dCkuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgY29uc3QgaGFuZGxlUmVmb2N1cyA9ICgpID0+IHtcbiAgICAgIGlmIChkaXNhYmxlZCkgcmV0dXJuXG4gICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgICBlZGl0b3JSZWYuY3VycmVudD8uZm9jdXMoKVxuICAgICAgfSlcbiAgICB9XG5cbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdtYWlhLWlucHV0LXJlZm9jdXMnLCBoYW5kbGVSZWZvY3VzKVxuICAgIHJldHVybiAoKSA9PiBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdtYWlhLWlucHV0LXJlZm9jdXMnLCBoYW5kbGVSZWZvY3VzKVxuICB9LCBbZGlzYWJsZWRdKVxuXG4gIGNvbnN0IGhhbmRsZVNlbmRNZXNzYWdlID0gdXNlQ2FsbGJhY2soKCkgPT4ge1xuICAgIGNvbnN0IHN0YXRlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LnNlcmlhbGl6ZSgpXG4gICAgY29uc3QgdGV4dCA9IHN0YXRlPy50ZXh0ID8/ICcnXG4gICAgaWYgKCF0ZXh0LnRyaW0oKSAmJiAhYXR0YWNobWVudHMubGVuZ3RoKSByZXR1cm5cbiAgICBjb25zdCBtZW50aW9ucyA9IHN0YXRlPy5tZW50aW9ucyA/PyBbXVxuICAgIG9uU2VuZE1lc3NhZ2UodGV4dCwgYXR0YWNobWVudHMsIG1lbnRpb25zKVxuICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UoZmFsc2UpXG4gICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShmYWxzZSlcbiAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZygpXG4gIH0sIFthdHRhY2htZW50cywgb25TZW5kTWVzc2FnZSwgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nXSlcblxuICBjb25zdCBoYW5kbGVTZWxlY3RTbGFzaENvbW1hbmQgPSB1c2VDYWxsYmFjayhcbiAgICAoY29tbWFuZDogQWN0aW9uKSA9PiB7XG4gICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25TZWxlY3QsIHtcbiAgICAgICAgdHlwZV9xdWlja19hY3Rpb246IHJlc29sdmVRdWlja0FjdGlvblR5cGUoY29tbWFuZCksXG4gICAgICAgIG9yaWdpbl9xdWlja19hY3Rpb246ICdzbGFzaF9tZW51JyxcbiAgICAgIH0pXG5cbiAgICAgIGNvbnN0IHN0YXRlID0gZWRpdG9yUmVmLmN1cnJlbnQ/LnNlcmlhbGl6ZSgpXG4gICAgICBjb25zdCB0ZXh0ID0gc3RhdGU/LnRleHQgPz8gJydcbiAgICAgIGNvbnN0IHRyaWdnZXJQYXJ0ID0gYC8ke3NsYXNoUXVlcnl9YFxuICAgICAgY29uc3QgYmVmb3JlVHJpZ2dlciA9IHRleHQuZW5kc1dpdGgodHJpZ2dlclBhcnQpID8gdGV4dC5zbGljZSgwLCAtdHJpZ2dlclBhcnQubGVuZ3RoKSA6IHRleHRcbiAgICAgIGNvbnN0IGlzRW1wdHlCZWZvcmVUcmlnZ2VyID0gYmVmb3JlVHJpZ2dlci50cmltKCkgPT09ICcnXG5cbiAgICAgIGlmIChpc0VtcHR5QmVmb3JlVHJpZ2dlcikge1xuICAgICAgICBvblNlbmRNZXNzYWdlKGNvbW1hbmQudGl0bGUsIGF0dGFjaG1lbnRzLCB1bmRlZmluZWQsIHVuZGVmaW5lZCwgdW5kZWZpbmVkLCB1bmRlZmluZWQsIGNvbW1hbmQuaWQpXG4gICAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5jbGVhcigpXG4gICAgICAgIHNldEhhc1R5cGluZ1ByZXNlbmNlKGZhbHNlKVxuICAgICAgICBzZXRIYXNXcmFwcGVkVG9TZWNvbmRMaW5lKGZhbHNlKVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bihmYWxzZSlcbiAgICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgICAgICAgcmVzZXRNZW50aW9uT3BlblRyYWNraW5nKClcbiAgICAgICAgcmV0dXJuXG4gICAgICB9XG5cbiAgICAgIGVkaXRvclJlZi5jdXJyZW50Py5pbnNlcnRTbGFzaENvbW1hbmQoeyBpZDogY29tbWFuZC5pZCwgbGFiZWw6IGNvbW1hbmQudGl0bGUgfSlcbiAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgc2V0U2xhc2hRdWVyeSgnJylcbiAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgfSxcbiAgICBbYXR0YWNobWVudHMsIG9uU2VuZE1lc3NhZ2UsIHJlc2V0TWVudGlvbk9wZW5UcmFja2luZywgc2xhc2hRdWVyeSwgZXZlbnRBbXBsaXR1ZGVdXG4gIClcblxuICBjb25zdCBoYW5kbGVDbG9zZVNsYXNoRHJvcGRvd24gPSAoKSA9PiB7XG4gICAgc2V0U2hvd1NsYXNoRHJvcGRvd24oZmFsc2UpXG4gICAgc2xhc2hNZW51V2FzT3BlblJlZi5jdXJyZW50ID0gZmFsc2VcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZUVkaXRvcklucHV0ID0gdXNlQ2FsbGJhY2soXG4gICAgKHtcbiAgICAgIHRleHQsXG4gICAgICB0cmlnZ2VyLFxuICAgICAgc2xhc2hUcmlnZ2VyLFxuICAgIH06IHtcbiAgICAgIHRleHQ6IHN0cmluZ1xuICAgICAgbWVudGlvbnM6IENvbnRleHRNZW50aW9uW11cbiAgICAgIHRyaWdnZXI6IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nOyBhdFJ1bkxlbmd0aDogbnVtYmVyIH1cbiAgICAgIHNsYXNoVHJpZ2dlcj86IHsgYWN0aXZlOiBib29sZWFuOyBxdWVyeTogc3RyaW5nIH1cbiAgICB9KSA9PiB7XG4gICAgICBjb25zdCB2aXN1YWxNdWx0aWxpbmUgPSAhIWVkaXRvclJlZi5jdXJyZW50Py5oYXNWaXN1YWxNdWx0aWxpbmUoKVxuICAgICAgY29uc3QgZXhwbGljaXRNdWx0aWxpbmUgPSB0ZXh0LmluY2x1ZGVzKCdcXG4nKVxuICAgICAgY29uc3QgaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA9IHRleHQubGVuZ3RoIDw9IDEgJiYgIWV4cGxpY2l0TXVsdGlsaW5lICYmIHZpc3VhbE11bHRpbGluZVxuICAgICAgY29uc3Qgc3RhYmxlVmlzdWFsTXVsdGlsaW5lID0gaXNMaWtlbHlGaXJzdENoYXJNZWFzdXJlbWVudEdsaXRjaCA/IGZhbHNlIDogdmlzdWFsTXVsdGlsaW5lXG4gICAgICBjb25zdCBuZXh0SXNNdWx0aWxpbmUgPSBleHBsaWNpdE11bHRpbGluZSB8fCBzdGFibGVWaXN1YWxNdWx0aWxpbmVcbiAgICAgIGNvbnN0IG5leHRIYXNUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcbiAgICAgIGNvbnN0IG5leHRUeXBpbmdQcmVzZW5jZSA9IHRleHQudHJpbSgpLmxlbmd0aCA+IDBcblxuICAgICAgc2V0SGFzVHlwaW5nUHJlc2VuY2UobmV4dFR5cGluZ1ByZXNlbmNlKVxuICAgICAgc2V0SGFzV3JhcHBlZFRvU2Vjb25kTGluZShwcmV2ID0+IHtcbiAgICAgICAgbGV0IG5leHQgPSBwcmV2XG4gICAgICAgIGlmICghbmV4dEhhc1R5cGluZ1ByZXNlbmNlKSB7XG4gICAgICAgICAgbmV4dCA9IGZhbHNlXG4gICAgICAgIH0gZWxzZSBpZiAobmV4dElzTXVsdGlsaW5lKSB7XG4gICAgICAgICAgbmV4dCA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBuZXh0XG4gICAgICB9KVxuICAgICAgb25DaGFuZ2U/LigpXG4gICAgICBoYW5kbGVUcmlnZ2VyKHRyaWdnZXIpXG5cbiAgICAgIGlmIChzbGFzaFRyaWdnZXI/LmFjdGl2ZSAmJiBzbGFzaENvbW1hbmRzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgaWYgKCFzbGFzaE1lbnVXYXNPcGVuUmVmLmN1cnJlbnQpIHtcbiAgICAgICAgICBldmVudEFtcGxpdHVkZShFVkVOVFMuYWlDaGF0UXVpY2tBY3Rpb25PcGVuKVxuICAgICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IHRydWVcbiAgICAgICAgfVxuICAgICAgICBzZXRTaG93U2xhc2hEcm9wZG93bih0cnVlKVxuICAgICAgICBzZXRTbGFzaFF1ZXJ5KHNsYXNoVHJpZ2dlci5xdWVyeSlcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHNsYXNoTWVudVdhc09wZW5SZWYuY3VycmVudCA9IGZhbHNlXG4gICAgICAgIHNldFNob3dTbGFzaERyb3Bkb3duKGZhbHNlKVxuICAgICAgICBzZXRTbGFzaFF1ZXJ5KCcnKVxuICAgICAgfVxuICAgIH0sXG4gICAgW29uQ2hhbmdlLCBoYW5kbGVUcmlnZ2VyLCBzbGFzaENvbW1hbmRzLCBldmVudEFtcGxpdHVkZV1cbiAgKVxuXG4gIGNvbnN0IGhhbmRsZUtleURvd24gPSB1c2VDYWxsYmFjayhcbiAgICAoZTogS2V5Ym9hcmRFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICAgIGlmIChoYW5kbGVQb3BvdmVyS2V5RG93bihlKSkgcmV0dXJuXG4gICAgICBpZiAoZS5rZXkgPT09ICdFbnRlcicgJiYgIWUuc2hpZnRLZXkgJiYgIXBvcG92ZXJPcGVuKSB7XG4gICAgICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgICAgICBpZiAoIXNlbmREaXNhYmxlZCAmJiAhZGlzYWJsZWQpIGhhbmRsZVNlbmRNZXNzYWdlKClcbiAgICAgIH1cbiAgICB9LFxuICAgIFtoYW5kbGVQb3BvdmVyS2V5RG93biwgcG9wb3Zlck9wZW4sIHNlbmREaXNhYmxlZCwgZGlzYWJsZWQsIGhhbmRsZVNlbmRNZXNzYWdlXVxuICApXG5cbiAgY29uc3QgYWRkRmlsZXMgPSAoaW5jb21pbmc6IEZpbGVbXSkgPT4ge1xuICAgIGlmICghaW5jb21pbmcubGVuZ3RoIHx8IGRpc2FibGVkKSByZXR1cm5cblxuICAgIGNvbnN0IGV4Y2VlZGVkRmlsZXM6IHN0cmluZ1tdID0gW11cbiAgICBjb25zdCBleGNsdWRlZEZpbGVzOiBzdHJpbmdbXSA9IFtdXG4gICAgY29uc3QgZmlsZVNpemVzOiBSZWNvcmQ8c3RyaW5nLCBudW1iZXI+ID0ge31cbiAgICBsZXQgZmlsZXNJbnNlcnRlZCA9IGF0dGFjaG1lbnRzLmxlbmd0aFxuXG4gICAgY29uc3QgaXNOZXdGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+IFsnLnBuZycsICcuanBnJywgJy5qcGVnJywgJy5wZGYnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNPbGRGb3JtYXQgPSAoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICBbJy50eHQnLCAnLm1kJywgJy5jc3YnLCAnLmRvYycsICcuZG9jeCcsICcucHB0JywgJy5wcHR4JywgJy54bHN4JywgJy54bHMnXS5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgY29uc3QgaXNBdWRpb0Zvcm1hdCA9IChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgIFsnLmZsYWMnLCAnLm00YScsICcubXAzJywgJy5tcDQnLCAnLm9nYScsICcub2dnJywgJy53YXYnLCAnLndlYm0nXS5pbmNsdWRlcyhleHRlbnNpb24pXG5cbiAgICBpbmNvbWluZy5mb3JFYWNoKGZpbGUgPT4ge1xuICAgICAgbGV0IGV4Y2x1ZGVkRmlsZSA9IGZhbHNlXG4gICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gZmlsZS5uYW1lLnNwbGl0KCcuJylcbiAgICAgIGNvbnN0IGZpbGVFeHRlbnNpb24gPSBmaWxlTmFtZVBhcnRzLmxlbmd0aCA+IDEgPyBgLiR7ZmlsZU5hbWVQYXJ0cy5wb3AoKT8udG9Mb3dlckNhc2UoKX1gIDogJydcblxuICAgICAgaWYgKCFhbGxvd2VkRmlsZVR5cGVzPy5pbmNsdWRlcyhmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICByZXR1cm5cbiAgICAgIH1cblxuICAgICAgZmlsZVNpemVzW2ZpbGUubmFtZV0gPSBmaWxlLnNpemVcblxuICAgICAgaWYgKGlzTmV3Rm9ybWF0KGZpbGVFeHRlbnNpb24pKSB7XG4gICAgICAgIGlmIChmaWxlLnNpemUgPiBNQVhfRklMRV9TSVpFX01CX01BSUFfVklTSU9OICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNPbGRGb3JtYXQoZmlsZUV4dGVuc2lvbikpIHtcbiAgICAgICAgaWYgKGZpbGUuc2l6ZSA+IE1BWF9GSUxFX1NJWkVfTUJfT0xEICogMTAyNCAqIDEwMjQpIHtcbiAgICAgICAgICBleGNlZWRlZEZpbGVzLnB1c2goZmlsZS5uYW1lKVxuICAgICAgICAgIGV4Y2x1ZGVkRmlsZSA9IHRydWVcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChmaWxlc0luc2VydGVkICsgMSA+IE1BWF9DSEFUX0lOUFVUX0FUVEFDSE1FTlRTKSB7XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAoaXNBdWRpb0Zvcm1hdChmaWxlRXh0ZW5zaW9uKSkge1xuICAgICAgICBpZiAoZmlsZS5zaXplID4gTUFYX0ZJTEVfU0laRV9NQl9BVURJTyAqIDEwMjQgKiAxMDI0KSB7XG4gICAgICAgICAgZXhjZWVkZWRGaWxlcy5wdXNoKGZpbGUubmFtZSlcbiAgICAgICAgICBleGNsdWRlZEZpbGUgPSB0cnVlXG4gICAgICAgIH1cblxuICAgICAgICBpZiAoZmlsZXNJbnNlcnRlZCArIDEgPiBNQVhfQ0hBVF9JTlBVVF9BVFRBQ0hNRU5UUykge1xuICAgICAgICAgIGV4Y2x1ZGVkRmlsZXMucHVzaChmaWxlLm5hbWUpXG4gICAgICAgICAgZXhjbHVkZWRGaWxlID0gdHJ1ZVxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIGlmICghZXhjbHVkZWRGaWxlKSB7XG4gICAgICAgIGZpbGVzSW5zZXJ0ZWQgKz0gMVxuICAgICAgICBjb25zdCB0eXBlRmlsZSA9IGZpbGUudHlwZSB8fCBmaWxlVHlwZXNbZmlsZUV4dGVuc2lvbl1cbiAgICAgICAgY29uc3QgcGFyc2VkRmlsZSA9IG5ldyBGaWxlKFtmaWxlXSwgZmlsZS5uYW1lLCB7IHR5cGU6IHR5cGVGaWxlIH0pXG4gICAgICAgIG9uRmlsZUF0dGFjaD8uKHBhcnNlZEZpbGUpXG4gICAgICB9XG4gICAgfSlcblxuICAgIGlmIChleGNsdWRlZEZpbGVzLmxlbmd0aCB8fCBleGNlZWRlZEZpbGVzLmxlbmd0aCkge1xuICAgICAgc2V0TW9kYWxQcm9wcyh7IGlzT3BlbjogdHJ1ZSwgZXhjbHVkZWRGaWxlcywgZXhjZWVkZWRGaWxlcywgZmlsZVNpemVzIH0pXG4gICAgfVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRmlsZVNlbGVjdCA9IChlOiBDaGFuZ2VFdmVudDxIVE1MSW5wdXRFbGVtZW50PikgPT4ge1xuICAgIGNvbnN0IGZpbGVzID0gZS50YXJnZXQuZmlsZXNcbiAgICBpZiAoZmlsZXMpIHtcbiAgICAgIGFkZEZpbGVzKEFycmF5LmZyb20oZmlsZXMpKVxuICAgIH1cbiAgICBpZiAoZmlsZUlucHV0UmVmLmN1cnJlbnQpIHtcbiAgICAgIGZpbGVJbnB1dFJlZi5jdXJyZW50LnZhbHVlID0gJydcbiAgICB9XG4gIH1cblxuICBjb25zdCByZXNldEZpbGVEcmFnID0gKCkgPT4ge1xuICAgIGZpbGVEcmFnQ291bnRlclJlZi5jdXJyZW50ID0gMFxuICAgIHNldElzRmlsZURyYWdBY3RpdmUoZmFsc2UpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnRW50ZXIgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmICghZGF0YVRyYW5zZmVySGFzRmlsZXMoZS5kYXRhVHJhbnNmZXIpKSByZXR1cm5cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm5cbiAgICBmaWxlRHJhZ0NvdW50ZXJSZWYuY3VycmVudCArPSAxXG4gICAgc2V0SXNGaWxlRHJhZ0FjdGl2ZSh0cnVlKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlRHJhZ0xlYXZlID0gKGU6IERyYWdFdmVudDxIVE1MRGl2RWxlbWVudD4pID0+IHtcbiAgICBpZiAoIWlzRmlsZURyYWdBY3RpdmUgJiYgIWRhdGFUcmFuc2Zlckhhc0ZpbGVzKGUuZGF0YVRyYW5zZmVyKSkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIGZpbGVEcmFnQ291bnRlclJlZi5jdXJyZW50ID0gTWF0aC5tYXgoMCwgZmlsZURyYWdDb3VudGVyUmVmLmN1cnJlbnQgLSAxKVxuICAgIGlmIChmaWxlRHJhZ0NvdW50ZXJSZWYuY3VycmVudCA9PT0gMCkge1xuICAgICAgc2V0SXNGaWxlRHJhZ0FjdGl2ZShmYWxzZSlcbiAgICB9XG4gIH1cblxuICBjb25zdCBoYW5kbGVEcmFnT3ZlciA9IChlOiBEcmFnRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgaWYgKCFkYXRhVHJhbnNmZXJIYXNGaWxlcyhlLmRhdGFUcmFuc2ZlcikpIHJldHVyblxuICAgIGUucHJldmVudERlZmF1bHQoKVxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICBpZiAoZGlzYWJsZWQpIHJldHVyblxuICAgIGUuZGF0YVRyYW5zZmVyLmRyb3BFZmZlY3QgPSAnY29weSdcbiAgfVxuXG4gIGNvbnN0IGhhbmRsZURyb3AgPSAoZTogRHJhZ0V2ZW50PEhUTUxEaXZFbGVtZW50PikgPT4ge1xuICAgIGlmICghZGF0YVRyYW5zZmVySGFzRmlsZXMoZS5kYXRhVHJhbnNmZXIpKSB7XG4gICAgICByZXNldEZpbGVEcmFnKClcbiAgICAgIHJldHVyblxuICAgIH1cbiAgICBlLnByZXZlbnREZWZhdWx0KClcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpXG4gICAgcmVzZXRGaWxlRHJhZygpXG4gICAgaWYgKGRpc2FibGVkKSByZXR1cm5cbiAgICBhZGRGaWxlcyhmaWxlc0Zyb21EYXRhVHJhbnNmZXIoZS5kYXRhVHJhbnNmZXIpKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlUGFzdGVGaWxlcyA9IChmaWxlczogRmlsZVtdKSA9PiB7XG4gICAgYWRkRmlsZXMoZmlsZXMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVXcmFwcGVyUGFzdGUgPSAoZTogQ2xpcGJvYXJkRXZlbnQ8SFRNTERpdkVsZW1lbnQ+KSA9PiB7XG4gICAgY29uc3QgZWRpdG9yRWwgPSB3cmFwcGVyUmVmLmN1cnJlbnQ/LnF1ZXJ5U2VsZWN0b3IoJ1tjb250ZW50ZWRpdGFibGU9XCJ0cnVlXCJdJylcbiAgICBpZiAoZWRpdG9yRWwgJiYgZWRpdG9yRWwuY29udGFpbnMoZS50YXJnZXQgYXMgTm9kZSkpIHJldHVyblxuICAgIGNvbnN0IGZpbGVzID0gZmlsZXNGcm9tRGF0YVRyYW5zZmVyKGUuY2xpcGJvYXJkRGF0YSlcbiAgICBpZiAoIWZpbGVzLmxlbmd0aCkgcmV0dXJuXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpXG4gICAgYWRkRmlsZXMoZmlsZXMpXG4gIH1cblxuICBjb25zdCBoYW5kbGVEZWxldGVBdHRhY2htZW50ID0gKGZpbGVJZDogc3RyaW5nKSA9PiB7XG4gICAgb25EZWxldGVBdHRhY2htZW50Py4oZmlsZUlkKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlV3JhcHBlckZvY3VzID0gKCkgPT4gc2V0SXNGb2N1c2VkKHRydWUpXG4gIGNvbnN0IGhhbmRsZVdyYXBwZXJCbHVyID0gKCkgPT4ge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKCF3cmFwcGVyUmVmLmN1cnJlbnQ/LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpKSB7XG4gICAgICAgIHNldElzRm9jdXNlZChmYWxzZSlcbiAgICAgIH1cbiAgICB9LCAwKVxuICB9XG5cbiAgY29uc3QgaGFuZGxlU3RvcEdlbmVyYXRpb24gPSAoKSA9PiB7XG4gICAgZXZlbnRBbXBsaXR1ZGUoRVZFTlRTLmFpQ2hhdFN0b3BSZXNwb25zZSlcbiAgICBvblN0b3BHZW5lcmF0aW9uPy4oKVxuICB9XG5cbiAgY29uc3QgcGx1c0ljb25Db2xvciA9IGlzRm9jdXNlZCA/IGNvbG9ycy50ZXh0LnNlY29uZGFyeSA6IGNvbG9ycy50ZXh0Lm1lZGl1bUdyYXlcbiAgY29uc3QgcGx1c01lbnVJY29uQ29sb3IgPSBNQUlBX0NIQVRfSU5QVVRfVUkubWVudUljb25cbiAgY29uc3QgcGx1c01lbnVTZWxlY3RlZENvbG9yID0gTUFJQV9DSEFUX0lOUFVUX1VJLnRleHRCcmFuZEJvbGRcblxuICBsZXQgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbjogUmVhY3ROb2RlXG4gIGlmIChhY3RpdmVUb29sQ2hpcEhvdmVyZWQpIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPENyb3NzIGNvbG9yPXtNQUlBX0NIQVRfSU5QVVRfVUkuY2hpcENsb3NlSWNvbn0gd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICB9IGVsc2UgaWYgKGlzV2ViU2VhcmNoQWN0aXZlKSB7XG4gICAgYWN0aXZlVG9vbENoaXBMZWFkaW5nSWNvbiA9IDxHbG9iZSBjb2xvcj17cGx1c01lbnVJY29uQ29sb3J9IHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgfSBlbHNlIHtcbiAgICBhY3RpdmVUb29sQ2hpcExlYWRpbmdJY29uID0gPFRlbGVzY29wZUljb24gY29sb3I9e3BsdXNNZW51SWNvbkNvbG9yfSB3aWR0aD17MTh9IGhlaWdodD17MTh9IC8+XG4gIH1cblxuICByZXR1cm4gKFxuICAgIDw+XG4gICAgICA8U3R5bGVkTUFJQUlucHV0V3JhcHBlclxuICAgICAgICByZWY9e3dyYXBwZXJSZWZ9XG4gICAgICAgIGRpc2FibGVkPXtmYWxzZX1cbiAgICAgICAgYWxpZ25CdXR0b25zPXthbGlnbkJ1dHRvbnN9XG4gICAgICAgIGhhc0F0dGFjaG1lbnRzPXshIWF0dGFjaG1lbnRzLmxlbmd0aH1cbiAgICAgICAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfVxuICAgICAgICAkZmlsZURyYWdBY3RpdmU9e2lzRmlsZURyYWdBY3RpdmV9XG4gICAgICAgIGRhdGEtYXBwY3Vlcz1cIm1haWFfY2hhdF9pbnB1dFwiXG4gICAgICAgIGRhdGEtbWFpYS1zdHJlYW1pbmc9e2lzU3RyZWFtaW5nID8gJ3RydWUnIDogJ2ZhbHNlJ31cbiAgICAgICAgb25Gb2N1cz17aGFuZGxlV3JhcHBlckZvY3VzfVxuICAgICAgICBvbkJsdXI9e2hhbmRsZVdyYXBwZXJCbHVyfVxuICAgICAgICBvblBhc3RlPXtoYW5kbGVXcmFwcGVyUGFzdGV9XG4gICAgICAgIG9uRHJhZ0VudGVyPXtoYW5kbGVEcmFnRW50ZXJ9XG4gICAgICAgIG9uRHJhZ0xlYXZlPXtoYW5kbGVEcmFnTGVhdmV9XG4gICAgICAgIG9uRHJhZ092ZXI9e2hhbmRsZURyYWdPdmVyfVxuICAgICAgICBvbkRyb3A9e2hhbmRsZURyb3B9XG4gICAgICA+XG4gICAgICAgIHtzaG93U2xhc2hEcm9wZG93biAmJiAoXG4gICAgICAgICAgPFNsYXNoQ29tbWFuZERyb3Bkb3duXG4gICAgICAgICAgICBjb21tYW5kcz17c2xhc2hDb21tYW5kc31cbiAgICAgICAgICAgIHF1ZXJ5PXtzbGFzaFF1ZXJ5fVxuICAgICAgICAgICAgb25TZWxlY3Q9e2hhbmRsZVNlbGVjdFNsYXNoQ29tbWFuZH1cbiAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZUNsb3NlU2xhc2hEcm9wZG93bn1cbiAgICAgICAgICAvPlxuICAgICAgICApfVxuICAgICAgICB7ISFhdHRhY2htZW50cy5sZW5ndGggJiYgKFxuICAgICAgICAgIDxkaXYgc3R5bGU9e3sgZGlzcGxheTogJ2ZsZXgnLCBnYXA6ICcxMnB4JywgYWxpZ25JdGVtczogJ2NlbnRlcicgfX0+XG4gICAgICAgICAgICB7YXR0YWNobWVudHMubWFwKChhdHRhY2htZW50LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgICBjb25zdCBmaWxlTmFtZVBhcnRzID0gYXR0YWNobWVudC5uYW1lLnNwbGl0KCcuJylcbiAgICAgICAgICAgICAgY29uc3QgZmlsZUV4dGVuc2lvbiA9IGZpbGVOYW1lUGFydHMubGVuZ3RoID4gMSA/IGAuJHtmaWxlTmFtZVBhcnRzLnBvcCgpPy50b0xvd2VyQ2FzZSgpfWAgOiAnJ1xuICAgICAgICAgICAgICBjb25zdCBpc0ltYWdlQnlFeHRlbnNpb24gPSBbJy5wbmcnLCAnLmpwZycsICcuanBlZyddLmluY2x1ZGVzKGZpbGVFeHRlbnNpb24pXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2VCeU1pbWUgPSBhdHRhY2htZW50LnR5cGU/LnN0YXJ0c1dpdGgoJ2ltYWdlLycpXG4gICAgICAgICAgICAgIGNvbnN0IGlzSW1hZ2UgPSBpc0ltYWdlQnlNaW1lICYmIGlzSW1hZ2VCeUV4dGVuc2lvblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXthdHRhY2htZW50Lm5hbWV9IGtleT17YCR7aW5kZXh9LSR7YXR0YWNobWVudC5uYW1lfWB9IHpJbmRleD17dG9vbHRpcFpJbmRleH0+XG4gICAgICAgICAgICAgICAgICA8U0NNSUF0dGFjaG1lbnQgaXNJbWFnZT17aXNJbWFnZX0+XG4gICAgICAgICAgICAgICAgICAgIHthdHRhY2htZW50Lmljb259XG4gICAgICAgICAgICAgICAgICAgIDxTQ01JQXR0YWNobWVudERlbGV0ZUljb24gb25DbGljaz17KCkgPT4gaGFuZGxlRGVsZXRlQXR0YWNobWVudChhdHRhY2htZW50LmlkKX0+XG4gICAgICAgICAgICAgICAgICAgICAgPFRyYXNoIGNvbG9yPVwicmdiYSgxOTEsIDE5MSwgMTkxLCAxKVwiIHdpZHRoPXsxOH0gaGVpZ2h0PXsxOH0gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9TQ01JQXR0YWNobWVudERlbGV0ZUljb24+XG4gICAgICAgICAgICAgICAgICA8L1NDTUlBdHRhY2htZW50PlxuICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgfSl9XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICl9XG4gICAgICAgIDxTdHlsZWRNQUlBTWFpblRvb2xiYXJHcmlkICRjb21wYWN0Um93PXtjb21wYWN0U2luZ2xlUm93VG9vbGJhcn0+XG4gICAgICAgICAgPFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwgJGNvbXBhY3RSb3c9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfT5cbiAgICAgICAgICAgIDxQbHVzTWVudVRvb2xzUm93PlxuICAgICAgICAgICAgICA8UGx1c1RvZ2dsZUJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICRtZW51T3Blbj17cGx1c01lbnVPcGVufVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVBsdXNCdXR0b25DbGlja31cbiAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjaGF0Lm9wZW5QbHVzTWVudUFyaWEnKX1cbiAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17cGx1c01lbnVPcGVufVxuICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPFBsdXMgY29sb3I9e3BsdXNJY29uQ29sb3J9IHdpZHRoPXsyMH0gaGVpZ2h0PXsyMH0gLz5cbiAgICAgICAgICAgICAgPC9QbHVzVG9nZ2xlQnV0dG9uPlxuICAgICAgICAgICAgICA8UG9wb3ZlclxuICAgICAgICAgICAgICAgIG9wZW49e3BsdXNNZW51T3Blbn1cbiAgICAgICAgICAgICAgICBhbmNob3JFbD17cGx1c01lbnVBbmNob3J9XG4gICAgICAgICAgICAgICAgb25DbG9zZT17Y2xvc2VQbHVzTWVudX1cbiAgICAgICAgICAgICAgICBhbmNob3JPcmlnaW49e3sgdmVydGljYWw6ICd0b3AnLCBob3Jpem9udGFsOiAnbGVmdCcgfX1cbiAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW49e3sgdmVydGljYWw6ICdib3R0b20nLCBob3Jpem9udGFsOiAnbGVmdCcgfX1cbiAgICAgICAgICAgICAgICBzeD17eyB6SW5kZXg6IHBsdXNNZW51WkluZGV4IH19XG4gICAgICAgICAgICAgICAgc2xvdFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICBwYXBlcjoge1xuICAgICAgICAgICAgICAgICAgICBlbGV2YXRpb246IDAsXG4gICAgICAgICAgICAgICAgICAgIHN4OiB7XG4gICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICd2aXNpYmxlJyxcbiAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJ25vbmUnLFxuICAgICAgICAgICAgICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3RyYW5zcGFyZW50JyxcbiAgICAgICAgICAgICAgICAgICAgICBtYXJnaW5Ub3A6ICctNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxQbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgICAgICAgPFBsdXNNZW51SW5uZXJDb2x1bW4+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51QXR0YWNofT5cbiAgICAgICAgICAgICAgICAgICAgICA8QXR0YWNoIGNvbG9yPXtwbHVzTWVudUljb25Db2xvcn0gd2lkdGg9ezIwfSBoZWlnaHQ9ezIwfSAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9e2ZhbHNlfT57dCgnY2hhdC5wbHVzTWVudUF0dGFjaCcpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJdGVtQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51V2ViU2VhcmNofT5cbiAgICAgICAgICAgICAgICAgICAgICA8R2xvYmVcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yPXtpc1dlYlNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg9ezIwfVxuICAgICAgICAgICAgICAgICAgICAgICAgaGVpZ2h0PXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1MYWJlbCAkc2VsZWN0ZWQ9eyEhaXNXZWJTZWFyY2hBY3RpdmV9Pnt0KCdjaGF0LnNlYXJjaFdlYicpfTwvUGx1c01lbnVJdGVtTGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAge2lzV2ViU2VhcmNoQWN0aXZlID8gPENoZWNrIGNvbG9yPXtwbHVzTWVudVNlbGVjdGVkQ29sb3J9IHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgIDwvUGx1c01lbnVJbm5lckNvbHVtbj5cbiAgICAgICAgICAgICAgICAgIDxQbHVzTWVudUl0ZW1CdXR0b24gdHlwZT1cImJ1dHRvblwiIG9uQ2xpY2s9e2hhbmRsZVBsdXNNZW51RGVlcFNlYXJjaH0+XG4gICAgICAgICAgICAgICAgICAgIDxUZWxlc2NvcGVJY29uXG4gICAgICAgICAgICAgICAgICAgICAgY29sb3I9e2lzRGVlcFNlYXJjaEFjdGl2ZSA/IHBsdXNNZW51U2VsZWN0ZWRDb2xvciA6IHBsdXNNZW51SWNvbkNvbG9yfVxuICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXsyMH1cbiAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ9ezIwfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICA8UGx1c01lbnVJdGVtTGFiZWwgJHNlbGVjdGVkPXshIWlzRGVlcFNlYXJjaEFjdGl2ZX0+XG4gICAgICAgICAgICAgICAgICAgICAge3QoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgICA8L1BsdXNNZW51SXRlbUxhYmVsPlxuICAgICAgICAgICAgICAgICAgICB7aXNEZWVwU2VhcmNoQWN0aXZlID8gPENoZWNrIGNvbG9yPXtwbHVzTWVudVNlbGVjdGVkQ29sb3J9IHdpZHRoPXsxNn0gaGVpZ2h0PXsxNn0gLz4gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgPC9QbHVzTWVudUl0ZW1CdXR0b24+XG4gICAgICAgICAgICAgICAgPC9QbHVzTWVudVBhcGVyPlxuICAgICAgICAgICAgICA8L1BvcG92ZXI+XG4gICAgICAgICAgICAgIHsoaXNXZWJTZWFyY2hBY3RpdmUgfHwgaXNEZWVwU2VhcmNoQWN0aXZlKSAmJiAoXG4gICAgICAgICAgICAgICAgPEFjdGl2ZVRvb2xDaGlwUm9vdFxuICAgICAgICAgICAgICAgICAgJGhvdmVyZWQ9e2FjdGl2ZVRvb2xDaGlwSG92ZXJlZH1cbiAgICAgICAgICAgICAgICAgICRleGl0aW5nPXt0b29sQ2hpcEV4aXRpbmd9XG4gICAgICAgICAgICAgICAgICBvbk1vdXNlRW50ZXI9eygpID0+IHNldEFjdGl2ZVRvb2xDaGlwSG92ZXJlZCh0cnVlKX1cbiAgICAgICAgICAgICAgICAgIG9uTW91c2VMZWF2ZT17KCkgPT4gc2V0QWN0aXZlVG9vbENoaXBIb3ZlcmVkKGZhbHNlKX1cbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgICAgICAkY2xvc2VTaG93bj17YWN0aXZlVG9vbENoaXBIb3ZlcmVkfVxuICAgICAgICAgICAgICAgICAgICBhcmlhLWxhYmVsPXt0KCdjaGF0LnJlbW92ZUFjdGl2ZVRvb2xBcmlhJyl9XG4gICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2UgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKClcbiAgICAgICAgICAgICAgICAgICAgICBiZWdpblRvb2xDaGlwRXhpdCgpXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIHthY3RpdmVUb29sQ2hpcExlYWRpbmdJY29ufVxuICAgICAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcEljb25CdXR0b24+XG4gICAgICAgICAgICAgICAgICA8QWN0aXZlVG9vbENoaXBMYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge2lzV2ViU2VhcmNoQWN0aXZlID8gdCgnY2hhdC5zZWFyY2hXZWInKSA6IHQoJ2NoYXQucGx1c01lbnVEZWVwSW52ZXN0aWdhdGlvbicpfVxuICAgICAgICAgICAgICAgICAgPC9BY3RpdmVUb29sQ2hpcExhYmVsPlxuICAgICAgICAgICAgICAgIDwvQWN0aXZlVG9vbENoaXBSb290PlxuICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgPC9QbHVzTWVudVRvb2xzUm93PlxuICAgICAgICAgIDwvU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbD5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBzdHlsZT17XG4gICAgICAgICAgICAgIGNvbXBhY3RTaW5nbGVSb3dUb29sYmFyXG4gICAgICAgICAgICAgICAgPyB7IGdyaWRDb2x1bW46IDIsIGdyaWRSb3c6IDEsIG1pbldpZHRoOiAwLCBhbGlnblNlbGY6ICdjZW50ZXInIH1cbiAgICAgICAgICAgICAgICA6IHsgZ3JpZENvbHVtbjogJzEgLyAtMScsIGdyaWRSb3c6IDEsIG1pbldpZHRoOiAwIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8Q29udGV4dE1lbnRpb25FZGl0b3JcbiAgICAgICAgICAgICAgcmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICAgIGRpc2FibGVkPXtkaXNhYmxlZH1cbiAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9e3BsYWNlaG9sZGVyfVxuICAgICAgICAgICAgICBvbklucHV0PXtoYW5kbGVFZGl0b3JJbnB1dH1cbiAgICAgICAgICAgICAgb25LZXlEb3duPXtoYW5kbGVLZXlEb3dufVxuICAgICAgICAgICAgICBvbkZvY3VzPXtoYW5kbGVXcmFwcGVyRm9jdXN9XG4gICAgICAgICAgICAgIG9uQmx1cj17aGFuZGxlV3JhcHBlckJsdXJ9XG4gICAgICAgICAgICAgIG9uUGFzdGVGaWxlcz17aGFuZGxlUGFzdGVGaWxlc31cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPFN0eWxlZE1BSUFTZW5kVG9vbGJhckNlbGwgJGNvbXBhY3RSb3c9e2NvbXBhY3RTaW5nbGVSb3dUb29sYmFyfT5cbiAgICAgICAgICAgIHtpc1dyaXRpbmcgPyAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnN0b3AnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8U3R5bGVkTUFJQVN0b3BCdXR0b24gZGlzYWJsZWQ9e2ZhbHNlfSBvbkNsaWNrPXtoYW5kbGVTdG9wR2VuZXJhdGlvbn0gY2xhc3NOYW1lPXtjbGFzc05hbWV9PlxuICAgICAgICAgICAgICAgICAgPFN0eWxlZE1BSUFTdG9wSWNvbiAvPlxuICAgICAgICAgICAgICAgIDwvU3R5bGVkTUFJQVN0b3BCdXR0b24+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPXt0KCdjaGF0LnNlbmQnKX0gekluZGV4PXt0b29sdGlwWkluZGV4fT5cbiAgICAgICAgICAgICAgICA8c3BhbiBzdHlsZT17eyBkaXNwbGF5OiAnaW5saW5lLWZsZXgnLCBhbGlnbkl0ZW1zOiAnY2VudGVyJyB9fT5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRNQUlBU2VuZEJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVTZW5kTWVzc2FnZX1cbiAgICAgICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtjbGFzc05hbWV9XG4gICAgICAgICAgICAgICAgICAgIGRpc2FibGVkPXtzZW5kRGlzYWJsZWQgfHwgZGlzYWJsZWR9XG4gICAgICAgICAgICAgICAgICAgIGhhc1ZhbHVlcz17aGFzVHlwaW5nUHJlc2VuY2UgfHwgYXR0YWNobWVudHMubGVuZ3RoID4gMH1cbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPFBhcGVyUGxhbmUgY29sb3I9XCIjQkZCRkJGXCIgd2lkdGg9ezE4fSBoZWlnaHQ9ezE4fSAvPlxuICAgICAgICAgICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZEJ1dHRvbj5cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgIDwvVG9vbHRpcD5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgPC9TdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsPlxuICAgICAgICA8L1N0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQ+XG4gICAgICAgIDxpbnB1dFxuICAgICAgICAgIHJlZj17ZmlsZUlucHV0UmVmfVxuICAgICAgICAgIHR5cGU9XCJmaWxlXCJcbiAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgIGFjY2VwdD1cIi50eHQsLm1kLC5jc3YsLmRvYywuZG9jeCwucHB0LC5wcHR4LC5wbmcsLmpwZywuanBlZywucGRmLC54bHN4LC54bHMsLmZsYWMsLm00YSwubXAzLC5tcDQsLm9nYSwub2dnLC53YXYsLndlYm1cIlxuICAgICAgICAgIG9uQ2hhbmdlPXtoYW5kbGVGaWxlU2VsZWN0fVxuICAgICAgICAgIHN0eWxlPXt7IGRpc3BsYXk6ICdub25lJyB9fVxuICAgICAgICAvPlxuICAgICAgICB7aXNGaWxlRHJhZ0FjdGl2ZSAmJiA8U3R5bGVkTUFJQURyb3BPdmVybGF5Pnt0KCdjaGF0LmRyb3BGaWxlc0hlcmUnKX08L1N0eWxlZE1BSUFEcm9wT3ZlcmxheT59XG4gICAgICA8L1N0eWxlZE1BSUFJbnB1dFdyYXBwZXI+XG4gICAgICB7bW9kYWxQcm9wcy5pc09wZW4gJiYgKFxuICAgICAgICA8TW9kYWxGaWxlRXhjZWVkc1xuICAgICAgICAgIG9uQ2xvc2U9eygpID0+IHNldE1vZGFsUHJvcHMoeyBpc09wZW46IGZhbHNlLCBleGNsdWRlZEZpbGVzOiBbXSwgZXhjZWVkZWRGaWxlczogW10sIGZpbGVTaXplczoge30gfSl9XG4gICAgICAgICAgZXhjbHVkZWRGaWxlcz17bW9kYWxQcm9wcy5leGNsdWRlZEZpbGVzfVxuICAgICAgICAgIGV4Y2VlZGVkRmlsZXM9e21vZGFsUHJvcHMuZXhjZWVkZWRGaWxlc31cbiAgICAgICAgICBmaWxlU2l6ZXM9e21vZGFsUHJvcHMuZmlsZVNpemVzfVxuICAgICAgICAvPlxuICAgICAgKX1cbiAgICAgIHtwb3BvdmVyTm9kZSAmJiBjcmVhdGVQb3J0YWwocG9wb3Zlck5vZGUsIGRvY3VtZW50LmJvZHkpfVxuICAgIDwvPlxuICApXG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSxTQVFFQSxXQUFXLEVBQ1hDLFNBQVMsRUFDVEMsT0FBTyxFQUNQQyxNQUFNLEVBQ05DLFFBQVEsUUFDSCxPQUFPO0FBQ2QsU0FBU0MsWUFBWSxRQUFRLFdBQVc7QUFDeEMsU0FBU0MsT0FBTyxRQUFRLGVBQWU7QUFDdkMsU0FBU0MsVUFBVSxRQUFRLDZDQUE2QztBQUN4RSxTQUFTQyxNQUFNLFFBQVEseUNBQXlDO0FBQ2hFLFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxJQUFJLFFBQVEsdUNBQXVDO0FBQzVELFNBQVNDLEtBQUssUUFBUSx3Q0FBd0M7QUFDOUQsU0FBU0MsS0FBSyxRQUFRLHdDQUF3QztBQUM5RCxTQUFTQyxPQUFPLFFBQVEsOENBQThDO0FBQ3RFLE9BQU9DLE1BQU0sTUFBTSxtQ0FBbUM7QUFFdEQsU0FDRUMsd0JBQXdCLEVBQ3hCQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixFQUNsQkMsZUFBZSxFQUNmQyxtQkFBbUIsRUFDbkJDLGtCQUFrQixFQUNsQkMsaUJBQWlCLEVBQ2pCQyxhQUFhLEVBQ2JDLGdCQUFnQixFQUNoQkMsZ0JBQWdCLEVBQ2hCQyxjQUFjLEVBQ2RD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
|
|
@@ -27,7 +27,7 @@ export var StyledMAIAInputWrapper = styled.div.withConfig({
|
|
|
27
27
|
export var StyledMAIADropOverlay = styled.div.withConfig({
|
|
28
28
|
displayName: "styles__StyledMAIADropOverlay",
|
|
29
29
|
componentId: "sc-cs6u9w-1"
|
|
30
|
-
})(["position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:8px;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;color:", ";"], BLUE_IA_COLORS[700]);
|
|
30
|
+
})(["position:absolute;inset:0;z-index:2;display:flex;align-items:center;justify-content:center;pointer-events:none;border-radius:8px;font-family:'Work Sans',sans-serif;font-size:14px;font-weight:500;color:", ";backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);background:rgba(255,255,255,0.7);"], BLUE_IA_COLORS[700]);
|
|
31
31
|
export var StyledMAIAMainToolbarGrid = styled.div.withConfig({
|
|
32
32
|
displayName: "styles__StyledMAIAMainToolbarGrid",
|
|
33
33
|
componentId: "sc-cs6u9w-2"
|
|
@@ -163,4 +163,4 @@ export var StyledMAIAStopButton = styled.button.withConfig({
|
|
|
163
163
|
displayName: "styles__StyledMAIAStopButton",
|
|
164
164
|
componentId: "sc-cs6u9w-21"
|
|
165
165
|
})(["background:none;border:none;padding:0;font:inherit;background-color:#f2f2f2 !important;height:30px;width:30px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;&:hover{background-color:", " !important;", "{background-color:", " !important;}}&:disabled{cursor:not-allowed;background-color:#f2f2f2 !important;opacity:0.6;}"], BLUE_IA_COLORS[50], StyledMAIAStopIcon, BLUE_IA_COLORS[500]);
|
|
166
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsImZsb3ciLCJhY3RpdmVUb29sQ2hpcENsb3NlSWNvbkluIiwiYWN0aXZlVG9vbENoaXBPdXQiLCJjdXN0b21JbnB1dFN0eWxlcyIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJkaXNhYmxlZCIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwidGV4dCIsIl9yZWYzIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmNCIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJfcmVmNSIsIiRjb21wYWN0Um93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIl9yZWY2IiwiX3JlZjciLCJTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsIiwiX3JlZjgiLCJfcmVmOSIsIlN0eWxlZE1BSUFJbnB1dCIsInRleHRhcmVhIiwic2Vjb25kYXJ5IiwiX3JlZjAiLCIkdG9vbGJhckxheW91dFZhcmlhbnQiLCJfcmVmMSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjEwIiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjExIiwiX3JlZjEyIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlNDTUlBdHRhY2htZW50IiwiX3JlZjEzIiwiaXNJbWFnZSIsIlBsdXNNZW51VG9vbHNSb3ciLCJQbHVzVG9nZ2xlQnV0dG9uIiwiYnV0dG9uIiwiX3JlZjE0IiwiJG1lbnVPcGVuIiwiYmFja2dyb3VuZCIsIndoaXRlIiwibWFpbiIsIlBsdXNNZW51UGFwZXIiLCJncmF5IiwibGlnaHQiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVEaXZpZGVyIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJzcGFuIiwiX3JlZjE1IiwiJHNlbGVjdGVkIiwidGV4dEJyYW5kQm9sZCIsInByaW1hcnkiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJfcmVmMTYiLCIkaG92ZXJlZCIsIl9yZWYxNyIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMTgiLCJfcmVmMTkiLCIkZXhpdGluZyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIl9yZWYyMCIsIiRjbG9zZVNob3duIiwiQWN0aXZlVG9vbENoaXBMYWJlbCIsInN0b3BQdWxzZSIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgc2Nyb2xsYWJsZVN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zaGFyZWQvc2Nyb2xsYWJsZSdcbmltcG9ydCB7IENsZWFyQnV0dG9uIH0gZnJvbSAnLi4vQ2xlYXJCdXR0b24nXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMTJweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogVW4gc29sbyBmbG9vciBjb21wYWN0L3N0YWNrZWQgcGFyYSBxdWUgYWwgcGFzYXIgYSBtdWx0aWxpbmUgbm8gY2FtYmllIGVsIG1pbi1oZWlnaHQgZGVsIGNvbnRlbmVkb3IgZGUgZ29scGUgKi9cbiAgbWluLWhlaWdodDogNThweDtcbiAgZ2FwOiAkeyh7IGFsaWduQnV0dG9ucyB9KSA9PiAoYWxpZ25CdXR0b25zID09PSAndmVydGljYWwnID8gJzhweCcgOiAnMCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgIGNzc2BcbiAgICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gICAgYH1cblxuICAkeyh7ICRmaWxlRHJhZ0FjdGl2ZSB9KSA9PlxuICAgICRmaWxlRHJhZ0FjdGl2ZSAmJlxuICAgIGNzc2BcbiAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgICAgYmFja2dyb3VuZDogcmdiYSg0NSwgMTE5LCAxODksIDAuMDYpO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQURyb3BPdmVybGF5ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s3MDBdfTtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgPSBzdHlsZWQuZGl2PHsgJGNvbXBhY3RSb3c6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAkY29tcGFjdFJvd1xuICAgICAgPyBjc3NgXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiA4cHg7XG4gICAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgYFxuICAgICAgOiBjc3NgXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIHJvdy1nYXA6IDhweDtcbiAgICAgICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2PHsgJGNvbXBhY3RSb3c6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAhJGNvbXBhY3RSb3cgJiZcbiAgICBjc3NgXG4gICAgICBncmlkLXJvdzogMjtcbiAgICBgfVxuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAkY29tcGFjdFJvdyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsID0gc3R5bGVkLmRpdjx7ICRjb21wYWN0Um93OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBncmlkLWNvbHVtbjogMztcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG5cbiAgJHsoeyAkY29tcGFjdFJvdyB9KSA9PlxuICAgICEkY29tcGFjdFJvdyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtcm93OiAyO1xuICAgIGB9XG5cbiAgJHsoeyAkY29tcGFjdFJvdyB9KSA9PlxuICAgICRjb21wYWN0Um93ICYmXG4gICAgY3NzYFxuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dCA9IHN0eWxlZC50ZXh0YXJlYTx7XG4gIGFsaWduQnV0dG9ucz86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCdcbiAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PzogJ2NvbXBhY3RSb3cnIHwgJ3N0YWNrZWRSb3dzJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIG1heC1oZWlnaHQ6IDEyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgJHsoeyAkdG9vbGJhckxheW91dFZhcmlhbnQgfSkgPT5cbiAgICAkdG9vbGJhckxheW91dFZhcmlhbnQgPT09ICdjb21wYWN0Um93JyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICAgICAgfVxuICAgIGB9XG5cbiAgJHsoeyAkdG9vbGJhckxheW91dFZhcmlhbnQgfSkgPT5cbiAgICAkdG9vbGJhckxheW91dFZhcmlhbnQgPT09ICdzdGFja2VkUm93cycgJiZcbiAgICBjc3NgXG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZEJ1dHRvbiA9IHN0eWxlZChDbGVhckJ1dHRvbik8eyBoYXNWYWx1ZXM/OiBib29sZWFuIH0+YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc1ZhbHVlcyB9KSA9PiAoaGFzVmFsdWVzID8gYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gIDogJyNmMmYyZjInKX07XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIGcgKiB7XG4gICAgICAgICAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX0gIWltcG9ydGFudDtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICBnICoge1xuICAgICAgICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG5cbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgIWhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgZmlsbDogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXY8eyBpc0ltYWdlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTkxLCAxOTEsIDE5MSwgMSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEzcHg7XG4gICR7KHsgaXNJbWFnZSB9KSA9PlxuICAgIGlzSW1hZ2UgJiZcbiAgICBjc3NgXG4gICAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgICBgfVxuXG4gICY6aG92ZXIge1xuICAgICR7U0NNSUF0dGFjaG1lbnREZWxldGVJY29ufSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVUb29sc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkbWVudU9wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHsoeyAkbWVudU9wZW4gfSkgPT4gKCRtZW51T3BlbiA/IGNvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeSA6IGNvbG9ycy53aGl0ZS5tYWluKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjb2xvcnMuYmFja2dyb3VuZC5zZWNvbmRhcnl9O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVBhcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAyMDlweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SW5uZXJDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudURpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTcwcHg7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5jb2xvcnMuZ3JheS5saWdodH07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeX07XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUl0ZW1MYWJlbCA9IHN0eWxlZC5zcGFuPHsgJHNlbGVjdGVkOiBib29sZWFuIH0+YFxuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGNvbG9yOiAkeyh7ICRzZWxlY3RlZCB9KSA9PiAoJHNlbGVjdGVkID8gTUFJQV9DSEFUX0lOUFVUX1VJLnRleHRCcmFuZEJvbGQgOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcFJvb3QgPSBzdHlsZWQuZGl2PHsgJGhvdmVyZWQ6IGJvb2xlYW47ICRleGl0aW5nOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDE0NHB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/ICcxNnB4JyA6ICcwJyl9O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/IE1BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwU3VyZmFjZUhvdmVyIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBib3gtc2hhZG93OiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/ICcwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA3KScgOiAnbm9uZScpfTtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMjJzIGVhc2UsXG4gICAgYm9yZGVyLXJhZGl1cyAwLjIycyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMC4yMnMgZWFzZTtcblxuICAkeyh7ICRleGl0aW5nIH0pID0+XG4gICAgJGV4aXRpbmcgJiZcbiAgICBjc3NgXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGFuaW1hdGlvbjogJHthY3RpdmVUb29sQ2hpcE91dH0gMC4yMnMgZWFzZSBmb3J3YXJkcztcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRjbG9zZVNob3duOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJHsoeyAkY2xvc2VTaG93biB9KSA9PlxuICAgICRjbG9zZVNob3duICYmXG4gICAgY3NzYFxuICAgICAgc3ZnIHtcbiAgICAgICAgYW5pbWF0aW9uOiAke2FjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW59IDAuMjRzIGVhc2UgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgYH1cblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcExhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbmBcbmNvbnN0IHN0b3BQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGM4YzhjO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGFuaW1hdGlvbjogJHtzdG9wUHVsc2V9IDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNTBdfSAhaW1wb3J0YW50O1xuXG4gICAgJHtTdHlsZWRNQUlBU3RvcEljb259IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNTAwXX0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91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
|
|
166
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJzdHlsZWQiLCJjc3MiLCJrZXlmcmFtZXMiLCJjb2xvcnMiLCJCTFVFX0lBX0NPTE9SUyIsIk1BSUFfQ0hBVF9JTlBVVF9VSSIsInNjcm9sbGFibGVTdHlsZXMiLCJDbGVhckJ1dHRvbiIsImZsb3ciLCJhY3RpdmVUb29sQ2hpcENsb3NlSWNvbkluIiwiYWN0aXZlVG9vbENoaXBPdXQiLCJjdXN0b21JbnB1dFN0eWxlcyIsIlN0eWxlZE1BSUFJbnB1dFdyYXBwZXIiLCJkaXYiLCJ3aXRoQ29uZmlnIiwiZGlzcGxheU5hbWUiLCJjb21wb25lbnRJZCIsIl9yZWYiLCJkaXNhYmxlZCIsIl9yZWYyIiwiYWxpZ25CdXR0b25zIiwidGV4dCIsIl9yZWYzIiwiaGFzQXR0YWNobWVudHMiLCJfcmVmNCIsIiRmaWxlRHJhZ0FjdGl2ZSIsIlN0eWxlZE1BSUFEcm9wT3ZlcmxheSIsIlN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQiLCJfcmVmNSIsIiRjb21wYWN0Um93IiwiU3R5bGVkTUFJQVBsdXNUb29sYmFyQ2VsbCIsIl9yZWY2IiwiX3JlZjciLCJTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsIiwiX3JlZjgiLCJfcmVmOSIsIlN0eWxlZE1BSUFJbnB1dCIsInRleHRhcmVhIiwic2Vjb25kYXJ5IiwiX3JlZjAiLCIkdG9vbGJhckxheW91dFZhcmlhbnQiLCJfcmVmMSIsIlN0eWxlZE1BSUFTZW5kQnV0dG9uIiwiX3JlZjEwIiwiaGFzVmFsdWVzIiwiY29uY2F0IiwiX3JlZjExIiwiX3JlZjEyIiwiU0NNSVdyYXBwZXJBdHRhY2htZW50cyIsIlNDTUlBdHRhY2htZW50RGVsZXRlSWNvbiIsIlNDTUlBdHRhY2htZW50IiwiX3JlZjEzIiwiaXNJbWFnZSIsIlBsdXNNZW51VG9vbHNSb3ciLCJQbHVzVG9nZ2xlQnV0dG9uIiwiYnV0dG9uIiwiX3JlZjE0IiwiJG1lbnVPcGVuIiwiYmFja2dyb3VuZCIsIndoaXRlIiwibWFpbiIsIlBsdXNNZW51UGFwZXIiLCJncmF5IiwibGlnaHQiLCJQbHVzTWVudUlubmVyQ29sdW1uIiwiUGx1c01lbnVEaXZpZGVyIiwiUGx1c01lbnVJdGVtQnV0dG9uIiwiUGx1c01lbnVJdGVtTGFiZWwiLCJzcGFuIiwiX3JlZjE1IiwiJHNlbGVjdGVkIiwidGV4dEJyYW5kQm9sZCIsInByaW1hcnkiLCJBY3RpdmVUb29sQ2hpcFJvb3QiLCJfcmVmMTYiLCIkaG92ZXJlZCIsIl9yZWYxNyIsImNoaXBTdXJmYWNlSG92ZXIiLCJfcmVmMTgiLCJfcmVmMTkiLCIkZXhpdGluZyIsIkFjdGl2ZVRvb2xDaGlwSWNvbkJ1dHRvbiIsIl9yZWYyMCIsIiRjbG9zZVNob3duIiwiQWN0aXZlVG9vbENoaXBMYWJlbCIsInN0b3BQdWxzZSIsIlN0eWxlZE1BSUFTdG9wSWNvbiIsIlN0eWxlZE1BSUFTdG9wQnV0dG9uIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2NvbXBvbmVudHMvYXRvbXMvTUFJQUlucHV0L3N0eWxlcy50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvaW5kZW50ICovXG5pbXBvcnQgc3R5bGVkLCB7IGNzcywga2V5ZnJhbWVzIH0gZnJvbSAnc3R5bGVkLWNvbXBvbmVudHMnXG5pbXBvcnQgY29sb3JzIGZyb20gJ0Bwcm9qZWN0Y29yL3RoZW1lL2xpYi9iYXNlL2NvbG9ycydcbmltcG9ydCB7IEJMVUVfSUFfQ09MT1JTLCBNQUlBX0NIQVRfSU5QVVRfVUkgfSBmcm9tICcuLi8uLi8uLi9zdHlsZXMvY29uZmlnJ1xuaW1wb3J0IHsgc2Nyb2xsYWJsZVN0eWxlcyB9IGZyb20gJy4uLy4uLy4uL3N0eWxlcy9zaGFyZWQvc2Nyb2xsYWJsZSdcbmltcG9ydCB7IENsZWFyQnV0dG9uIH0gZnJvbSAnLi4vQ2xlYXJCdXR0b24nXG5cbmV4cG9ydCBjb25zdCBmbG93ID0ga2V5ZnJhbWVzYFxuICAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG4gIDUwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMTAwJSA1MCU7XG4gIH1cbiAgMTAwJSB7XG4gICAgYmFja2dyb3VuZC1wb3NpdGlvbjpcbiAgICAgIDAlIDAlLFxuICAgICAgMCUgNTAlO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW4gPSBrZXlmcmFtZXNgXG4gIGZyb20ge1xuICAgIG9wYWNpdHk6IDAuNTU7XG4gICAgdHJhbnNmb3JtOiBzY2FsZSgwLjgyKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMTtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEpO1xuICB9XG5gXG5cbmNvbnN0IGFjdGl2ZVRvb2xDaGlwT3V0ID0ga2V5ZnJhbWVzYFxuICBmcm9tIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSkgdHJhbnNsYXRlWSgwKTtcbiAgfVxuICB0byB7XG4gICAgb3BhY2l0eTogMDtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOTIpIHRyYW5zbGF0ZVkoM3B4KTtcbiAgfVxuYFxuXG5jb25zdCBjdXN0b21JbnB1dFN0eWxlcyA9IGNzc2BcbiAgb3V0bGluZTogbm9uZTtcbiAgYmFja2dyb3VuZDpcbiAgICBsaW5lYXItZ3JhZGllbnQod2hpdGUsIHdoaXRlKSBwYWRkaW5nLWJveCxcbiAgICBsaW5lYXItZ3JhZGllbnQoOTBkZWcsICM0ZDM1NjkgMCUsICM4NzQwYmYgNTkuNjIlLCAjMmQ3N2JkIDEwMCUpIGJvcmRlci1ib3g7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHRyYW5zcGFyZW50O1xuICBiYWNrZ3JvdW5kLXNpemU6XG4gICAgMTAwJSAxMDAlLFxuICAgIDIwMCUgMTAwJTtcbiAgYW5pbWF0aW9uOiAke2Zsb3d9IDNzIGVhc2UgaW5maW5pdGU7XG4gIGJveC1zaGFkb3c6XG4gICAgM3B4IDRweCAxNHB4IDAgcmdiYSgxMzUsIDY0LCAxOTEsIDAuMTUpLFxuICAgIC0zcHggLTRweCAxNHB4IDAgcmdiYSg0NSwgMTE5LCAxODksIDAuMTUpO1xuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQUlucHV0V3JhcHBlciA9IHN0eWxlZC5kaXY8e1xuICBkaXNhYmxlZD86IGJvb2xlYW5cbiAgYWxpZ25CdXR0b25zPzogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJ1xuICBoYXNBdHRhY2htZW50czogYm9vbGVhblxuICAvKiogRXN0YWRvIGluaWNpYWw6IHRvb2xiYXIgZW4gdW5hIHNvbGEgbMOtbmVhIHNpbiBhZGp1bnRvcyBuaSB0b29scyBkZWwgKyBuaSBtdWx0aWxpbmUgKi9cbiAgY29tcGFjdFNpbmdsZVJvd1Rvb2xiYXI/OiBib29sZWFuXG4gICRmaWxlRHJhZ0FjdGl2ZT86IGJvb2xlYW5cbn0+YFxuICBib3gtc2l6aW5nOiBib3JkZXItYm94O1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHdpZHRoOiAxMDAlO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIHRyYW5zaXRpb246XG4gICAgYm9yZGVyLWNvbG9yIDAuMnMgZWFzZSxcbiAgICBib3gtc2hhZG93IDAuMnMgZWFzZTtcbiAgcGFkZGluZzogMTJweDtcbiAgY3Vyc29yOiAkeyh7IGRpc2FibGVkIH0pID0+IChkaXNhYmxlZCA/ICdub3QtYWxsb3dlZCcgOiAnYXV0bycpfTtcbiAgZGlzcGxheTogZmxleDtcbiAgLyogVW4gc29sbyBmbG9vciBjb21wYWN0L3N0YWNrZWQgcGFyYSBxdWUgYWwgcGFzYXIgYSBtdWx0aWxpbmUgbm8gY2FtYmllIGVsIG1pbi1oZWlnaHQgZGVsIGNvbnRlbmVkb3IgZGUgZ29scGUgKi9cbiAgbWluLWhlaWdodDogNThweDtcbiAgZ2FwOiAkeyh7IGFsaWduQnV0dG9ucyB9KSA9PiAoYWxpZ25CdXR0b25zID09PSAndmVydGljYWwnID8gJzhweCcgOiAnMCcpfTtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcblxuICBib3JkZXI6IDFweCBzb2xpZCAke2NvbG9ycy50ZXh0LmRpc2FibGVkfTtcbiAgYm94LXNoYWRvdzogbm9uZTtcblxuICAmOmZvY3VzLXdpdGhpbiB7XG4gICAgJHtjdXN0b21JbnB1dFN0eWxlc31cbiAgfVxuXG4gICR7KHsgaGFzQXR0YWNobWVudHMgfSkgPT5cbiAgICBoYXNBdHRhY2htZW50cyAmJlxuICAgIGNzc2BcbiAgICAgICR7Y3VzdG9tSW5wdXRTdHlsZXN9XG4gICAgYH1cblxuICAkeyh7ICRmaWxlRHJhZ0FjdGl2ZSB9KSA9PlxuICAgICRmaWxlRHJhZ0FjdGl2ZSAmJlxuICAgIGNzc2BcbiAgICAgIGJvcmRlcjogMXB4IGRhc2hlZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgICAgYmFja2dyb3VuZDogcmdiYSg0NSwgMTE5LCAxODksIDAuMDYpO1xuICAgICAgYm94LXNoYWRvdzogbm9uZTtcbiAgICAgIGFuaW1hdGlvbjogbm9uZTtcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQURyb3BPdmVybGF5ID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBpbnNldDogMDtcbiAgei1pbmRleDogMjtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHBvaW50ZXItZXZlbnRzOiBub25lO1xuICBib3JkZXItcmFkaXVzOiA4cHg7XG4gIGZvbnQtZmFtaWx5OiAnV29yayBTYW5zJywgc2Fucy1zZXJpZjtcbiAgZm9udC1zaXplOiAxNHB4O1xuICBmb250LXdlaWdodDogNTAwO1xuICBjb2xvcjogJHtCTFVFX0lBX0NPTE9SU1s3MDBdfTtcbiAgYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIC13ZWJraXQtYmFja2Ryb3AtZmlsdGVyOiBibHVyKDJweCk7XG4gIGJhY2tncm91bmQ6IHJnYmEoMjU1LCAyNTUsIDI1NSwgMC43KTtcbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFNYWluVG9vbGJhckdyaWQgPSBzdHlsZWQuZGl2PHsgJGNvbXBhY3RSb3c6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGdyaWQ7XG4gIHdpZHRoOiAxMDAlO1xuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAkY29tcGFjdFJvd1xuICAgICAgPyBjc3NgXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIG1pbm1heCgwLCAxZnIpIGF1dG87XG4gICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICBjb2x1bW4tZ2FwOiA4cHg7XG4gICAgICAgICAgbWluLWhlaWdodDogMzJweDtcbiAgICAgICAgYFxuICAgICAgOiBjc3NgXG4gICAgICAgICAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiBhdXRvIDFmciBhdXRvO1xuICAgICAgICAgIGdyaWQtdGVtcGxhdGUtcm93czogYXV0byBhdXRvO1xuICAgICAgICAgIGFsaWduLWl0ZW1zOiBzdHJldGNoO1xuICAgICAgICAgIHJvdy1nYXA6IDhweDtcbiAgICAgICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFQbHVzVG9vbGJhckNlbGwgPSBzdHlsZWQuZGl2PHsgJGNvbXBhY3RSb3c6IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdyaWQtY29sdW1uOiAxO1xuICBqdXN0aWZ5LXNlbGY6IHN0YXJ0O1xuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAhJGNvbXBhY3RSb3cgJiZcbiAgICBjc3NgXG4gICAgICBncmlkLXJvdzogMjtcbiAgICBgfVxuXG4gICR7KHsgJGNvbXBhY3RSb3cgfSkgPT5cbiAgICAkY29tcGFjdFJvdyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtcm93OiAxO1xuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZFRvb2xiYXJDZWxsID0gc3R5bGVkLmRpdjx7ICRjb21wYWN0Um93OiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBncmlkLWNvbHVtbjogMztcbiAganVzdGlmeS1zZWxmOiBlbmQ7XG5cbiAgJHsoeyAkY29tcGFjdFJvdyB9KSA9PlxuICAgICEkY29tcGFjdFJvdyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtcm93OiAyO1xuICAgIGB9XG5cbiAgJHsoeyAkY29tcGFjdFJvdyB9KSA9PlxuICAgICRjb21wYWN0Um93ICYmXG4gICAgY3NzYFxuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgYH1cbmBcblxuZXhwb3J0IGNvbnN0IFN0eWxlZE1BSUFJbnB1dCA9IHN0eWxlZC50ZXh0YXJlYTx7XG4gIGFsaWduQnV0dG9ucz86ICd2ZXJ0aWNhbCcgfCAnaG9yaXpvbnRhbCdcbiAgJHRvb2xiYXJMYXlvdXRWYXJpYW50PzogJ2NvbXBhY3RSb3cnIHwgJ3N0YWNrZWRSb3dzJ1xufT5gXG4gICR7c2Nyb2xsYWJsZVN0eWxlc31cbiAgd2lkdGg6IDEwMCU7XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgcGFkZGluZzogMDtcbiAgcmVzaXplOiBub25lO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1xuICBib3JkZXI6IG5vbmU7XG4gIG91dGxpbmU6IG5vbmU7XG4gIG1pbi1oZWlnaHQ6IDIwcHg7XG4gIG1heC1oZWlnaHQ6IDEyMHB4O1xuXG4gICY6ZGlzYWJsZWQge1xuICAgIGN1cnNvcjogbm90LWFsbG93ZWQ7XG4gIH1cblxuICAmOmZvY3VzIHtcbiAgICBvdXRsaW5lOiBub25lO1xuICB9XG5cbiAgJjo6cGxhY2Vob2xkZXIge1xuICAgIGNvbG9yOiAke2NvbG9ycy50ZXh0LnNlY29uZGFyeX07XG4gICAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgICBvdmVyZmxvdzogaGlkZGVuO1xuICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICB9XG5cbiAgJHsoeyAkdG9vbGJhckxheW91dFZhcmlhbnQgfSkgPT5cbiAgICAkdG9vbGJhckxheW91dFZhcmlhbnQgPT09ICdjb21wYWN0Um93JyAmJlxuICAgIGNzc2BcbiAgICAgIGdyaWQtY29sdW1uOiAyO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBhbGlnbi1zZWxmOiBjZW50ZXI7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICAgICAgfVxuICAgIGB9XG5cbiAgJHsoeyAkdG9vbGJhckxheW91dFZhcmlhbnQgfSkgPT5cbiAgICAkdG9vbGJhckxheW91dFZhcmlhbnQgPT09ICdzdGFja2VkUm93cycgJiZcbiAgICBjc3NgXG4gICAgICBncmlkLWNvbHVtbjogMSAvIC0xO1xuICAgICAgZ3JpZC1yb3c6IDE7XG4gICAgICBtaW4td2lkdGg6IDA7XG4gICAgICBsaW5lLWhlaWdodDogMjBweDtcblxuICAgICAgJjo6cGxhY2Vob2xkZXIge1xuICAgICAgICBmb250LXN0eWxlOiBpdGFsaWM7XG4gICAgICAgIGxldHRlci1zcGFjaW5nOiAtMC4yMXB4O1xuICAgICAgfVxuICAgIGB9XG5gXG5cbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU2VuZEJ1dHRvbiA9IHN0eWxlZChDbGVhckJ1dHRvbik8eyBoYXNWYWx1ZXM/OiBib29sZWFuIH0+YFxuICBiYWNrZ3JvdW5kLWNvbG9yOiAkeyh7IGhhc1ZhbHVlcyB9KSA9PiAoaGFzVmFsdWVzID8gYCR7QkxVRV9JQV9DT0xPUlNbNTAwXX1gIDogJyNmMmYyZjInKX07XG4gIGhlaWdodDogMzBweDtcbiAgd2lkdGg6IDMwcHg7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgZGlzcGxheTogZmxleDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIHRyYW5zaXRpb246IGJhY2tncm91bmQtY29sb3IgMC4ycyBlYXNlO1xuXG4gIHN2ZyB7XG4gICAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgaGFzVmFsdWVzICYmXG4gICAgICBjc3NgXG4gICAgICAgIGcgKiB7XG4gICAgICAgICAgZmlsbDogd2hpdGUgIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cbiAgfVxuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNzAwXX0gIWltcG9ydGFudDtcbiAgfVxuXG4gICY6YWN0aXZlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gICAgc3ZnIHtcbiAgICAgIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG4gICAgICBnICoge1xuICAgICAgICBmaWxsOiB3aGl0ZSAhaW1wb3J0YW50O1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHRyYW5zaXRpb246IHRyYW5zZm9ybSAwLjJzIGVhc2U7XG5cbiAgJjpkaXNhYmxlZCB7XG4gICAgY3Vyc29yOiBub3QtYWxsb3dlZDtcbiAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZjJmMmYyICFpbXBvcnRhbnQ7XG5cbiAgICAkeyh7IGhhc1ZhbHVlcyB9KSA9PlxuICAgICAgIWhhc1ZhbHVlcyAmJlxuICAgICAgY3NzYFxuICAgICAgICBzdmcgKiB7XG4gICAgICAgICAgZmlsbDogJHtjb2xvcnMudGV4dC5kaXNhYmxlZH0gIWltcG9ydGFudDtcbiAgICAgICAgfVxuICAgICAgYH1cblxuICAgICY6aG92ZXIge1xuICAgICAgc3ZnIHtcbiAgICAgICAgdHJhbnNmb3JtOiBub25lO1xuICAgICAgfVxuICAgIH1cblxuICAgICY6YWN0aXZlIHtcbiAgICAgIHRyYW5zZm9ybTogbm9uZTtcbiAgICB9XG4gIH1cbmBcblxuZXhwb3J0IGNvbnN0IFNDTUlXcmFwcGVyQXR0YWNobWVudHMgPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBnYXA6IDEycHg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG5gXG5leHBvcnQgY29uc3QgU0NNSUF0dGFjaG1lbnREZWxldGVJY29uID0gc3R5bGVkLmRpdmBcbiAgcG9zaXRpb246IGFic29sdXRlO1xuICBkaXNwbGF5OiBub25lO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgdG9wOiAwO1xuICByaWdodDogMDtcbiAgcGFkZGluZzogMnB4O1xuICBib3JkZXItcmFkaXVzOiA1MCU7XG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNlNmU2ZTY7XG4gICAgc3ZnICo6bm90KC5uby1maWxsKSB7XG4gICAgICBmaWxsOiAjNjY2NjY2ICFpbXBvcnRhbnQ7XG4gICAgfVxuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBTQ01JQXR0YWNobWVudCA9IHN0eWxlZC5kaXY8eyBpc0ltYWdlPzogYm9vbGVhbiB9PmBcbiAgZGlzcGxheTogZmxleDtcbiAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGJvcmRlcjogMXB4IHNvbGlkIHJnYmEoMTkxLCAxOTEsIDE5MSwgMSk7XG4gIGJvcmRlci1yYWRpdXM6IDZweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIHBhZGRpbmc6IDEzcHg7XG4gICR7KHsgaXNJbWFnZSB9KSA9PlxuICAgIGlzSW1hZ2UgJiZcbiAgICBjc3NgXG4gICAgICBwYWRkaW5nOiAwcHggIWltcG9ydGFudDtcbiAgICBgfVxuXG4gICY6aG92ZXIge1xuICAgICR7U0NNSUF0dGFjaG1lbnREZWxldGVJY29ufSB7XG4gICAgICBkaXNwbGF5OiBmbGV4O1xuICAgIH1cbiAgfVxuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVUb29sc1JvdyA9IHN0eWxlZC5kaXZgXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGdhcDogOHB4O1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c1RvZ2dsZUJ1dHRvbiA9IHN0eWxlZC5idXR0b248eyAkbWVudU9wZW46IGJvb2xlYW4gfT5gXG4gIGRpc3BsYXk6IGZsZXg7XG4gIHdpZHRoOiAzMnB4O1xuICBoZWlnaHQ6IDMycHg7XG4gIGJveC1zaXppbmc6IGJvcmRlci1ib3g7XG4gIHBhZGRpbmc6IDA7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBib3JkZXI6IG5vbmU7XG4gIGJvcmRlci1yYWRpdXM6IDhweDtcbiAgYmFja2dyb3VuZDogJHsoeyAkbWVudU9wZW4gfSkgPT4gKCRtZW51T3BlbiA/IGNvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeSA6IGNvbG9ycy53aGl0ZS5tYWluKX07XG4gIGN1cnNvcjogcG9pbnRlcjtcbiAgZmxleC1zaHJpbms6IDA7XG5cbiAgJjpob3ZlciB7XG4gICAgYmFja2dyb3VuZDogJHtjb2xvcnMuYmFja2dyb3VuZC5zZWNvbmRhcnl9O1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMnB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudVBhcGVyID0gc3R5bGVkLmRpdmBcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IGNvbHVtbjtcbiAgYWxpZ24taXRlbXM6IHN0cmV0Y2g7XG4gIHdpZHRoOiAyMDlweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgcGFkZGluZzogMTJweCA4cHg7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgYm9yZGVyOiAxcHggc29saWQgJHtjb2xvcnMuY29sb3JzLmdyYXkubGlnaHR9O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy53aGl0ZS5tYWlufTtcbiAgYm94LXNoYWRvdzpcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA4KSxcbiAgICAwIDFweCA0cHggcmdiYSgwLCAwLCAwLCAwLjA0KTtcbmBcblxuZXhwb3J0IGNvbnN0IFBsdXNNZW51SW5uZXJDb2x1bW4gPSBzdHlsZWQuZGl2YFxuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogY29sdW1uO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA0cHg7XG4gIGFsaWduLXNlbGY6IHN0cmV0Y2g7XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudURpdmlkZXIgPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTcwcHg7XG4gIGhlaWdodDogMXB4O1xuICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5jb2xvcnMuZ3JheS5saWdodH07XG4gIGZsZXgtc2hyaW5rOiAwO1xuYFxuXG5leHBvcnQgY29uc3QgUGx1c01lbnVJdGVtQnV0dG9uID0gc3R5bGVkLmJ1dHRvbmBcbiAgZGlzcGxheTogZmxleDtcbiAgd2lkdGg6IDEwMCU7XG4gIHBhZGRpbmc6IDhweDtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiA4cHg7XG4gIGJvcmRlcjogbm9uZTtcbiAgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XG4gIGJvcmRlci1yYWRpdXM6IDRweDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmb250LWZhbWlseTogaW5oZXJpdDtcbiAgdGV4dC1hbGlnbjogbGVmdDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcblxuICAmOmhvdmVyIHtcbiAgICBiYWNrZ3JvdW5kOiAke2NvbG9ycy5iYWNrZ3JvdW5kLnNlY29uZGFyeX07XG4gIH1cblxuICAmOmZvY3VzLXZpc2libGUge1xuICAgIG91dGxpbmU6IDJweCBzb2xpZCAke0JMVUVfSUFfQ09MT1JTWzUwMF19O1xuICAgIG91dGxpbmUtb2Zmc2V0OiAtMnB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBQbHVzTWVudUl0ZW1MYWJlbCA9IHN0eWxlZC5zcGFuPHsgJHNlbGVjdGVkOiBib29sZWFuIH0+YFxuICBmbGV4OiAxO1xuICBtaW4td2lkdGg6IDA7XG4gIGNvbG9yOiAkeyh7ICRzZWxlY3RlZCB9KSA9PiAoJHNlbGVjdGVkID8gTUFJQV9DSEFUX0lOUFVUX1VJLnRleHRCcmFuZEJvbGQgOiBjb2xvcnMudGV4dC5wcmltYXJ5KX07XG4gIGZvbnQtc2l6ZTogMTRweDtcbiAgZm9udC13ZWlnaHQ6IDQwMDtcbiAgbGluZS1oZWlnaHQ6IDIwcHg7XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcFJvb3QgPSBzdHlsZWQuZGl2PHsgJGhvdmVyZWQ6IGJvb2xlYW47ICRleGl0aW5nOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBtYXgtd2lkdGg6IDE0NHB4O1xuICBwYWRkaW5nOiA0cHggOHB4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IDJweDtcbiAgYm94LXNpemluZzogYm9yZGVyLWJveDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICBib3JkZXItcmFkaXVzOiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/ICcxNnB4JyA6ICcwJyl9O1xuICBiYWNrZ3JvdW5kOiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/IE1BSUFfQ0hBVF9JTlBVVF9VSS5jaGlwU3VyZmFjZUhvdmVyIDogJ3RyYW5zcGFyZW50Jyl9O1xuICBib3gtc2hhZG93OiAkeyh7ICRob3ZlcmVkIH0pID0+ICgkaG92ZXJlZCA/ICcwIDFweCAzcHggcmdiYSgwLCAwLCAwLCAwLjA3KScgOiAnbm9uZScpfTtcbiAgdHJhbnNpdGlvbjpcbiAgICBiYWNrZ3JvdW5kLWNvbG9yIDAuMjJzIGVhc2UsXG4gICAgYm9yZGVyLXJhZGl1cyAwLjIycyBlYXNlLFxuICAgIGJveC1zaGFkb3cgMC4yMnMgZWFzZTtcblxuICAkeyh7ICRleGl0aW5nIH0pID0+XG4gICAgJGV4aXRpbmcgJiZcbiAgICBjc3NgXG4gICAgICBwb2ludGVyLWV2ZW50czogbm9uZTtcbiAgICAgIGFuaW1hdGlvbjogJHthY3RpdmVUb29sQ2hpcE91dH0gMC4yMnMgZWFzZSBmb3J3YXJkcztcbiAgICBgfVxuYFxuXG5leHBvcnQgY29uc3QgQWN0aXZlVG9vbENoaXBJY29uQnV0dG9uID0gc3R5bGVkLmJ1dHRvbjx7ICRjbG9zZVNob3duOiBib29sZWFuIH0+YFxuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgd2lkdGg6IDIwcHg7XG4gIGhlaWdodDogMjBweDtcbiAgcGFkZGluZzogMDtcbiAgYm9yZGVyOiBub25lO1xuICBiYWNrZ3JvdW5kOiB0cmFuc3BhcmVudDtcbiAgY3Vyc29yOiBwb2ludGVyO1xuICBmbGV4LXNocmluazogMDtcbiAgdHJhbnNpdGlvbjogdHJhbnNmb3JtIDAuMnMgZWFzZTtcblxuICBzdmcge1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICB9XG5cbiAgJHsoeyAkY2xvc2VTaG93biB9KSA9PlxuICAgICRjbG9zZVNob3duICYmXG4gICAgY3NzYFxuICAgICAgc3ZnIHtcbiAgICAgICAgYW5pbWF0aW9uOiAke2FjdGl2ZVRvb2xDaGlwQ2xvc2VJY29uSW59IDAuMjRzIGVhc2UgZm9yd2FyZHM7XG4gICAgICB9XG4gICAgYH1cblxuICAmOmhvdmVyIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDEuMDYpO1xuICB9XG5cbiAgJjpmb2N1cy12aXNpYmxlIHtcbiAgICBvdXRsaW5lOiAycHggc29saWQgJHtCTFVFX0lBX0NPTE9SU1s1MDBdfTtcbiAgICBvdXRsaW5lLW9mZnNldDogMXB4O1xuICB9XG5gXG5cbmV4cG9ydCBjb25zdCBBY3RpdmVUb29sQ2hpcExhYmVsID0gc3R5bGVkLnNwYW5gXG4gIGNvbG9yOiAke2NvbG9ycy50ZXh0LnByaW1hcnl9O1xuICBmb250LXNpemU6IDEycHg7XG4gIGxpbmUtaGVpZ2h0OiAxNnB4O1xuICBvdmVyZmxvdzogaGlkZGVuO1xuICB0ZXh0LW92ZXJmbG93OiBlbGxpcHNpcztcbiAgd2hpdGUtc3BhY2U6IG5vd3JhcDtcbiAgY3Vyc29yOiBkZWZhdWx0O1xuICB1c2VyLXNlbGVjdDogbm9uZTtcbmBcbmNvbnN0IHN0b3BQdWxzZSA9IGtleWZyYW1lc2BcbiAgMCUsXG4gIDEwMCUge1xuICAgIHRyYW5zZm9ybTogc2NhbGUoMSk7XG4gIH1cbiAgNTAlIHtcbiAgICB0cmFuc2Zvcm06IHNjYWxlKDAuOSk7XG4gIH1cbmBcbmV4cG9ydCBjb25zdCBTdHlsZWRNQUlBU3RvcEljb24gPSBzdHlsZWQuZGl2YFxuICB3aWR0aDogMTNweDtcbiAgaGVpZ2h0OiAxM3B4O1xuICBiYWNrZ3JvdW5kLWNvbG9yOiAjOGM4YzhjO1xuICBib3JkZXItcmFkaXVzOiAycHg7XG4gIGFuaW1hdGlvbjogJHtzdG9wUHVsc2V9IDEuNnMgZWFzZS1pbi1vdXQgaW5maW5pdGU7XG5gXG5leHBvcnQgY29uc3QgU3R5bGVkTUFJQVN0b3BCdXR0b24gPSBzdHlsZWQuYnV0dG9uYFxuICBiYWNrZ3JvdW5kOiBub25lO1xuICBib3JkZXI6IG5vbmU7XG4gIHBhZGRpbmc6IDA7XG4gIGZvbnQ6IGluaGVyaXQ7XG4gIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgaGVpZ2h0OiAzMHB4O1xuICB3aWR0aDogMzBweDtcbiAgYm9yZGVyLXJhZGl1czogOHB4O1xuICBkaXNwbGF5OiBmbGV4O1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgY3Vyc29yOiBwb2ludGVyO1xuXG4gICY6aG92ZXIge1xuICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNTBdfSAhaW1wb3J0YW50O1xuXG4gICAgJHtTdHlsZWRNQUlBU3RvcEljb259IHtcbiAgICAgIGJhY2tncm91bmQtY29sb3I6ICR7QkxVRV9JQV9DT0xPUlNbNTAwXX0gIWltcG9ydGFudDtcbiAgICB9XG4gIH1cblxuICAmOmRpc2FibGVkIHtcbiAgICBjdXJzb3I6IG5vdC1hbGxvd2VkO1xuICAgIGJhY2tncm91bmQtY29sb3I6ICNmMmYyZjIgIWltcG9ydGFudDtcbiAgICBvcGFjaXR5OiAwLjY7XG4gIH1cbmBcbiJdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQSxPQUFPQSxNQUFNLElBQUlDLEdBQUcsRUFBRUMsU0FBUyxRQUFRLG1CQUFtQjtBQUMxRCxPQUFPQyxNQUFNLE1BQU0sbUNBQW1DO0FBQ3RELFNBQVNDLGNBQWMsRUFBRUMsa0JBQWtCLFFBQVEsd0JBQXdCO0FBQzNFLFNBQVNDLGdCQUFnQixRQUFRLG1DQUFtQztBQUNwRSxTQUFTQyxXQUFXLFFBQVEsZ0JBQWdCO0FBRTVDLE9BQU8sSUFBTUMsSUFBSSxHQUFHTixTQUFTLDBIQWdCNUI7QUFFRCxJQUFNTyx5QkFBeUIsR0FBR1AsU0FBUyxnRkFTMUM7QUFFRCxJQUFNUSxpQkFBaUIsR0FBR1IsU0FBUywyR0FTbEM7QUFFRCxJQUFNUyxpQkFBaUIsR0FBR1YsR0FBRyx5VUFTZE8sSUFBSSxDQUlsQjtBQUVELE9BQU8sSUFBTUksc0JBQXNCLEdBQUdaLE1BQU0sQ0FBQ2EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLDZSQWdCcEMsVUFBQUMsSUFBQTtFQUFBLElBQUdDLFFBQVEsR0FBQUQsSUFBQSxDQUFSQyxRQUFRO0VBQUEsT0FBUUEsUUFBUSxHQUFHLGFBQWEsR0FBRyxNQUFNO0FBQUEsQ0FBQyxFQUl4RCxVQUFBQyxLQUFBO0VBQUEsSUFBR0MsWUFBWSxHQUFBRCxLQUFBLENBQVpDLFlBQVk7RUFBQSxPQUFRQSxZQUFZLEtBQUssVUFBVSxHQUFHLEtBQUssR0FBRyxHQUFHO0FBQUEsQ0FBQyxFQUdwRGpCLE1BQU0sQ0FBQ2tCLElBQUksQ0FBQ0gsUUFBUSxFQUlwQ1AsaUJBQWlCLEVBR25CLFVBQUFXLEtBQUE7RUFBQSxJ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QyxXQUFBO0FBQUEsbVFBUXpCLFVBQUEwRCxNQUFBO0VBQUEsSUFBR0MsUUFBUSxHQUFBRCxNQUFBLENBQVJDLFFBQVE7RUFBQSxPQUFRQSxRQUFRLEdBQUcsTUFBTSxHQUFHLEdBQUc7QUFBQSxDQUFDLEVBQzlDLFVBQUFDLE1BQUE7RUFBQSxJQUFHRCxRQUFRLEdBQUFDLE1BQUEsQ0FBUkQsUUFBUTtFQUFBLE9BQVFBLFFBQVEsR0FBR3RFLGtCQUFrQixDQUFDd0UsZ0JBQWdCLEdBQUcsYUFBYTtBQUFBLENBQUMsRUFDbEYsVUFBQUMsTUFBQTtFQUFBLElBQUdILFFBQVEsR0FBQUcsTUFBQSxDQUFSSCxRQUFRO0VBQUEsT0FBUUEsUUFBUSxHQUFHLCtCQUErQixHQUFHLE1BQU07QUFBQSxDQUFDLEVBTW5GLFVBQUFJLE1BQUE7RUFBQSxJQUFHQyxRQUFRLEdBQUFELE1BQUEsQ0FBUkMsUUFBUTtFQUFBLE9BQ1hBLFFBQVEsSUFDUi9FLEdBQUcsOERBRVlTLGlCQUFpQixDQUMvQjtBQUFBLEVBQ0o7QUFFRCxPQUFPLElBQU11RSx3QkFBd0IsR0FBR2pGLE1BQU0sQ0FBQ3VELE1BQU0sQ0FBQXpDLFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsa1RBaUJqRCxVQUFBa0UsTUFBQTtFQUFBLElBQUdDLFdBQVcsR0FBQUQsTUFBQSxDQUFYQyxXQUFXO0VBQUEsT0FDZEEsV0FBVyxJQUNYbEYsR0FBRywrQ0FFY1EseUJBQXlCLENBRXpDO0FBQUEsR0FPb0JMLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FHM0M7QUFFRCxPQUFPLElBQU1nRixtQkFBbUIsR0FBR3BGLE1BQU0sQ0FBQ29FLElBQUksQ0FBQXRELFVBQUE7RUFBQUMsV0FBQTtFQUFBQyxXQUFBO0FBQUEsOElBQ25DYixNQUFNLENBQUNrQixJQUFJLENBQUNtRCxPQUFPLENBUTdCO0FBQ0QsSUFBTWEsU0FBUyxHQUFHbkYsU0FBUyw0REFRMUI7QUFDRCxPQUFPLElBQU1vRixrQkFBa0IsR0FBR3RGLE1BQU0sQ0FBQ2EsR0FBRyxDQUFBQyxVQUFBO0VBQUFDLFdBQUE7RUFBQUMsV0FBQTtBQUFBLG9IQUs3QnFFLFNBQVMsQ0FDdkI7QUFDRCxPQUFPLElBQU1FLG9CQUFvQixHQUFHdkYsTUFBTSxDQUFDdUQsTUFBTSxDQUFBekMsVUFBQTtFQUFBQyxXQUFBO0VBQUFDLFdBQUE7QUFBQSwrV0FlekJaLGNBQWMsQ0FBQyxFQUFFLENBQUMsRUFFcENrRixrQkFBa0IsRUFDRWxGLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FTNUMiLCJpZ25vcmVMaXN0IjpbXX0=
|