@codecademy/brand 3.26.0-alpha.1ed4ec3b37.0 → 3.26.0-alpha.3d09cd7971.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -9,12 +9,12 @@ import { useEffect, useRef, useState } from 'react';
|
|
|
9
9
|
import { useOnEscHandler } from '../shared';
|
|
10
10
|
import { searchPlaceholder } from './consts';
|
|
11
11
|
import { PopularContent, PopularSearches } from './DefaultResults';
|
|
12
|
+
import { useSearchTracking } from './hooks/useSearchTracking';
|
|
12
13
|
import { useUrlChangeDetection } from './hooks/useUrlChangeDetection';
|
|
13
14
|
import { QuizAndHelpCenterLinks } from './QuizAndHelpCenterLinks';
|
|
14
15
|
import { safelyRedirect } from './safelyRedirect';
|
|
15
16
|
import { useSearchTrackingContext } from './SearchTrackingProvider';
|
|
16
17
|
import { searchWorker } from './SearchWorker';
|
|
17
|
-
import { useSearchTracking } from './hooks/useSearchTracking';
|
|
18
18
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
19
19
|
const Form = Box.withComponent('form', {
|
|
20
20
|
target: "e1e5b20r7",
|
|
@@ -38,7 +38,7 @@ const QueryContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
|
38
38
|
px: {
|
|
39
39
|
_: 24
|
|
40
40
|
}
|
|
41
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
41
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXNDdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
42
42
|
const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
43
43
|
target: "e1e5b20r5",
|
|
44
44
|
label: "SuggestionContainer"
|
|
@@ -51,7 +51,7 @@ const SuggestionContainer = /*#__PURE__*/_styled(ContentContainer, {
|
|
|
51
51
|
px: {
|
|
52
52
|
_: 24
|
|
53
53
|
}
|
|
54
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdENEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
54
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWdENEIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
55
55
|
const StyledInput = /*#__PURE__*/_styled(Input, {
|
|
56
56
|
target: "e1e5b20r4",
|
|
57
57
|
label: "StyledInput"
|
|
@@ -60,7 +60,7 @@ const StyledInput = /*#__PURE__*/_styled(Input, {
|
|
|
60
60
|
'&::placeholder': {
|
|
61
61
|
textColor: theme.colors['text-secondary']
|
|
62
62
|
}
|
|
63
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
63
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXdEb0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
64
64
|
const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
|
|
65
65
|
target: "e1e5b20r3",
|
|
66
66
|
label: "InlineResultLi"
|
|
@@ -71,7 +71,7 @@ const InlineResultLi = /*#__PURE__*/_styled(MenuItem, {
|
|
|
71
71
|
'&:focus-visible:after': {
|
|
72
72
|
left: -4
|
|
73
73
|
}
|
|
74
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
74
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWlFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
75
75
|
const InlineLoaderLi = /*#__PURE__*/_styled("li", {
|
|
76
76
|
target: "e1e5b20r2",
|
|
77
77
|
label: "InlineLoaderLi"
|
|
@@ -80,7 +80,7 @@ const InlineLoaderLi = /*#__PURE__*/_styled("li", {
|
|
|
80
80
|
display: 'flex',
|
|
81
81
|
gap: 12,
|
|
82
82
|
alignItems: 'center'
|
|
83
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
83
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTRFdUIiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
84
84
|
export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
|
|
85
85
|
target: "e1e5b20r1",
|
|
86
86
|
label: "SemiboldSearchIcon"
|
|
@@ -89,7 +89,7 @@ export const SemiboldSearchIcon = /*#__PURE__*/_styled(SearchIcon, {
|
|
|
89
89
|
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}"
|
|
90
90
|
} : {
|
|
91
91
|
name: "138xhwl",
|
|
92
|
-
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFGb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */",
|
|
92
|
+
styles: "overflow:visible!important;circle,path{stroke-width:2px;}rect{transform:translate(-2px, -2px);height:calc(100% + 4px);width:calc(100% + 4px);}/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQXFGb0QiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */",
|
|
93
93
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
94
94
|
});
|
|
95
95
|
const EllipsisBox = /*#__PURE__*/_styled(Box, {
|
|
@@ -100,7 +100,7 @@ const EllipsisBox = /*#__PURE__*/_styled(Box, {
|
|
|
100
100
|
styles: "text-overflow:ellipsis"
|
|
101
101
|
} : {
|
|
102
102
|
name: "rkw162",
|
|
103
|
-
styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVVybENoYW5nZURldGVjdGlvbiB9IGZyb20gJy4vaG9va3MvdXNlVXJsQ2hhbmdlRGV0ZWN0aW9uJztcbmltcG9ydCB7IFF1aXpBbmRIZWxwQ2VudGVyTGlua3MgfSBmcm9tICcuL1F1aXpBbmRIZWxwQ2VudGVyTGlua3MnO1xuaW1wb3J0IHsgc2FmZWx5UmVkaXJlY3QgfSBmcm9tICcuL3NhZmVseVJlZGlyZWN0JztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nQ29udGV4dCB9IGZyb20gJy4vU2VhcmNoVHJhY2tpbmdQcm92aWRlcic7XG5pbXBvcnQgeyBzZWFyY2hXb3JrZXIgfSBmcm9tICcuL1NlYXJjaFdvcmtlcic7XG5pbXBvcnQgdHlwZSB7XG4gIEF1dG9jb21wbGV0ZVN1Z2dlc3Rpb24sXG4gIFNlYXJjaEFzWW91VHlwZVJlc3VsdHMsXG59IGZyb20gJy4vU2VhcmNoV29ya2VyL3R5cGVzJztcbmltcG9ydCB7IFNlYXJjaFBhbmVQcm9wcyB9IGZyb20gJy4vdHlwZXMnO1xuaW1wb3J0IHsgdXNlU2VhcmNoVHJhY2tpbmcgfSBmcm9tICcuL2hvb2tzL3VzZVNlYXJjaFRyYWNraW5nJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */",
|
|
103
|
+
styles: "text-overflow:ellipsis/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9BcHBIZWFkZXIvU2VhcmNoL1NlYXJjaFBhbmUudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQWtHK0IiLCJmaWxlIjoiLi4vLi4vLi4vc3JjL0FwcEhlYWRlci9TZWFyY2gvU2VhcmNoUGFuZS50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCYWRnZSxcbiAgQm94LFxuICBDb250ZW50Q29udGFpbmVyLFxuICBGbGV4Qm94LFxuICBGb2N1c1RyYXAsXG4gIEljb25CdXR0b24sXG4gIE1lbnUsXG4gIE1lbnVJdGVtLFxuICBTaGltbWVyLFxuICBTdHJva2VCdXR0b24sXG4gIFRleHQsXG59IGZyb20gJ0Bjb2RlY2FkZW15L2dhbXV0JztcbmltcG9ydCB7IE1pbmlEZWxldGVJY29uLCBTZWFyY2hJY29uIH0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQtaWNvbnMnO1xuaW1wb3J0IHsgY3NzLCB0aGVtZSwgdXNlQ3VycmVudE1vZGUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHsgdXNlVGhlbWUgfSBmcm9tICdAZW1vdGlvbi9yZWFjdCc7XG5pbXBvcnQgc3R5bGVkIGZyb20gJ0BlbW90aW9uL3N0eWxlZCc7XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgeyB1c2VFZmZlY3QsIHVzZVJlZiwgdXNlU3RhdGUgfSBmcm9tICdyZWFjdCc7XG5cbmltcG9ydCB7IHVzZU9uRXNjSGFuZGxlciB9IGZyb20gJy4uL3NoYXJlZCc7XG5pbXBvcnQgeyBzZWFyY2hQbGFjZWhvbGRlciB9IGZyb20gJy4vY29uc3RzJztcbmltcG9ydCB7IFBvcHVsYXJDb250ZW50LCBQb3B1bGFyU2VhcmNoZXMgfSBmcm9tICcuL0RlZmF1bHRSZXN1bHRzJztcbmltcG9ydCB7IHVzZVNlYXJjaFRyYWNraW5nIH0gZnJvbSAnLi9ob29rcy91c2VTZWFyY2hUcmFja2luZyc7XG5pbXBvcnQgeyB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24gfSBmcm9tICcuL2hvb2tzL3VzZVVybENoYW5nZURldGVjdGlvbic7XG5pbXBvcnQgeyBRdWl6QW5kSGVscENlbnRlckxpbmtzIH0gZnJvbSAnLi9RdWl6QW5kSGVscENlbnRlckxpbmtzJztcbmltcG9ydCB7IHNhZmVseVJlZGlyZWN0IH0gZnJvbSAnLi9zYWZlbHlSZWRpcmVjdCc7XG5pbXBvcnQgeyB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQgfSBmcm9tICcuL1NlYXJjaFRyYWNraW5nUHJvdmlkZXInO1xuaW1wb3J0IHsgc2VhcmNoV29ya2VyIH0gZnJvbSAnLi9TZWFyY2hXb3JrZXInO1xuaW1wb3J0IHR5cGUge1xuICBBdXRvY29tcGxldGVTdWdnZXN0aW9uLFxuICBTZWFyY2hBc1lvdVR5cGVSZXN1bHRzLFxufSBmcm9tICcuL1NlYXJjaFdvcmtlci90eXBlcyc7XG5pbXBvcnQgeyBTZWFyY2hQYW5lUHJvcHMgfSBmcm9tICcuL3R5cGVzJztcblxuY29uc3QgRm9ybSA9IEJveC53aXRoQ29tcG9uZW50KCdmb3JtJyk7XG5jb25zdCBJbnB1dCA9IEJveC53aXRoQ29tcG9uZW50KCdpbnB1dCcpO1xuXG5jb25zdCBRdWVyeUNvbnRhaW5lciA9IHN0eWxlZChDb250ZW50Q29udGFpbmVyKShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgd2lkdGg6ICcxMDAlJyxcbiAgICBwdDogMTYsXG4gICAgcGI6IHsgXzogMCwgbWQ6IDI0IH0sXG4gICAgcHg6IHsgXzogMjQgfSxcbiAgfSlcbik7XG5cbmNvbnN0IFN1Z2dlc3Rpb25Db250YWluZXIgPSBzdHlsZWQoQ29udGVudENvbnRhaW5lcikoXG4gIGNzcyh7XG4gICAgcHQ6IDE2LFxuICAgIHBiOiB7IF86IDAsIG1kOiAyNCB9LFxuICAgIHB4OiB7IF86IDI0IH0sXG4gIH0pXG4pO1xuXG5jb25zdCBTdHlsZWRJbnB1dCA9IHN0eWxlZChJbnB1dCkoXG4gIGNzcyh7XG4gICAgb3V0bGluZTogYG5vbmVgLFxuICAgICcmOjpwbGFjZWhvbGRlcic6IHtcbiAgICAgIHRleHRDb2xvcjogdGhlbWUuY29sb3JzWyd0ZXh0LXNlY29uZGFyeSddIGFzIG5ldmVyLFxuICAgIH0sXG4gIH0pXG4pO1xuXG5jb25zdCBJbmxpbmVSZXN1bHRMaSA9IHN0eWxlZChNZW51SXRlbSkoXG4gIGNzcyh7XG4gICAgcGw6IDAsXG4gICAgcHk6IDgsXG4gICAgZm9udFNpemU6IDE2LFxuICAgICcmOmZvY3VzLXZpc2libGU6YWZ0ZXInOiB7XG4gICAgICBsZWZ0OiAtNCxcbiAgICB9LFxuICB9KVxuKTtcblxuY29uc3QgSW5saW5lTG9hZGVyTGkgPSBzdHlsZWQubGkoXG4gIGNzcyh7XG4gICAgbGlzdFN0eWxlVHlwZTogJ25vbmUnLFxuICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICBnYXA6IDEyLFxuICAgIGFsaWduSXRlbXM6ICdjZW50ZXInLFxuICB9KVxuKTtcblxuZXhwb3J0IGNvbnN0IFNlbWlib2xkU2VhcmNoSWNvbiA9IHN0eWxlZChTZWFyY2hJY29uKWBcbiAgb3ZlcmZsb3c6IHZpc2libGUgIWltcG9ydGFudDtcbiAgY2lyY2xlLFxuICBwYXRoIHtcbiAgICBzdHJva2Utd2lkdGg6IDJweDtcbiAgfVxuICByZWN0IHtcbiAgICB0cmFuc2Zvcm06IHRyYW5zbGF0ZSgtMnB4LCAtMnB4KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSArIDRweCk7XG4gICAgd2lkdGg6IGNhbGMoMTAwJSArIDRweCk7XG4gIH1cbmA7XG5cbmNvbnN0IEVsbGlwc2lzQm94ID0gc3R5bGVkKEJveClgXG4gIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuYDtcblxuY29uc3QgSGlnaGxpZ2h0ZWRUZXh0ID0gKHtcbiAgc3VnZ2VzdGlvbjogeyB0aXRsZSwgc2VnbWVudHMgfSxcbn06IHtcbiAgc3VnZ2VzdGlvbjogQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbjtcbn0pID0+IHtcbiAgY29uc3QgbW9kZSA9IHVzZUN1cnJlbnRNb2RlKCk7XG4gIGNvbnN0IGhpZ2hsaWdodENvbG9yID0gbW9kZSA9PT0gJ2RhcmsnID8gJ2h5cGVyJyA6ICd5ZWxsb3cnO1xuXG4gIHJldHVybiAoXG4gICAgPEZsZXhCb3g+XG4gICAgICA8RWxsaXBzaXNCb3hcbiAgICAgICAgbWF4V2lkdGg9XCJjYWxjKDEwMHZ3IC0gMTI4cHgpXCJcbiAgICAgICAgd2hpdGVTcGFjZT1cInByZVwiXG4gICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgIG92ZXJmbG93PVwiaGlkZGVuXCJcbiAgICAgID5cbiAgICAgICAge3NlZ21lbnRzLm1hcCgoc2VnbWVudCwgaSkgPT4gKFxuICAgICAgICAgIDxUZXh0XG4gICAgICAgICAgICBrZXk9e2Ake3RpdGxlfToke2kudG9TdHJpbmcoKX1gfVxuICAgICAgICAgICAgbGluZUhlaWdodD1cInRpdGxlXCJcbiAgICAgICAgICAgIHsuLi4oc2VnbWVudC5oaWdobGlnaHRcbiAgICAgICAgICAgICAgPyB7IGJnOiBoaWdobGlnaHRDb2xvciwgZm9udFdlaWdodDogJ2JvbGQnIH1cbiAgICAgICAgICAgICAgOiB7fSl9XG4gICAgICAgICAgPlxuICAgICAgICAgICAge3NlZ21lbnQudmFsdWV9XG4gICAgICAgICAgPC9UZXh0PlxuICAgICAgICApKX1cbiAgICAgIDwvRWxsaXBzaXNCb3g+XG4gICAgICA8VGV4dCBzY3JlZW5yZWFkZXI+e3RpdGxlfTwvVGV4dD5cbiAgICA8L0ZsZXhCb3g+XG4gICk7XG59O1xuXG50eXBlIFNlYXJjaEFzWW91VHlwZUxvYWRlciA9IHtcbiAgc2hpbW1lclJvd3M6IHtcbiAgICBrZXk6IHN0cmluZztcbiAgICBzaGltbWVyczoge1xuICAgICAga2V5OiBzdHJpbmc7XG4gICAgICB3aWR0aDogbnVtYmVyO1xuICAgIH1bXTtcbiAgfVtdO1xufTtcblxubGV0IGxvYWRlcktleSA9IDA7XG5mdW5jdGlvbiBybmRMb2FkZXIoKSB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1wbHVzcGx1c1xuICBjb25zdCBrZXkgPSBsb2FkZXJLZXkrKztcbiAgY29uc3QgbG9hZGVyOiBTZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSB7IHNoaW1tZXJSb3dzOiBbXSB9O1xuICBmb3IgKGxldCBpID0gMDsgaSA8IDU7IGkrKykge1xuICAgIGNvbnN0IHJvdyA9IHtcbiAgICAgIGtleTogYCR7a2V5fToke2l9YCxcbiAgICAgIHNoaW1tZXJzOiBbXSBhcyB7IGtleTogc3RyaW5nOyB3aWR0aDogbnVtYmVyIH1bXSxcbiAgICB9O1xuICAgIGNvbnN0IHdvcmRzID0gTWF0aC5jZWlsKE1hdGgucmFuZG9tKCkgKiAzKTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IHdvcmRzOyBqKyspIHtcbiAgICAgIGNvbnN0IHdpZHRoID0gMTIgKyBNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiA5Nik7XG4gICAgICByb3cuc2hpbW1lcnMucHVzaCh7XG4gICAgICAgIGtleTogYCR7a2V5fToke2p9YCxcbiAgICAgICAgd2lkdGgsXG4gICAgICB9KTtcbiAgICB9XG4gICAgbG9hZGVyLnNoaW1tZXJSb3dzLnB1c2gocm93KTtcbiAgfVxuICByZXR1cm4gbG9hZGVyO1xufVxuXG5leHBvcnQgY29uc3QgU2VhcmNoUGFuZTogUmVhY3QuRkM8U2VhcmNoUGFuZVByb3BzPiA9ICh7XG4gIG9uU2VhcmNoLFxuICBvblRyYWNraW5nQ2xpY2ssXG4gIHNlYXJjaEJ1dHRvblJlZixcbiAgdG9nZ2xlU2VhcmNoLFxuICBvblNlYXJjaEFzWW91VHlwZSxcbn0pID0+IHtcbiAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICBjb25zdCBbdmFsdWUsIHNldFZhbHVlXSA9IHVzZVN0YXRlKCcnKTtcbiAgY29uc3QgaW5wdXRSZWYgPSB1c2VSZWY8SFRNTElucHV0RWxlbWVudD4obnVsbCk7XG4gIGNvbnN0IFthdXRvQ29tcGxldGVTdWdnZXN0aW9ucywgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnNdID0gdXNlU3RhdGU8XG4gICAgQXV0b2NvbXBsZXRlU3VnZ2VzdGlvbltdXG4gID4oW10pO1xuICBjb25zdCBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0cywgc2V0U2VhcmNoQXNZb3VUeXBlUmVzdWx0c10gPVxuICAgIHVzZVN0YXRlPFNlYXJjaEFzWW91VHlwZVJlc3VsdHMgfCBudWxsPihudWxsKTtcblxuICBjb25zdCB7IHNldE9uU2VhcmNoQXNZb3VUeXBlUGFyYW1zIH0gPSB1c2VTZWFyY2hUcmFja2luZ0NvbnRleHQoKTtcblxuICBjb25zdCBzZWFyY2hBc1lvdVR5cGVMb2FkZXIgPSBSZWFjdC51c2VNZW1vKFxuICAgICgpID0+IChzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsID8gcm5kTG9hZGVyKCkgOiBudWxsKSxcbiAgICBbc2VhcmNoQXNZb3VUeXBlUmVzdWx0c11cbiAgKTtcblxuICBjb25zdCB2YWx1ZVRyaW1tZWQgPSB2YWx1ZS50cmltKCk7XG5cbiAgY29uc3QgaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzID0gb25TZWFyY2hBc1lvdVR5cGUgJiYgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcblxuICBjb25zdCBjbG9zZVNlYXJjaCA9IGFzeW5jIChmcm9tUmVzdWx0Q2xpY2sgPSBmYWxzZSkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCB3aGVuIHVzZXIgbWFkZSBhIHNlYXJjaCBhbmQgdGhlbiBjbG9zZWQgc2VhcmNoIHBhbmVcbiAgICBpZiAoXG4gICAgICBoYXNTZWFyY2hFdmVudEFuZFJlc3VsdHMgJiZcbiAgICAgICFmcm9tUmVzdWx0Q2xpY2sgJiZcbiAgICAgIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwXG4gICAgKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIGF3YWl0IHRvZ2dsZVNlYXJjaCgpO1xuICAgIC8vIGFkZHMgYSBsaXR0bGUgZGVsYXkgYmV0d2VlbiBjbG9zaW5nIHRoZSBzZWFyY2ggcGFuZSBhbmQgZm9jdXNpbmcgb24gdGhlIGJ1dHRvblxuICAgIC8vIHRvIHByZXZlbnQgdGhlIHNlYXJjaCBwYW5lIGZyb20gaW1tZWRpYXRlbHkgb3BlbmluZyBhZ2FpblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKHNlYXJjaEJ1dHRvblJlZiAmJiBzZWFyY2hCdXR0b25SZWY/LmN1cnJlbnQpIHtcbiAgICAgICAgc2VhcmNoQnV0dG9uUmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9O1xuXG4gIGNvbnN0IG9uS2V5RG93biA9IHVzZU9uRXNjSGFuZGxlcigoKSA9PiBjbG9zZVNlYXJjaCgpKTtcblxuICBjb25zdCBvbk1vdXNlRG93bk91dHNpZGUgPSAoeyB0YXJnZXQgfTogTW91c2VFdmVudCkgPT4ge1xuICAgIGNvbnN0IGhhbmRsZU91dHNpZGVDbGljayA9ICgpID0+IHtcbiAgICAgIGlmIChcbiAgICAgICAgIWRvY3VtZW50XG4gICAgICAgICAgLnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLXRlc3RpZD1cImhlYWRlci1zZWFyY2gtZHJvcGRvd25cIl0nKVxuICAgICAgICAgID8uY29udGFpbnModGFyZ2V0IGFzIEhUTUxFbGVtZW50KSAmJlxuICAgICAgICB0YXJnZXQgIT09IHNlYXJjaEJ1dHRvblJlZj8uY3VycmVudFxuICAgICAgKSB7XG4gICAgICAgIGNsb3NlU2VhcmNoKCk7XG4gICAgICB9XG5cbiAgICAgIHRhcmdldD8ucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gICAgfTtcblxuICAgIHRhcmdldD8uYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIGhhbmRsZU91dHNpZGVDbGljayk7XG4gIH07XG5cbiAgY29uc3QgbmF2aWdhdGVUb1NlYXJjaCA9IChzZWFyY2hUZXJtOiBzdHJpbmcsIGZyb21QcmV2U2VhcmNoPzogc3RyaW5nKSA9PiB7XG4gICAgb25TZWFyY2goc2VhcmNoVGVybSwgZnJvbVByZXZTZWFyY2gpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZUNoYW5nZTogUmVhY3QuQ2hhbmdlRXZlbnRIYW5kbGVyPEhUTUxJbnB1dEVsZW1lbnQ+ID0gKGV2dCkgPT4ge1xuICAgIHNldFZhbHVlKGV2dC50YXJnZXQudmFsdWUpO1xuICB9O1xuXG4gIGNvbnN0IGhhbmRsZVN1Ym1pdDogUmVhY3QuRm9ybUV2ZW50SGFuZGxlciA9IChldmVudCkgPT4ge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cbiAgICAvLyB0cmFjayBzZWFyY2ggZXZlbnQgd2hlbiB0aGUgdXNlciBzdWJtaXRzIHRoZSBmb3JtIHRvIGNhcHR1cmUgY29tcGxldGUgcXVlcnlcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIG5hdmlnYXRlVG9TZWFyY2godmFsdWUsIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkKTtcbiAgfTtcblxuICBjb25zdCBjbGVhcklucHV0ID0gKCkgPT4ge1xuICAgIC8vIHRyYWNrIHNlYXJjaCBldmVudCBiZWZvcmUgdXNlciBjbGVhcnMgaW5wdXRcbiAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCB7IHF1ZXJ5LCBzZWFyY2hJZCwgcmVzdWx0c0NvdW50LCBxdWVyeUxvYWRUaW1lIH0gPVxuICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzO1xuICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgIH1cblxuICAgIHNldFZhbHVlKCcnKTtcbiAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhbXSk7XG4gICAgLy8gcmVzZXQgdGhlIGNvbnRleHQgd2l0aCBlbXB0eSB2YWx1ZXNcbiAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICBxdWVyeTogJycsXG4gICAgICBzZWFyY2hJZDogJycsXG4gICAgICByZXN1bHRzQ291bnQ6IDAsXG4gICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgIH0pO1xuICB9O1xuXG4gIC8vIHdoZW4gdGhlIGN1cnJlbnQgVVJMIGNoYW5nZXMsIHdlIHdhbnQgdG8gY2xvc2UgdGhlIHNlYXJjaCBwYW5lIGlmIGl0J3Mgb3BlblxuICAvLyBhbmQgdHJhY2sgc2VhcmNoIGV2ZW50IGlmIHVzZXIgbWFkZSBhIHNlYXJjaFxuICB1c2VVcmxDaGFuZ2VEZXRlY3Rpb24oe1xuICAgIG9uVXJsQ2hhbmdlOiAoKSA9PiB7XG4gICAgICBpZiAoaGFzU2VhcmNoRXZlbnRBbmRSZXN1bHRzICYmIHZhbHVlVHJpbW1lZC5sZW5ndGggPiAwKSB7XG4gICAgICAgIGNvbnN0IHsgcXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUgfSA9XG4gICAgICAgICAgc2VhcmNoQXNZb3VUeXBlUmVzdWx0cztcbiAgICAgICAgb25TZWFyY2hBc1lvdVR5cGUocXVlcnksIHNlYXJjaElkLCByZXN1bHRzQ291bnQsIHF1ZXJ5TG9hZFRpbWUpO1xuICAgICAgfVxuXG4gICAgICB0b2dnbGVTZWFyY2goKTtcbiAgICB9LFxuICB9KTtcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGlucHV0UmVmLmN1cnJlbnQ/LmZvY3VzKCk7XG4gICAgc2VhcmNoV29ya2VyLmluaXQoKTtcbiAgfSwgW10pO1xuXG4gIHVzZUVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKCF2YWx1ZVRyaW1tZWQubGVuZ3RoKSB7XG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgICAgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXMoe1xuICAgICAgICBxdWVyeTogJycsXG4gICAgICAgIHNlYXJjaElkOiAnJyxcbiAgICAgICAgcmVzdWx0c0NvdW50OiAwLFxuICAgICAgICBxdWVyeUxvYWRUaW1lOiAwLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgbGV0IGNhbmNlbCA9IGZhbHNlO1xuICAgIGxldCBjbGVhckF1dG9jb21wbGV0ZSA9IHRydWU7XG4gICAgbGV0IGNsZWFyU2VhcmNoQXNZb3VUeXBlID0gdHJ1ZTtcblxuICAgIGNvbnN0IGxvYWRlckRlbGF5ID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAvKlxuICAgICAgICogV2FpdCAxMCBtaWxsaXNlY29uZHMgdG8gZ2V0IGEgcmVzcG9uc2UgZm9yIHdvcmtlciBiZWZvcmUgc2hvd2luZyBsb2FkZXJzLlxuICAgICAgICogVGhpcyBwcmV2ZW50cyBmbGlja2VyaW5nIGxvYWRlcnMgb24gcXVpY2sgb3IgY2FjaGVkIHJlc3VsdHMuXG4gICAgICAgKi9cbiAgICAgIGlmIChjYW5jZWwpIHJldHVybjtcbiAgICAgIGlmIChjbGVhckF1dG9jb21wbGV0ZSkgc2V0QXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMoW10pO1xuICAgICAgaWYgKGNsZWFyU2VhcmNoQXNZb3VUeXBlKSBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKG51bGwpO1xuICAgIH0sIDEwKTtcblxuICAgIHNlYXJjaFdvcmtlci5hdXRvY29tcGxldGUodmFsdWVUcmltbWVkKS50aGVuKChzdWdnZXN0aW9ucykgPT4ge1xuICAgICAgY2xlYXJBdXRvY29tcGxldGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRBdXRvQ29tcGxldGVTdWdnZXN0aW9ucyhzdWdnZXN0aW9ucyk7XG4gICAgfSk7XG5cbiAgICBzZWFyY2hXb3JrZXIuc2VhcmNoQXNZb3VUeXBlKHZhbHVlVHJpbW1lZCkudGhlbigocmVzdWx0cykgPT4ge1xuICAgICAgY2xlYXJTZWFyY2hBc1lvdVR5cGUgPSBmYWxzZTtcblxuICAgICAgaWYgKGNhbmNlbCkgcmV0dXJuOyAvLyB0ZXh0IGhhcyBjaGFuZ2VkIHNpbmNlIHRoaXMgcmVxdWVzdCB3YXMgbWFkZVxuXG4gICAgICBzZXRTZWFyY2hBc1lvdVR5cGVSZXN1bHRzKHJlc3VsdHMpO1xuXG4gICAgICBzZXRPblNlYXJjaEFzWW91VHlwZVBhcmFtcyh7XG4gICAgICAgIHF1ZXJ5OiByZXN1bHRzLnF1ZXJ5LFxuICAgICAgICBzZWFyY2hJZDogcmVzdWx0cy5zZWFyY2hJZCxcbiAgICAgICAgcmVzdWx0c0NvdW50OiByZXN1bHRzLnRvcC5sZW5ndGgsXG4gICAgICAgIHF1ZXJ5TG9hZFRpbWU6IHJlc3VsdHMucXVlcnlMb2FkVGltZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBjYW5jZWwgPSB0cnVlO1xuICAgICAgY2xlYXJUaW1lb3V0KGxvYWRlckRlbGF5KTtcbiAgICB9O1xuICB9LCBbdmFsdWVUcmltbWVkLCBvblNlYXJjaEFzWW91VHlwZSwgc2V0T25TZWFyY2hBc1lvdVR5cGVQYXJhbXNdKTtcblxuICB1c2VTZWFyY2hUcmFja2luZyh7XG4gICAgb25TZWFyY2hBc1lvdVR5cGUsXG4gIH0pO1xuXG4gIHJldHVybiAoXG4gICAgPD5cbiAgICAgIDxCb3hcbiAgICAgICAgYXJpYS1oaWRkZW5cbiAgICAgICAgYmc9XCJzaGFkb3ctc2Vjb25kYXJ5XCJcbiAgICAgICAgaGVpZ2h0PVwiMTAwdmhcIlxuICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgLy8gV2UgYWRkIDVyZW0gaGVyZSBpbiBjYXNlIHRoZXJlJ3Mgc29tZSBzb3J0IG9mIGJyYW5kZWQgYmFubmVyIGFib3ZlIHNlYXJjaFxuICAgICAgICAvLyBUaGUgc2VhcmNoIGFyZWEgaXMgbXVjaCB0YWxsZXIgdGhhbiA1cmVtIHNvIHRoaXMgaXMgYSBzYWZlIGFtb3VudCBvZiBwYWRkaW5nXG4gICAgICAgIHRvcD17YGNhbGMoJHt0aGVtZS5lbGVtZW50cy5oZWFkZXJIZWlnaHR9ICsgNXJlbSlgfVxuICAgICAgICB3aWR0aD17MX1cbiAgICAgIC8+XG4gICAgICA8Rm9jdXNUcmFwXG4gICAgICAgIG9uRXNjYXBlS2V5PXsoKSA9PiBjbG9zZVNlYXJjaCgpfVxuICAgICAgICBvbkNsaWNrT3V0c2lkZT17b25Nb3VzZURvd25PdXRzaWRlfVxuICAgICAgICBhbGxvd1BhZ2VJbnRlcmFjdGlvblxuICAgICAgPlxuICAgICAgICA8Qm94XG4gICAgICAgICAgYmc9XCJiYWNrZ3JvdW5kXCJcbiAgICAgICAgICBib3JkZXJDb2xvckJvdHRvbT1cImJvcmRlci1wcmltYXJ5XCJcbiAgICAgICAgICBib3JkZXJDb2xvclRvcD1cImJvcmRlci10ZXJ0aWFyeVwiXG4gICAgICAgICAgYm9yZGVyU3R5bGU9XCJzb2xpZFwiXG4gICAgICAgICAgYm9yZGVyV2lkdGg9XCIycHggMCAxcHhcIlxuICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLXNlYXJjaC1kcm9wZG93blwiXG4gICAgICAgICAgcG9zaXRpb249e3sgXzogJ2ZpeGVkJywgbWQ6ICdhYnNvbHV0ZScgfX1cbiAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgIG1heEhlaWdodD17eyBfOiAnY2FsYygxMDB2aCAtIDYzcHgpJywgbWQ6ICdjYWxjKDEwMHZoIC0gODBweCknIH19XG4gICAgICAgICAgb3ZlcmZsb3c9XCJhdXRvXCJcbiAgICAgICAgICB6SW5kZXg9ezEwfSAvLyBlbnN1cmUgZHJvcGRvd24gaXMgYWJvdmUgdGhlIHBhZ2UgY29udGVudFxuICAgICAgICA+XG4gICAgICAgICAgPEJveCBib3JkZXI9XCJub25lXCIgd2lkdGg9XCJhdXRvXCI+XG4gICAgICAgICAgICA8UXVlcnlDb250YWluZXI+XG4gICAgICAgICAgICAgIDxGbGV4Qm94XG4gICAgICAgICAgICAgICAgYWxpZ25JdGVtcz1cImJhc2VsaW5lXCJcbiAgICAgICAgICAgICAgICBib3JkZXJDb2xvcj1cImdyYXktNjAwXCJcbiAgICAgICAgICAgICAgICBib3JkZXJTdHlsZUJvdHRvbT1cInNvbGlkXCJcbiAgICAgICAgICAgICAgICBib3JkZXJXaWR0aEJvdHRvbT1cIjFweFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICBoZWlnaHQ9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgICAgd2lkdGg9e3sgXzogMjAsIG1kOiAyNCB9fVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPEZvcm1cbiAgICAgICAgICAgICAgICAgIGFjdGlvbj1cIi9zZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgaWQ9XCJzZWFyY2gtZm9ybVwiXG4gICAgICAgICAgICAgICAgICBtbD17OH1cbiAgICAgICAgICAgICAgICAgIG9uU3VibWl0PXtoYW5kbGVTdWJtaXR9XG4gICAgICAgICAgICAgICAgICB3aWR0aD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxTdHlsZWRJbnB1dFxuICAgICAgICAgICAgICAgICAgICBhdXRvRm9jdXNcbiAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICBib3JkZXI9XCJub25lXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJ0ZXh0XCJcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU9e3sgXzogMjAsIG1kOiAyNiB9fVxuICAgICAgICAgICAgICAgICAgICBmb250V2VpZ2h0PVwiYm9sZFwiXG4gICAgICAgICAgICAgICAgICAgIGlkPVwiaGVhZGVyLXNlYXJjaC1iYXJcIlxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwicXVlcnlcIlxuICAgICAgICAgICAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhlKSA9PiBvbktleURvd24oZSl9XG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtzZWFyY2hQbGFjZWhvbGRlcn1cbiAgICAgICAgICAgICAgICAgICAgcmVmPXtpbnB1dFJlZn1cbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cInNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPXt2YWx1ZX1cbiAgICAgICAgICAgICAgICAgICAgd2lkdGg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgYXV0b0NvbXBsZXRlPVwib2ZmXCJcbiAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgPC9Gb3JtPlxuICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICBpY29uPXtNaW5pRGVsZXRlSWNvbn1cbiAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhciBzZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgdGlwPVwiQ2xlYXIgc2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICBwbGFjZW1lbnQ6ICdmbG9hdGluZycsXG4gICAgICAgICAgICAgICAgICAgIG5hcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgekluZGV4OiAyLFxuICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2NsZWFySW5wdXR9XG4gICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvRmxleEJveD5cbiAgICAgICAgICAgIDwvUXVlcnlDb250YWluZXI+XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgPFN1Z2dlc3Rpb25Db250YWluZXI+XG4gICAgICAgICAgICB7dmFsdWVUcmltbWVkLmxlbmd0aCA+IDAgPyAoXG4gICAgICAgICAgICAgIDw+XG4gICAgICAgICAgICAgICAgPEZsZXhCb3ggZmxleERpcmVjdGlvbj1cImNvbHVtblwiIGFzPVwidWxcIiBsaXN0U3R5bGU9XCJub25lXCIgcD17MH0+XG4gICAgICAgICAgICAgICAgICB7YXV0b0NvbXBsZXRlU3VnZ2VzdGlvbnMubWFwKChzLCBpKSA9PiAoXG4gICAgICAgICAgICAgICAgICAgIDxJbmxpbmVSZXN1bHRMaVxuICAgICAgICAgICAgICAgICAgICAgIGtleT17cy50aXRsZX1cbiAgICAgICAgICAgICAgICAgICAgICB0YWJJbmRleD17MH1cbiAgICAgICAgICAgICAgICAgICAgICBvbktleURvd249eyhldnQpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnYXV0b2NvbXBsZXRlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGVUb1NlYXJjaChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdhdXRvY29tcGxldGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnNlYXJjaElkID8/ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtaXNjOiBKU09OLnN0cmluZ2lmeSh7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IGksXG4gICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzLnRpdGxlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICA8U2VtaWJvbGRTZWFyY2hJY29uXG4gICAgICAgICAgICAgICAgICAgICAgICBtYj17MiBhcyAwfVxuICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT17MTR9XG4gICAgICAgICAgICAgICAgICAgICAgICBzdHJva2VXaWR0aD17OH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtaGlkZGVuXG4gICAgICAgICAgICAgICAgICAgICAgICBtcj17MTJ9XG4gICAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgICAgICA8SGlnaGxpZ2h0ZWRUZXh0IHN1Z2dlc3Rpb249e3N9IC8+XG4gICAgICAgICAgICAgICAgICAgIDwvSW5saW5lUmVzdWx0TGk+XG4gICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICA8L0ZsZXhCb3g+XG4gICAgICAgICAgICAgICAgeyhzZWFyY2hBc1lvdVR5cGVSZXN1bHRzID09PSBudWxsIHx8XG4gICAgICAgICAgICAgICAgICBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5sZW5ndGggPiAwKSAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8VGV4dCBhcz1cImgyXCIgZm9udFNpemU9ezIwfSBtYj17MTZ9IG10PXsyNH0+XG4gICAgICAgICAgICAgICAgICAgICAgVG9wIHJlc3VsdHNcbiAgICAgICAgICAgICAgICAgICAgPC9UZXh0PlxuICAgICAgICAgICAgICAgICAgICA8RmxleEJveFxuICAgICAgICAgICAgICAgICAgICAgIGZsZXhEaXJlY3Rpb249XCJjb2x1bW5cIlxuICAgICAgICAgICAgICAgICAgICAgIGFzPVwidWxcIlxuICAgICAgICAgICAgICAgICAgICAgIGxpc3RTdHlsZT1cIm5vbmVcIlxuICAgICAgICAgICAgICAgICAgICAgIHA9ezB9XG4gICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cyA9PT0gbnVsbFxuICAgICAgICAgICAgICAgICAgICAgICAgPyBzZWFyY2hBc1lvdVR5cGVMb2FkZXI/LnNoaW1tZXJSb3dzLm1hcCgocikgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJbmxpbmVMb2FkZXJMaSBrZXk9e3Iua2V5fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtyLnNoaW1tZXJzLm1hcCgod29yZCkgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8U2hpbW1lclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodD17MzB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcHk9ezggYXMgMH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBrZXk9e3dvcmQua2V5fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoPXt3b3JkLndpZHRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSl9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Qm94XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRGYW1pbHk9XCJhY2NlbnRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Q29sb3I9XCJ0ZXh0LXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRTaXplPXt7IF86IDEwIGFzIDE2IH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlckNvbG9yPVwiYm9yZGVyLXNlY29uZGFyeVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJvcmRlcj17MX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzPVwieGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBweD17MTZ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9wYWNpdHk9ezAuMX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJm5ic3A7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZUxvYWRlckxpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKVxuICAgICAgICAgICAgICAgICAgICAgICAgOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnRvcC5tYXAoKHMsIGkpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8SW5saW5lUmVzdWx0TGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17YCR7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlYXJjaEFzWW91VHlwZVJlc3VsdHMucXVlcnlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH06JHtpLnRvU3RyaW5nKCl9YH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhYkluZGV4PXswfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcm9sZT1cImxpbmtcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25LZXlEb3duPXsoZXZ0KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChldnQua2V5ID09PSAnRW50ZXInKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrKCdzZWFyY2hfYXNfeW91X3R5cGVfcmVzdWx0Jywge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLi4uKHMuY29udGVudElkXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID8geyBjb250ZW50X2lkOiBzLmNvbnRlbnRJZCB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWlzYzogSlNPTi5zdHJpbmdpZnkoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogaSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsb3NlU2VhcmNoKHRydWUpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygnc2VhcmNoX2FzX3lvdV90eXBlX3Jlc3VsdCcsIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWFyY2hfaWQ6IHNlYXJjaEFzWW91VHlwZVJlc3VsdHMuc2VhcmNoSWQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2x1Zzogcy5zbHVnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC4uLihzLmNvbnRlbnRJZFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPyB7IGNvbnRlbnRfaWQ6IHMuY29udGVudElkIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDoge30pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pc2M6IEpTT04uc3RyaW5naWZ5KHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xvc2VTZWFyY2godHJ1ZSk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNhZmVseVJlZGlyZWN0KHMudXJsUGF0aCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxIaWdobGlnaHRlZFRleHQgc3VnZ2VzdGlvbj17c30gLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxCYWRnZSBzaXplPVwic21cIiB2YXJpYW50PVwidGVydGlhcnlcIiBtbD17MTJ9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7cy50eXBlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9CYWRnZT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0lubGluZVJlc3VsdExpPlxuICAgICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9GbGV4Qm94PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgICB7c2VhcmNoQXNZb3VUeXBlUmVzdWx0cz8udG9wLmxlbmd0aCA9PT0gMCAmJiAoXG4gICAgICAgICAgICAgICAgICA8PlxuICAgICAgICAgICAgICAgICAgICA8Qm94IGZvbnRTaXplPXt7IF86IDIwLCBzbTogMjYgfX0gbXQ9ezB9IG1iPXs0OH0+XG4gICAgICAgICAgICAgICAgICAgICAge2BXZSBjb3VsZG4ndCBmaW5kIGEgbWF0Y2ggZm9yIGB9XG4gICAgICAgICAgICAgICAgICAgICAgPFRleHQgZm9udFdlaWdodD1cImJvbGRcIj57YFwiJHt2YWx1ZVRyaW1tZWR9LlwiYH08L1RleHQ+XG4gICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgJyBUcnkgYW5vdGhlciBrZXl3b3JkLCBvciBzZWUgd2hhdCBvdXIgbWVtYmVycyBhcmUgbGVhcm5pbmcuJ1xuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgPC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxNZW51IGJvcmRlcj1cIm5vbmVcIiB2YXJpYW50PVwicG9wb3ZlclwiPlxuICAgICAgICAgICAgICAgICAgICAgIDxQb3B1bGFyQ29udGVudCBvblRyYWNraW5nQ2xpY2s9e29uVHJhY2tpbmdDbGlja30gLz5cbiAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICAgICAgKX1cbiAgICAgICAgICAgICAgPC8+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICA8TWVudSBib3JkZXI9XCJub25lXCIgdmFyaWFudD1cInBvcG92ZXJcIj5cbiAgICAgICAgICAgICAgICA8UG9wdWxhclNlYXJjaGVzXG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoPXtuYXZpZ2F0ZVRvU2VhcmNofVxuICAgICAgICAgICAgICAgICAgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9XG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICA8UG9wdWxhckNvbnRlbnQgb25UcmFja2luZ0NsaWNrPXtvblRyYWNraW5nQ2xpY2t9IC8+XG4gICAgICAgICAgICAgIDwvTWVudT5cbiAgICAgICAgICAgICl9XG5cbiAgICAgICAgICAgIHshIXNlYXJjaEFzWW91VHlwZVJlc3VsdHM/LnRvcC5sZW5ndGggJiYgKFxuICAgICAgICAgICAgICA8U3Ryb2tlQnV0dG9uXG4gICAgICAgICAgICAgICAgbXk9ezE2fVxuICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaygndmlld19hbGxfcmVzdWx0cycsIHtcbiAgICAgICAgICAgICAgICAgICAgc2VhcmNoX2lkOiBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzLnNlYXJjaElkLFxuICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICBuYXZpZ2F0ZVRvU2VhcmNoKHZhbHVlLCBzZWFyY2hBc1lvdVR5cGVSZXN1bHRzPy5zZWFyY2hJZCk7XG4gICAgICAgICAgICAgICAgICBjbG9zZVNlYXJjaCgpO1xuICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBWaWV3IGFsbCByZXN1bHRzXG4gICAgICAgICAgICAgIDwvU3Ryb2tlQnV0dG9uPlxuICAgICAgICAgICAgKX1cbiAgICAgICAgICAgIDxRdWl6QW5kSGVscENlbnRlckxpbmtzXG4gICAgICAgICAgICAgIG9uVHJhY2tpbmdDbGljaz17b25UcmFja2luZ0NsaWNrfVxuICAgICAgICAgICAgICBoYW5kbGVDbG9zZURyb3Bkb3duPXtjbG9zZVNlYXJjaH1cbiAgICAgICAgICAgIC8+XG4gICAgICAgICAgPC9TdWdnZXN0aW9uQ29udGFpbmVyPlxuICAgICAgICA8L0JveD5cbiAgICAgIDwvRm9jdXNUcmFwPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */",
|
|
104
104
|
toString: _EMOTION_STRINGIFIED_CSS_ERROR__
|
|
105
105
|
});
|
|
106
106
|
const HighlightedText = ({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect, useRef } from 'react';
|
|
2
|
-
import { useSearchTrackingContext } from '../SearchTrackingProvider';
|
|
3
|
-
import { isSimilarSetOfStrings } from '../../utils/string-similarity';
|
|
4
2
|
import { usePrevious } from 'react-use';
|
|
3
|
+
import { isSimilarSetOfStrings } from '../../utils/string-similarity';
|
|
4
|
+
import { useSearchTrackingContext } from '../SearchTrackingProvider';
|
|
5
5
|
export const useSearchTracking = ({
|
|
6
6
|
onSearchAsYouType
|
|
7
7
|
}) => {
|
|
@@ -29,7 +29,7 @@ export const useSearchTracking = ({
|
|
|
29
29
|
searchEventDelay = setTimeout(() => {
|
|
30
30
|
onSearchAsYouType(onSearchAsYouTypeParams.query, onSearchAsYouTypeParams.searchId, 0, onSearchAsYouTypeParams.queryLoadTime);
|
|
31
31
|
lastTrackedQueryRef.current = onSearchAsYouTypeParams.query;
|
|
32
|
-
},
|
|
32
|
+
}, 1500);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
// scenario 2: track when user's search has meaningful edits
|
|
@@ -5,6 +5,7 @@ import { Background, css, states, theme } from '@codecademy/gamut-styles';
|
|
|
5
5
|
import { useEffect, useRef, useState } from 'react';
|
|
6
6
|
import * as React from 'react';
|
|
7
7
|
import { AppHeaderListItem } from '../AppHeader/AppHeaderElements/AppHeaderListItem';
|
|
8
|
+
import { SearchTrackingProvider } from '../AppHeader/Search/SearchTrackingProvider';
|
|
8
9
|
import { useHeaderSearch } from '../AppHeader/Search/useHeaderSearch';
|
|
9
10
|
import { appHeaderMobileBreakpoint, StyledAppBar } from '../AppHeader/shared';
|
|
10
11
|
import { mapAppHeaderItemToElement } from '../AppHeader/shared/utils';
|
|
@@ -12,7 +13,6 @@ import { AppHeaderMainMenuMobile } from '../AppHeaderMobile/AppHeaderMainMenuMob
|
|
|
12
13
|
import { HeaderHeightArea } from '../HeaderHeightArea';
|
|
13
14
|
import { NotificationsContents } from '../Notifications/NotificationsContents';
|
|
14
15
|
import { useHeaderNotifications } from '../Notifications/useHeaderNotifications';
|
|
15
|
-
import { SearchTrackingProvider } from '../AppHeader/Search/SearchTrackingProvider';
|
|
16
16
|
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
17
17
|
const StyledOverlay = /*#__PURE__*/_styled(Overlay, {
|
|
18
18
|
target: "e14c9jns1",
|
|
@@ -30,7 +30,7 @@ const StyledOverlay = /*#__PURE__*/_styled(Overlay, {
|
|
|
30
30
|
left: 0,
|
|
31
31
|
top: 0,
|
|
32
32
|
overflowX: `hidden`
|
|
33
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0FwcEhlYWRlck1vYmlsZS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCb3gsXG4gIEJ1dHRvbkJhc2VFbGVtZW50cyxcbiAgSWNvbkJ1dHRvbixcbiAgT3ZlcmxheSxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWVudUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBjc3MsIHN0YXRlcywgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBcHBIZWFkZXJTZWFyY2ggfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBcHBIZWFkZXJMaXN0SXRlbSB9IGZyb20gJy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJMaXN0SXRlbSc7XG5pbXBvcnQgeyB1c2VIZWFkZXJTZWFyY2ggfSBmcm9tICcuLi9BcHBIZWFkZXIvU2VhcmNoL3VzZUhlYWRlclNlYXJjaCc7XG5pbXBvcnQge1xuICBBcHBIZWFkZXJBY3Rpb24sXG4gIEFwcEhlYWRlckl0ZW0sXG4gIGFwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnQsXG4gIEZvcm1hdHRlZE1vYmlsZUFwcEhlYWRlckl0ZW1zLFxuICBTdHlsZWRBcHBCYXIsXG59IGZyb20gJy4uL0FwcEhlYWRlci9zaGFyZWQnO1xuaW1wb3J0IHsgbWFwQXBwSGVhZGVySXRlbVRvRWxlbWVudCB9IGZyb20gJy4uL0FwcEhlYWRlci9zaGFyZWQvdXRpbHMnO1xuaW1wb3J0IHsgQXBwSGVhZGVyTWFpbk1lbnVNb2JpbGUgfSBmcm9tICcuLi9BcHBIZWFkZXJNb2JpbGUvQXBwSGVhZGVyTWFpbk1lbnVNb2JpbGUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCB9IGZyb20gJy4uL0dsb2JhbEhlYWRlcic7XG5pbXBvcnQgeyBIZWFkZXJIZWlnaHRBcmVhIH0gZnJvbSAnLi4vSGVhZGVySGVpZ2h0QXJlYSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zQ29udGVudHMgfSBmcm9tICcuLi9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnNDb250ZW50cyc7XG5pbXBvcnQgeyBBcHBIZWFkZXJOb3RpZmljYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvdHlwZXMnO1xuaW1wb3J0IHsgdXNlSGVhZGVyTm90aWZpY2F0aW9ucyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvdXNlSGVhZGVyTm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hUcmFja2luZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyL1NlYXJjaC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyTW9iaWxlUHJvcHMgPSBBcHBIZWFkZXJBY3Rpb24gJiB7XG4gIGl0ZW1zOiBGb3JtYXR0ZWRNb2JpbGVBcHBIZWFkZXJJdGVtcztcbiAgbm90aWZpY2F0aW9ucz86IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzO1xuICByZWRpcmVjdFBhcmFtPzogc3RyaW5nO1xuICBzZWFyY2g6IEFwcEhlYWRlclNlYXJjaDtcbiAgaXNBbm9uOiBib29sZWFuO1xuICAvKipcbiAgICogdXNlZCB0byBjb25kaXRvbmFsbHkgaGlkZSB0aGUgZGVmYXVsdCBzZWFyY2ggaWNvbiBhbmQgbm90aWZpY2F0aW9uIGJlbGxcbiAgICovXG4gIGlzRW50ZXJwcmlzZT86IGJvb2xlYW47XG4gIGlzU2ltcGxlPzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbj86IGJvb2xlYW47XG4gIG5hdmlnYXRpb25NZW51Rm9ybWF0dGVkTGFiZWw/OiBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsO1xufTtcblxuY29uc3QgU3R5bGVkT3ZlcmxheSA9IHN0eWxlZChPdmVybGF5KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiB7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH0sXG4gICAgd2lkdGg6IGAxMDB2d2AsXG4gICAgaGVpZ2h0OiBgMTAwdmhgLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgYmc6IGBiZWlnZWAsXG4gICAgcG9zaXRpb246IGBmaXhlZGAsXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgb3ZlcmZsb3dYOiBgaGlkZGVuYCxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZE5hdkJhciA9IHN0eWxlZC51bDx7IGNlbnRlcj86IGJvb2xlYW4gfT4oXG4gIGNzcyh7XG4gICAgZGlzcGxheTogYGZsZXhgLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbGlzdFN0eWxlOiBgbm9uZWAsXG4gICAgbWFyZ2luOiAwLFxuICAgIHdpZHRoOiBgMTAwJWAsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pLFxuICBzdGF0ZXMoe1xuICAgIGNlbnRlcjoge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IHtcbiAgICAgICAgXzogJ2NlbnRlcicsXG4gICAgICAgIHNtOiAnZmxleC1zdGFydCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgQXBwSGVhZGVyTW9iaWxlOiBSZWFjdC5GQzxBcHBIZWFkZXJNb2JpbGVQcm9wcz4gPSAoe1xuICBhY3Rpb24sXG4gIGl0ZW1zLFxuICBub3RpZmljYXRpb25zLFxuICBzZWFyY2gsXG4gIHJlZGlyZWN0UGFyYW0sXG4gIGlzQW5vbixcbiAgaXNFbnRlcnByaXNlLFxuICBpc1NpbXBsZSxcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbixcbiAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCxcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU1lbnVPcGVuLCBzZXRNb2JpbGVNZW51T3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgY29uc3QgW2FsbG93U2Nyb2xsLCBzZXRBbGxvd1Njcm9sbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IG9wZW5CdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcbiAgY29uc3QgY2xvc2VCdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcblxuICBjb25zdCBbbm90aWZpY2F0aW9uc0JlbGwsIG5vdGlmaWNhdGlvbnNWaWV3XSA9IHVzZUhlYWRlck5vdGlmaWNhdGlvbnMoe1xuICAgIHNldHRpbmdzOiBub3RpZmljYXRpb25zLFxuICAgIFJlbmRlcmVyOiBOb3RpZmljYXRpb25zQ29udGVudHMsXG4gIH0pO1xuXG4gIGNvbnN0IFtzZWFyY2hCdXR0b24sIHNlYXJjaFBhbmVdID0gdXNlSGVhZGVyU2VhcmNoKHtcbiAgICAuLi5zZWFyY2gsXG4gIH0pO1xuXG4gIGNvbnN0IG9wZW5Nb2JpbGVNZW51ID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU1lbnVPcGVuKHRydWUpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobW9iaWxlTWVudU9wZW4gPT09IGZhbHNlICYmIG9wZW5CdXR0b25SZWYuY3VycmVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuQnV0dG9uUmVmLmN1cnJlbnQpIG9wZW5CdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9LCBbbW9iaWxlTWVudU9wZW5dKTtcblxuICBjb25zdCBtYXBJdGVtc1RvRWxlbWVudCA9IDxUIGV4dGVuZHMgQXBwSGVhZGVySXRlbVtdPihcbiAgICBpdGVtczogVCxcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGhpZGVFeHRyYUl0ZW1zPzogYm9vbGVhblxuICApID0+IHtcbiAgICBjb25zdCBzaG91bGRIaWRlSXRlbXMgPSBoaWRlRXh0cmFJdGVtcyA9PT0gdHJ1ZSAmJiBpdGVtcy5sZW5ndGggPiAxO1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBpc0xhc3RJdGVtID0gaW5kZXggKyAxID09PSBpdGVtcy5sZW5ndGg7XG4gICAgICBjb25zdCBpc0hpZGFibGUgPSAhaXNMYXN0SXRlbSAmJiBzaG91bGRIaWRlSXRlbXM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QXBwSGVhZGVyTGlzdEl0ZW1cbiAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgbWw9e3NpZGUgPT09ICdyaWdodCcgJiYgaW5kZXggPT09IDAgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGRpc3BsYXk9e3tcbiAgICAgICAgICAgIF86IGlzSGlkYWJsZSA/ICdub25lJyA6ICdmbGV4JyxcbiAgICAgICAgICAgIHhzOiAnZmxleCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGlzU3RhbmRhbG9uZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXNUZWFtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uS2V5RG93bjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVkaXJlY3RQYXJhbSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmlnaHQgPSBbXG4gICAgLi4uKCFpc0VudGVycHJpc2UgPyBbc2VhcmNoQnV0dG9uXSA6IFtdKSxcbiAgICAuLi4obm90aWZpY2F0aW9uc0JlbGwgJiYgIWlzRW50ZXJwcmlzZSA/IFtub3RpZmljYXRpb25zQmVsbF0gOiBbXSksXG4gICAgLi4uaXRlbXMucmlnaHQsXG4gIF07XG5cbiAgY29uc3Qgb25JdGVtVHlwZSA9ICh0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlICYmXG4gICAgICAodHlwZSA9PT0gJ2NhdGFsb2ctZHJvcGRvd24nIHx8IHR5cGUgPT09ICdyZXNvdXJjZXMtZHJvcGRvd24nKVxuICAgICkge1xuICAgICAgc2V0QWxsb3dTY3JvbGwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFsbG93U2Nyb2xsKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNlYXJjaFRyYWNraW5nUHJvdmlkZXI+XG4gICAgICAgIHshbW9iaWxlTWVudU9wZW4gJiYgKCAvLyBuZWVkIHRoaXMgYmMgQXBwQmFyIGhhcyBhIGhhcmRjb2RlZCB6LUluZGV4IG9mIDE1XG4gICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgIGRpc3BsYXk9e3sgXzogYGJsb2NrYCwgW2FwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnRdOiBgbm9uZWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3R5bGVkQXBwQmFyIGFzPVwibmF2XCIgYXJpYS1sYWJlbD1cIk1haW5cIj5cbiAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhciBjZW50ZXI9eyEhaXNTaW1wbGV9PlxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChyaWdodCwgJ3JpZ2h0JywgdHJ1ZSl9XG4gICAgICAgICAgICAgICAgeyFoaWRlUmlnaHRNZW51QnV0dG9uICYmIChcbiAgICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJMaXN0SXRlbSBtbD17cmlnaHQubGVuZ3RoID09PSAwID8gJ2F1dG8nIDogMH0+XG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwPXsnU2l0ZVxcbm5hdmlnYXRpb24nfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLW1vYmlsZS1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTW9iaWxlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17TWVudUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtvcGVuQnV0dG9uUmVmfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgIDwvSGVhZGVySGVpZ2h0QXJlYT5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE92ZXJsYXlcbiAgICAgICAgICBjbGlja091dHNpZGVDbG9zZXNcbiAgICAgICAgICBlc2NhcGVDbG9zZXNcbiAgICAgICAgICBpc09wZW49e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXsoKSA9PiBzZXRNb2JpbGVNZW51T3BlbihmYWxzZSl9XG4gICAgICAgICAgYWxsb3dTY3JvbGw9e2FsbG93U2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAgPEJhY2tncm91bmQgYmc9XCJiZWlnZVwiPlxuICAgICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgICAgZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fVxuICAgICAgICAgICAgICBhcz1cIm5hdlwiXG4gICAgICAgICAgICAgIGFyaWFMYWJlbD1cIk1haW5cIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1tb2JpbGUtbWVudS1kcm9wZG93blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRBcHBCYXI+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgICAgPEFwcEhlYWRlckxpc3RJdGVtIG1sPVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vYmlsZU1lbnVPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGljb249e01lbnVJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbD8uc2l0ZU5hdmlnYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTaXRlIG5hdmlnYXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtjbG9zZUJ1dHRvblJlZn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvQXBwSGVhZGVyTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWROYXZCYXI+XG4gICAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgICAgICA8Qm94IGJhY2tncm91bmQ9e3RoZW1lLmNvbG9ycy5iZWlnZX0gaGVpZ2h0PVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJNYWluTWVudU1vYmlsZVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXMubWFpbk1lbnV9XG4gICAgICAgICAgICAgICAgICBnZXRJdGVtVHlwZT17b25JdGVtVHlwZX1cbiAgICAgICAgICAgICAgICAgIGlzQW5vbj17aXNBbm9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9IZWFkZXJIZWlnaHRBcmVhPlxuICAgICAgICAgIDwvQmFja2dyb3VuZD5cbiAgICAgICAgPC9TdHlsZWRPdmVybGF5PlxuICAgICAgICB7IWlzRW50ZXJwcmlzZSAmJiAoXG4gICAgICAgICAgPEJveCBkaXNwbGF5PXt7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH19PlxuICAgICAgICAgICAge3NlYXJjaFBhbmV9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICAgIDxCb3ggZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uc1ZpZXd9XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
33
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQThDc0IiLCJmaWxlIjoiLi4vLi4vc3JjL0FwcEhlYWRlck1vYmlsZS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCb3gsXG4gIEJ1dHRvbkJhc2VFbGVtZW50cyxcbiAgSWNvbkJ1dHRvbixcbiAgT3ZlcmxheSxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWVudUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBjc3MsIHN0YXRlcywgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBcHBIZWFkZXJTZWFyY2ggfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBcHBIZWFkZXJMaXN0SXRlbSB9IGZyb20gJy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJMaXN0SXRlbSc7XG5pbXBvcnQgeyBTZWFyY2hUcmFja2luZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyL1NlYXJjaC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHVzZUhlYWRlclNlYXJjaCB9IGZyb20gJy4uL0FwcEhlYWRlci9TZWFyY2gvdXNlSGVhZGVyU2VhcmNoJztcbmltcG9ydCB7XG4gIEFwcEhlYWRlckFjdGlvbixcbiAgQXBwSGVhZGVySXRlbSxcbiAgYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludCxcbiAgRm9ybWF0dGVkTW9iaWxlQXBwSGVhZGVySXRlbXMsXG4gIFN0eWxlZEFwcEJhcixcbn0gZnJvbSAnLi4vQXBwSGVhZGVyL3NoYXJlZCc7XG5pbXBvcnQgeyBtYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50IH0gZnJvbSAnLi4vQXBwSGVhZGVyL3NoYXJlZC91dGlscyc7XG5pbXBvcnQgeyBBcHBIZWFkZXJNYWluTWVudU1vYmlsZSB9IGZyb20gJy4uL0FwcEhlYWRlck1vYmlsZS9BcHBIZWFkZXJNYWluTWVudU1vYmlsZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsIH0gZnJvbSAnLi4vR2xvYmFsSGVhZGVyJztcbmltcG9ydCB7IEhlYWRlckhlaWdodEFyZWEgfSBmcm9tICcuLi9IZWFkZXJIZWlnaHRBcmVhJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNDb250ZW50cyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uc0NvbnRlbnRzJztcbmltcG9ydCB7IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9ucy90eXBlcyc7XG5pbXBvcnQgeyB1c2VIZWFkZXJOb3RpZmljYXRpb25zIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9ucy91c2VIZWFkZXJOb3RpZmljYXRpb25zJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyTW9iaWxlUHJvcHMgPSBBcHBIZWFkZXJBY3Rpb24gJiB7XG4gIGl0ZW1zOiBGb3JtYXR0ZWRNb2JpbGVBcHBIZWFkZXJJdGVtcztcbiAgbm90aWZpY2F0aW9ucz86IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzO1xuICByZWRpcmVjdFBhcmFtPzogc3RyaW5nO1xuICBzZWFyY2g6IEFwcEhlYWRlclNlYXJjaDtcbiAgaXNBbm9uOiBib29sZWFuO1xuICAvKipcbiAgICogdXNlZCB0byBjb25kaXRvbmFsbHkgaGlkZSB0aGUgZGVmYXVsdCBzZWFyY2ggaWNvbiBhbmQgbm90aWZpY2F0aW9uIGJlbGxcbiAgICovXG4gIGlzRW50ZXJwcmlzZT86IGJvb2xlYW47XG4gIGlzU2ltcGxlPzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbj86IGJvb2xlYW47XG4gIG5hdmlnYXRpb25NZW51Rm9ybWF0dGVkTGFiZWw/OiBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsO1xufTtcblxuY29uc3QgU3R5bGVkT3ZlcmxheSA9IHN0eWxlZChPdmVybGF5KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiB7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH0sXG4gICAgd2lkdGg6IGAxMDB2d2AsXG4gICAgaGVpZ2h0OiBgMTAwdmhgLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgYmc6IGBiZWlnZWAsXG4gICAgcG9zaXRpb246IGBmaXhlZGAsXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgb3ZlcmZsb3dYOiBgaGlkZGVuYCxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZE5hdkJhciA9IHN0eWxlZC51bDx7IGNlbnRlcj86IGJvb2xlYW4gfT4oXG4gIGNzcyh7XG4gICAgZGlzcGxheTogYGZsZXhgLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbGlzdFN0eWxlOiBgbm9uZWAsXG4gICAgbWFyZ2luOiAwLFxuICAgIHdpZHRoOiBgMTAwJWAsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pLFxuICBzdGF0ZXMoe1xuICAgIGNlbnRlcjoge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IHtcbiAgICAgICAgXzogJ2NlbnRlcicsXG4gICAgICAgIHNtOiAnZmxleC1zdGFydCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgQXBwSGVhZGVyTW9iaWxlOiBSZWFjdC5GQzxBcHBIZWFkZXJNb2JpbGVQcm9wcz4gPSAoe1xuICBhY3Rpb24sXG4gIGl0ZW1zLFxuICBub3RpZmljYXRpb25zLFxuICBzZWFyY2gsXG4gIHJlZGlyZWN0UGFyYW0sXG4gIGlzQW5vbixcbiAgaXNFbnRlcnByaXNlLFxuICBpc1NpbXBsZSxcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbixcbiAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCxcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU1lbnVPcGVuLCBzZXRNb2JpbGVNZW51T3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgY29uc3QgW2FsbG93U2Nyb2xsLCBzZXRBbGxvd1Njcm9sbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IG9wZW5CdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcbiAgY29uc3QgY2xvc2VCdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcblxuICBjb25zdCBbbm90aWZpY2F0aW9uc0JlbGwsIG5vdGlmaWNhdGlvbnNWaWV3XSA9IHVzZUhlYWRlck5vdGlmaWNhdGlvbnMoe1xuICAgIHNldHRpbmdzOiBub3RpZmljYXRpb25zLFxuICAgIFJlbmRlcmVyOiBOb3RpZmljYXRpb25zQ29udGVudHMsXG4gIH0pO1xuXG4gIGNvbnN0IFtzZWFyY2hCdXR0b24sIHNlYXJjaFBhbmVdID0gdXNlSGVhZGVyU2VhcmNoKHtcbiAgICAuLi5zZWFyY2gsXG4gIH0pO1xuXG4gIGNvbnN0IG9wZW5Nb2JpbGVNZW51ID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU1lbnVPcGVuKHRydWUpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobW9iaWxlTWVudU9wZW4gPT09IGZhbHNlICYmIG9wZW5CdXR0b25SZWYuY3VycmVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuQnV0dG9uUmVmLmN1cnJlbnQpIG9wZW5CdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9LCBbbW9iaWxlTWVudU9wZW5dKTtcblxuICBjb25zdCBtYXBJdGVtc1RvRWxlbWVudCA9IDxUIGV4dGVuZHMgQXBwSGVhZGVySXRlbVtdPihcbiAgICBpdGVtczogVCxcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGhpZGVFeHRyYUl0ZW1zPzogYm9vbGVhblxuICApID0+IHtcbiAgICBjb25zdCBzaG91bGRIaWRlSXRlbXMgPSBoaWRlRXh0cmFJdGVtcyA9PT0gdHJ1ZSAmJiBpdGVtcy5sZW5ndGggPiAxO1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBpc0xhc3RJdGVtID0gaW5kZXggKyAxID09PSBpdGVtcy5sZW5ndGg7XG4gICAgICBjb25zdCBpc0hpZGFibGUgPSAhaXNMYXN0SXRlbSAmJiBzaG91bGRIaWRlSXRlbXM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QXBwSGVhZGVyTGlzdEl0ZW1cbiAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgbWw9e3NpZGUgPT09ICdyaWdodCcgJiYgaW5kZXggPT09IDAgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGRpc3BsYXk9e3tcbiAgICAgICAgICAgIF86IGlzSGlkYWJsZSA/ICdub25lJyA6ICdmbGV4JyxcbiAgICAgICAgICAgIHhzOiAnZmxleCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGlzU3RhbmRhbG9uZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXNUZWFtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uS2V5RG93bjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVkaXJlY3RQYXJhbSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmlnaHQgPSBbXG4gICAgLi4uKCFpc0VudGVycHJpc2UgPyBbc2VhcmNoQnV0dG9uXSA6IFtdKSxcbiAgICAuLi4obm90aWZpY2F0aW9uc0JlbGwgJiYgIWlzRW50ZXJwcmlzZSA/IFtub3RpZmljYXRpb25zQmVsbF0gOiBbXSksXG4gICAgLi4uaXRlbXMucmlnaHQsXG4gIF07XG5cbiAgY29uc3Qgb25JdGVtVHlwZSA9ICh0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlICYmXG4gICAgICAodHlwZSA9PT0gJ2NhdGFsb2ctZHJvcGRvd24nIHx8IHR5cGUgPT09ICdyZXNvdXJjZXMtZHJvcGRvd24nKVxuICAgICkge1xuICAgICAgc2V0QWxsb3dTY3JvbGwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFsbG93U2Nyb2xsKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNlYXJjaFRyYWNraW5nUHJvdmlkZXI+XG4gICAgICAgIHshbW9iaWxlTWVudU9wZW4gJiYgKCAvLyBuZWVkIHRoaXMgYmMgQXBwQmFyIGhhcyBhIGhhcmRjb2RlZCB6LUluZGV4IG9mIDE1XG4gICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgIGRpc3BsYXk9e3sgXzogYGJsb2NrYCwgW2FwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnRdOiBgbm9uZWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3R5bGVkQXBwQmFyIGFzPVwibmF2XCIgYXJpYS1sYWJlbD1cIk1haW5cIj5cbiAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhciBjZW50ZXI9eyEhaXNTaW1wbGV9PlxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChyaWdodCwgJ3JpZ2h0JywgdHJ1ZSl9XG4gICAgICAgICAgICAgICAgeyFoaWRlUmlnaHRNZW51QnV0dG9uICYmIChcbiAgICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJMaXN0SXRlbSBtbD17cmlnaHQubGVuZ3RoID09PSAwID8gJ2F1dG8nIDogMH0+XG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwPXsnU2l0ZVxcbm5hdmlnYXRpb24nfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLW1vYmlsZS1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTW9iaWxlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17TWVudUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtvcGVuQnV0dG9uUmVmfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgIDwvSGVhZGVySGVpZ2h0QXJlYT5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE92ZXJsYXlcbiAgICAgICAgICBjbGlja091dHNpZGVDbG9zZXNcbiAgICAgICAgICBlc2NhcGVDbG9zZXNcbiAgICAgICAgICBpc09wZW49e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXsoKSA9PiBzZXRNb2JpbGVNZW51T3BlbihmYWxzZSl9XG4gICAgICAgICAgYWxsb3dTY3JvbGw9e2FsbG93U2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAgPEJhY2tncm91bmQgYmc9XCJiZWlnZVwiPlxuICAgICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgICAgZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fVxuICAgICAgICAgICAgICBhcz1cIm5hdlwiXG4gICAgICAgICAgICAgIGFyaWFMYWJlbD1cIk1haW5cIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1tb2JpbGUtbWVudS1kcm9wZG93blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRBcHBCYXI+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgICAgPEFwcEhlYWRlckxpc3RJdGVtIG1sPVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vYmlsZU1lbnVPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGljb249e01lbnVJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbD8uc2l0ZU5hdmlnYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTaXRlIG5hdmlnYXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtjbG9zZUJ1dHRvblJlZn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvQXBwSGVhZGVyTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWROYXZCYXI+XG4gICAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgICAgICA8Qm94IGJhY2tncm91bmQ9e3RoZW1lLmNvbG9ycy5iZWlnZX0gaGVpZ2h0PVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJNYWluTWVudU1vYmlsZVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXMubWFpbk1lbnV9XG4gICAgICAgICAgICAgICAgICBnZXRJdGVtVHlwZT17b25JdGVtVHlwZX1cbiAgICAgICAgICAgICAgICAgIGlzQW5vbj17aXNBbm9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9IZWFkZXJIZWlnaHRBcmVhPlxuICAgICAgICAgIDwvQmFja2dyb3VuZD5cbiAgICAgICAgPC9TdHlsZWRPdmVybGF5PlxuICAgICAgICB7IWlzRW50ZXJwcmlzZSAmJiAoXG4gICAgICAgICAgPEJveCBkaXNwbGF5PXt7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH19PlxuICAgICAgICAgICAge3NlYXJjaFBhbmV9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICAgIDxCb3ggZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uc1ZpZXd9XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
34
34
|
const StyledNavBar = /*#__PURE__*/_styled("ul", {
|
|
35
35
|
target: "e14c9jns0",
|
|
36
36
|
label: "StyledNavBar"
|
|
@@ -48,7 +48,7 @@ const StyledNavBar = /*#__PURE__*/_styled("ul", {
|
|
|
48
48
|
sm: 'flex-start'
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREcUIiLCJmaWxlIjoiLi4vLi4vc3JjL0FwcEhlYWRlck1vYmlsZS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCb3gsXG4gIEJ1dHRvbkJhc2VFbGVtZW50cyxcbiAgSWNvbkJ1dHRvbixcbiAgT3ZlcmxheSxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWVudUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBjc3MsIHN0YXRlcywgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBcHBIZWFkZXJTZWFyY2ggfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBcHBIZWFkZXJMaXN0SXRlbSB9IGZyb20gJy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJMaXN0SXRlbSc7XG5pbXBvcnQgeyB1c2VIZWFkZXJTZWFyY2ggfSBmcm9tICcuLi9BcHBIZWFkZXIvU2VhcmNoL3VzZUhlYWRlclNlYXJjaCc7XG5pbXBvcnQge1xuICBBcHBIZWFkZXJBY3Rpb24sXG4gIEFwcEhlYWRlckl0ZW0sXG4gIGFwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnQsXG4gIEZvcm1hdHRlZE1vYmlsZUFwcEhlYWRlckl0ZW1zLFxuICBTdHlsZWRBcHBCYXIsXG59IGZyb20gJy4uL0FwcEhlYWRlci9zaGFyZWQnO1xuaW1wb3J0IHsgbWFwQXBwSGVhZGVySXRlbVRvRWxlbWVudCB9IGZyb20gJy4uL0FwcEhlYWRlci9zaGFyZWQvdXRpbHMnO1xuaW1wb3J0IHsgQXBwSGVhZGVyTWFpbk1lbnVNb2JpbGUgfSBmcm9tICcuLi9BcHBIZWFkZXJNb2JpbGUvQXBwSGVhZGVyTWFpbk1lbnVNb2JpbGUnO1xuaW1wb3J0IHsgTmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCB9IGZyb20gJy4uL0dsb2JhbEhlYWRlcic7XG5pbXBvcnQgeyBIZWFkZXJIZWlnaHRBcmVhIH0gZnJvbSAnLi4vSGVhZGVySGVpZ2h0QXJlYSc7XG5pbXBvcnQgeyBOb3RpZmljYXRpb25zQ29udGVudHMgfSBmcm9tICcuLi9Ob3RpZmljYXRpb25zL05vdGlmaWNhdGlvbnNDb250ZW50cyc7XG5pbXBvcnQgeyBBcHBIZWFkZXJOb3RpZmljYXRpb25TZXR0aW5ncyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvdHlwZXMnO1xuaW1wb3J0IHsgdXNlSGVhZGVyTm90aWZpY2F0aW9ucyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvdXNlSGVhZGVyTm90aWZpY2F0aW9ucyc7XG5pbXBvcnQgeyBTZWFyY2hUcmFja2luZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyL1NlYXJjaC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyTW9iaWxlUHJvcHMgPSBBcHBIZWFkZXJBY3Rpb24gJiB7XG4gIGl0ZW1zOiBGb3JtYXR0ZWRNb2JpbGVBcHBIZWFkZXJJdGVtcztcbiAgbm90aWZpY2F0aW9ucz86IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzO1xuICByZWRpcmVjdFBhcmFtPzogc3RyaW5nO1xuICBzZWFyY2g6IEFwcEhlYWRlclNlYXJjaDtcbiAgaXNBbm9uOiBib29sZWFuO1xuICAvKipcbiAgICogdXNlZCB0byBjb25kaXRvbmFsbHkgaGlkZSB0aGUgZGVmYXVsdCBzZWFyY2ggaWNvbiBhbmQgbm90aWZpY2F0aW9uIGJlbGxcbiAgICovXG4gIGlzRW50ZXJwcmlzZT86IGJvb2xlYW47XG4gIGlzU2ltcGxlPzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbj86IGJvb2xlYW47XG4gIG5hdmlnYXRpb25NZW51Rm9ybWF0dGVkTGFiZWw/OiBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsO1xufTtcblxuY29uc3QgU3R5bGVkT3ZlcmxheSA9IHN0eWxlZChPdmVybGF5KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiB7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH0sXG4gICAgd2lkdGg6IGAxMDB2d2AsXG4gICAgaGVpZ2h0OiBgMTAwdmhgLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgYmc6IGBiZWlnZWAsXG4gICAgcG9zaXRpb246IGBmaXhlZGAsXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgb3ZlcmZsb3dYOiBgaGlkZGVuYCxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZE5hdkJhciA9IHN0eWxlZC51bDx7IGNlbnRlcj86IGJvb2xlYW4gfT4oXG4gIGNzcyh7XG4gICAgZGlzcGxheTogYGZsZXhgLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbGlzdFN0eWxlOiBgbm9uZWAsXG4gICAgbWFyZ2luOiAwLFxuICAgIHdpZHRoOiBgMTAwJWAsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pLFxuICBzdGF0ZXMoe1xuICAgIGNlbnRlcjoge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IHtcbiAgICAgICAgXzogJ2NlbnRlcicsXG4gICAgICAgIHNtOiAnZmxleC1zdGFydCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgQXBwSGVhZGVyTW9iaWxlOiBSZWFjdC5GQzxBcHBIZWFkZXJNb2JpbGVQcm9wcz4gPSAoe1xuICBhY3Rpb24sXG4gIGl0ZW1zLFxuICBub3RpZmljYXRpb25zLFxuICBzZWFyY2gsXG4gIHJlZGlyZWN0UGFyYW0sXG4gIGlzQW5vbixcbiAgaXNFbnRlcnByaXNlLFxuICBpc1NpbXBsZSxcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbixcbiAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCxcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU1lbnVPcGVuLCBzZXRNb2JpbGVNZW51T3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgY29uc3QgW2FsbG93U2Nyb2xsLCBzZXRBbGxvd1Njcm9sbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IG9wZW5CdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcbiAgY29uc3QgY2xvc2VCdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcblxuICBjb25zdCBbbm90aWZpY2F0aW9uc0JlbGwsIG5vdGlmaWNhdGlvbnNWaWV3XSA9IHVzZUhlYWRlck5vdGlmaWNhdGlvbnMoe1xuICAgIHNldHRpbmdzOiBub3RpZmljYXRpb25zLFxuICAgIFJlbmRlcmVyOiBOb3RpZmljYXRpb25zQ29udGVudHMsXG4gIH0pO1xuXG4gIGNvbnN0IFtzZWFyY2hCdXR0b24sIHNlYXJjaFBhbmVdID0gdXNlSGVhZGVyU2VhcmNoKHtcbiAgICAuLi5zZWFyY2gsXG4gIH0pO1xuXG4gIGNvbnN0IG9wZW5Nb2JpbGVNZW51ID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU1lbnVPcGVuKHRydWUpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobW9iaWxlTWVudU9wZW4gPT09IGZhbHNlICYmIG9wZW5CdXR0b25SZWYuY3VycmVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuQnV0dG9uUmVmLmN1cnJlbnQpIG9wZW5CdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9LCBbbW9iaWxlTWVudU9wZW5dKTtcblxuICBjb25zdCBtYXBJdGVtc1RvRWxlbWVudCA9IDxUIGV4dGVuZHMgQXBwSGVhZGVySXRlbVtdPihcbiAgICBpdGVtczogVCxcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGhpZGVFeHRyYUl0ZW1zPzogYm9vbGVhblxuICApID0+IHtcbiAgICBjb25zdCBzaG91bGRIaWRlSXRlbXMgPSBoaWRlRXh0cmFJdGVtcyA9PT0gdHJ1ZSAmJiBpdGVtcy5sZW5ndGggPiAxO1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBpc0xhc3RJdGVtID0gaW5kZXggKyAxID09PSBpdGVtcy5sZW5ndGg7XG4gICAgICBjb25zdCBpc0hpZGFibGUgPSAhaXNMYXN0SXRlbSAmJiBzaG91bGRIaWRlSXRlbXM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QXBwSGVhZGVyTGlzdEl0ZW1cbiAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgbWw9e3NpZGUgPT09ICdyaWdodCcgJiYgaW5kZXggPT09IDAgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGRpc3BsYXk9e3tcbiAgICAgICAgICAgIF86IGlzSGlkYWJsZSA/ICdub25lJyA6ICdmbGV4JyxcbiAgICAgICAgICAgIHhzOiAnZmxleCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGlzU3RhbmRhbG9uZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXNUZWFtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uS2V5RG93bjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVkaXJlY3RQYXJhbSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmlnaHQgPSBbXG4gICAgLi4uKCFpc0VudGVycHJpc2UgPyBbc2VhcmNoQnV0dG9uXSA6IFtdKSxcbiAgICAuLi4obm90aWZpY2F0aW9uc0JlbGwgJiYgIWlzRW50ZXJwcmlzZSA/IFtub3RpZmljYXRpb25zQmVsbF0gOiBbXSksXG4gICAgLi4uaXRlbXMucmlnaHQsXG4gIF07XG5cbiAgY29uc3Qgb25JdGVtVHlwZSA9ICh0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlICYmXG4gICAgICAodHlwZSA9PT0gJ2NhdGFsb2ctZHJvcGRvd24nIHx8IHR5cGUgPT09ICdyZXNvdXJjZXMtZHJvcGRvd24nKVxuICAgICkge1xuICAgICAgc2V0QWxsb3dTY3JvbGwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFsbG93U2Nyb2xsKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNlYXJjaFRyYWNraW5nUHJvdmlkZXI+XG4gICAgICAgIHshbW9iaWxlTWVudU9wZW4gJiYgKCAvLyBuZWVkIHRoaXMgYmMgQXBwQmFyIGhhcyBhIGhhcmRjb2RlZCB6LUluZGV4IG9mIDE1XG4gICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgIGRpc3BsYXk9e3sgXzogYGJsb2NrYCwgW2FwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnRdOiBgbm9uZWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3R5bGVkQXBwQmFyIGFzPVwibmF2XCIgYXJpYS1sYWJlbD1cIk1haW5cIj5cbiAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhciBjZW50ZXI9eyEhaXNTaW1wbGV9PlxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChyaWdodCwgJ3JpZ2h0JywgdHJ1ZSl9XG4gICAgICAgICAgICAgICAgeyFoaWRlUmlnaHRNZW51QnV0dG9uICYmIChcbiAgICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJMaXN0SXRlbSBtbD17cmlnaHQubGVuZ3RoID09PSAwID8gJ2F1dG8nIDogMH0+XG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwPXsnU2l0ZVxcbm5hdmlnYXRpb24nfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLW1vYmlsZS1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTW9iaWxlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17TWVudUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtvcGVuQnV0dG9uUmVmfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgIDwvSGVhZGVySGVpZ2h0QXJlYT5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE92ZXJsYXlcbiAgICAgICAgICBjbGlja091dHNpZGVDbG9zZXNcbiAgICAgICAgICBlc2NhcGVDbG9zZXNcbiAgICAgICAgICBpc09wZW49e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXsoKSA9PiBzZXRNb2JpbGVNZW51T3BlbihmYWxzZSl9XG4gICAgICAgICAgYWxsb3dTY3JvbGw9e2FsbG93U2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAgPEJhY2tncm91bmQgYmc9XCJiZWlnZVwiPlxuICAgICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgICAgZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fVxuICAgICAgICAgICAgICBhcz1cIm5hdlwiXG4gICAgICAgICAgICAgIGFyaWFMYWJlbD1cIk1haW5cIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1tb2JpbGUtbWVudS1kcm9wZG93blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRBcHBCYXI+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgICAgPEFwcEhlYWRlckxpc3RJdGVtIG1sPVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vYmlsZU1lbnVPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGljb249e01lbnVJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbD8uc2l0ZU5hdmlnYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTaXRlIG5hdmlnYXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtjbG9zZUJ1dHRvblJlZn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvQXBwSGVhZGVyTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWROYXZCYXI+XG4gICAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgICAgICA8Qm94IGJhY2tncm91bmQ9e3RoZW1lLmNvbG9ycy5iZWlnZX0gaGVpZ2h0PVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJNYWluTWVudU1vYmlsZVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXMubWFpbk1lbnV9XG4gICAgICAgICAgICAgICAgICBnZXRJdGVtVHlwZT17b25JdGVtVHlwZX1cbiAgICAgICAgICAgICAgICAgIGlzQW5vbj17aXNBbm9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9IZWFkZXJIZWlnaHRBcmVhPlxuICAgICAgICAgIDwvQmFja2dyb3VuZD5cbiAgICAgICAgPC9TdHlsZWRPdmVybGF5PlxuICAgICAgICB7IWlzRW50ZXJwcmlzZSAmJiAoXG4gICAgICAgICAgPEJveCBkaXNwbGF5PXt7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH19PlxuICAgICAgICAgICAge3NlYXJjaFBhbmV9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICAgIDxCb3ggZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uc1ZpZXd9XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
51
|
+
}), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9BcHBIZWFkZXJNb2JpbGUvaW5kZXgudHN4Il0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQTREcUIiLCJmaWxlIjoiLi4vLi4vc3JjL0FwcEhlYWRlck1vYmlsZS9pbmRleC50c3giLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBCb3gsXG4gIEJ1dHRvbkJhc2VFbGVtZW50cyxcbiAgSWNvbkJ1dHRvbixcbiAgT3ZlcmxheSxcbn0gZnJvbSAnQGNvZGVjYWRlbXkvZ2FtdXQnO1xuaW1wb3J0IHsgTWVudUljb24gfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1pY29ucyc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kLCBjc3MsIHN0YXRlcywgdGhlbWUgfSBmcm9tICdAY29kZWNhZGVteS9nYW11dC1zdHlsZXMnO1xuaW1wb3J0IHN0eWxlZCBmcm9tICdAZW1vdGlvbi9zdHlsZWQnO1xuaW1wb3J0IHsgdXNlRWZmZWN0LCB1c2VSZWYsIHVzZVN0YXRlIH0gZnJvbSAncmVhY3QnO1xuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSAncmVhY3QnO1xuXG5pbXBvcnQgeyBBcHBIZWFkZXJTZWFyY2ggfSBmcm9tICcuLic7XG5pbXBvcnQgeyBBcHBIZWFkZXJMaXN0SXRlbSB9IGZyb20gJy4uL0FwcEhlYWRlci9BcHBIZWFkZXJFbGVtZW50cy9BcHBIZWFkZXJMaXN0SXRlbSc7XG5pbXBvcnQgeyBTZWFyY2hUcmFja2luZ1Byb3ZpZGVyIH0gZnJvbSAnLi4vQXBwSGVhZGVyL1NlYXJjaC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyJztcbmltcG9ydCB7IHVzZUhlYWRlclNlYXJjaCB9IGZyb20gJy4uL0FwcEhlYWRlci9TZWFyY2gvdXNlSGVhZGVyU2VhcmNoJztcbmltcG9ydCB7XG4gIEFwcEhlYWRlckFjdGlvbixcbiAgQXBwSGVhZGVySXRlbSxcbiAgYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludCxcbiAgRm9ybWF0dGVkTW9iaWxlQXBwSGVhZGVySXRlbXMsXG4gIFN0eWxlZEFwcEJhcixcbn0gZnJvbSAnLi4vQXBwSGVhZGVyL3NoYXJlZCc7XG5pbXBvcnQgeyBtYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50IH0gZnJvbSAnLi4vQXBwSGVhZGVyL3NoYXJlZC91dGlscyc7XG5pbXBvcnQgeyBBcHBIZWFkZXJNYWluTWVudU1vYmlsZSB9IGZyb20gJy4uL0FwcEhlYWRlck1vYmlsZS9BcHBIZWFkZXJNYWluTWVudU1vYmlsZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsIH0gZnJvbSAnLi4vR2xvYmFsSGVhZGVyJztcbmltcG9ydCB7IEhlYWRlckhlaWdodEFyZWEgfSBmcm9tICcuLi9IZWFkZXJIZWlnaHRBcmVhJztcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNDb250ZW50cyB9IGZyb20gJy4uL05vdGlmaWNhdGlvbnMvTm90aWZpY2F0aW9uc0NvbnRlbnRzJztcbmltcG9ydCB7IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9ucy90eXBlcyc7XG5pbXBvcnQgeyB1c2VIZWFkZXJOb3RpZmljYXRpb25zIH0gZnJvbSAnLi4vTm90aWZpY2F0aW9ucy91c2VIZWFkZXJOb3RpZmljYXRpb25zJztcblxuZXhwb3J0IHR5cGUgQXBwSGVhZGVyTW9iaWxlUHJvcHMgPSBBcHBIZWFkZXJBY3Rpb24gJiB7XG4gIGl0ZW1zOiBGb3JtYXR0ZWRNb2JpbGVBcHBIZWFkZXJJdGVtcztcbiAgbm90aWZpY2F0aW9ucz86IEFwcEhlYWRlck5vdGlmaWNhdGlvblNldHRpbmdzO1xuICByZWRpcmVjdFBhcmFtPzogc3RyaW5nO1xuICBzZWFyY2g6IEFwcEhlYWRlclNlYXJjaDtcbiAgaXNBbm9uOiBib29sZWFuO1xuICAvKipcbiAgICogdXNlZCB0byBjb25kaXRvbmFsbHkgaGlkZSB0aGUgZGVmYXVsdCBzZWFyY2ggaWNvbiBhbmQgbm90aWZpY2F0aW9uIGJlbGxcbiAgICovXG4gIGlzRW50ZXJwcmlzZT86IGJvb2xlYW47XG4gIGlzU2ltcGxlPzogYm9vbGVhbjtcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbj86IGJvb2xlYW47XG4gIG5hdmlnYXRpb25NZW51Rm9ybWF0dGVkTGFiZWw/OiBOYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsO1xufTtcblxuY29uc3QgU3R5bGVkT3ZlcmxheSA9IHN0eWxlZChPdmVybGF5KShcbiAgY3NzKHtcbiAgICBkaXNwbGF5OiB7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH0sXG4gICAgd2lkdGg6IGAxMDB2d2AsXG4gICAgaGVpZ2h0OiBgMTAwdmhgLFxuICAgIG9wYWNpdHk6IDEsXG4gICAgYmc6IGBiZWlnZWAsXG4gICAgcG9zaXRpb246IGBmaXhlZGAsXG4gICAgbGVmdDogMCxcbiAgICB0b3A6IDAsXG4gICAgb3ZlcmZsb3dYOiBgaGlkZGVuYCxcbiAgfSlcbik7XG5cbmNvbnN0IFN0eWxlZE5hdkJhciA9IHN0eWxlZC51bDx7IGNlbnRlcj86IGJvb2xlYW4gfT4oXG4gIGNzcyh7XG4gICAgZGlzcGxheTogYGZsZXhgLFxuICAgIHBhZGRpbmc6IDAsXG4gICAgbGlzdFN0eWxlOiBgbm9uZWAsXG4gICAgbWFyZ2luOiAwLFxuICAgIHdpZHRoOiBgMTAwJWAsXG4gICAgYWxpZ25JdGVtczogJ2NlbnRlcicsXG4gIH0pLFxuICBzdGF0ZXMoe1xuICAgIGNlbnRlcjoge1xuICAgICAganVzdGlmeUNvbnRlbnQ6IHtcbiAgICAgICAgXzogJ2NlbnRlcicsXG4gICAgICAgIHNtOiAnZmxleC1zdGFydCcsXG4gICAgICB9LFxuICAgIH0sXG4gIH0pXG4pO1xuXG5leHBvcnQgY29uc3QgQXBwSGVhZGVyTW9iaWxlOiBSZWFjdC5GQzxBcHBIZWFkZXJNb2JpbGVQcm9wcz4gPSAoe1xuICBhY3Rpb24sXG4gIGl0ZW1zLFxuICBub3RpZmljYXRpb25zLFxuICBzZWFyY2gsXG4gIHJlZGlyZWN0UGFyYW0sXG4gIGlzQW5vbixcbiAgaXNFbnRlcnByaXNlLFxuICBpc1NpbXBsZSxcbiAgaGlkZVJpZ2h0TWVudUJ1dHRvbixcbiAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbCxcbn0pID0+IHtcbiAgY29uc3QgW21vYmlsZU1lbnVPcGVuLCBzZXRNb2JpbGVNZW51T3Blbl0gPSB1c2VTdGF0ZTxib29sZWFuIHwgdW5kZWZpbmVkPihcbiAgICB1bmRlZmluZWRcbiAgKTtcbiAgY29uc3QgW2FsbG93U2Nyb2xsLCBzZXRBbGxvd1Njcm9sbF0gPSB1c2VTdGF0ZTxib29sZWFuPihmYWxzZSk7XG4gIGNvbnN0IG9wZW5CdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcbiAgY29uc3QgY2xvc2VCdXR0b25SZWYgPSB1c2VSZWY8QnV0dG9uQmFzZUVsZW1lbnRzPihudWxsKTtcblxuICBjb25zdCBbbm90aWZpY2F0aW9uc0JlbGwsIG5vdGlmaWNhdGlvbnNWaWV3XSA9IHVzZUhlYWRlck5vdGlmaWNhdGlvbnMoe1xuICAgIHNldHRpbmdzOiBub3RpZmljYXRpb25zLFxuICAgIFJlbmRlcmVyOiBOb3RpZmljYXRpb25zQ29udGVudHMsXG4gIH0pO1xuXG4gIGNvbnN0IFtzZWFyY2hCdXR0b24sIHNlYXJjaFBhbmVdID0gdXNlSGVhZGVyU2VhcmNoKHtcbiAgICAuLi5zZWFyY2gsXG4gIH0pO1xuXG4gIGNvbnN0IG9wZW5Nb2JpbGVNZW51ID0gKCkgPT4ge1xuICAgIHNldE1vYmlsZU1lbnVPcGVuKHRydWUpO1xuXG4gICAgaWYgKGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQpIHtcbiAgICAgIGNsb3NlQnV0dG9uUmVmLmN1cnJlbnQuZm9jdXMoKTtcbiAgICB9XG4gIH07XG5cbiAgdXNlRWZmZWN0KCgpID0+IHtcbiAgICBpZiAobW9iaWxlTWVudU9wZW4gPT09IGZhbHNlICYmIG9wZW5CdXR0b25SZWYuY3VycmVudCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGlmIChvcGVuQnV0dG9uUmVmLmN1cnJlbnQpIG9wZW5CdXR0b25SZWYuY3VycmVudC5mb2N1cygpO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9LCBbbW9iaWxlTWVudU9wZW5dKTtcblxuICBjb25zdCBtYXBJdGVtc1RvRWxlbWVudCA9IDxUIGV4dGVuZHMgQXBwSGVhZGVySXRlbVtdPihcbiAgICBpdGVtczogVCxcbiAgICBzaWRlOiAnbGVmdCcgfCAncmlnaHQnLFxuICAgIGhpZGVFeHRyYUl0ZW1zPzogYm9vbGVhblxuICApID0+IHtcbiAgICBjb25zdCBzaG91bGRIaWRlSXRlbXMgPSBoaWRlRXh0cmFJdGVtcyA9PT0gdHJ1ZSAmJiBpdGVtcy5sZW5ndGggPiAxO1xuICAgIHJldHVybiBpdGVtcy5tYXAoKGl0ZW0sIGluZGV4KSA9PiB7XG4gICAgICBjb25zdCBpc0xhc3RJdGVtID0gaW5kZXggKyAxID09PSBpdGVtcy5sZW5ndGg7XG4gICAgICBjb25zdCBpc0hpZGFibGUgPSAhaXNMYXN0SXRlbSAmJiBzaG91bGRIaWRlSXRlbXM7XG4gICAgICByZXR1cm4gKFxuICAgICAgICA8QXBwSGVhZGVyTGlzdEl0ZW1cbiAgICAgICAgICBrZXk9e2l0ZW0uaWR9XG4gICAgICAgICAgbWw9e3NpZGUgPT09ICdyaWdodCcgJiYgaW5kZXggPT09IDAgPyAnYXV0bycgOiAwfVxuICAgICAgICAgIGRpc3BsYXk9e3tcbiAgICAgICAgICAgIF86IGlzSGlkYWJsZSA/ICdub25lJyA6ICdmbGV4JyxcbiAgICAgICAgICAgIHhzOiAnZmxleCcsXG4gICAgICAgICAgfX1cbiAgICAgICAgPlxuICAgICAgICAgIHttYXBBcHBIZWFkZXJJdGVtVG9FbGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbixcbiAgICAgICAgICAgIGlzU3RhbmRhbG9uZTogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXNUZWFtczogdW5kZWZpbmVkLFxuICAgICAgICAgICAgaXRlbSxcbiAgICAgICAgICAgIG1vYmlsZTogdHJ1ZSxcbiAgICAgICAgICAgIG9uS2V5RG93bjogdW5kZWZpbmVkLFxuICAgICAgICAgICAgcmVkaXJlY3RQYXJhbSxcbiAgICAgICAgICB9KX1cbiAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICk7XG4gICAgfSk7XG4gIH07XG5cbiAgY29uc3QgcmlnaHQgPSBbXG4gICAgLi4uKCFpc0VudGVycHJpc2UgPyBbc2VhcmNoQnV0dG9uXSA6IFtdKSxcbiAgICAuLi4obm90aWZpY2F0aW9uc0JlbGwgJiYgIWlzRW50ZXJwcmlzZSA/IFtub3RpZmljYXRpb25zQmVsbF0gOiBbXSksXG4gICAgLi4uaXRlbXMucmlnaHQsXG4gIF07XG5cbiAgY29uc3Qgb25JdGVtVHlwZSA9ICh0eXBlOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgICBpZiAoXG4gICAgICB0eXBlICYmXG4gICAgICAodHlwZSA9PT0gJ2NhdGFsb2ctZHJvcGRvd24nIHx8IHR5cGUgPT09ICdyZXNvdXJjZXMtZHJvcGRvd24nKVxuICAgICkge1xuICAgICAgc2V0QWxsb3dTY3JvbGwodHJ1ZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHNldEFsbG93U2Nyb2xsKGZhbHNlKTtcbiAgICB9XG4gIH07XG5cbiAgcmV0dXJuIChcbiAgICA8PlxuICAgICAgPFNlYXJjaFRyYWNraW5nUHJvdmlkZXI+XG4gICAgICAgIHshbW9iaWxlTWVudU9wZW4gJiYgKCAvLyBuZWVkIHRoaXMgYmMgQXBwQmFyIGhhcyBhIGhhcmRjb2RlZCB6LUluZGV4IG9mIDE1XG4gICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgIGRpc3BsYXk9e3sgXzogYGJsb2NrYCwgW2FwcEhlYWRlck1vYmlsZUJyZWFrcG9pbnRdOiBgbm9uZWAgfX1cbiAgICAgICAgICA+XG4gICAgICAgICAgICA8U3R5bGVkQXBwQmFyIGFzPVwibmF2XCIgYXJpYS1sYWJlbD1cIk1haW5cIj5cbiAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhciBjZW50ZXI9eyEhaXNTaW1wbGV9PlxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChyaWdodCwgJ3JpZ2h0JywgdHJ1ZSl9XG4gICAgICAgICAgICAgICAgeyFoaWRlUmlnaHRNZW51QnV0dG9uICYmIChcbiAgICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJMaXN0SXRlbSBtbD17cmlnaHQubGVuZ3RoID09PSAwID8gJ2F1dG8nIDogMH0+XG4gICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1leHBhbmRlZD17bW9iaWxlTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgYXJpYS1sYWJlbD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwPXsnU2l0ZVxcbm5hdmlnYXRpb24nfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcFByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBhbGlnbm1lbnQ6ICdib3R0b20tY2VudGVyJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlbWVudDogJ2Zsb2F0aW5nJyxcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGRhdGEtdGVzdGlkPVwiaGVhZGVyLW1vYmlsZS1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXsoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvcGVuTW9iaWxlTWVudSgpO1xuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgaWNvbj17TWVudUljb259XG4gICAgICAgICAgICAgICAgICAgICAgdmFyaWFudD1cImludGVyZmFjZVwiXG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtvcGVuQnV0dG9uUmVmfVxuICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgPC9BcHBIZWFkZXJMaXN0SXRlbT5cbiAgICAgICAgICAgICAgICApfVxuICAgICAgICAgICAgICA8L1N0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgIDwvSGVhZGVySGVpZ2h0QXJlYT5cbiAgICAgICAgKX1cbiAgICAgICAgPFN0eWxlZE92ZXJsYXlcbiAgICAgICAgICBjbGlja091dHNpZGVDbG9zZXNcbiAgICAgICAgICBlc2NhcGVDbG9zZXNcbiAgICAgICAgICBpc09wZW49e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgIG9uUmVxdWVzdENsb3NlPXsoKSA9PiBzZXRNb2JpbGVNZW51T3BlbihmYWxzZSl9XG4gICAgICAgICAgYWxsb3dTY3JvbGw9e2FsbG93U2Nyb2xsfVxuICAgICAgICA+XG4gICAgICAgICAgPEJhY2tncm91bmQgYmc9XCJiZWlnZVwiPlxuICAgICAgICAgICAgPEhlYWRlckhlaWdodEFyZWFcbiAgICAgICAgICAgICAgZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fVxuICAgICAgICAgICAgICBhcz1cIm5hdlwiXG4gICAgICAgICAgICAgIGFyaWFMYWJlbD1cIk1haW5cIlxuICAgICAgICAgICAgICBkYXRhLXRlc3RpZD1cImhlYWRlci1tb2JpbGUtbWVudS1kcm9wZG93blwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxTdHlsZWRBcHBCYXI+XG4gICAgICAgICAgICAgICAgPFN0eWxlZE5hdkJhcj5cbiAgICAgICAgICAgICAgICAgIHttYXBJdGVtc1RvRWxlbWVudChpdGVtcy5sZWZ0LCAnbGVmdCcpfVxuICAgICAgICAgICAgICAgICAgPEFwcEhlYWRlckxpc3RJdGVtIG1sPVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvblxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e21vYmlsZU1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHNldE1vYmlsZU1lbnVPcGVuKGZhbHNlKTtcbiAgICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICAgIGljb249e01lbnVJY29ufVxuICAgICAgICAgICAgICAgICAgICAgIGFyaWEtbGFiZWw9e1xuICAgICAgICAgICAgICAgICAgICAgICAgbmF2aWdhdGlvbk1lbnVGb3JtYXR0ZWRMYWJlbD8uc2l0ZU5hdmlnYXRpb24gfHxcbiAgICAgICAgICAgICAgICAgICAgICAgICdTaXRlIG5hdmlnYXRpb24nXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIHRpcD17XG4gICAgICAgICAgICAgICAgICAgICAgICBuYXZpZ2F0aW9uTWVudUZvcm1hdHRlZExhYmVsPy5zaXRlTmF2aWdhdGlvbiB8fFxuICAgICAgICAgICAgICAgICAgICAgICAgJ1NpdGUgbmF2aWdhdGlvbidcbiAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgdGlwUHJvcHM9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWdubWVudDogJ2JvdHRvbS1jZW50ZXInLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2VtZW50OiAnZmxvYXRpbmcnLFxuICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgcmVmPXtjbG9zZUJ1dHRvblJlZn1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIDwvQXBwSGVhZGVyTGlzdEl0ZW0+XG4gICAgICAgICAgICAgICAgPC9TdHlsZWROYXZCYXI+XG4gICAgICAgICAgICAgIDwvU3R5bGVkQXBwQmFyPlxuICAgICAgICAgICAgICA8Qm94IGJhY2tncm91bmQ9e3RoZW1lLmNvbG9ycy5iZWlnZX0gaGVpZ2h0PVwiYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxBcHBIZWFkZXJNYWluTWVudU1vYmlsZVxuICAgICAgICAgICAgICAgICAgYWN0aW9uPXthY3Rpb259XG4gICAgICAgICAgICAgICAgICBpdGVtcz17aXRlbXMubWFpbk1lbnV9XG4gICAgICAgICAgICAgICAgICBnZXRJdGVtVHlwZT17b25JdGVtVHlwZX1cbiAgICAgICAgICAgICAgICAgIGlzQW5vbj17aXNBbm9ufVxuICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgPC9IZWFkZXJIZWlnaHRBcmVhPlxuICAgICAgICAgIDwvQmFja2dyb3VuZD5cbiAgICAgICAgPC9TdHlsZWRPdmVybGF5PlxuICAgICAgICB7IWlzRW50ZXJwcmlzZSAmJiAoXG4gICAgICAgICAgPEJveCBkaXNwbGF5PXt7IF86IGBibG9ja2AsIFthcHBIZWFkZXJNb2JpbGVCcmVha3BvaW50XTogYG5vbmVgIH19PlxuICAgICAgICAgICAge3NlYXJjaFBhbmV9XG4gICAgICAgICAgPC9Cb3g+XG4gICAgICAgICl9XG4gICAgICAgIDxCb3ggZGlzcGxheT17eyBfOiBgYmxvY2tgLCBbYXBwSGVhZGVyTW9iaWxlQnJlYWtwb2ludF06IGBub25lYCB9fT5cbiAgICAgICAgICB7bm90aWZpY2F0aW9uc1ZpZXd9XG4gICAgICAgIDwvQm94PlxuICAgICAgPC9TZWFyY2hUcmFja2luZ1Byb3ZpZGVyPlxuICAgIDwvPlxuICApO1xufTtcbiJdfQ== */");
|
|
52
52
|
export const AppHeaderMobile = ({
|
|
53
53
|
action,
|
|
54
54
|
items,
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codecademy/brand",
|
|
3
3
|
"description": "Brand component library for Codecademy",
|
|
4
|
-
"version": "3.26.0-alpha.
|
|
4
|
+
"version": "3.26.0-alpha.3d09cd7971.0",
|
|
5
5
|
"author": "Codecademy Engineering <dev@codecademy.com>",
|
|
6
6
|
"dependencies": {
|
|
7
7
|
"@emotion/is-prop-valid": "^1.2.1",
|
|
@@ -27,12 +27,7 @@
|
|
|
27
27
|
"main": "./dist/index.js",
|
|
28
28
|
"peerDependencies": {
|
|
29
29
|
"@codecademy/gamut": "*",
|
|
30
|
-
"@codecademy/gamut-icons": "*",
|
|
31
|
-
"@codecademy/gamut-illustrations": "*",
|
|
32
|
-
"@codecademy/gamut-patterns": "*",
|
|
33
|
-
"@codecademy/gamut-styles": "*",
|
|
34
30
|
"@codecademy/tracking": "1.2.0",
|
|
35
|
-
"@codecademy/variance": "*",
|
|
36
31
|
"@emotion/react": "^11.4.0",
|
|
37
32
|
"@emotion/styled": "^11.3.0",
|
|
38
33
|
"react": "^17.0.2 || ^18.2.0"
|