@agilemotion/oui-react-js 2.0.15 → 2.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.TXT +2 -2
- package/dist/components/Calender.css +1 -1
- package/dist/components/TableCellContent.js +8 -18
- package/dist/components/dashboard/FoldingSideTabDashboard.css +1 -1
- package/dist/components/dashboard/FoldingSideTabDashboard.js +10 -7
- package/dist/components/form/LookupField.js +27 -3
- package/dist/components/layout/Layout.js +15 -3
- package/dist/components/layout/ViewPort.js +2 -2
- package/dist/components/layout/Window.css +4 -1
- package/dist/components/layout/Window.js +147 -29
- package/dist/components/layout/WindowDialog.js +8 -5
- package/dist/components/layout/WindowViewPort.js +8 -2
- package/dist/components/media/Chat.js +4 -2
- package/dist/components/media/ClosablePanel.js +55 -27
- package/dist/components/media/MediaSoupHelper.js +13 -1
- package/dist/components/media/SideBarContent.js +22 -8
- package/dist/components/media/TrainingRoom.js +32 -5
- package/dist/components/media/VCEventType.js +3 -1
- package/dist/components/media/VCParticipantList.js +53 -27
- package/dist/components/media/VCRoom.css +22 -0
- package/dist/components/media/VCRoom.js +34 -15
- package/dist/components/media/VCRoomParticipant.css +3 -2
- package/dist/components/media/VCRoomParticipant.js +140 -48
- package/dist/components/media/VCRoomRecorder.js +117 -40
- package/dist/components/media/VCRoomWorkspace.css +0 -1
- package/dist/components/media/VCRoomWorkspace.js +158 -23
- package/dist/components/media/VCSettings.js +462 -0
- package/dist/components/media/VideoPlayer.js +4 -1
- package/dist/components/media/audioLevelMeter.js +96 -0
- package/dist/components/media/chat/ChatRoom.js +13 -9
- package/dist/components/media/chat/ChatRoomItem.js +3 -2
- package/dist/components/media/chat/ChatRoomWrapper.js +4 -1
- package/dist/components/media/chat/ChatRooms.scss +5 -3
- package/dist/hooks/useContainerWidth.js +44 -0
- package/dist/view/security/RegisterInteractionPortal.js +101 -3
- package/package.json +1 -1
package/README.TXT
CHANGED
|
@@ -7,5 +7,5 @@ To deploy UI
|
|
|
7
7
|
4. When finished, run the manual step to push to NPM
|
|
8
8
|
5. Got to the apps(BA and Portal), and update the version
|
|
9
9
|
6. run npm install locally
|
|
10
|
-
7.
|
|
11
|
-
8.
|
|
10
|
+
7. Push the updated package.json and lock file
|
|
11
|
+
8. Run deployment manual steps for the Apps to deploy
|
|
@@ -139,22 +139,7 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
|
|
|
139
139
|
};
|
|
140
140
|
const getStaticDisplayValue = () => {
|
|
141
141
|
let displayValue;
|
|
142
|
-
let contentValue;
|
|
143
|
-
let tokens = props.dataBinding.split('.');
|
|
144
|
-
if (tokens.length === 1) {
|
|
145
|
-
contentValue = _Utils.default.readNestedProperty(props.row, props.dataBinding);
|
|
146
|
-
} else {
|
|
147
|
-
let parent = props.row;
|
|
148
|
-
for (let i = 0; i < tokens.length - 1; i++) {
|
|
149
|
-
parent = parent[tokens[i]];
|
|
150
|
-
if (!parent) {
|
|
151
|
-
break;
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
if (parent) {
|
|
155
|
-
contentValue = parent[tokens[tokens.length - 1]];
|
|
156
|
-
}
|
|
157
|
-
}
|
|
142
|
+
let contentValue = _Utils.default.readNestedProperty(props.row, props.dataBinding);
|
|
158
143
|
if (props.columnConfig.cellFormat === 'CURRENCY' || props.columnConfig.cellFormat === 'NUMBER') {
|
|
159
144
|
return props.cellFormatter ? _DynamicJS.default.executeScriptFunction(props.cellFormatter, contentValue) : _Utils.default.isNull(contentValue) ? '' : props.columnConfig.cellFormat === 'CURRENCY' ? formatter.format(Math.round((contentValue + Number.EPSILON) * 100) / 100) : Math.round((contentValue + Number.EPSILON) * 100) / 100;
|
|
160
145
|
} else {
|
|
@@ -211,7 +196,12 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
|
|
|
211
196
|
} else {
|
|
212
197
|
if (props.criteria && props.criteria.parameters) {
|
|
213
198
|
const terms = buildSearchTerms(props.criteria.parameters);
|
|
214
|
-
|
|
199
|
+
if (contentValue !== null) {
|
|
200
|
+
return highlightTokens(contentValue, terms);
|
|
201
|
+
} else {
|
|
202
|
+
console.log("contentValue is null : ", props.dataBinding, props.row);
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
215
205
|
} else {
|
|
216
206
|
return contentValue;
|
|
217
207
|
}
|
|
@@ -306,4 +296,4 @@ const TableCellContent = /*#__PURE__*/_react.default.memo(props => {
|
|
|
306
296
|
return (!props.editor || props.editor && editor) && render();
|
|
307
297
|
});
|
|
308
298
|
var _default = exports.default = TableCellContent;
|
|
309
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9DaGlwIiwiX1Rvb2x0aXAiLCJfRm9ybSIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiVGFibGVDZWxsQ29udGVudCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiY29udGVudFR5cGUiLCJ1c2VTdGF0ZSIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImVkaXRvciIsInNldEVkaXRvciIsImVkaXRvclZhbHVlIiwidXNlUmVmIiwiZXNjYXBlUmVnZXgiLCJzIiwicmVwbGFjZSIsImVkaXRpbmdSZWYiLCJmb3JtYXR0ZXIiLCJJbnRsIiwiTnVtYmVyRm9ybWF0Iiwic3R5bGUiLCJjdXJyZW5jeSIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsInZhbGlkYXRlIiwidmFsaWRhdG9yIiwiVXRpbHMiLCJpc051bGwiLCJyZXF1aXJlZCIsIm51bGxhYmxlIiwibnVsbGFibGVFeHByZXNzaW9uIiwiY29uY2F0Iiwicm93IiwiaW5kZXgiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiZGF0YUJpbmRpbmciLCJmb3JtVmFsdWUiLCJpZCIsInZhbGlkYXRpb24iLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWQiLCJlcnJvciIsImNvbHVtbiIsIm1lc3NhZ2UiLCJ1cGRhdGVFcnJvcnMiLCJvblJvd0Vycm9yIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsImF0dHJpYnV0ZXMiLCJjb250YWluZXJTdHlsZSIsIm1pbldpZHRoIiwid2lkdGgiLCJyb3dJZCIsImZvcm1hdERhdGUiLCJjb250ZW50VmFsdWUiLCJkYXRlIiwiRGF0ZSIsImZvcm1hdHRlZCIsImdldERhdGUiLCJwYWRTdGFydCIsImdldE1vbnRoIiwiZ2V0RnVsbFllYXIiLCJidWlsZFNlYXJjaFRlcm1zIiwicGFyYW1ldGVycyIsInNldCIsIlNldCIsInAiLCJ0ZXJtIiwic3BsaXQiLCJ0cmltIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImZyb20iLCJoaWdobGlnaHRUb2tlbnMiLCJ0ZXJtcyIsInBhdHRlcm4iLCJtYXAiLCJqb2luIiwic3BsaXRSZWdleCIsIlJlZ0V4cCIsImV4YWN0UmVnZXgiLCJwYXJ0cyIsInBhcnQiLCJpc01hdGNoIiwidGVzdCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImJvcmRlclJhZGl1cyIsImZvbnRXZWlnaHQiLCJib3hTaGFkb3ciLCJnZXRTdGF0aWNEaXNwbGF5VmFsdWUiLCJkaXNwbGF5VmFsdWUiLCJ0b2tlbnMiLCJwYXJlbnQiLCJjb2x1bW5Db25maWciLCJjZWxsRm9ybWF0IiwiY2VsbEZvcm1hdHRlciIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHRGdW5jdGlvbiIsImZvcm1hdCIsIk1hdGgiLCJyb3VuZCIsIkVQU0lMT04iLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJmaWxlIiwibmFtZSIsImlzQXJyYXkiLCJjaGlwSXRlbXMiLCJpdGVtIiwiX3JlZiIsIl9pdGVtJGlkIiwidXNlcm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJsYWJlbCIsIl9fb3VpX2xhYmVsIiwiZnVsbE5hbWUiLCJjIiwiZGlzcGxheSIsImZsZXhXcmFwIiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJzaXplIiwidmFyaWFudCIsInN4IiwibWF4V2lkdGgiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsImNyaXRlcmlhIiwiZG9SZW5kZXIiLCJzZWxlY3RlZCIsImZvcm1Db25maWciLCJ0eXBlIiwic2VjdGlvbnMiLCJjb21wb25lbnRzIiwiZmllbGRzIiwiY29uZmlnIiwiaGFuZGxlIiwidmFsdWVzIiwidmlld0lkIiwicmVuZGVyIiwiaGFzRXJyb3IiLCJjbGFzc05hbWUiLCJ3cmFwIiwiYm9yZGVyIiwidGl0bGUiLCJ0ZXh0QWxpZ24iLCJhcGkiLCJ2YWwiLCJyZWZyZXNoIiwiX2RlZmF1bHQiLCJleHBvcnRzIl0sInNvdXJjZXMiOlsiLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL1RhYmxlQ2VsbENvbnRlbnQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBSZWFjdCBmcm9tICdyZWFjdCc7XG5pbXBvcnQgVXRpbHMgZnJvbSAnLi4vVXRpbHMnO1xuaW1wb3J0IEVycm9ySWNvbiBmcm9tICdAbXVpL2ljb25zLW1hdGVyaWFsL0Vycm9yJztcbmltcG9ydCBDaGlwIGZyb20gJ0BtdWkvbWF0ZXJpYWwvQ2hpcCc7XG5pbXBvcnQgQ3VzdG9tVG9vbHRpcCBmcm9tICcuL1Rvb2x0aXAnO1xuaW1wb3J0IEZvcm0gZnJvbSBcIi4vZm9ybS9Gb3JtXCI7XG5pbXBvcnQgZHluYW1pY0pTIGZyb20gXCIuLi9EeW5hbWljSlNcIjtcblxuY29uc3QgVGFibGVDZWxsQ29udGVudCA9IFJlYWN0Lm1lbW8oKHByb3BzKSA9PiB7XG4gICAgY29uc3QgW2NvbnRlbnRUeXBlXSA9IFJlYWN0LnVzZVN0YXRlKHByb3BzLmNvbnRlbnRUeXBlKTtcbiAgICBjb25zdCBbcmVmcmVzaGVyLCBzZXRSZWZyZXNoZXJdID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2VkaXRvciwgc2V0RWRpdG9yXSA9IFJlYWN0LnVzZVN0YXRlKG51bGwpO1xuICAgIGNvbnN0IGVkaXRvclZhbHVlID0gUmVhY3QudXNlUmVmKG51bGwpO1xuICAgIGNvbnN0IGVzY2FwZVJlZ2V4ID0gKHMpID0+IHMucmVwbGFjZSgvWy4qKz9eJHt9KCl8W1xcXVxcXFxdL2csICdcXFxcJCYnKTtcbiAgICBjb25zdCBlZGl0aW5nUmVmID0gUmVhY3QudXNlUmVmKGZhbHNlKTtcblxuICAgIGNvbnN0IGZvcm1hdHRlciA9IG5ldyBJbnRsLk51bWJlckZvcm1hdChcImVuLVpBXCIsIHtcbiAgICAgICAgc3R5bGU6IFwiY3VycmVuY3lcIixcbiAgICAgICAgY3VycmVuY3k6IFwiWkFSXCIsXG4gICAgICAgIG1pbmltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICAgICAgbWF4aW11bUZyYWN0aW9uRGlnaXRzOiAyLFxuICAgIH0pO1xuXG4gICAgY29uc3QgdmFsaWRhdGUgPSAodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLmVkaXRvcikge1xuICAgICAgICAgICAgbGV0IHZhbGlkYXRvciA9IHByb3BzLnZhbGlkYXRvcjtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHZhbGlkYXRvcikpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVxdWlyZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IubnVsbGFibGUpKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBudWxsYWJsZUV4cHJlc3Npb24gPSB2YWxpZGF0b3IubnVsbGFibGUucmVwbGFjZSgvXFxbI2ldL2csIGBbJHtwcm9wcy5yb3cuaW5kZXh9XWApO1xuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCA9ICFVdGlscy5ldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uKG51bGxhYmxlRXhwcmVzc2lvbiwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIGxldCBmb3JtVmFsdWUgPSB7fTtcbiAgICAgICAgICAgICAgICBmb3JtVmFsdWVbcHJvcHMuZWRpdG9yLmRhdGFCaW5kaW5nIHx8IHByb3BzLmVkaXRvci5pZF0gPSB2YWx1ZTtcbiAgICAgICAgICAgICAgICBsZXQgdmFsaWRhdGlvbiA9IFV0aWxzLnZhbGlkYXRlRmllbGQocHJvcHMuZGF0YUJpbmRpbmcsXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkLCBmb3JtVmFsdWUsIHZhbHVlLCB2YWxpZGF0b3IpO1xuICAgICAgICAgICAgICAgIGlmICghdmFsaWRhdGlvbi52YWxpZCkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgZXJyb3IgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgZXJyb3IuY29sdW1uID0gcHJvcHMuZGF0YUJpbmRpbmc7XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLm1lc3NhZ2UgPSB2YWxpZGF0aW9uLm1lc3NhZ2U7XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGVycm9yO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiB1cGRhdGVFcnJvcnMoZXJyb3IpIHtcbiAgICAgICAgaWYgKGVycm9yKSB7XG4gICAgICAgICAgICBwcm9wcy5vblJvd0Vycm9yKHByb3BzLmRhdGFCaW5kaW5nLCBlcnJvciwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcHJvcHMub25Sb3dFcnJvcihwcm9wcy5kYXRhQmluZGluZywgbnVsbCwgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgdmFsdWVDaGFuZ2VIYW5kbGVyID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIGVkaXRpbmdSZWYuY3VycmVudCA9IHRydWU7XG4gICAgICAgIHVwZGF0ZUVycm9ycyh2YWxpZGF0ZSh2YWx1ZSkpO1xuICAgICAgICBwcm9wcy52YWx1ZUNoYW5nZUhhbmRsZXIocHJvcHMucm93LmlkLCBwcm9wcy5kYXRhQmluZGluZywgdmFsdWUpO1xuICAgIH07XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIWVkaXRpbmdSZWYuY3VycmVudCAmJiBwcm9wcy5lZGl0b3IgJiYgcHJvcHMucm93KSB7XG4gICAgICAgICAgICBlZGl0b3JWYWx1ZS5jdXJyZW50ID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnJvdywgcHJvcHMuZWRpdG9yXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5lZGl0b3IpKSB7XG4gICAgICAgICAgICBsZXQgZSA9IHsuLi5wcm9wcy5lZGl0b3IsIGlkOiBwcm9wcy5lZGl0b3IuaWQucmVwbGFjZSgnLicsICdfJyl9O1xuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzLnN0eWxlKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZSA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID0gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoID8gZS5hdHRyaWJ1dGVzLnN0eWxlLm1pbldpZHRoIDogMDtcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA9IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA/IGUuYXR0cmlidXRlcy5zdHlsZS53aWR0aCA6ICdjYWxjKDEwMCUgLSA4cHgpJztcbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA9IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA/IGUuYXR0cmlidXRlcy5jb250YWluZXJTdHlsZS5taW5XaWR0aCA6IDA7XG4gICAgICAgICAgICBlLnJvd0lkID0gcHJvcHMucm93LmlkO1xuXG4gICAgICAgICAgICBzZXRFZGl0b3IoZSk7XG4gICAgICAgICAgICAvLyBUaGlzIGZvcmNlcyB0aGUgZWRpdGFibGUgZ3JpZCB0byB2YWxpZGF0ZSBpdHMgaW5pdGlhbCB2YWx1ZVxuICAgICAgICAgICAgbGV0IHZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKFV0aWxzLmlzTnVsbCh2YWx1ZSkgPyBudWxsIDogdmFsdWUpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLmVkaXRvcl0pO1xuXG4gICAgY29uc3QgZm9ybWF0RGF0ZSA9IChjb250ZW50VmFsdWUpID0+IHtcbiAgICAgICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKGNvbnRlbnRWYWx1ZSk7XG5cbiAgICAgICAgY29uc3QgZm9ybWF0dGVkID0gYCR7U3RyaW5nKGRhdGUuZ2V0RGF0ZSgpKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke1N0cmluZyhkYXRlLmdldE1vbnRoKCkgKyAxKS5wYWRTdGFydCgyLCAnMCcpfS9gICtcbiAgICAgICAgICAgIGAke2RhdGUuZ2V0RnVsbFllYXIoKX1gO1xuXG4gICAgICAgIHJldHVybiBmb3JtYXR0ZWQ7XG4gICAgfVxuXG4vLyBCdWlsZCBmbGF0LCBkZWR1cGVkIGxpc3Qgb2Ygc2VhcmNoIHRlcm1zIGZyb20gY3JpdGVyaWEucGFyYW1ldGVyc1xuICAgIGNvbnN0IGJ1aWxkU2VhcmNoVGVybXMgPSAocGFyYW1ldGVycykgPT4ge1xuICAgICAgICBjb25zdCBzZXQgPSBuZXcgU2V0KCk7XG4gICAgICAgIGZvciAoY29uc3QgcCBvZiBwYXJhbWV0ZXJzIHx8IFtdKSB7XG4gICAgICAgICAgICBpZiAocD8udmFsdWUgJiYgdHlwZW9mIHAudmFsdWUgPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCB0ZXJtIG9mIHAudmFsdWUuc3BsaXQoL1xccysvKSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB0ID0gdGVybS50cmltKCk7XG4gICAgICAgICAgICAgICAgICAgIGlmICh0KSBzZXQuYWRkKHQudG9Mb3dlckNhc2UoKSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBBcnJheS5mcm9tKHNldCk7IC8vIGxvd2VyY2FzZSB0ZXJtc1xuICAgIH07XG5cbiAgICBjb25zdCBoaWdobGlnaHRUb2tlbnMgPSAodmFsdWUsIHRlcm1zKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUgfHwgIXRlcm1zPy5sZW5ndGgpIHJldHVybiB2YWx1ZTtcblxuICAgICAgICAvLyBDb21iaW5lIHRlcm1zIGludG8gYSBzaW5nbGUgY2FwdHVyaW5nIGdyb3VwIGZvciBzcGxpdFxuICAgICAgICBjb25zdCBwYXR0ZXJuID0gYCgke3Rlcm1zLm1hcCh0ID0+IGVzY2FwZVJlZ2V4KHQpKS5qb2luKCd8Jyl9KWA7XG4gICAgICAgIGNvbnN0IHNwbGl0UmVnZXggPSBuZXcgUmVnRXhwKHBhdHRlcm4sICdnaScpO1xuICAgICAgICBjb25zdCBleGFjdFJlZ2V4ID0gbmV3IFJlZ0V4cChgXig/OiR7cGF0dGVybn0pJGAsICdpJyk7IC8vIHRvIHRlc3QgcGFydHNcblxuICAgICAgICBjb25zdCBwYXJ0cyA9IHZhbHVlLnNwbGl0KHNwbGl0UmVnZXgpO1xuXG4gICAgICAgIHJldHVybiBwYXJ0cy5tYXAoKHBhcnQsIGkpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzTWF0Y2ggPSBleGFjdFJlZ2V4LnRlc3QocGFydCk7XG4gICAgICAgICAgICByZXR1cm4gaXNNYXRjaCA/IChcbiAgICAgICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICAgICAgICBrZXk9e2l9XG4gICAgICAgICAgICAgICAgICAgIHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICcjZmZlYjNiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbG9yOiAnIzAwMCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBib3JkZXJSYWRpdXM6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZm9udFdlaWdodDogJ2JvbGQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm94U2hhZG93OiAnMCAwIDNweCByZ2JhKDAsMCwwLDAuMyknXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICB7cGFydH1cbiAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICkgOiAoXG4gICAgICAgICAgICAgICAgPHNwYW4ga2V5PXtpfT57cGFydH08L3NwYW4+XG4gICAgICAgICAgICApO1xuICAgICAgICB9KTtcbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0U3RhdGljRGlzcGxheVZhbHVlID0gKCkgPT4ge1xuICAgICAgICBsZXQgZGlzcGxheVZhbHVlO1xuICAgICAgICBsZXQgY29udGVudFZhbHVlO1xuICAgICAgICBsZXQgdG9rZW5zID0gcHJvcHMuZGF0YUJpbmRpbmcuc3BsaXQoJy4nKTtcblxuICAgICAgICBpZiAodG9rZW5zLmxlbmd0aCA9PT0gMSkge1xuICAgICAgICAgICAgY29udGVudFZhbHVlID0gVXRpbHMucmVhZE5lc3RlZFByb3BlcnR5KHByb3BzLnJvdywgcHJvcHMuZGF0YUJpbmRpbmcpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IHBhcmVudCA9IHByb3BzLnJvdztcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdG9rZW5zLmxlbmd0aCAtIDE7IGkrKykge1xuICAgICAgICAgICAgICAgIHBhcmVudCA9IHBhcmVudFt0b2tlbnNbaV1dO1xuICAgICAgICAgICAgICAgIGlmICghcGFyZW50KSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHBhcmVudCkge1xuICAgICAgICAgICAgICAgIGNvbnRlbnRWYWx1ZSA9IHBhcmVudFt0b2tlbnNbdG9rZW5zLmxlbmd0aCAtIDFdXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ0NVUlJFTkNZJyB8fCBwcm9wcy5jb2x1bW5Db25maWcuY2VsbEZvcm1hdCA9PT0gJ05VTUJFUicpIHtcbiAgICAgICAgICAgIHJldHVybiBwcm9wcy5jZWxsRm9ybWF0dGVyID8gZHluYW1pY0pTLmV4ZWN1dGVTY3JpcHRGdW5jdGlvbihwcm9wcy5jZWxsRm9ybWF0dGVyLCBjb250ZW50VmFsdWUpXG4gICAgICAgICAgICAgICAgOiBVdGlscy5pc051bGwoY29udGVudFZhbHVlKSA/ICcnIDogcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdDVVJSRU5DWScgP1xuICAgICAgICAgICAgICAgICAgICBmb3JtYXR0ZXIuZm9ybWF0KE1hdGgucm91bmQoKGNvbnRlbnRWYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDApIDogTWF0aC5yb3VuZCgoY29udGVudFZhbHVlICsgTnVtYmVyLkVQU0lMT04pICogMTAwKSAvIDEwMDtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoY29udGVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9ICcnO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ0RBVEUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gZm9ybWF0RGF0ZShjb250ZW50VmFsdWUpO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ1RJTUUnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gbmV3IERhdGUoY29udGVudFZhbHVlKS50b0xvY2FsZVRpbWVTdHJpbmcoKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdDSEVDS0JPWCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUgPyBcIlllc1wiIDogXCJOb1wiO1xuICAgICAgICAgICAgfSBlbHNlIGlmIChjb250ZW50VHlwZSA9PT0gJ01VTFRJX0ZJTEVfVVBMT0FEJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGNvbnRlbnRWYWx1ZS5tYXAoZmlsZSA9PiBmaWxlLm5hbWUpLmpvaW4oXCIsIFwiKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoQXJyYXkuaXNBcnJheShjb250ZW50VmFsdWUpKSB7XG4gICAgICAgICAgICAgICAgLy8gTVVMVElfTE9PS1VQIGNlbGxzIHJlbmRlciBlYWNoIGl0ZW0gYXMgYW4gaW5saW5lIENoaXAgc28gdGhlXG4gICAgICAgICAgICAgICAgLy8gbm9uLWVkaXQgcm93IGxvb2tzIGlkZW50aWNhbCB0byB0aGUgZWRpdC1tb2RlIGZpZWxkICh3aGljaFxuICAgICAgICAgICAgICAgIC8vIGFsc28gcmVuZGVycyBDaGlwcykuIFRoZSBjb250YWluZXIgd3JhcHMgc28gcm93cyBncm93IG9ubHlcbiAgICAgICAgICAgICAgICAvLyB3aGVuIHRoZXJlIGFyZSBtYW55IGl0ZW1zLCBpbnN0ZWFkIG9mIGJlaW5nIGNsaXBwZWQuXG4gICAgICAgICAgICAgICAgY29uc3QgY2hpcEl0ZW1zID0gY29udGVudFZhbHVlXG4gICAgICAgICAgICAgICAgICAgIC5tYXAoaXRlbSA9PiAoe1xuICAgICAgICAgICAgICAgICAgICAgICAgaWQ6IGl0ZW0gJiYgKGl0ZW0uaWQgPz8gaXRlbS51c2VybmFtZSA/PyBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiksXG4gICAgICAgICAgICAgICAgICAgICAgICBsYWJlbDogaXRlbSAmJiAoaXRlbS5fX291aV9sYWJlbCB8fCBpdGVtLmRhdGFSZWNvcmREZXNjcmlwdGlvbiB8fCBpdGVtLmZ1bGxOYW1lIHx8IGl0ZW0udXNlcm5hbWUgfHwgJycpXG4gICAgICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGMgPT4gYy5sYWJlbCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpcEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gJyc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgZmxleFdyYXA6ICd3cmFwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGdhcDogJzRweCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBwYWRkaW5nOiAnMnB4IDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYWxpZ25JdGVtczogJ2NlbnRlcidcbiAgICAgICAgICAgICAgICAgICAgfX0+XG4gICAgICAgICAgICAgICAgICAgICAgICB7Y2hpcEl0ZW1zLm1hcCgoYykgPT4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxDaGlwIGtleT17Yy5pZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYWJlbD17Yy5sYWJlbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhcmlhbnQ9XCJvdXRsaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6ICcxMDAlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJyYgLk11aUNoaXAtbGFiZWwnOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0T3ZlcmZsb3c6ICdlbGxpcHNpcydcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgICkpfVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICBpZiAodHlwZW9mIGNvbnRlbnRWYWx1ZSA9PT0gJ29iamVjdCcpIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gVE9ETyA6IEZpcnN0IGNoZWNrIGlmIHRoZSBlZGl0b3IgaGFzIGEgZGlzcGxheSB0ZW1wbGF0ZS4gSWYgaXQgZG9lcywgdXNlIGl0IHRvIGdldCB0aGUgZGlzcGxheSB2YWx1ZVxuICAgICAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUuZGF0YVJlY29yZERlc2NyaXB0aW9uO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChwcm9wcy5jcml0ZXJpYSAmJiBwcm9wcy5jcml0ZXJpYS5wYXJhbWV0ZXJzKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCB0ZXJtcyA9IGJ1aWxkU2VhcmNoVGVybXMocHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycyk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFB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
|
|
299
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJfcmVhY3QiLCJfaW50ZXJvcFJlcXVpcmVEZWZhdWx0IiwicmVxdWlyZSIsIl9VdGlscyIsIl9FcnJvciIsIl9DaGlwIiwiX1Rvb2x0aXAiLCJfRm9ybSIsIl9EeW5hbWljSlMiLCJlIiwiX19lc01vZHVsZSIsImRlZmF1bHQiLCJvd25LZXlzIiwiciIsInQiLCJPYmplY3QiLCJrZXlzIiwiZ2V0T3duUHJvcGVydHlTeW1ib2xzIiwibyIsImZpbHRlciIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsImVudW1lcmFibGUiLCJwdXNoIiwiYXBwbHkiLCJfb2JqZWN0U3ByZWFkIiwiYXJndW1lbnRzIiwibGVuZ3RoIiwiZm9yRWFjaCIsIl9kZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvcnMiLCJkZWZpbmVQcm9wZXJ0aWVzIiwiZGVmaW5lUHJvcGVydHkiLCJfdG9Qcm9wZXJ0eUtleSIsInZhbHVlIiwiY29uZmlndXJhYmxlIiwid3JpdGFibGUiLCJpIiwiX3RvUHJpbWl0aXZlIiwiU3ltYm9sIiwidG9QcmltaXRpdmUiLCJjYWxsIiwiVHlwZUVycm9yIiwiU3RyaW5nIiwiTnVtYmVyIiwiVGFibGVDZWxsQ29udGVudCIsIlJlYWN0IiwibWVtbyIsInByb3BzIiwiY29udGVudFR5cGUiLCJ1c2VTdGF0ZSIsInJlZnJlc2hlciIsInNldFJlZnJlc2hlciIsImVkaXRvciIsInNldEVkaXRvciIsImVkaXRvclZhbHVlIiwidXNlUmVmIiwiZXNjYXBlUmVnZXgiLCJzIiwicmVwbGFjZSIsImVkaXRpbmdSZWYiLCJmb3JtYXR0ZXIiLCJJbnRsIiwiTnVtYmVyRm9ybWF0Iiwic3R5bGUiLCJjdXJyZW5jeSIsIm1pbmltdW1GcmFjdGlvbkRpZ2l0cyIsIm1heGltdW1GcmFjdGlvbkRpZ2l0cyIsInZhbGlkYXRlIiwidmFsaWRhdG9yIiwiVXRpbHMiLCJpc051bGwiLCJyZXF1aXJlZCIsIm51bGxhYmxlIiwibnVsbGFibGVFeHByZXNzaW9uIiwiY29uY2F0Iiwicm93IiwiaW5kZXgiLCJldmFsdWF0ZUJvb2xlYW5FeHByZXNzaW9uIiwiZGF0YUJpbmRpbmciLCJmb3JtVmFsdWUiLCJpZCIsInZhbGlkYXRpb24iLCJ2YWxpZGF0ZUZpZWxkIiwidmFsaWQiLCJlcnJvciIsImNvbHVtbiIsIm1lc3NhZ2UiLCJ1cGRhdGVFcnJvcnMiLCJvblJvd0Vycm9yIiwidmFsdWVDaGFuZ2VIYW5kbGVyIiwiY3VycmVudCIsInVzZUVmZmVjdCIsInJlYWROZXN0ZWRQcm9wZXJ0eSIsImF0dHJpYnV0ZXMiLCJjb250YWluZXJTdHlsZSIsIm1pbldpZHRoIiwid2lkdGgiLCJyb3dJZCIsImZvcm1hdERhdGUiLCJjb250ZW50VmFsdWUiLCJkYXRlIiwiRGF0ZSIsImZvcm1hdHRlZCIsImdldERhdGUiLCJwYWRTdGFydCIsImdldE1vbnRoIiwiZ2V0RnVsbFllYXIiLCJidWlsZFNlYXJjaFRlcm1zIiwicGFyYW1ldGVycyIsInNldCIsIlNldCIsInAiLCJ0ZXJtIiwic3BsaXQiLCJ0cmltIiwiYWRkIiwidG9Mb3dlckNhc2UiLCJBcnJheSIsImZyb20iLCJoaWdobGlnaHRUb2tlbnMiLCJ0ZXJtcyIsInBhdHRlcm4iLCJtYXAiLCJqb2luIiwic3BsaXRSZWdleCIsIlJlZ0V4cCIsImV4YWN0UmVnZXgiLCJwYXJ0cyIsInBhcnQiLCJpc01hdGNoIiwidGVzdCIsImNyZWF0ZUVsZW1lbnQiLCJrZXkiLCJiYWNrZ3JvdW5kQ29sb3IiLCJjb2xvciIsImJvcmRlclJhZGl1cyIsImZvbnRXZWlnaHQiLCJib3hTaGFkb3ciLCJnZXRTdGF0aWNEaXNwbGF5VmFsdWUiLCJkaXNwbGF5VmFsdWUiLCJjb2x1bW5Db25maWciLCJjZWxsRm9ybWF0IiwiY2VsbEZvcm1hdHRlciIsImR5bmFtaWNKUyIsImV4ZWN1dGVTY3JpcHRGdW5jdGlvbiIsImZvcm1hdCIsIk1hdGgiLCJyb3VuZCIsIkVQU0lMT04iLCJ0b0xvY2FsZVRpbWVTdHJpbmciLCJmaWxlIiwibmFtZSIsImlzQXJyYXkiLCJjaGlwSXRlbXMiLCJpdGVtIiwiX3JlZiIsIl9pdGVtJGlkIiwidXNlcm5hbWUiLCJkYXRhUmVjb3JkRGVzY3JpcHRpb24iLCJsYWJlbCIsIl9fb3VpX2xhYmVsIiwiZnVsbE5hbWUiLCJjIiwiZGlzcGxheSIsImZsZXhXcmFwIiwiZ2FwIiwicGFkZGluZyIsImFsaWduSXRlbXMiLCJzaXplIiwidmFyaWFudCIsInN4IiwibWF4V2lkdGgiLCJvdmVyZmxvdyIsInRleHRPdmVyZmxvdyIsImNyaXRlcmlhIiwiY29uc29sZSIsImxvZyIsImRvUmVuZGVyIiwic2VsZWN0ZWQiLCJmb3JtQ29uZmlnIiwidHlwZSIsInNlY3Rpb25zIiwiY29tcG9uZW50cyIsImZpZWxkcyIsImNvbmZpZyIsImhhbmRsZSIsInZhbHVlcyIsInZpZXdJZCIsInJlbmRlciIsImhhc0Vycm9yIiwiY2xhc3NOYW1lIiwid3JhcCIsImJvcmRlciIsInRpdGxlIiwidGV4dEFsaWduIiwiYXBpIiwidmFsIiwicmVmcmVzaCIsIl9kZWZhdWx0IiwiZXhwb3J0cyJdLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9UYWJsZUNlbGxDb250ZW50LmpzeCJdLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgUmVhY3QgZnJvbSAncmVhY3QnO1xuaW1wb3J0IFV0aWxzIGZyb20gJy4uL1V0aWxzJztcbmltcG9ydCBFcnJvckljb24gZnJvbSAnQG11aS9pY29ucy1tYXRlcmlhbC9FcnJvcic7XG5pbXBvcnQgQ2hpcCBmcm9tICdAbXVpL21hdGVyaWFsL0NoaXAnO1xuaW1wb3J0IEN1c3RvbVRvb2x0aXAgZnJvbSAnLi9Ub29sdGlwJztcbmltcG9ydCBGb3JtIGZyb20gXCIuL2Zvcm0vRm9ybVwiO1xuaW1wb3J0IGR5bmFtaWNKUyBmcm9tIFwiLi4vRHluYW1pY0pTXCI7XG5cbmNvbnN0IFRhYmxlQ2VsbENvbnRlbnQgPSBSZWFjdC5tZW1vKChwcm9wcykgPT4ge1xuICAgIGNvbnN0IFtjb250ZW50VHlwZV0gPSBSZWFjdC51c2VTdGF0ZShwcm9wcy5jb250ZW50VHlwZSk7XG4gICAgY29uc3QgW3JlZnJlc2hlciwgc2V0UmVmcmVzaGVyXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtlZGl0b3IsIHNldEVkaXRvcl0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCBlZGl0b3JWYWx1ZSA9IFJlYWN0LnVzZVJlZihudWxsKTtcbiAgICBjb25zdCBlc2NhcGVSZWdleCA9IChzKSA9PiBzLnJlcGxhY2UoL1suKis/XiR7fSgpfFtcXF1cXFxcXS9nLCAnXFxcXCQmJyk7XG4gICAgY29uc3QgZWRpdGluZ1JlZiA9IFJlYWN0LnVzZVJlZihmYWxzZSk7XG5cbiAgICBjb25zdCBmb3JtYXR0ZXIgPSBuZXcgSW50bC5OdW1iZXJGb3JtYXQoXCJlbi1aQVwiLCB7XG4gICAgICAgIHN0eWxlOiBcImN1cnJlbmN5XCIsXG4gICAgICAgIGN1cnJlbmN5OiBcIlpBUlwiLFxuICAgICAgICBtaW5pbXVtRnJhY3Rpb25EaWdpdHM6IDIsXG4gICAgICAgIG1heGltdW1GcmFjdGlvbkRpZ2l0czogMixcbiAgICB9KTtcblxuICAgIGNvbnN0IHZhbGlkYXRlID0gKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy5lZGl0b3IpIHtcbiAgICAgICAgICAgIGxldCB2YWxpZGF0b3IgPSBwcm9wcy52YWxpZGF0b3I7XG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbCh2YWxpZGF0b3IpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlcXVpcmVkID0gZmFsc2U7XG4gICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwodmFsaWRhdG9yLm51bGxhYmxlKSkge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbnVsbGFibGVFeHByZXNzaW9uID0gdmFsaWRhdG9yLm51bGxhYmxlLnJlcGxhY2UoL1xcWyNpXS9nLCBgWyR7cHJvcHMucm93LmluZGV4fV1gKTtcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQgPSAhVXRpbHMuZXZhbHVhdGVCb29sZWFuRXhwcmVzc2lvbihudWxsYWJsZUV4cHJlc3Npb24sIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gdmFsdWU7XG4gICAgICAgICAgICAgICAgbGV0IHZhbGlkYXRpb24gPSBVdGlscy52YWxpZGF0ZUZpZWxkKHByb3BzLmRhdGFCaW5kaW5nLFxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZCwgZm9ybVZhbHVlLCB2YWx1ZSwgdmFsaWRhdG9yKTtcbiAgICAgICAgICAgICAgICBpZiAoIXZhbGlkYXRpb24udmFsaWQpIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGVycm9yID0ge307XG4gICAgICAgICAgICAgICAgICAgIGVycm9yLmNvbHVtbiA9IHByb3BzLmRhdGFCaW5kaW5nO1xuICAgICAgICAgICAgICAgICAgICBlcnJvci5tZXNzYWdlID0gdmFsaWRhdGlvbi5tZXNzYWdlO1xuXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBlcnJvcjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbnVsbDtcbiAgICB9O1xuXG4gICAgZnVuY3Rpb24gdXBkYXRlRXJyb3JzKGVycm9yKSB7XG4gICAgICAgIGlmIChlcnJvcikge1xuICAgICAgICAgICAgcHJvcHMub25Sb3dFcnJvcihwcm9wcy5kYXRhQmluZGluZywgZXJyb3IsIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHByb3BzLm9uUm93RXJyb3IocHJvcHMuZGF0YUJpbmRpbmcsIG51bGwsIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IHZhbHVlQ2hhbmdlSGFuZGxlciA9ICh2YWx1ZSkgPT4ge1xuICAgICAgICBlZGl0aW5nUmVmLmN1cnJlbnQgPSB0cnVlO1xuICAgICAgICB1cGRhdGVFcnJvcnModmFsaWRhdGUodmFsdWUpKTtcbiAgICAgICAgcHJvcHMudmFsdWVDaGFuZ2VIYW5kbGVyKHByb3BzLnJvdy5pZCwgcHJvcHMuZGF0YUJpbmRpbmcsIHZhbHVlKTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFlZGl0aW5nUmVmLmN1cnJlbnQgJiYgcHJvcHMuZWRpdG9yICYmIHByb3BzLnJvdykge1xuICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy5yb3csIHByb3BzLmVkaXRvcl0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgbGV0IGUgPSB7Li4ucHJvcHMuZWRpdG9yLCBpZDogcHJvcHMuZWRpdG9yLmlkLnJlcGxhY2UoJy4nLCAnXycpfTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwoZS5hdHRyaWJ1dGVzKSkge1xuICAgICAgICAgICAgICAgIGUuYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGUuYXR0cmlidXRlcy5zdHlsZSkpIHtcbiAgICAgICAgICAgICAgICBlLmF0dHJpYnV0ZXMuc3R5bGUgPSB7fTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKFV0aWxzLmlzTnVsbChlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUpKSB7XG4gICAgICAgICAgICAgICAgZS5hdHRyaWJ1dGVzLmNvbnRhaW5lclN0eWxlID0ge307XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGUuYXR0cmlidXRlcy5zdHlsZS5taW5XaWR0aCA9IGUuYXR0cmlidXRlcy5zdHlsZS5taW5XaWR0aCA/IGUuYXR0cmlidXRlcy5zdHlsZS5taW5XaWR0aCA6IDA7XG4gICAgICAgICAgICBlLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggPSBlLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggPyBlLmF0dHJpYnV0ZXMuc3R5bGUud2lkdGggOiAnY2FsYygxMDAlIC0gOHB4KSc7XG4gICAgICAgICAgICBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUubWluV2lkdGggPSBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUubWluV2lkdGggPyBlLmF0dHJpYnV0ZXMuY29udGFpbmVyU3R5bGUubWluV2lkdGggOiAwO1xuICAgICAgICAgICAgZS5yb3dJZCA9IHByb3BzLnJvdy5pZDtcblxuICAgICAgICAgICAgc2V0RWRpdG9yKGUpO1xuICAgICAgICAgICAgLy8gVGhpcyBmb3JjZXMgdGhlIGVkaXRhYmxlIGdyaWQgdG8gdmFsaWRhdGUgaXRzIGluaXRpYWwgdmFsdWVcbiAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgIHZhbHVlQ2hhbmdlSGFuZGxlcihVdGlscy5pc051bGwodmFsdWUpID8gbnVsbCA6IHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy5lZGl0b3JdKTtcblxuICAgIGNvbnN0IGZvcm1hdERhdGUgPSAoY29udGVudFZhbHVlKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZShjb250ZW50VmFsdWUpO1xuXG4gICAgICAgIGNvbnN0IGZvcm1hdHRlZCA9IGAke1N0cmluZyhkYXRlLmdldERhdGUoKSkucGFkU3RhcnQoMiwgJzAnKX0vYCArXG4gICAgICAgICAgICBgJHtTdHJpbmcoZGF0ZS5nZXRNb250aCgpICsgMSkucGFkU3RhcnQoMiwgJzAnKX0vYCArXG4gICAgICAgICAgICBgJHtkYXRlLmdldEZ1bGxZZWFyKCl9YDtcblxuICAgICAgICByZXR1cm4gZm9ybWF0dGVkO1xuICAgIH1cblxuLy8gQnVpbGQgZmxhdCwgZGVkdXBlZCBsaXN0IG9mIHNlYXJjaCB0ZXJtcyBmcm9tIGNyaXRlcmlhLnBhcmFtZXRlcnNcbiAgICBjb25zdCBidWlsZFNlYXJjaFRlcm1zID0gKHBhcmFtZXRlcnMpID0+IHtcbiAgICAgICAgY29uc3Qgc2V0ID0gbmV3IFNldCgpO1xuICAgICAgICBmb3IgKGNvbnN0IHAgb2YgcGFyYW1ldGVycyB8fCBbXSkge1xuICAgICAgICAgICAgaWYgKHA/LnZhbHVlICYmIHR5cGVvZiBwLnZhbHVlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgdGVybSBvZiBwLnZhbHVlLnNwbGl0KC9cXHMrLykpIHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgdCA9IHRlcm0udHJpbSgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAodCkgc2V0LmFkZCh0LnRvTG93ZXJDYXNlKCkpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gQXJyYXkuZnJvbShzZXQpOyAvLyBsb3dlcmNhc2UgdGVybXNcbiAgICB9O1xuXG4gICAgY29uc3QgaGlnaGxpZ2h0VG9rZW5zID0gKHZhbHVlLCB0ZXJtcykgPT4ge1xuICAgICAgICBpZiAoIXZhbHVlIHx8ICF0ZXJtcz8ubGVuZ3RoKSByZXR1cm4gdmFsdWU7XG5cbiAgICAgICAgLy8gQ29tYmluZSB0ZXJtcyBpbnRvIGEgc2luZ2xlIGNhcHR1cmluZyBncm91cCBmb3Igc3BsaXRcbiAgICAgICAgY29uc3QgcGF0dGVybiA9IGAoJHt0ZXJtcy5tYXAodCA9PiBlc2NhcGVSZWdleCh0KSkuam9pbignfCcpfSlgO1xuICAgICAgICBjb25zdCBzcGxpdFJlZ2V4ID0gbmV3IFJlZ0V4cChwYXR0ZXJuLCAnZ2knKTtcbiAgICAgICAgY29uc3QgZXhhY3RSZWdleCA9IG5ldyBSZWdFeHAoYF4oPzoke3BhdHRlcm59KSRgLCAnaScpOyAvLyB0byB0ZXN0IHBhcnRzXG5cbiAgICAgICAgY29uc3QgcGFydHMgPSB2YWx1ZS5zcGxpdChzcGxpdFJlZ2V4KTtcblxuICAgICAgICByZXR1cm4gcGFydHMubWFwKChwYXJ0LCBpKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBpc01hdGNoID0gZXhhY3RSZWdleC50ZXN0KHBhcnQpO1xuICAgICAgICAgICAgcmV0dXJuIGlzTWF0Y2ggPyAoXG4gICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAga2V5PXtpfVxuICAgICAgICAgICAgICAgICAgICBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgYmFja2dyb3VuZENvbG9yOiAnI2ZmZWIzYicsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb2xvcjogJyMwMDAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyUmFkaXVzOiAnNHB4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZvbnRXZWlnaHQ6ICdib2xkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGJveFNoYWRvdzogJzAgMCAzcHggcmdiYSgwLDAsMCwwLjMpJ1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgID5cbiAgICAgICAge3BhcnR9XG4gICAgICA8L3NwYW4+XG4gICAgICAgICAgICApIDogKFxuICAgICAgICAgICAgICAgIDxzcGFuIGtleT17aX0+e3BhcnR9PC9zcGFuPlxuICAgICAgICAgICAgKTtcbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldFN0YXRpY0Rpc3BsYXlWYWx1ZSA9ICgpID0+IHtcbiAgICAgICAgbGV0IGRpc3BsYXlWYWx1ZTtcbiAgICAgICAgbGV0IGNvbnRlbnRWYWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcblxuICAgICAgICBpZiAocHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdDVVJSRU5DWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInKSB7XG4gICAgICAgICAgICByZXR1cm4gcHJvcHMuY2VsbEZvcm1hdHRlciA/IGR5bmFtaWNKUy5leGVjdXRlU2NyaXB0RnVuY3Rpb24ocHJvcHMuY2VsbEZvcm1hdHRlciwgY29udGVudFZhbHVlKVxuICAgICAgICAgICAgICAgIDogVXRpbHMuaXNOdWxsKGNvbnRlbnRWYWx1ZSkgPyAnJyA6IHByb3BzLmNvbHVtbkNvbmZpZy5jZWxsRm9ybWF0ID09PSAnQ1VSUkVOQ1knID9cbiAgICAgICAgICAgICAgICAgICAgZm9ybWF0dGVyLmZvcm1hdChNYXRoLnJvdW5kKChjb250ZW50VmFsdWUgKyBOdW1iZXIuRVBTSUxPTikgKiAxMDApIC8gMTAwKSA6IE1hdGgucm91bmQoKGNvbnRlbnRWYWx1ZSArIE51bWJlci5FUFNJTE9OKSAqIDEwMCkgLyAxMDA7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKGNvbnRlbnRWYWx1ZSkpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSAnJztcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdEQVRFJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IGZvcm1hdERhdGUoY29udGVudFZhbHVlKTtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdUSU1FJykge1xuICAgICAgICAgICAgICAgIGRpc3BsYXlWYWx1ZSA9IG5ldyBEYXRlKGNvbnRlbnRWYWx1ZSkudG9Mb2NhbGVUaW1lU3RyaW5nKCk7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKGNvbnRlbnRUeXBlID09PSAnQ0hFQ0tCT1gnKSB7XG4gICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gY29udGVudFZhbHVlID8gXCJZZXNcIiA6IFwiTm9cIjtcbiAgICAgICAgICAgIH0gZWxzZSBpZiAoY29udGVudFR5cGUgPT09ICdNVUxUSV9GSUxFX1VQTE9BRCcpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBjb250ZW50VmFsdWUubWFwKGZpbGUgPT4gZmlsZS5uYW1lKS5qb2luKFwiLCBcIik7XG4gICAgICAgICAgICB9IGVsc2UgaWYgKEFycmF5LmlzQXJyYXkoY29udGVudFZhbHVlKSkge1xuICAgICAgICAgICAgICAgIC8vIE1VTFRJX0xPT0tVUCBjZWxscyByZW5kZXIgZWFjaCBpdGVtIGFzIGFuIGlubGluZSBDaGlwIHNvIHRoZVxuICAgICAgICAgICAgICAgIC8vIG5vbi1lZGl0IHJvdyBsb29rcyBpZGVudGljYWwgdG8gdGhlIGVkaXQtbW9kZSBmaWVsZCAod2hpY2hcbiAgICAgICAgICAgICAgICAvLyBhbHNvIHJlbmRlcnMgQ2hpcHMpLiBUaGUgY29udGFpbmVyIHdyYXBzIHNvIHJvd3MgZ3JvdyBvbmx5XG4gICAgICAgICAgICAgICAgLy8gd2hlbiB0aGVyZSBhcmUgbWFueSBpdGVtcywgaW5zdGVhZCBvZiBiZWluZyBjbGlwcGVkLlxuICAgICAgICAgICAgICAgIGNvbnN0IGNoaXBJdGVtcyA9IGNvbnRlbnRWYWx1ZVxuICAgICAgICAgICAgICAgICAgICAubWFwKGl0ZW0gPT4gKHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtICYmIChpdGVtLmlkID8/IGl0ZW0udXNlcm5hbWUgPz8gaXRlbS5kYXRhUmVjb3JkRGVzY3JpcHRpb24pLFxuICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw6IGl0ZW0gJiYgKGl0ZW0uX19vdWlfbGFiZWwgfHwgaXRlbS5kYXRhUmVjb3JkRGVzY3JpcHRpb24gfHwgaXRlbS5mdWxsTmFtZSB8fCBpdGVtLnVzZXJuYW1lIHx8ICcnKVxuICAgICAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAgICAgLmZpbHRlcihjID0+IGMubGFiZWwpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaXBJdGVtcy5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuICcnO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGZsZXhXcmFwOiAnd3JhcCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBnYXA6ICc0cHgnLFxuICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZzogJzJweCAwJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGFsaWduSXRlbXM6ICdjZW50ZXInXG4gICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAge2NoaXBJdGVtcy5tYXAoKGMpID0+IChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Q2hpcCBrZXk9e2MuaWR9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGFiZWw9e2MubGFiZWx9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YXJpYW50PVwib3V0bGluZWRcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAnMTAwJScsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICcmIC5NdWlDaGlwLWxhYmVsJzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dE92ZXJmbG93OiAnZWxsaXBzaXMnXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9fS8+XG4gICAgICAgICAgICAgICAgICAgICAgICApKX1cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKHR5cGVvZiBjb250ZW50VmFsdWUgPT09ICdvYmplY3QnKSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFRPRE8gOiBGaXJzdCBjaGVjayBpZiB0aGUgZWRpdG9yIGhhcyBhIGRpc3BsYXkgdGVtcGxhdGUuIElmIGl0IGRvZXMsIHVzZSBpdCB0byBnZXQgdGhlIGRpc3BsYXkgdmFsdWVcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlID0gY29udGVudFZhbHVlLmRhdGFSZWNvcmREZXNjcmlwdGlvbjtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBpZiAocHJvcHMuY3JpdGVyaWEgJiYgcHJvcHMuY3JpdGVyaWEucGFyYW1ldGVycykge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgdGVybXMgPSBidWlsZFNlYXJjaFRlcm1zKHByb3BzLmNyaXRlcmlhLnBhcmFtZXRlcnMpO1xuXG4gICAgICAgICAgICAgICAgICAgICAgICBpZihjb250ZW50VmFsdWUgIT09IG51bGwpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gaGlnaGxpZ2h0VG9rZW5zKGNvbnRlbnRWYWx1ZSwgdGVybXMpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZyhcImNvbnRlbnRWYWx1ZSBpcyBudWxsIDogXCIsIHByb3BzLmRhdGFCaW5kaW5nLCBwcm9wcy5yb3cpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRWYWx1ZTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3BzLmNlbGxGb3JtYXR0ZXIpIHtcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWUgPSBkeW5hbWljSlMuZXhlY3V0ZVNjcmlwdEZ1bmN0aW9uKHByb3BzLmNlbGxGb3JtYXR0ZXIsIGNvbnRlbnRWYWx1ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiBkaXNwbGF5VmFsdWU7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZG9SZW5kZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghcHJvcHMuc2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybiBnZXRTdGF0aWNEaXNwbGF5VmFsdWUoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLmVkaXRvcikpIHtcbiAgICAgICAgICAgICAgICAvL3Byb3BzLmZvcm1WYWx1ZXNbcHJvcHMuZWRpdG9yLmlkXSA9IHByb3BzLnJvd1twcm9wcy5kYXRhQmluZGluZ107XG5cbiAgICAgICAgICAgICAgICBsZXQgZm9ybVZhbHVlID0ge307XG4gICAgICAgICAgICAgICAgZm9ybVZhbHVlW3Byb3BzLmVkaXRvci5kYXRhQmluZGluZyB8fCBwcm9wcy5lZGl0b3IuaWRdID0gZWRpdG9yVmFsdWUuY3VycmVudDtcbiAgICAgICAgICAgICAgICBsZXQgZm9ybUNvbmZpZyA9IHtcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBwcm9wcy5lZGl0b3IuaWQgKyBcIl9mb3JtXCIsXG4gICAgICAgICAgICAgICAgICAgIHNlY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmb3JtU2VjdGlvblwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZTogXCJmaWVsZFNldFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXR0cmlidXRlczoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwid2lkdGhcIjogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwibWluV2lkdGhcIjogXCIwXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRzOiBbXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBdXG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIF1cbiAgICAgICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICAgICAgcmV0dXJuIDxGb3JtIGNvbmZpZz17Zm9ybUNvbmZpZ30gaGFuZGxlPXtwcm9wcy5oYW5kbGV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlcz17Zm9ybVZhbHVlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXI9eyh2YWx1ZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yVmFsdWUuY3VycmVudCA9IHZhbHVlID8gdmFsdWVbZWRpdG9yLmRhdGFCaW5kaW5nIHx8IGVkaXRvci5pZF0gOiBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVDaGFuZ2VIYW5kbGVyKGVkaXRvclZhbHVlLmN1cnJlbnQpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZpZXdJZD17cHJvcHMudmlld0lkfS8+O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZ2V0U3RhdGljRGlzcGxheVZhbHVlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgcmVuZGVyID0gKCkgPT4ge1xuICAgICAgICBsZXQgdmFsdWUgPSBVdGlscy5yZWFkTmVzdGVkUHJvcGVydHkocHJvcHMucm93LCBwcm9wcy5kYXRhQmluZGluZyk7XG4gICAgICAgIGxldCBlcnJvciA9IHZhbGlkYXRlKHZhbHVlKTtcbiAgICAgICAgdXBkYXRlRXJyb3JzKGVycm9yKTtcblxuICAgICAgICBsZXQgaGFzRXJyb3IgPSAhVXRpbHMuaXNOdWxsKGVycm9yKTtcbiAgICAgICAgcmV0dXJuIDx0YWJsZSBjbGFzc05hbWU9e3Byb3BzLndyYXAgPyAndGFibGVDZWxsQ29udGVudENvbnRhaW5lcicgOiAndGFibGVDZWxsQ29udGVudENvbnRhaW5lck5vV3JhcCd9IGJvcmRlcj1cIjBcIj5cbiAgICAgICAgICAgIDx0Ym9keT5cbiAgICAgICAgICAgIDx0cj5cbiAgICAgICAgICAgICAgICB7aGFzRXJyb3IgP1xuICAgICAgICAgICAgICAgICAgICA8dGQgc3R5bGU9e3t3aWR0aDogJzhweCd9fT48Q3VzdG9tVG9vbHRpcCB0aXRsZT17ZXJyb3IubWVzc2FnZX0gdHlwZT17J0VSUk9SJ30+PEVycm9ySWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgc3R5bGU9e3tjb2xvcjogJyNmNDQzMzYnfX0vPjwvQ3VzdG9tVG9vbHRpcD5cbiAgICAgICAgICAgICAgICAgICAgPC90ZD4gOiBudWxsfVxuICAgICAgICAgICAgICAgIDx0ZCBzdHlsZT17cHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdNT05FWScgfHwgcHJvcHMuY29sdW1uQ29uZmlnLmNlbGxGb3JtYXQgPT09ICdOVU1CRVInXG4gICAgICAgICAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEFsaWduOiAncmlnaHQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfSA6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRBbGlnbjogJ2xlZnQnLFxuICAgICAgICAgICAgICAgICAgICAgICAgbWF4V2lkdGg6IDBcbiAgICAgICAgICAgICAgICAgICAgfX0+e2RvUmVuZGVyKCl9PC90ZD5cbiAgICAgICAgICAgIDwvdHI+XG4gICAgICAgICAgICA8L3Rib2R5PlxuICAgICAgICA8L3RhYmxlPjtcbiAgICB9O1xuXG4gICAgY29uc3QgYXBpID0ge1xuICAgICAgICBzZXQgdmFsdWUodmFsKSB7XG4gICAgICAgIH0sXG4gICAgICAgIHJlZnJlc2g6ICgpID0+IHtcbiAgICAgICAgICAgIHNldFJlZnJlc2hlcighcmVmcmVzaGVyKTtcbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuZWRpdG9yKSkge1xuICAgICAgICAgICAgICAgIGxldCB2YWx1ZSA9IFV0aWxzLnJlYWROZXN0ZWRQcm9wZXJ0eShwcm9wcy5yb3csIHByb3BzLmRhdGFCaW5kaW5nKTtcbiAgICAgICAgICAgICAgICB2YWx1ZUNoYW5nZUhhbmRsZXIodmFsdWUpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfTtcblxuICAgIHJldHVybiAoIXByb3BzLmVkaXRvciB8fCAocHJvcHMuZWRpdG9yICYmIGVkaXRvcikpICYmIHJlbmRlcigpO1xufSk7XG5cbmV4cG9ydCBkZWZhdWx0IFRhYmxlQ2VsbENvbnRlbnQ7XG4iXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLElBQUFBLE1BQUEsR0FBQUMsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFDLE1BQUEsR0FBQUYsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFFLE1BQUEsR0FBQUgsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFHLEtBQUEsR0FBQUosc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFJLFFBQUEsR0FBQUwsc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQU4sc0JBQUEsQ0FBQUMsT0FBQTtBQUNBLElBQUFNLFVBQUEsR0FBQVAsc0JBQUEsQ0FBQUMsT0FBQTtBQUFxQyxTQUFBRCx1QkFBQVEsQ0FBQSxXQUFBQSxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxHQUFBRCxDQUFBLEtBQUFFLE9BQUEsRUFBQUYsQ0FBQTtBQUFBLFNBQUFHLFFBQUFILENBQUEsRUFBQUksQ0FBQSxRQUFBQyxDQUFBLEdBQUFDLE1BQUEsQ0FBQUMsSUFBQSxDQUFBUCxDQUFBLE9BQUFNLE1BQUEsQ0FBQUUscUJBQUEsUUFBQUMsQ0FBQSxHQUFBSCxNQUFBLENBQUFFLHFCQUFBLENBQUFSLENBQUEsR0FBQUksQ0FBQSxL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
|
|
@@ -437,22 +437,25 @@ function FoldingSideTabDashboard(props) {
|
|
|
437
437
|
className: "content w-100 h-100 row no-margin no-padding"
|
|
438
438
|
}, /*#__PURE__*/React.createElement("div", {
|
|
439
439
|
style: {
|
|
440
|
-
|
|
440
|
+
// On mobile a pinned window collapses to a floating pill, so
|
|
441
|
+
// don't reserve the 320px strip (it would shrink content to a
|
|
442
|
+
// sliver and overflow the viewport). Pill floats over content.
|
|
443
|
+
width: windowPinned && !isMobile ? 'calc(100% - 320px)' : '100%',
|
|
441
444
|
height: "100%",
|
|
442
445
|
mxHeight: "100%",
|
|
443
|
-
overflow: 'auto'
|
|
444
|
-
paddingTop: '4px'
|
|
446
|
+
overflow: 'auto'
|
|
445
447
|
}
|
|
446
448
|
}, /*#__PURE__*/React.createElement(_ViewPort.default, {
|
|
447
449
|
windowPinned: windowPinned,
|
|
448
|
-
menuOffset: open ? DRAWER_WIDTH : MINI_WIDTH
|
|
450
|
+
menuOffset: isMobile ? 0 : open ? DRAWER_WIDTH : MINI_WIDTH
|
|
449
451
|
})), /*#__PURE__*/React.createElement("div", {
|
|
450
452
|
className: 'col no-margin no-padding',
|
|
451
453
|
style: {
|
|
452
|
-
width: windowPinned ? '320px' : '0',
|
|
453
|
-
margin: '8px'
|
|
454
|
+
width: windowPinned && !isMobile ? '320px' : '0',
|
|
455
|
+
margin: windowPinned && !isMobile ? '8px' : '0'
|
|
454
456
|
}
|
|
455
457
|
}, /*#__PURE__*/React.createElement(_WindowViewPort.default, {
|
|
458
|
+
menuOffset: isMobile ? 0 : open ? DRAWER_WIDTH : MINI_WIDTH,
|
|
456
459
|
stateChangeHandler: state => {
|
|
457
460
|
setWindowPinned(state.pinned);
|
|
458
461
|
}
|
|
@@ -469,4 +472,4 @@ FoldingSideTabDashboard.propTypes = {
|
|
|
469
472
|
avatar: _propTypes.default.string,
|
|
470
473
|
logoutCallBack: _propTypes.default.func
|
|
471
474
|
};
|
|
472
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9tYXRlcmlhbCIsIl9NZW51T3BlbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfTWVudSIsIl9NYWlsIiwiX0xvZ291dCIsIl9NYW5hZ2VBY2NvdW50cyIsIl93aXRoV2lkdGgiLCJfcHJvcFR5cGVzIiwiX1V0aWxzIiwiX1ZpZXdQb3J0IiwiX3JlYWN0Um91dGVyRG9tIiwiX3BlcmZlY3RTY3JvbGxiYXIiLCJfSG9tZU5hdmJhciIsIl9EYXNoYm9hcmRTdG9yZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfU29ja2V0TWFuYWdlciIsIl9XaW5kb3dWaWV3UG9ydCIsIl9BY3Rpb25IYW5kbGVycyIsIl9Gb2xkaW5nVGFiU2lkZWJhciIsIl9zdHlsZXMiLCJfdXNlTWVkaWFRdWVyeSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiRFJBV0VSX1dJRFRIIiwiZXhwb3J0cyIsIk1JTklfV0lEVEgiLCJEcmF3ZXJTdHlsZWQiLCJzdHlsZWQiLCJEcmF3ZXIiLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJfcmVmIiwidGhlbWUiLCJvcGVuIiwid2lkdGgiLCJmbGV4U2hyaW5rIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93WCIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9ucyIsImNyZWF0ZSIsImVhc2luZyIsInNoYXJwIiwiZHVyYXRpb24iLCJzdGFuZGFyZCIsIk1haW4iLCJfcmVmMiIsImZsZXhHcm93IiwicGFkZGluZyIsImJhY2tncm91bmQiLCJwcyIsIkRBVEFfVVJMX1BSRUZJWCIsIm5vcm1hbGl6ZUxvZ28iLCJzcmMiLCJ1bmRlZmluZWQiLCJzIiwidHJpbSIsInRlc3QiLCJkdXAiLCJSZWdFeHAiLCJjb25jYXQiLCJyZXBsYWNlIiwiRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQiLCJwcm9wcyIsIl9wcm9wcyRhcHBMb2dvUGF0aCIsInNldE9wZW4iLCJ1c2VTdGF0ZSIsIm5hdkRyYXdlck9wZW4iLCJzZXROYXZEcmF3ZXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJhY3RpdmVDb2xvciIsInNldEFjdGl2ZUNvbG9yIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsInNldFNlY29uZGFyeVRoZW1lQ29sb3IiLCJwcmltYXJ5VGhlbWVDb2xvciIsInNldFByaW1hcnlUaGVtZUNvbG9yIiwidGhlbWVUZXh0Q29sb3IiLCJzZXRUaGVtZVRleHRDb2xvciIsInJvdXRlcyIsInNldFJvdXRlcyIsImxvZ28iLCJzZXRMb2dvIiwic2lkZWJhck9wZW5lZCIsInNldFNpZGViYXJPcGVuZWQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsYXNzTmFtZSIsImluZGV4T2YiLCJzaWRlYmFyTWluaSIsInNldFNpZGViYXJNaW5pIiwib3BhY2l0eSIsInNldE9wYWNpdHkiLCJ3aW5kb3dQaW5uZWQiLCJzZXRXaW5kb3dQaW5uZWQiLCJ1c2VyTWVudUVsIiwic2V0VXNlck1lbnVFbCIsInVzZXJNZW51T3BlbiIsIkJvb2xlYW4iLCJoYW5kbGVVc2VyTWVudU9wZW4iLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlVXNlck1lbnVDbG9zZSIsInVzZVRoZW1lIiwiaXNNb2JpbGUiLCJ1c2VNZWRpYVF1ZXJ5IiwiYnJlYWtwb2ludHMiLCJkb3duIiwiaGFuZGxlUHJvZmlsZSIsImxhdW5jaFZpZXciLCJoYW5kbGVMb2dvdXQiLCJsb2dvdXRDYWxsQmFjayIsImhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIiLCJoYW5kbGVCZ0NsaWNrIiwiY29sb3IiLCJ1c2VFZmZlY3QiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJzZXREYXNoYm9hcmRTdGF0ZSIsImxlZnRPZmZzZXQiLCJuYXZpZ2F0b3IiLCJwbGF0Zm9ybSIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInRhYmxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJQZXJmZWN0U2Nyb2xsYmFyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNob3dOYXZiYXJCdXR0b24iLCJMQVJHRSIsIlNvY2tldHMiLCJpbml0IiwiZGlzY29ubmVjdCIsImJvZHkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0dGluZ3MiLCJzeXN0ZW1Qcm9maWxlRHRvIiwic2Vjb25kQ29ycG9yYXRlQnJhbmRDb2xvciIsImZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvciIsIlV0aWxzIiwiaXNOdWxsIiwiZGFzaGJvYXJkTWVudSIsImlkIiwibWVudXMiLCJteURhc2hib2FyZE1lbnUiLCJpdGVtcyIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsInB1c2giLCJ1c2VyRGFzaGJvYXJkcyIsInVzZXJEYXNoYm9hcmQiLCJpdGVtIiwicGFyYW1ldGVycyIsIm1hcCIsImRhc2hib2FyZE5hbWUiLCJjcmVhdGVOZXdNZW51IiwibW9kdWxlcyIsIm1vZHVsZSIsImRhc2hCb2FyZE1lbnVCYXIiLCJqIiwibWVudSIsIm5ld1JvdXRlcyIsIm5ld1JvdXRlIiwic2hvd0Rhc2hib2FyZE1lbnUiLCJuYW1lIiwiaWNvbiIsImxheW91dCIsImxldmVsIiwiaXNQYXJlbnQiLCJyb3V0ZSIsImNvbGxhcHNlIiwic3RhdGUiLCJzZXR0aW5nc01lbnUiLCJ0b2dnbGVTaWRlYmFyIiwidG9nZ2xlIiwic2Nyb2xsVG9wIiwic2Nyb2xsaW5nRWxlbWVudCIsImdldFJvdXRlcyIsImtleSIsInZpZXdzIiwiY3JlYXRlRWxlbWVudCIsIlJvdXRlIiwicGF0aCIsImNvbXBvbmVudCIsImdldEFjdGl2ZVJvdXRlIiwiYWN0aXZlUm91dGUiLCJjb2xsYXBzZUFjdGl2ZVJvdXRlIiwibG9jYXRpb24iLCJocmVmIiwiaGFuZGxlQWN0aXZlQ2xpY2siLCJjbG9zZVNpZGViYXIiLCJsYXVuY2hEYXNoYm9hcmQiLCJjbG9zZUFsbFZpZXdzIiwibmF2aWdhdGUiLCJhY3Rpb25Db25maWciLCJhY3Rpb25UeXBlIiwicGFyZW50IiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2VIYW5kbGVyIiwiQm94Iiwic3giLCJkaXNwbGF5IiwiQ3NzQmFzZWxpbmUiLCJBcHBCYXIiLCJwb3NpdGlvbiIsImVsZXZhdGlvbiIsInpJbmRleCIsImRyYXdlciIsIlRvb2xiYXIiLCJUb29sdGlwIiwidGl0bGUiLCJJY29uQnV0dG9uIiwiZWRnZSIsIm9uQ2xpY2siLCJtbCIsImZvbnRXZWlnaHQiLCJhbGlnbkl0ZW1zIiwic2l6ZSIsIkF2YXRhciIsImFsdCIsImF2YXRhciIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsIk1lbnUiLCJhbmNob3JFbCIsIm9uQ2xvc2UiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJhbmNob3JPcmlnaW4iLCJQYXBlclByb3BzIiwibXQiLCJtaW5XaWR0aCIsIm92ZXJmbG93IiwiY29udGVudCIsInRvcCIsInJpZ2h0IiwiYmdjb2xvciIsInRyYW5zZm9ybSIsIk1lbnVJdGVtIiwiTGlzdEl0ZW1JY29uIiwiZm9udFNpemUiLCJUeXBvZ3JhcGh5IiwiRGl2aWRlciIsInZhcmlhbnQiLCJvbk9wZW5EcmF3ZXIiLCJhY3RpdmVSb3V0ZU1lbnUiLCJkYXNoYm9hcmRMYXVuY2hlciIsImFwcExvZ29QYXRoIiwib3V0dGVyTGluayIsInRleHQiLCJpbWdTcmMiLCJsb2dvU3R5bGUiLCJzdHlsZSIsIm1heEhlaWdodCIsIm14SGVpZ2h0IiwicGFkZGluZ1RvcCIsIm1lbnVPZmZzZXQiLCJtYXJnaW4iLCJzdGF0ZUNoYW5nZUhhbmRsZXIiLCJwaW5uZWQiLCJwcm9wVHlwZXMiLCJjaGlsZHJlbiIsIlByb3BUeXBlcyIsImVsZW1lbnQiLCJudW1iZXIiLCJvYmplY3QiLCJib29sIiwic3RyaW5nIiwiZnVuYyJdLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9saWIvY29tcG9uZW50cy9kYXNoYm9hcmQvRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQuanN4Il0sInNvdXJjZXNDb250ZW50IjpbIi8vIEZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkLmpzeFxuaW1wb3J0ICogYXMgUmVhY3QgZnJvbSBcInJlYWN0XCI7XG5pbXBvcnQge1xuICAgIEFwcEJhcixcbiAgICBUb29sYmFyLFxuICAgIEljb25CdXR0b24sXG4gICAgRHJhd2VyLFxuICAgIExpc3QsXG4gICAgTGlzdEl0ZW1CdXR0b24sXG4gICAgTGlzdEl0ZW1JY29uLFxuICAgIExpc3RJdGVtVGV4dCxcbiAgICBCb3gsXG4gICAgQ3NzQmFzZWxpbmUsXG4gICAgVG9vbHRpcCxcbiAgICBBdmF0YXIsXG4gICAgTWVudSxcbiAgICBNZW51SXRlbSxcbiAgICBEaXZpZGVyLFxuICAgIFR5cG9ncmFwaHlcbn0gZnJvbSBcIkBtdWkvbWF0ZXJpYWxcIjtcbmltcG9ydCBNZW51T3Blbkljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvTWVudU9wZW5cIjtcbmltcG9ydCBNZW51SWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NZW51XCI7XG5pbXBvcnQgTWFpbEljb24gZnJvbSBcIkBtdWkvaWNvbnMtbWF0ZXJpYWwvTWFpbFwiO1xuaW1wb3J0IExvZ291dCBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9Mb2dvdXRcIjtcbmltcG9ydCBNYW5hZ2VBY2NvdW50cyBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NYW5hZ2VBY2NvdW50c1wiO1xuaW1wb3J0IHsgUGFwZXIgfSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuXG5pbXBvcnQgeyBMQVJHRSB9IGZyb20gXCJtYXRlcmlhbC11aS91dGlscy93aXRoV2lkdGhcIjtcbmltcG9ydCBQcm9wVHlwZXMgZnJvbSBcInByb3AtdHlwZXNcIjtcbmltcG9ydCBVdGlscyBmcm9tIFwiLi4vLi4vVXRpbHNcIjtcbmltcG9ydCBWaWV3UG9ydCBmcm9tIFwiLi4vbGF5b3V0L1ZpZXdQb3J0XCI7XG5pbXBvcnQgeyBSb3V0ZSB9IGZyb20gXCJyZWFjdC1yb3V0ZXItZG9tXCI7XG5pbXBvcnQgUGVyZmVjdFNjcm9sbGJhciBmcm9tIFwicGVyZmVjdC1zY3JvbGxiYXJcIjtcbmltcG9ydCBIb21lTmF2YmFyIGZyb20gXCIuLi9uYXZiYXJzL0hvbWVOYXZiYXJcIjtcbmltcG9ydCB7IGFjdGlvbkNyZWF0b3JzIH0gZnJvbSBcIi4uLy4uL3JlZHV4L3N0b3JlL0Rhc2hib2FyZFN0b3JlXCI7XG5pbXBvcnQgYXBwbGljYXRpb25NYW5hZ2VyIGZyb20gXCIuLi8uLi9BcHBsaWNhdGlvbk1hbmFnZXJcIjtcbmltcG9ydCBTb2NrZXRzIGZyb20gXCIuLi9Tb2NrZXRNYW5hZ2VyXCI7XG5pbXBvcnQgV2luZG93Vmlld1BvcnQgZnJvbSBcIi4uL2xheW91dC9XaW5kb3dWaWV3UG9ydFwiO1xuaW1wb3J0IFwiLi9Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5jc3NcIjtcbmltcG9ydCBBY3Rpb25IYW5kbGVycyBmcm9tIFwiLi4vLi4vZXZlbnQvQWN0aW9uSGFuZGxlcnNcIjtcbmltcG9ydCBGb2xkaW5nVGFiU2lkZWJhciBmcm9tIFwiLi9jb21wb25lbnRzL2JsYWNrRGFzaGJvYXJkL3NpZGViYXIvRm9sZGluZ1RhYlNpZGViYXJcIjtcbmltcG9ydCB7IHN0eWxlZCwgdXNlVGhlbWUgfSBmcm9tIFwiQG11aS9tYXRlcmlhbC9zdHlsZXNcIjtcbmltcG9ydCB1c2VNZWRpYVF1ZXJ5IGZyb20gXCJAbXVpL21hdGVyaWFsL3VzZU1lZGlhUXVlcnlcIjtcblxuZXhwb3J0IGNvbnN0IERSQVdFUl9XSURUSCA9IDMyMDtcbmNvbnN0IE1JTklfV0lEVEggPSA3MjtcblxuY29uc3QgRHJhd2VyU3R5bGVkID0gc3R5bGVkKERyYXdlciwge1xuICAgIHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gcHJvcCAhPT0gXCJvcGVuXCJcbn0pKCh7IHRoZW1lLCBvcGVuIH0pID0+ICh7XG4gICAgd2lkdGg6IG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRILFxuICAgIGZsZXhTaHJpbms6IDAsXG4gICAgd2hpdGVTcGFjZTogXCJub3dyYXBcIixcbiAgICBcIiYgLk11aURyYXdlci1wYXBlclwiOiB7XG4gICAgICAgIHdpZHRoOiBvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSCxcbiAgICAgICAgb3ZlcmZsb3dYOiBcImhpZGRlblwiLFxuICAgICAgICB0cmFuc2l0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5jcmVhdGUoXCJ3aWR0aFwiLCB7XG4gICAgICAgICAgICBlYXNpbmc6IHRoZW1lLnRyYW5zaXRpb25zLmVhc2luZy5zaGFycCxcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5kdXJhdGlvbi5zdGFuZGFyZFxuICAgICAgICB9KVxuICAgIH1cbn0pKTtcblxuY29uc3QgTWFpbiA9IHN0eWxlZChcIm1haW5cIiwgeyBzaG91bGRGb3J3YXJkUHJvcDogKHByb3ApID0+IHByb3AgIT09IFwib3BlblwiIH0pKFxuICAgICh7IHRoZW1lLCBvcGVuIH0pID0+ICh7XG4gICAgICAgIGZsZXhHcm93OiAxLFxuICAgICAgICB0cmFuc2l0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5jcmVhdGUoXCJtYXJnaW4tbGVmdFwiLCB7XG4gICAgICAgICAgICBlYXNpbmc6IHRoZW1lLnRyYW5zaXRpb25zLmVhc2luZy5zaGFycCxcbiAgICAgICAgICAgIGR1cmF0aW9uOiB0aGVtZS50cmFuc2l0aW9ucy5kdXJhdGlvbi5zdGFuZGFyZFxuICAgICAgICB9KSxcbiAgICAgICAgcGFkZGluZzogMCxcbiAgICAgICAgYmFja2dyb3VuZDogXCJ0cmFuc3BhcmVudFwiXG4gICAgfSlcbik7XG5cbmxldCBwcztcbmNvbnN0IERBVEFfVVJMX1BSRUZJWCA9IFwiZGF0YTppbWFnZS9wbmc7YmFzZTY0LFwiO1xuXG5mdW5jdGlvbiBub3JtYWxpemVMb2dvKHNyYykge1xuICAgIGlmICghc3JjKSByZXR1cm4gdW5kZWZpbmVkO1xuICAgIGNvbnN0IHMgPSBzcmMudHJpbSgpO1xuXG4gICAgaWYgKC9eZGF0YTovaS50ZXN0KHMpKSB7XG4gICAgICAgIGNvbnN0IGR1cCA9IG5ldyBSZWdFeHAoYF4oJHtEQVRBX1VSTF9QUkVGSVh9KStgLCBcImlcIik7XG4gICAgICAgIHJldHVybiBzLnJlcGxhY2UoZHVwLCBEQVRBX1VSTF9QUkVGSVgpO1xuICAgIH1cblxuICAgIHJldHVybiBEQVRBX1VSTF9QUkVGSVggKyBzO1xufVxuXG5leHBvcnQgZGVmYXVsdCBmdW5jdGlvbiBGb2xkaW5nU2lkZVRhYkRhc2hib2FyZChwcm9wcykge1xuICAgIGNvbnN0IFtvcGVuLCBzZXRPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtuYXZEcmF3ZXJPcGVuLCBzZXROYXZEcmF3ZXJPcGVuXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFtsb2FkaW5nLCBzZXRMb2FkaW5nXSA9IFJlYWN0LnVzZVN0YXRlKHRydWUpO1xuICAgIGNvbnN0IFthY3RpdmVDb2xvciwgc2V0QWN0aXZlQ29sb3JdID0gUmVhY3QudXNlU3RhdGUoXCJibHVlXCIpO1xuICAgIGNvbnN0IFtzZWNvbmRhcnlUaGVtZUNvbG9yLCBzZXRTZWNvbmRhcnlUaGVtZUNvbG9yXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtwcmltYXJ5VGhlbWVDb2xvciwgc2V0UHJpbWFyeVRoZW1lQ29sb3JdID0gUmVhY3QudXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgW3RoZW1lVGV4dENvbG9yLCBzZXRUaGVtZVRleHRDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBbcm91dGVzLCBzZXRSb3V0ZXNdID0gUmVhY3QudXNlU3RhdGUoW10pO1xuICAgIGNvbnN0IFtsb2dvLCBzZXRMb2dvXSA9IFJlYWN0LnVzZVN0YXRlKG5vcm1hbGl6ZUxvZ28ocHJvcHMubG9nbykpO1xuICAgIGNvbnN0IFtzaWRlYmFyT3BlbmVkLCBzZXRTaWRlYmFyT3BlbmVkXSA9IFJlYWN0LnVzZVN0YXRlKFxuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NOYW1lLmluZGV4T2YoXCJuYXYtb3BlblwiKSAhPT0gLTFcbiAgICApO1xuICAgIGNvbnN0IFtzaWRlYmFyTWluaSwgc2V0U2lkZWJhck1pbmldID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW29wYWNpdHksIHNldE9wYWNpdHldID0gUmVhY3QudXNlU3RhdGUoMCk7XG4gICAgY29uc3QgW3dpbmRvd1Bpbm5lZCwgc2V0V2luZG93UGlubmVkXSA9IFJlYWN0LnVzZVN0YXRlKGZhbHNlKTtcblxuICAgIC8vIEF2YXRhciBtZW51IHN0YXRlXG4gICAgY29uc3QgW3VzZXJNZW51RWwsIHNldFVzZXJNZW51RWxdID0gUmVhY3QudXNlU3RhdGUobnVsbCk7XG4gICAgY29uc3QgdXNlck1lbnVPcGVuID0gQm9vbGVhbih1c2VyTWVudUVsKTtcbiAgICBjb25zdCBoYW5kbGVVc2VyTWVudU9wZW4gPSAoZSkgPT4gc2V0VXNlck1lbnVFbChlLmN1cnJlbnRUYXJnZXQpO1xuICAgIGNvbnN0IGhhbmRsZVVzZXJNZW51Q2xvc2UgPSAoKSA9PiBzZXRVc2VyTWVudUVsKG51bGwpO1xuICAgIGNvbnN0IHRoZW1lID0gdXNlVGhlbWUoKTtcbiAgICBjb25zdCBpc01vYmlsZSA9IHVzZU1lZGlhUXVlcnkodGhlbWUuYnJlYWtwb2ludHMuZG93bihcInNtXCIpKTtcblxuICAgIGNvbnN0IGhhbmRsZVByb2ZpbGUgPSAoKSA9PiB7XG4gICAgICAgIGhhbmRsZVVzZXJNZW51Q2xvc2UoKTtcbiAgICAgICAgbGF1bmNoVmlldyhcIi9zeXN0ZW0vdmlld3MvdXNlci1wcm9maWxlLmpzb25cIik7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUxvZ291dCA9ICgpID0+IHtcbiAgICAgICAgaGFuZGxlVXNlck1lbnVDbG9zZSgpO1xuICAgICAgICBwcm9wcy5sb2dvdXRDYWxsQmFjayAmJiBwcm9wcy5sb2dvdXRDYWxsQmFjaygpO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVDaGFuZ2VSZXF1ZXN0TmF2RHJhd2VyID0gKCkgPT4ge1xuICAgICAgICBzZXROYXZEcmF3ZXJPcGVuKCFuYXZEcmF3ZXJPcGVuKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQmdDbGljayA9IChjb2xvcikgPT4ge1xuICAgICAgICBzZXRBY3RpdmVDb2xvcihjb2xvcik7XG4gICAgfTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChpc01vYmlsZSkge1xuICAgICAgICAgICAgc2V0T3BlbihmYWxzZSk7ICAgLy8gYXV0byBjb2xsYXBzZSB3aGVuIHNjcmVlbiBpcyBzbWFsbFxuICAgICAgICB9XG4gICAgfSwgW2lzTW9iaWxlXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBhcHBsaWNhdGlvbk1hbmFnZXIuc2V0RGFzaGJvYXJkU3RhdGUoe2xlZnRPZmZzZXQ6IG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRIfSlcbiAgICB9LCBbb3Blbl0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKG5hdmlnYXRvci5wbGF0Zm9ybS5pbmRleE9mKFwiV2luXCIpID4gLTEpIHtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QuYWRkKFwicGVyZmVjdC1zY3JvbGxiYXItb25cIik7XG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcInBlcmZlY3Qtc2Nyb2xsYmFyLW9mZlwiKTtcbiAgICAgICAgICAgIGxldCB0YWJsZXMgPSBkb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKFwiLnRhYmxlLXJlc3BvbnNpdmVcIik7XG4gICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRhYmxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgIHBzID0gbmV3IFBlcmZlY3RTY3JvbGxiYXIodGFibGVzW2ldKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzaG93TmF2YmFyQnV0dG9uKTtcbiAgICB9KTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGlmIChwcm9wcy53aWR0aCAhPT0gbnVsbCAmJiB0eXBlb2YgcHJvcHMud2lkdGggIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICAgICAgICAgIHNldE5hdkRyYXdlck9wZW4ocHJvcHMud2lkdGggPT09IExBUkdFKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy53aWR0aF0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgU29ja2V0cy5pbml0KCk7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRTdGF0ZSh7bGVmdE9mZnNldDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEh9KVxuICAgICAgICByZXR1cm4gKCkgPT4ge1xuICAgICAgICAgICAgU29ja2V0cy5kaXNjb25uZWN0KCk7XG4gICAgICAgIH07XG4gICAgfSwgW10pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuYm9keS5jbGFzc0xpc3QuYWRkKFwid2hpdGUtY29udGVudFwiKTtcblxuICAgICAgICBpZiAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoXCJXaW5cIikgPiAtMSkge1xuICAgICAgICAgICAgLy8gS2VlcGluZyBmb3IgcGFyaXR5IHdpdGggeW91ciBvcmlnaW5hbCBjb2RlXG4gICAgICAgIH1cblxuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihcInNjcm9sbFwiLCBzaG93TmF2YmFyQnV0dG9uKTtcblxuICAgICAgICBzZXRBY3RpdmVDb2xvcihcImFnaWxpdHlcIik7XG4gICAgICAgIHNldFNlY29uZGFyeVRoZW1lQ29sb3IocHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5zZWNvbmRDb3Jwb3JhdGVCcmFuZENvbG9yKTtcbiAgICAgICAgc2V0UHJpbWFyeVRoZW1lQ29sb3IocHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5maXJzdENvcnBvcmF0ZUJyYW5kQ29sb3IpO1xuICAgICAgICBzZXRUaGVtZVRleHRDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLnRoZW1lVGV4dENvbG9yKTtcblxuICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncykpIHtcbiAgICAgICAgICAgIGxldCBkYXNoYm9hcmRNZW51ID0ge307XG4gICAgICAgICAgICBkYXNoYm9hcmRNZW51LmlkID0gXCJkYXNoYm9hcmRcIjtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUubWVudXMgPSBbXTtcblxuICAgICAgICAgICAgbGV0IG15RGFzaGJvYXJkTWVudSA9IHt9O1xuICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51LmlkID0gXCJteURhc2hib2FyZFwiO1xuICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51Lml0ZW1zID0gW107XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51LmF0dHJpYnV0ZXMubGFiZWwgPSBcIk15IERhc2hib2FyZHNcIjtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUubWVudXMucHVzaChteURhc2hib2FyZE1lbnUpO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncy51c2VyRGFzaGJvYXJkcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLnNldHRpbmdzLnVzZXJEYXNoYm9hcmRzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCB1c2VyRGFzaGJvYXJkID0gcHJvcHMuc2V0dGluZ3MudXNlckRhc2hib2FyZHNbaV07XG4gICAgICAgICAgICAgICAgICAgIGxldCBpdGVtID0ge307XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uaWQgPSB1c2VyRGFzaGJvYXJkLmlkO1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5hdHRyaWJ1dGVzLmxhYmVsID0gdXNlckRhc2hib2FyZC5wYXJhbWV0ZXJzLm1hcC5kYXNoYm9hcmROYW1lO1xuXG4gICAgICAgICAgICAgICAgICAgIG15RGFzaGJvYXJkTWVudS5pdGVtcy5wdXNoKGl0ZW0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IGNyZWF0ZU5ld01lbnUgPSB7fTtcbiAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuaWQgPSBcImNyZWF0ZU5ld1wiO1xuICAgICAgICAgICAgY3JlYXRlTmV3TWVudS5pdGVtcyA9IFtdO1xuICAgICAgICAgICAgY3JlYXRlTmV3TWVudS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51LmF0dHJpYnV0ZXMubGFiZWwgPSBcIkNyZWF0ZSBOZXdcIjtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUubWVudXMucHVzaChjcmVhdGVOZXdNZW51KTtcblxuICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwocHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgICAgIGxldCBtb2R1bGUgPSBwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXNbaV07XG4gICAgICAgICAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKG1vZHVsZS5kYXNoQm9hcmRNZW51QmFyKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChsZXQgaiA9IDA7IGogPCBtb2R1bGUuZGFzaEJvYXJkTWVudUJhci5tZW51cy5sZW5ndGg7IGorKykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBtZW51ID0gbW9kdWxlLmRhc2hCb2FyZE1lbnVCYXIubWVudXNbal07XG5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBUbyBrZWVwIHRoZSBtb2R1bGUgY2xhc3NpZmljYXRpb24sIHJlcGxhY2UgdGhlIGxpbmUgYmVsb3cgd2l0aCBjcmVhdGVOZXdNZW51Lml0ZW1zLnB1c2gobWVudSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVhdGVOZXdNZW51Lml0ZW1zID0gY3JlYXRlTmV3TWVudS5pdGVtcy5jb25jYXQobWVudS5pdGVtcyk7XG4gICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGxldCBuZXdSb3V0ZXMgPSBbXTtcbiAgICAgICAgICAgIGxldCBuZXdSb3V0ZSA9IHt9O1xuXG4gICAgICAgICAgICBpZiAoVXRpbHMuaXNOdWxsKHByb3BzLnNob3dEYXNoYm9hcmRNZW51KSB8fCBwcm9wcy5zaG93RGFzaGJvYXJkTWVudSkge1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLm5hbWUgPSBcIkRhc2hib2FyZFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlkID0gXCJkYXNoYm9hcmRcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pY29uID0gXCJmYSBmYS1waWUtY2hhcnRcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5sYXlvdXQgPSBcIi9hZG1pblwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmxldmVsID0gMDtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pc1BhcmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3Um91dGVzLnB1c2gobmV3Um91dGUpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHJvdXRlID0ge307XG5cbiAgICAgICAgICAgICAgICAgICAgcm91dGUubmFtZSA9IG1vZHVsZS5sYWJlbDtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUuaWNvbiA9IG1vZHVsZS5pY29uO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZS5tZW51ID0gbW9kdWxlLm1lbnU7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLmxheW91dCA9IFwiL2FkbWluXCI7XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLmxldmVsID0gMDtcblxuICAgICAgICAgICAgICAgICAgICBpZiAobW9kdWxlLm1lbnUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlLmNvbGxhcHNlID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJvdXRlLnN0YXRlID0gbW9kdWxlLm5hbWUgKyBcIkNvbGxhcHNlXCI7XG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICBuZXdSb3V0ZXMucHVzaChyb3V0ZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBpZiAocHJvcHMuc2V0dGluZ3Muc2V0dGluZ3NNZW51KSB7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUgPSB7fTtcblxuICAgICAgICAgICAgICAgIG5ld1JvdXRlLm5hbWUgPSBcIlNldHRpbmdzXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUuaWNvbiA9IFwiZmEgZmEtY29nXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGF5b3V0ID0gXCIvYWRtaW5cIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pc1BhcmVudCA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUuY29sbGFwc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmxldmVsID0gMDtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5tZW51ID0gXCJcIjsgLy8gVE9ETyA6IHNldCBtZW51IHZhbHVlXG4gICAgICAgICAgICAgICAgbmV3Um91dGUuc3RhdGUgPSBcInNldHRpbmdzTWVudUNvbGxhcHNlXCI7XG5cbiAgICAgICAgICAgICAgICBuZXdSb3V0ZXMucHVzaChuZXdSb3V0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHNldFJvdXRlcyhuZXdSb3V0ZXMpO1xuXG4gICAgICAgICAgICBwcm9wcy5zZXR0aW5ncy5kYXNoYm9hcmRNZW51ID0gY3JlYXRlTmV3TWVudS5pdGVtcy5sZW5ndGggPiAwID8gZGFzaGJvYXJkTWVudSA6IG51bGw7XG4gICAgICAgICAgICBzZXRMb2FkaW5nKGZhbHNlKTtcbiAgICAgICAgfVxuICAgIH0sIFtwcm9wcy5zZXR0aW5nc10pO1xuXG4gICAgY29uc3QgdG9nZ2xlU2lkZWJhciA9ICgpID0+IHtcbiAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC50b2dnbGUoXCJuYXYtb3BlblwiKTtcbiAgICAgICAgc2V0U2lkZWJhck9wZW5lZCghc2lkZWJhck9wZW5lZCk7XG4gICAgfTtcblxuICAgIGNvbnN0IHNob3dOYXZiYXJCdXR0b24gPSAoKSA9PiB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPiA1MCB8fFxuICAgICAgICAgICAgZG9jdW1lbnQuc2Nyb2xsaW5nRWxlbWVudC5zY3JvbGxUb3AgPiA1MFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHNldE9wYWNpdHkoMSk7XG4gICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wIDw9IDUwIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA8PSA1MFxuICAgICAgICApIHtcbiAgICAgICAgICAgIHNldE9wYWNpdHkoMCk7XG4gICAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgZ2V0Um91dGVzID0gKHJvdXRlcykgPT4ge1xuICAgICAgICByZXR1cm4gcm91dGVzLm1hcCgocHJvcCwga2V5KSA9PiB7XG4gICAgICAgICAgICBpZiAocHJvcC5jb2xsYXBzZSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBnZXRSb3V0ZXMocHJvcC52aWV3cyk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcm9wLmxheW91dCA9PT0gXCIvYWRtaW5cIikge1xuICAgICAgICAgICAgICAgIHJldHVybiAoXG4gICAgICAgICAgICAgICAgICAgIDxSb3V0ZVxuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aD17cHJvcC5sYXlvdXQgKyBwcm9wLnBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICBjb21wb25lbnQ9e3Byb3AuY29tcG9uZW50fVxuICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtrZXl9XG4gICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH07XG5cbiAgICBjb25zdCBnZXRBY3RpdmVSb3V0ZSA9IChyb3V0ZXMpID0+IHtcbiAgICAgICAgbGV0IGFjdGl2ZVJvdXRlID0gXCJEYXNoYm9hcmRcIjtcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCByb3V0ZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgIGlmIChyb3V0ZXNbaV0uY29sbGFwc2UgJiYgcm91dGVzW2ldLnZpZXdzKSB7XG4gICAgICAgICAgICAgICAgbGV0IGNvbGxhcHNlQWN0aXZlUm91dGUgPSBnZXRBY3RpdmVSb3V0ZShyb3V0ZXNbaV0udmlld3MpO1xuICAgICAgICAgICAgICAgIGlmIChjb2xsYXBzZUFjdGl2ZVJvdXRlICE9PSBhY3RpdmVSb3V0ZSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29sbGFwc2VBY3RpdmVSb3V0ZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgd2luZG93LmxvY2F0aW9uLmhyZWYuaW5kZXhPZihyb3V0ZXNbaV0ubGF5b3V0ICsgcm91dGVzW2ldLnBhdGgpICE9PSAtMVxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gcm91dGVzW2ldLm5hbWU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBhY3RpdmVSb3V0ZTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlQWN0aXZlQ2xpY2sgPSAoY29sb3IpID0+IHtcbiAgICAgICAgc2V0QWN0aXZlQ29sb3IoY29sb3IpO1xuICAgIH07XG5cbiAgICBjb25zdCBjbG9zZVNpZGViYXIgPSAoKSA9PiB7XG4gICAgICAgIHNldFNpZGViYXJPcGVuZWQoZmFsc2UpO1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnJlbW92ZShcIm5hdi1vcGVuXCIpO1xuICAgIH07XG5cbiAgICBmdW5jdGlvbiBsYXVuY2hEYXNoYm9hcmQoKSB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5jbG9zZUFsbFZpZXdzKCk7XG4gICAgICAgIC8vYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKCcvc3dpdGNoJyk7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5uYXZpZ2F0ZShcIi92aWV3L2Rhc2hib2FyZFwiKTtcbiAgICB9XG5cbiAgICBmdW5jdGlvbiBsYXVuY2hWaWV3KHBhdGgpIHtcbiAgICAgICAgbGV0IGFjdGlvbkNvbmZpZyA9IHt9O1xuICAgICAgICBhY3Rpb25Db25maWcuYWN0aW9uVHlwZSA9IFwicm91dGVcIjtcbiAgICAgICAgYWN0aW9uQ29uZmlnLnBhdGggPSBwYXRoO1xuICAgICAgICBhY3Rpb25Db25maWcucGFyZW50ID0gdHJ1ZTtcblxuICAgICAgICBBY3Rpb25IYW5kbGVycy5pbnZva2VIYW5kbGVyKGFjdGlvbkNvbmZpZyk7XG4gICAgfVxuXG4gICAgaWYgKGxvYWRpbmcpIHtcbiAgICAgICAgcmV0dXJuIDxkaXY+TG9hZGluZy4uLjwvZGl2PjtcbiAgICB9XG5cbiAgICByZXR1cm4gKFxuICAgICAgICA8Qm94IHN4PXt7IGRpc3BsYXk6IFwiZmxleFwiIH19PlxuICAgICAgICAgICAgPENzc0Jhc2VsaW5lIC8+XG5cbiAgICAgICAgICAgIHsvKiBFbnN1cmUgdGhlIHRvZ2dsZSBidXR0b24gYWx3YXlzIHNpdHMgYWJvdmUgdGhlIGRyYXdlciAqL31cbiAgICAgICAgICAgIDxBcHBCYXJcbiAgICAgICAgICAgICAgICBwb3NpdGlvbj1cImZpeGVkXCJcbiAgICAgICAgICAgICAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgICAgICAgICAgICAgIGVsZXZhdGlvbj17MX1cbiAgICAgICAgICAgICAgICBzeD17eyB6SW5kZXg6ICh0aGVtZSkgPT4gdGhlbWUuekluZGV4LmRyYXdlciArIDEgfX1cbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8VG9vbGJhcj5cbiAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9e29wZW4gPyBcIkNvbGxhcHNlIG1lbnVcIiA6IFwiRXhwYW5kIG1lbnVcIn0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8SWNvbkJ1dHRvbiBjb2xvcj1cImluaGVyaXRcIiBlZGdlPVwic3RhcnRcIiBvbkNsaWNrPXsoKSA9PiBzZXRPcGVuKChvKSA9PiAhbyl9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtvcGVuID8gPE1lbnVPcGVuSWNvbiAvPiA6IDxNZW51SWNvbiAvPn1cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuICAgICAgICAgICAgICAgICAgICA8Qm94IHN4PXt7IG1sOiAxLCBmb250V2VpZ2h0OiA2MDAgfX0+PC9Cb3g+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggc3g9e3sgbWw6IFwiYXV0b1wiLCBkaXNwbGF5OiBcImZsZXhcIiwgYWxpZ25JdGVtczogXCJjZW50ZXJcIiB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxUb29sdGlwIHRpdGxlPVwiQWNjb3VudFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xpY2s9e2hhbmRsZVVzZXJNZW51T3Blbn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g9e3sgbWw6IDEgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1jb250cm9scz17dXNlck1lbnVPcGVuID8gXCJhY2NvdW50LW1lbnVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYXJpYS1oYXNwb3B1cD1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWV4cGFuZGVkPXt1c2VyTWVudU9wZW4gPyBcInRydWVcIiA6IHVuZGVmaW5lZH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxBdmF0YXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFsdD1cIlVzZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3JjPXtwcm9wcy5hdmF0YXJ9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyB3aWR0aDogMzYsIGhlaWdodDogMzYsIGJvcmRlclJhZGl1czogXCI1MCVcIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvSWNvbkJ1dHRvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvVG9vbHRpcD5cblxuICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbmNob3JFbD17dXNlck1lbnVFbH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImFjY291bnQtbWVudVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb3Blbj17dXNlck1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9uQ2xvc2U9e2hhbmRsZVVzZXJNZW51Q2xvc2V9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVXNlck1lbnVDbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0cmFuc2Zvcm1PcmlnaW49e3sgaG9yaXpvbnRhbDogXCJyaWdodFwiLCB2ZXJ0aWNhbDogXCJ0b3BcIiB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvck9yaWdpbj17eyBob3Jpem9udGFsOiBcInJpZ2h0XCIsIHZlcnRpY2FsOiBcImJvdHRvbVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgUGFwZXJQcm9wcz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBlbGV2YXRpb246IDMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4OiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdDogMS41LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWluV2lkdGg6IDIyMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiBcInZpc2libGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwiJjpiZWZvcmVcIjoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnRlbnQ6ICdcIlwiJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXNwbGF5OiBcImJsb2NrXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246IFwiYWJzb2x1dGVcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0b3A6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmlnaHQ6IDE0LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiAxMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGJnY29sb3I6IFwiYmFja2dyb3VuZC5wYXBlclwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybTogXCJ0cmFuc2xhdGVZKC01MCUpIHJvdGF0ZSg0NWRlZylcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB6SW5kZXg6IDBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIG9uQ2xpY2s9e2hhbmRsZVByb2ZpbGV9PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1hbmFnZUFjY291bnRzIGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+UHJvZmlsZTwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxEaXZpZGVyIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPE1lbnVJdGVtIG9uQ2xpY2s9e2hhbmRsZUxvZ291dH0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TG9nb3V0IGZvbnRTaXplPVwic21hbGxcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L0xpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPFR5cG9ncmFwaHk+TG9nIG91dDwvVHlwb2dyYXBoeT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L01lbnVJdGVtPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9NZW51PlxuICAgICAgICAgICAgICAgICAgICA8L0JveD5cbiAgICAgICAgICAgICAgICA8L1Rvb2xiYXI+XG4gICAgICAgICAgICA8L0FwcEJhcj5cblxuICAgICAgICAgICAgPERyYXdlclN0eWxlZCB2YXJpYW50PXtpc01vYmlsZSA/IFwidGVtcG9yYXJ5XCIgOiBcInBlcm1hbmVudFwifSBvcGVuPXtvcGVufT5cbiAgICAgICAgICAgICAgICA8VG9vbGJhciAvPlxuICAgICAgICAgICAgICAgIDxGb2xkaW5nVGFiU2lkZWJhclxuICAgICAgICAgICAgICAgICAgICB7Li4ucHJvcHN9XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlcz17cm91dGVzfVxuICAgICAgICAgICAgICAgICAgICBvcGVuPXtvcGVufVxuICAgICAgICAgICAgICAgICAgICBhY3RpdmVDb2xvcj17J2FnaWxpdHknfVxuICAgICAgICAgICAgICAgICAgICBzZWNvbmRhcnlUaGVtZUNvbG9yPXtzZWNvbmRhcnlUaGVtZUNvbG9yfVxuICAgICAgICAgICAgICAgICAgICBvbk9wZW5EcmF3ZXI9eygpID0+IHNldE9wZW4odHJ1ZSl9XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZVJvdXRlTWVudT17cHJvcHMuc2hvd0Rhc2hib2FyZE1lbnUgPyB7XG4gICAgICAgICAgICAgICAgICAgICAgICBpZDogJ2Rhc2hib2FyZCcsXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lOiAnRGFzaGJvYXJkJ1xuICAgICAgICAgICAgICAgICAgICB9IDogbnVsbH1cbiAgICAgICAgICAgICAgICAgICAgZGFzaGJvYXJkTGF1bmNoZXI9eygpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGxhdW5jaERhc2hib2FyZCgpO1xuICAgICAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgICAgICBhcHBMb2dvUGF0aD17cHJvcHMuYXBwTG9nb1BhdGggPz8gJyd9XG4gICAgICAgICAgICAgICAgICAgIGxvZ289e3tcbiAgICAgICAgICAgICAgICAgICAgICAgIG91dHRlckxpbms6ICcnLFxuICAgICAgICAgICAgICAgICAgICAgICAgdGV4dDogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICBpbWdTcmM6IGxvZ28sXG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGxvZ29TdHlsZT17cHJvcHMubG9nb1N0eWxlfVxuICAgICAgICAgICAgICAgICAgICBjbG9zZVNpZGViYXI9e2Nsb3NlU2lkZWJhcn1cbiAgICAgICAgICAgICAgICAvPnsnICd9XG4gICAgICAgICAgICA8L0RyYXdlclN0eWxlZD5cbiAgICAgICAgICAgIDxNYWluIG9wZW49e29wZW59PlxuICAgICAgICAgICAgICAgIDxUb29sYmFyIC8+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9XCJkYXNoYm9hcmQtbWFpbi1jb250ZW50XCIgc3R5bGU9e3toZWlnaHQ6IFwiY2FsYygxMDB2aCAtIDcwcHgpXCIsIG1heEhlaWdodDogXCJjYWxjKDEwMHZoIC0gNzBweClcIn19PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImNvbnRlbnQgdy0xMDAgaC0xMDAgcm93IG5vLW1hcmdpbiBuby1wYWRkaW5nXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpbmRvd1Bpbm5lZCA/ICdjYWxjKDEwMCUgLSAzMjBweCknIDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnYXV0bycsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFkZGluZ1RvcDogJzRweCdcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3UG9ydCB3aW5kb3dQaW5uZWQ9e3dpbmRvd1Bpbm5lZH0gbWVudU9mZnNldD17b3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEh9Lz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzc05hbWU9eydjb2wgbm8tbWFyZ2luIG5vLXBhZGRpbmcnfSBzdHlsZT17e1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHdpZHRoOiB3aW5kb3dQaW5uZWQgPyAnMzIwcHgnIDogJzAnLCBtYXJnaW46ICc4cHgnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Vmlld1BvcnQgc3RhdGVDaGFuZ2VIYW5kbGVyPXsoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93UGlubmVkKHN0YXRlLnBpbm5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9NYWluPlxuICAgICAgICA8L0JveD5cbiAgICApO1xufVxuXG5Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNldHRpbmdzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNob3dEYXNoYm9hcmRNZW51OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBsb2dvOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxvZ29TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhcHBMb2dvUGF0aDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhdmF0YXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbG9nb3V0Q2FsbEJhY2s6IFByb3BUeXBlcy5mdW5jXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBa0JBLElBQUFFLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFLLEtBQUEsR0FBQUYsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFNLE9BQUEsR0FBQUgsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFPLGVBQUEsR0FBQUosc0JBQUEsQ0FBQUgsT0FBQTtBQUdBLElBQUFRLFVBQUEsR0FBQVIsT0FBQTtBQUNBLElBQUFTLFVBQUEsR0FBQU4sc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFVLE1BQUEsR0FBQVAsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFXLFNBQUEsR0FBQVIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFZLGVBQUEsR0FBQVosT0FBQTtBQUNBLElBQUFhLGlCQUFBLEdBQUFWLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBYyxXQUFBLEdBQUFYLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBZSxlQUFBLEdBQUFmLE9BQUE7QUFDQSxJQUFBZ0IsbUJBQUEsR0FBQWIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFpQixjQUFBLEdBQUFkLHNCQUFBLENBQUFILE9BQUE7QUFDQSxJQUFBa0IsZUFBQSxHQUFBZixzQkFBQSxDQUFBSCxPQUFBO0FBQ0FBLE9BQUE7QUFDQSxJQUFBbUIsZUFBQSxHQUFBaEIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFvQixrQkFBQSxHQUFBakIsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFxQixPQUFBLEdBQUFyQixPQUFBO0FBQ0EsSUFBQXNCLGNBQUEsR0FBQW5CLHNCQUFBLENBQUFILE9BQUE7QUFBd0QsU0FBQUcsdUJBQUFvQixDQUFBLFdBQUFBLENBQUEsSUFBQUEsQ0FBQSxDQUFBQyxVQUFBLEdBQUFELENBQUEsS0FBQUUsT0FBQSxFQUFBRixDQUFBO0FBQUEsU0FBQXhCLHdCQUFBd0IsQ0FBQSxFQUFBRyxDQUFBLDZCQUFBQyxPQUFBLE1BQUFDLENBQUEsT0FBQUQsT0FBQSxJQUFBRSxDQUFBLE9BQUFGLE9BQUEsWUFBQTVCLHVCQUFBLFlBQUFBLENBQUF3QixDQUFBLEVBQUFHLENBQUEsU0FBQUEsQ0FBQSxJQUFBSCxDQUFBLElBQUFBLENBQUEsQ0FBQUMsVUFBQSxTQUFBRCxDQUFBLE1BQUFPLENBQUEsRUFBQUMsQ0FBQSxFQUFBQyxDQUFBLEtBQUFDLFNBQUEsUUFBQVIsT0FBQSxFQUFBRixDQUFBLGlCQUFBQSxDQUFBLHVCQUFBQSxDQUFBLHlCQUFBQSxDQUFBLFNBQUFTLENBQUEsTUFBQUYsQ0FBQSxHQUFBSixDQUFBLEdBQUFHLENBQUEsR0FBQUQsQ0FBQSxRQUFBRSxDQUFBLENBQUFJLEdBQUEsQ0FBQVgsQ0FBQSxVQUFBTyxDQUFBLENBQUFLLEdBQUEsQ0FBQVosQ0FBQSxHQUFBTyxDQUFBLENBQUFNLEdBQUEsQ0FBQWIsQ0FBQSxFQUFBUyxDQUFBLGdCQUFBTixDQUFBLElBQUFILENBQUEsZ0JBQUFHLENBQUEsT0FBQVcsY0FBQSxDQUFBQyxJQUFBLENBQUFmLENBQUEsRUFBQUcsQ0FBQSxPQUFBSyxDQUFBLElBQUFELENBQUEsR0FBQVMsTUFBQSxDQUFBQyxjQUFBLEtBQUFELE1BQUEsQ0FBQUUsd0JBQUEsQ0FBQWxCLENBQUEsRUFBQUcsQ0FBQSxPQUFBSyxDQUFBLENBQUFJLEdBQUEsSUFBQUosQ0FBQSxDQUFBSyxHQUFBLElBQUFOLENBQUEsQ0FBQUUsQ0FBQSxFQUFBTixDQUFBLEVBQUFLLENBQUEsSUFBQUMsQ0FBQSxDQUFBTixDQUFBLElBQUFILENBQUEsQ0FBQUcsQ0FBQSxXQUFBTSxDQUFBLEtBQUFULENBQUEsRUFBQUcsQ0FBQTtBQUFBLFNBQUFnQixTQUFBLFdBQUFBLFFBQUEsR0FBQUgsTUFBQSxDQUFBSSxNQUFBLEdBQUFKLE1BQUEsQ0FBQUksTUFBQSxDQUFBQyxJQUFBLGVBQUFmLENBQUEsYUFBQU4sQ0FBQSxNQUFBQSxDQUFBLEdBQUFzQixTQUFBLENBQUFDLE1BQUEsRUFBQXZCLENBQUEsVUFBQUcsQ0FBQSxHQUFBbUIsU0FBQSxDQUFBdEIsQ0FBQSxZQUFBSyxDQUFBLElBQUFGLENBQUEsT0FBQVcsY0FBQSxDQUFBQyxJQUFBLENBQUFaLENBQUEsRUFBQUUsQ0FBQSxNQUFBQyxDQUFBLENBQUFELENBQUEsSUFBQUYsQ0FBQSxDQUFBRSxDQUFBLGFBQUFDLENBQUEsS0FBQWEsUUFBQSxDQUFBSyxLQUFBLE9BQUFGLFNBQUEsS0ExQ3hEO0FBNENPLE1BQU1HLFlBQVksR0FBQUMsT0FBQSxDQUFBRCxZQUFBLEdBQUcsR0FBRztBQUMvQixNQUFNRSxVQUFVLEdBQUcsRUFBRTtBQUVyQixNQUFNQyxZQUFZLEdBQUcsSUFBQUMsY0FBTSxFQUFDQyxnQkFBTSxFQUFFO0VBQ2hDQyxpQkFBaUIsRUFBR0MsSUFBSSxJQUFLQSxJQUFJLEtBQUs7QUFDMUMsQ0FBQyxDQUFDLENBQUNDLElBQUE7RUFBQSxJQUFDO0lBQUVDLEtBQUs7SUFBRUM7RUFBSyxDQUFDLEdBQUFGLElBQUE7RUFBQSxPQUFNO0lBQ3JCRyxLQUFLLEVBQUVELElBQUksR0FBR1YsWUFBWSxHQUFHRSxVQUFVO0lBQ3ZDVSxVQUFVLEVBQUUsQ0FBQztJQUNiQyxVQUFVLEVBQUUsUUFBUTtJQUNwQixvQkFBb0IsRUFBRTtNQUNsQkYsS0FBSyxFQUFFRCxJQUFJLEdBQUdWLFlBQVksR0FBR0UsVUFBVTtNQUN2Q1ksU0FBUyxFQUFFLFFBQVE7TUFDbkJDLFVBQVUsRUFBRU4sS0FBSyxDQUFDTyxXQUFXLENBQUNDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7UUFDMUNDLE1BQU0sRUFBRVQsS0FBSyxDQUFDTyxXQUFXLENBQUNFLE1BQU0sQ0FBQ0MsS0FBSztRQUN0Q0MsUUFBUSxFQUFFWCxLQUFLLENBQUNPLFdBQVcsQ0FBQ0ksUUFBUSxDQUFDQztNQUN6QyxDQUFDO0lBQ0w7RUFDSixDQUFDO0FBQUEsQ0FBQyxDQUFDO0FBRUgsTUFBTUMsSUFBSSxHQUFHLElBQUFsQixjQUFNLEVBQUMsTUFBTSxFQUFFO0VBQUVFLGlCQUFpQixFQUFHQyxJQUFJLElBQUtBLElBQUksS0FBSztBQUFPLENBQUMsQ0FBQyxDQUN6RWdCLEtBQUE7RUFBQSxJQUFDO0lBQUVkLEtBQUs7SUFBRUM7RUFBSyxDQUFDLEdBQUFhLEtBQUE7RUFBQSxPQUFNO0lBQ2xCQyxRQUFRLEVBQUUsQ0FBQztJQUNYVCxVQUFVLEVBQUVOLEtBQUssQ0FBQ08sV0FBVyxDQUFDQyxNQUFNLENBQUMsYUFBYSxFQUFFO01BQ2hEQyxNQUFNLEVBQUVULEtBQUssQ0FBQ08sV0FBVyxDQUFDRSxNQUFNLENBQUNDLEtBQUs7TUFDdENDLFFBQVEsRUFBRVgsS0FBSyxDQUFDTyxXQUFXLENBQUNJLFFBQVEsQ0FBQ0M7SUFDekMsQ0FBQyxDQUFDO0lBQ0ZJLE9BQU8sRUFBRSxDQUFDO0lBQ1ZDLFVBQVUsRUFBRTtFQUNoQixDQUFDO0FBQUEsQ0FDTCxDQUFDO0FBRUQsSUFBSUMsRUFBRTtBQUNOLE1BQU1DLGVBQWUsR0FBRyx3QkFBd0I7QUFFaEQsU0FBU0MsYUFBYUEsQ0FBQ0MsR0FBRyxFQUFFO0VBQ3hCLElBQUksQ0FBQ0EsR0FBRyxFQUFFLE9BQU9DLFNBQVM7RUFDMUIsTUFBTUMsQ0FBQyxHQUFHRixHQUFHLENBQUNHLElBQUksQ0FBQyxDQUFDO0VBRXBCLElBQUksU0FBUyxDQUFDQyxJQUFJLENBQUNGLENBQUMsQ0FBQyxFQUFFO0lBQ25CLE1BQU1HLEdBQUcsR0FBRyxJQUFJQyxNQUFNLE1BQUFDLE1BQUEsQ0FBTVQsZUFBZSxTQUFNLEdBQUcsQ0FBQztJQUNyRCxPQUFPSSxDQUFDLENBQUNNLE9BQU8sQ0FBQ0gsR0FBRyxFQUFFUCxlQUFlLENBQUM7RUFDMUM7RUFFQSxPQUFPQSxlQUFlLEdBQUdJLENBQUM7QUFDOUI7QUFFZSxTQUFTTyx1QkFBdUJBLENBQUNDLEtBQUssRUFBRTtFQUFBLElBQUFDLGtCQUFBO0VBQ25ELE1BQU0sQ0FBQy9CLElBQUksRUFBRWdDLE9BQU8sQ0FBQyxHQUFHNUYsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUM1QyxNQUFNLENBQUNDLGFBQWEsRUFBRUMsZ0JBQWdCLENBQUMsR0FBRy9GLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQyxJQUFJLENBQUM7RUFDOUQsTUFBTSxDQUFDRyxPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHakcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUNsRCxNQUFNLENBQUNLLFdBQVcsRUFBRUMsY0FBYyxDQUFDLEdBQUduRyxLQUFLLENBQUM2RixRQUFRLENBQUMsTUFBTSxDQUFDO0VBQzVELE1BQU0sQ0FBQ08sbUJBQW1CLEVBQUVDLHNCQUFzQixDQUFDLEdBQUdyRyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQ3hFLE1BQU0sQ0FBQ1MsaUJBQWlCLEVBQUVDLG9CQUFvQixDQUFDLEdBQUd2RyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQ3BFLE1BQU0sQ0FBQ1csY0FBYyxFQUFFQyxpQkFBaUIsQ0FBQyxHQUFHekcsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEVBQUUsQ0FBQztFQUM5RCxNQUFNLENBQUNhLE1BQU0sRUFBRUMsU0FBUyxDQUFDLEdBQUczRyxLQUFLLENBQUM2RixRQUFRLENBQUMsRUFBRSxDQUFDO0VBQzlDLE1BQU0sQ0FBQ2UsSUFBSSxFQUFFQyxPQUFPLENBQUMsR0FBRzdHLEtBQUssQ0FBQzZGLFFBQVEsQ0FBQ2QsYUFBYSxDQUFDVyxLQUFLLENBQUNrQixJQUFJLENBQUMsQ0FBQztFQUNqRSxNQUFNLENBQUNFLGFBQWEsRUFBRUMsZ0JBQWdCLENBQUMsR0FBRy9HLEtBQUssQ0FBQzZGLFFBQVEsQ0FDcERtQixRQUFRLENBQUNDLGVBQWUsQ0FBQ0MsU0FBUyxDQUFDQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxDQUNoRSxDQUFDO0VBQ0QsTUFBTSxDQUFDQyxXQUFXLEVBQUVDLGNBQWMsQ0FBQyxHQUFHckgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUMxRCxNQUFNLENBQUN5QixPQUFPLEVBQUVDLFVBQVUsQ0FBQyxHQUFHdkgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLENBQUMsQ0FBQztFQUMvQyxNQUFNLENBQUMyQixZQUFZLEVBQUVDLGVBQWUsQ0FBQyxHQUFHekgsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLEtBQUssQ0FBQzs7RUFFN0Q7RUFDQSxNQUFNLENBQUM2QixVQUFVLEVBQUVDLGFBQWEsQ0FBQyxHQUFHM0gsS0FBSyxDQUFDNkYsUUFBUSxDQUFDLElBQUksQ0FBQztFQUN4RCxNQUFNK0IsWUFBWSxHQUFHQyxPQUFPLENBQUNILFVBQVUsQ0FBQztFQUN4QyxNQUFNSSxrQkFBa0IsR0FBSXJHLENBQUMsSUFBS2tHLGFBQWEsQ0FBQ2xHLENBQUMsQ0FBQ3NHLGFBQWEsQ0FBQztFQUNoRSxNQUFNQyxtQkFBbUIsR0FBR0EsQ0FBQSxLQUFNTCxhQUFhLENBQUMsSUFBSSxDQUFDO0VBQ3JELE1BQU1oRSxLQUFLLEdBQUcsSUFBQXNFLGdCQUFRLEVBQUMsQ0FBQztFQUN4QixNQUFNQyxRQUFRLEdBQUcsSUFBQUMsc0JBQWEsRUFBQ3hFLEtBQUssQ0FBQ3lFLFdBQVcsQ0FBQ0MsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0VBRTVELE1BQU1DLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0lBQ3hCTixtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JCTyxVQUFVLENBQUMsaUNBQWlDLENBQUM7RUFDakQsQ0FBQztFQUVELE1BQU1DLFlBQVksR0FBR0EsQ0FBQSxLQUFNO0lBQ3ZCUixtQkFBbUIsQ0FBQyxDQUFDO0lBQ3JCdEMsS0FBSyxDQUFDK0MsY0FBYyxJQUFJL0MsS0FBSyxDQUFDK0MsY0FBYyxDQUFDLENBQUM7RUFDbEQsQ0FBQztFQUVELE1BQU1DLDRCQUE0QixHQUFHQSxDQUFBLEtBQU07SUFDdkMzQyxnQkFBZ0IsQ0FBQyxDQUFDRCxhQUFhLENBQUM7RUFDcEMsQ0FBQztFQUVELE1BQU02QyxhQUFhLEdBQUlDLEtBQUssSUFBSztJQUM3QnpDLGNBQWMsQ0FBQ3lDLEtBQUssQ0FBQztFQUN6QixDQUFDO0VBRUQ1SSxLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJWCxRQUFRLEVBQUU7TUFDVnRDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFHO0lBQ3RCO0VBQ0osQ0FBQyxFQUFFLENBQUNzQyxRQUFRLENBQUMsQ0FBQztFQUVkbEksS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEJDLDJCQUFrQixDQUFDQyxpQkFBaUIsQ0FBQztNQUFDQyxVQUFVLEVBQUVwRixJQUFJLEdBQUdWLFlBQVksR0FBR0U7SUFBVSxDQUFDLENBQUM7RUFDeEYsQ0FBQyxFQUFFLENBQUNRLElBQUksQ0FBQyxDQUFDO0VBRVY1RCxLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQixJQUFJSSxTQUFTLENBQUNDLFFBQVEsQ0FBQy9CLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRTtNQUN4Q0gsUUFBUSxDQUFDQyxlQUFlLENBQUNrQyxTQUFTLENBQUNDLEdBQUcsQ0FBQyxzQkFBc0IsQ0FBQztNQUM5RHBDLFFBQVEsQ0FBQ0MsZUFBZSxDQUFDa0MsU0FBUyxDQUFDRSxNQUFNLENBQUMsdUJBQXVCLENBQUM7TUFDbEUsSUFBSUMsTUFBTSxHQUFHdEMsUUFBUSxDQUFDdUMsZ0JBQWdCLENBQUMsbUJBQW1CLENBQUM7TUFDM0QsS0FBSyxJQUFJdEgsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHcUgsTUFBTSxDQUFDdEcsTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtRQUNwQzRDLEVBQUUsR0FBRyxJQUFJMkUseUJBQWdCLENBQUNGLE1BQU0sQ0FBQ3JILENBQUMsQ0FBQyxDQUFDO01BQ3hDO0lBQ0o7SUFDQXdILE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUMsUUFBUSxFQUFFQyxnQkFBZ0IsQ0FBQztFQUN2RCxDQUFDLENBQUM7RUFFRjNKLEtBQUssQ0FBQzZJLFNBQVMsQ0FBQyxNQUFNO0lBQ2xCLElBQUluRCxLQUFLLENBQUM3QixLQUFLLEtBQUssSUFBSSxJQUFJLE9BQU82QixLQUFLLENBQUM3QixLQUFLLEtBQUssV0FBVyxFQUFFO01BQzVEa0MsZ0JBQWdCLENBQUNMLEtBQUssQ0FBQzdCLEtBQUssS0FBSytGLGdCQUFLLENBQUM7SUFDM0M7RUFDSixDQUFDLEVBQUUsQ0FBQ2xFLEtBQUssQ0FBQzdCLEtBQUssQ0FBQyxDQUFDO0VBRWpCN0QsS0FBSyxDQUFDNkksU0FBUyxDQUFDLE1BQU07SUFDbEJnQixzQkFBTyxDQUFDQyxJQUFJLENBQUMsQ0FBQztJQUNkaEIsMkJBQWtCLENBQUNDLGlCQUFpQixDQUFDO01BQUNDLFVBQVUsRUFBRXBGLElBQUksR0FBR1YsWUFBWSxHQUFHRTtJQUFVLENBQUMsQ0FBQztJQUNwRixPQUFPLE1BQU07TUFDVHlHLHNCQUFPLENBQUNFLFVBQVUsQ0FBQyxDQUFDO0lBQ3hCLENBQUM7RUFDTCxDQUFDLEVBQUUsRUFBRSxDQUFDO0VBRU4vSixLQUFLLENBQUM2SSxTQUFTLENBQUMsTUFBTTtJQUNsQjdCLFFBQVEsQ0FBQ2dELElBQUksQ0FBQ2IsU0FBUyxDQUFDQyxHQUFHLENBQUMsZUFBZSxDQUFDO0lBRTVDLElBQUlILFNBQVMsQ0FBQ0MsUUFBUSxDQUFDL0IsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFO01BQ3hDO0lBQUE7SUFHSnNDLE1BQU0sQ0FBQ1EsbUJBQW1CLENBQUMsUUFBUSxFQUFFTixnQkFBZ0IsQ0FBQztJQUV0RHhELGNBQWMsQ0FBQyxTQUFTLENBQUM7SUFDekJFLHNCQUFzQixDQUFDWCxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDQyx5QkFBeUIsQ0FBQztJQUNqRjdELG9CQUFvQixDQUFDYixLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDRSx3QkFBd0IsQ0FBQztJQUM5RTVELGlCQUFpQixDQUFDZixLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDM0QsY0FBYyxDQUFDO0lBRWpFLElBQUksQ0FBQzhELGNBQUssQ0FBQ0MsTUFBTSxDQUFDN0UsS0FBSyxDQUFDd0UsUUFBUSxDQUFDLEVBQUU7TUFDL0IsSUFBSU0sYUFBYSxHQUFHLENBQUMsQ0FBQztNQUN0QkEsYUFBYSxDQUFDQyxFQUFFLEdBQUcsV0FBVztNQUM5QkQsYUFBYSxDQUFDRSxLQUFLLEdBQUcsRUFBRTtNQUV4QixJQUFJQyxlQUFlLEdBQUcsQ0FBQyxDQUFDO01BQ3hCQSxlQUFlLENBQUNGLEVBQUUsR0FBRyxhQUFhO01BQ2xDRSxlQUFlLENBQUNDLEtBQUssR0FBRyxFQUFFO01BQzFCRCxlQUFlLENBQUNFLFVBQVUsR0FBRyxDQUFDLENBQUM7TUFDL0JGLGVBQWUsQ0FBQ0UsVUFBVSxDQUFDQyxLQUFLLEdBQUcsZUFBZTtNQUNsRE4sYUFBYSxDQUFDRSxLQUFLLENBQUNLLElBQUksQ0FBQ0osZUFBZSxDQUFDO01BRXpDLElBQUksQ0FBQ0wsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUN3RSxRQUFRLENBQUNjLGNBQWMsQ0FBQyxFQUFFO1FBQzlDLEtBQUssSUFBSS9JLENBQUMsR0FBRyxDQUFDLEVBQUVBLENBQUMsR0FBR3lELEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ2MsY0FBYyxDQUFDaEksTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtVQUMzRCxJQUFJZ0osYUFBYSxHQUFHdkYsS0FBSyxDQUFDd0UsUUFBUSxDQUFDYyxjQUFjLENBQUMvSSxDQUFDLENBQUM7VUFDcEQsSUFBSWlKLElBQUksR0FBRyxDQUFDLENBQUM7VUFDYkEsSUFBSSxDQUFDVCxFQUFFLEdBQUdRLGFBQWEsQ0FBQ1IsRUFBRTtVQUMxQlMsSUFBSSxDQUFDTCxVQUFVLEdBQUcsQ0FBQyxDQUFDO1VBQ3BCSyxJQUFJLENBQUNMLFVBQVUsQ0FBQ0MsS0FBSyxHQUFHRyxhQUFhLENBQUNFLFVBQVUsQ0FBQ0MsR0FBRyxDQUFDQyxhQUFhO1VBRWxFVixlQUFlLENBQUNDLEtBQUssQ0FBQ0csSUFBSSxDQUFDRyxJQUFJLENBQUM7UUFDcEM7TUFDSjtNQUVBLElBQUlJLGFBQWEsR0FBRyxDQUFDLENBQUM7TUFDdEJBLGFBQWEsQ0FBQ2IsRUFBRSxHQUFHLFdBQVc7TUFDOUJhLGFBQWEsQ0FBQ1YsS0FBSyxHQUFHLEVBQUU7TUFDeEJVLGFBQWEsQ0FBQ1QsVUFBVSxHQUFHLENBQUMsQ0FBQztNQUM3QlMsYUFBYSxDQUFDVCxVQUFVLENBQUNDLEtBQUssR0FBRyxZQUFZO01BQzdDTixhQUFhLENBQUNFLEtBQUssQ0FBQ0ssSUFBSSxDQUFDTyxhQUFhLENBQUM7TUFFdkMsSUFBSSxDQUFDaEIsY0FBSyxDQUFDQyxNQUFNLENBQUM3RSxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDLEVBQUU7UUFDeEQsS0FBSyxJQUFJdEosQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHeUQsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQ3ZJLE1BQU0sRUFBRWYsQ0FBQyxFQUFFLEVBQUU7VUFDckUsSUFBSXVKLE1BQU0sR0FBRzlGLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUN0SixDQUFDLENBQUM7VUFDdkQsSUFBSSxDQUFDcUksY0FBSyxDQUFDQyxNQUFNLENBQUNpQixNQUFNLENBQUNDLGdCQUFnQixDQUFDLEVBQUU7WUFDeEMsS0FBSyxJQUFJQyxDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUdGLE1BQU0sQ0FBQ0MsZ0JBQWdCLENBQUNmLEtBQUssQ0FBQzFILE1BQU0sRUFBRTBJLENBQUMsRUFBRSxFQUFFO2NBQzNELElBQUlDLElBQUksR0FBR0gsTUFBTSxDQUFDQyxnQkFBZ0IsQ0FBQ2YsS0FBSyxDQUFDZ0IsQ0FBQyxDQUFDOztjQUUzQztjQUNBSixhQUFhLENBQUNWLEtBQUssR0FBR1UsYUFBYSxDQUFDVixLQUFLLENBQUNyRixNQUFNLENBQUNvRyxJQUFJLENBQUNmLEtBQUssQ0FBQztZQUNoRTtVQUNKO1FBQ0o7TUFDSjtNQUVBLElBQUlnQixTQUFTLEdBQUcsRUFBRTtNQUNsQixJQUFJQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO01BRWpCLElBQUl2QixjQUFLLENBQUNDLE1BQU0sQ0FBQzdFLEtBQUssQ0FBQ29HLGlCQUFpQixDQUFDLElBQUlwRyxLQUFLLENBQUNvRyxpQkFBaUIsRUFBRTtRQUNsRUQsUUFBUSxDQUFDRSxJQUFJLEdBQUcsV0FBVztRQUMzQkYsUUFBUSxDQUFDcEIsRUFBRSxHQUFHLFdBQVc7UUFDekJvQixRQUFRLENBQUNHLElBQUksR0FBRyxpQkFBaUI7UUFDakNILFFBQVEsQ0FBQ0ksTUFBTSxHQUFHLFFBQVE7UUFDMUJKLFFBQVEsQ0FBQ0ssS0FBSyxHQUFHLENBQUM7UUFDbEJMLFFBQVEsQ0FBQ00sUUFBUSxHQUFHLElBQUk7UUFDeEJQLFNBQVMsQ0FBQ2IsSUFBSSxDQUFDYyxRQUFRLENBQUM7TUFDNUI7TUFFQSxJQUFJLENBQUN2QixjQUFLLENBQUNDLE1BQU0sQ0FBQzdFLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ0MsZ0JBQWdCLENBQUNvQixPQUFPLENBQUMsRUFBRTtRQUN4RCxLQUFLLElBQUl0SixDQUFDLEdBQUcsQ0FBQyxFQUFFQSxDQUFDLEdBQUd5RCxLQUFLLENBQUN3RSxRQUFRLENBQUNDLGdCQUFnQixDQUFDb0IsT0FBTyxDQUFDdkksTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtVQUNyRSxJQUFJdUosTUFBTSxHQUFHOUYsS0FBSyxDQUFDd0UsUUFBUSxDQUFDQyxnQkFBZ0IsQ0FBQ29CLE9BQU8sQ0FBQ3RKLENBQUMsQ0FBQztVQUN2RCxJQUFJbUssS0FBSyxHQUFHLENBQUMsQ0FBQztVQUVkQSxLQUFLLENBQUNMLElBQUksR0FBR1AsTUFBTSxDQUFDVixLQUFLO1VBQ3pCc0IsS0FBSyxDQUFDSixJQUFJLEdBQUdSLE1BQU0sQ0FBQ1EsSUFBSTtVQUN4QkksS0FBSyxDQUFDVCxJQUFJLEdBQUdILE1BQU0sQ0FBQ0csSUFBSTtVQUN4QlMsS0FBSyxDQUFDSCxNQUFNLEdBQUcsUUFBUTtVQUN2QkcsS0FBSyxDQUFDRixLQUFLLEdBQUcsQ0FBQztVQUVmLElBQUlWLE1BQU0sQ0FBQ0csSUFBSSxFQUFFO1lBQ2JTLEtBQUssQ0FBQ0MsUUFBUSxHQUFHLElBQUk7WUFDckJELEtBQUssQ0FBQ0UsS0FBSyxHQUFHZCxNQUFNLENBQUNPLElBQUksR0FBRyxVQUFVO1VBQzFDO1VBRUFILFNBQVMsQ0FBQ2IsSUFBSSxDQUFDcUIsS0FBSyxDQUFDO1FBQ3pCO01BQ0o7TUFFQSxJQUFJMUcsS0FBSyxDQUFDd0UsUUFBUSxDQUFDcUMsWUFBWSxFQUFFO1FBQzdCVixRQUFRLEdBQUcsQ0FBQyxDQUFDO1FBRWJBLFFBQVEsQ0FBQ0UsSUFBSSxHQUFHLFVBQVU7UUFDMUJGLFFBQVEsQ0FBQ0csSUFBSSxHQUFHLFdBQVc7UUFDM0JILFFBQVEsQ0FBQ0ksTUFBTSxHQUFHLFFBQVE7UUFDMUJKLFFBQVEsQ0FBQ00sUUFBUSxHQUFHLElBQUk7UUFDeEJOLFFBQVEsQ0FBQ1EsUUFBUSxHQUFHLElBQUk7UUFDeEJSLFFBQVEsQ0FBQ0ssS0FBSyxHQUFHLENBQUM7UUFDbEJMLFFBQVEsQ0FBQ0YsSUFBSSxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCRSxRQUFRLENBQUNTLEtBQUssR0FBRyxzQkFBc0I7UUFFdkNWLFNBQVMsQ0FBQ2IsSUFBSSxDQUFDYyxRQUFRLENBQUM7TUFDNUI7TUFFQWxGLFNBQVMsQ0FBQ2lGLFNBQVMsQ0FBQztNQUVwQmxHLEtBQUssQ0FBQ3dFLFFBQVEsQ0FBQ00sYUFBYSxHQUFHYyxhQUFhLENBQUNWLEtBQUssQ0FBQzVILE1BQU0sR0FBRyxDQUFDLEdBQUd3SCxhQUFhLEdBQUcsSUFBSTtNQUNwRnZFLFVBQVUsQ0FBQyxLQUFLLENBQUM7SUFDckI7RUFDSixDQUFDLEVBQUUsQ0FBQ1AsS0FBSyxDQUFDd0UsUUFBUSxDQUFDLENBQUM7RUFFcEIsTUFBTXNDLGFBQWEsR0FBR0EsQ0FBQSxLQUFNO0lBQ3hCeEYsUUFBUSxDQUFDQyxlQUFlLENBQUNrQyxTQUFTLENBQUNzRCxNQUFNLENBQUMsVUFBVSxDQUFDO0lBQ3JEMUYsZ0JBQWdCLENBQUMsQ0FBQ0QsYUFBYSxDQUFDO0VBQ3BDLENBQUM7RUFFRCxNQUFNNkMsZ0JBQWdCLEdBQUdBLENBQUEsS0FBTTtJQUMzQixJQUNJM0MsUUFBUSxDQUFDQyxlQUFlLENBQUN5RixTQUFTLEdBQUcsRUFBRSxJQUN2QzFGLFFBQVEsQ0FBQzJGLGdCQUFnQixDQUFDRCxTQUFTLEdBQUcsRUFBRSxFQUMxQztNQUNFbkYsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqQixDQUFDLE1BQU0sSUFDSFAsUUFBUSxDQUFDQyxlQUFlLENBQUN5RixTQUFTLElBQUksRUFBRSxJQUN4QzFGLFFBQVEsQ0FBQzJGLGdCQUFnQixDQUFDRCxTQUFTLElBQUksRUFBRSxFQUMzQztNQUNFbkYsVUFBVSxDQUFDLENBQUMsQ0FBQztJQUNqQjtFQUNKLENBQUM7RUFFRCxNQUFNcUYsU0FBUyxHQUFJbEcsTUFBTSxJQUFLO0lBQzFCLE9BQU9BLE1BQU0sQ0FBQzBFLEdBQUcsQ0FBQyxDQUFDM0gsSUFBSSxFQUFFb0osR0FBRyxLQUFLO01BQzdCLElBQUlwSixJQUFJLENBQUM0SSxRQUFRLEVBQUU7UUFDZixPQUFPTyxTQUFTLENBQUNuSixJQUFJLENBQUNxSixLQUFLLENBQUM7TUFDaEM7TUFFQSxJQUFJckosSUFBSSxDQUFDd0ksTUFBTSxLQUFLLFFBQVEsRUFBRTtRQUMxQixvQkFDSWpNLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ2pNLGVBQUEsQ0FBQWtNLEtBQUs7VUFDRkMsSUFBSSxFQUFFeEosSUFBSSxDQUFDd0ksTUFBTSxHQUFHeEksSUFBSSxDQUFDd0osSUFBSztVQUM5QkMsU0FBUyxFQUFFekosSUFBSSxDQUFDeUosU0FBVTtVQUMxQkwsR0FBRyxFQUFFQTtRQUFJLENBQ1osQ0FBQztNQUVWLENBQUMsTUFBTTtRQUNILE9BQU8sSUFBSTtNQUNmO0lBQ0osQ0FBQyxDQUFDO0VBQ04sQ0FBQztFQUVELE1BQU1NLGNBQWMsR0FBSXpHLE1BQU0sSUFBSztJQUMvQixJQUFJMEcsV0FBVyxHQUFHLFdBQVc7SUFDN0IsS0FBSyxJQUFJbkwsQ0FBQyxHQUFHLENBQUMsRUFBRUEsQ0FBQyxHQUFHeUUsTUFBTSxDQUFDMUQsTUFBTSxFQUFFZixDQUFDLEVBQUUsRUFBRTtNQUNwQyxJQUFJeUUsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUNvSyxRQUFRLElBQUkzRixNQUFNLENBQUN6RSxDQUFDLENBQUMsQ0FBQzZLLEtBQUssRUFBRTtRQUN2QyxJQUFJTyxtQkFBbUIsR0FBR0YsY0FBYyxDQUFDekcsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUM2SyxLQUFLLENBQUM7UUFDekQsSUFBSU8sbUJBQW1CLEtBQUtELFdBQVcsRUFBRTtVQUNyQyxPQUFPQyxtQkFBbUI7UUFDOUI7TUFDSixDQUFDLE1BQU07UUFDSCxJQUNJNUQsTUFBTSxDQUFDNkQsUUFBUSxDQUFDQyxJQUFJLENBQUNwRyxPQUFPLENBQUNULE1BQU0sQ0FBQ3pFLENBQUMsQ0FBQyxDQUFDZ0ssTUFBTSxHQUFHdkYsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUNnTCxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFDeEU7VUFDRSxPQUFPdkcsTUFBTSxDQUFDekUsQ0FBQyxDQUFDLENBQUM4SixJQUFJO1FBQ3pCO01BQ0o7SUFDSjtJQUNBLE9BQU9xQixXQUFXO0VBQ3RCLENBQUM7RUFFRCxNQUFNSSxpQkFBaUIsR0FBSTVFLEtBQUssSUFBSztJQUNqQ3pDLGNBQWMsQ0FBQ3lDLEtBQUssQ0FBQztFQUN6QixDQUFDO0VBRUQsTUFBTTZFLFlBQVksR0FBR0EsQ0FBQSxLQUFNO0lBQ3ZCMUcsZ0JBQWdCLENBQUMsS0FBSyxDQUFDO0lBQ3ZCQyxRQUFRLENBQUNDLGVBQWUsQ0FBQ2tDLFNBQVMsQ0FBQ0UsTUFBTSxDQUFDLFVBQVUsQ0FBQztFQUN6RCxDQUFDO0VBRUQsU0FBU3FFLGVBQWVBLENBQUEsRUFBRztJQUN2QjVFLDJCQUFrQixDQUFDNkUsYUFBYSxDQUFDLENBQUM7SUFDbEM7SUFDQTdFLDJCQUFrQixDQUFDOEUsUUFBUSxDQUFDLGlCQUFpQixDQUFDO0VBQ2xEO0VBRUEsU0FBU3JGLFVBQVVBLENBQUMwRSxJQUFJLEVBQUU7SUFDdEIsSUFBSVksWUFBWSxHQUFHLENBQUMsQ0FBQztJQUNyQkEsWUFBWSxDQUFDQyxVQUFVLEdBQUcsT0FBTztJQUNqQ0QsWUFBWSxDQUFDWixJQUFJLEdBQUdBLElBQUk7SUFDeEJZLFlBQVksQ0FBQ0UsTUFBTSxHQUFHLElBQUk7SUFFMUJDLHVCQUFjLENBQUNDLGFBQWEsQ0FBQ0osWUFBWSxDQUFDO0VBQzlDO0VBRUEsSUFBSTdILE9BQU8sRUFBRTtJQUNULG9CQUFPaEcsS0FBQSxDQUFBK00sYUFBQSxjQUFLLFlBQWUsQ0FBQztFQUNoQztFQUVBLG9CQUNJL00sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBK04sR0FBRztJQUFDQyxFQUFFLEVBQUU7TUFBRUMsT0FBTyxFQUFFO0lBQU87RUFBRSxnQkFDekJwTyxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUFrTyxXQUFXLE1BQUUsQ0FBQyxlQUdmck8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBbU8sTUFBTTtJQUNIQyxRQUFRLEVBQUMsT0FBTztJQUNoQjNGLEtBQUssRUFBQyxTQUFTO0lBQ2Y0RixTQUFTLEVBQUUsQ0FBRTtJQUNiTCxFQUFFLEVBQUU7TUFBRU0sTUFBTSxFQUFHOUssS0FBSyxJQUFLQSxLQUFLLENBQUM4SyxNQUFNLENBQUNDLE1BQU0sR0FBRztJQUFFO0VBQUUsZ0JBRW5EMU8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxxQkFDSjNPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXlPLE9BQU87SUFBQ0MsS0FBSyxFQUFFakwsSUFBSSxHQUFHLGVBQWUsR0FBRztFQUFjLGdCQUNuRDVELEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQTJPLFVBQVU7SUFBQ2xHLEtBQUssRUFBQyxTQUFTO0lBQUNtRyxJQUFJLEVBQUMsT0FBTztJQUFDQyxPQUFPLEVBQUVBLENBQUEsS0FBTXBKLE9BQU8sQ0FBRTVELENBQUMsSUFBSyxDQUFDQSxDQUFDO0VBQUUsR0FDdEU0QixJQUFJLGdCQUFHNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDM00sU0FBQSxDQUFBdUIsT0FBWSxNQUFFLENBQUMsZ0JBQUczQixLQUFBLENBQUErTSxhQUFBLENBQUN6TSxLQUFBLENBQUFxQixPQUFRLE1BQUUsQ0FDOUIsQ0FDUCxDQUFDLGVBQ1YzQixLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUErTixHQUFHO0lBQUNDLEVBQUUsRUFBRTtNQUFFYyxFQUFFLEVBQUUsQ0FBQztNQUFFQyxVQUFVLEVBQUU7SUFBSTtFQUFFLENBQU0sQ0FBQyxlQUMzQ2xQLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQStOLEdBQUc7SUFBQ0MsRUFBRSxFQUFFO01BQUVjLEVBQUUsRUFBRSxNQUFNO01BQUViLE9BQU8sRUFBRSxNQUFNO01BQUVlLFVBQVUsRUFBRTtJQUFTO0VBQUUsZ0JBQzNEblAsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBeU8sT0FBTztJQUFDQyxLQUFLLEVBQUM7RUFBUyxnQkFDcEI3TyxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUEyTyxVQUFVO0lBQ1BFLE9BQU8sRUFBRWxILGtCQUFtQjtJQUM1QnNILElBQUksRUFBQyxPQUFPO0lBQ1pqQixFQUFFLEVBQUU7TUFBRWMsRUFBRSxFQUFFO0lBQUUsQ0FBRTtJQUNkLGlCQUFlckgsWUFBWSxHQUFHLGNBQWMsR0FBRzNDLFNBQVU7SUFDekQsaUJBQWMsTUFBTTtJQUNwQixpQkFBZTJDLFlBQVksR0FBRyxNQUFNLEdBQUczQztFQUFVLGdCQUVqRGpGLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQWtQLE1BQU07SUFDSEMsR0FBRyxFQUFDLE1BQU07SUFDVnRLLEdBQUcsRUFBRVUsS0FBSyxDQUFDNkosTUFBTztJQUNsQnBCLEVBQUUsRUFBRTtNQUFFdEssS0FBSyxFQUFFLEVBQUU7TUFBRTJMLE1BQU0sRUFBRSxFQUFFO01BQUVDLFlBQVksRUFBRTtJQUFNO0VBQUUsQ0FDdEQsQ0FDTyxDQUNQLENBQUMsZUFFVnpQLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXVQLElBQUk7SUFDREMsUUFBUSxFQUFFakksVUFBVztJQUNyQitDLEVBQUUsRUFBQyxjQUFjO0lBQ2pCN0csSUFBSSxFQUFFZ0UsWUFBYTtJQUNuQmdJLE9BQU8sRUFBRTVILG1CQUFvQjtJQUM3QmdILE9BQU8sRUFBRWhILG1CQUFvQjtJQUM3QjZILGVBQWUsRUFBRTtNQUFFQyxVQUFVLEVBQUUsT0FBTztNQUFFQyxRQUFRLEVBQUU7SUFBTSxDQUFFO0lBQzFEQyxZQUFZLEVBQUU7TUFBRUYsVUFBVSxFQUFFLE9BQU87TUFBRUMsUUFBUSxFQUFFO0lBQVMsQ0FBRTtJQUMxREUsVUFBVSxFQUFFO01BQ1J6QixTQUFTLEVBQUUsQ0FBQztNQUNaTCxFQUFFLEVBQUU7UUFDQStCLEVBQUUsRUFBRSxHQUFHO1FBQ1BDLFFBQVEsRUFBRSxHQUFHO1FBQ2JDLFFBQVEsRUFBRSxTQUFTO1FBQ25CLFVBQVUsRUFBRTtVQUNSQyxPQUFPLEVBQUUsSUFBSTtVQUNiakMsT0FBTyxFQUFFLE9BQU87VUFDaEJHLFFBQVEsRUFBRSxVQUFVO1VBQ3BCK0IsR0FBRyxFQUFFLENBQUM7VUFDTkMsS0FBSyxFQUFFLEVBQUU7VUFDVDFNLEtBQUssRUFBRSxFQUFFO1VBQ1QyTCxNQUFNLEVBQUUsRUFBRTtVQUNWZ0IsT0FBTyxFQUFFLGtCQUFrQjtVQUMzQkMsU0FBUyxFQUFFLGdDQUFnQztVQUMzQ2hDLE1BQU0sRUFBRTtRQUNaO01BQ0o7SUFDSjtFQUFFLGdCQUVGek8sS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBdVEsUUFBUTtJQUFDMUIsT0FBTyxFQUFFMUc7RUFBYyxnQkFDN0J0SSxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUF3USxZQUFZLHFCQUNUM1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDdE0sZUFBQSxDQUFBa0IsT0FBYztJQUFDaVAsUUFBUSxFQUFDO0VBQU8sQ0FBRSxDQUN4QixDQUFDLGVBQ2Y1USxLQUFBLENBQUErTSxhQUFBLENBQUM1TSxTQUFBLENBQUEwUSxVQUFVLFFBQUMsU0FBbUIsQ0FDekIsQ0FBQyxlQUNYN1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMlEsT0FBTyxNQUFFLENBQUMsZUFDWDlRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzVNLFNBQUEsQ0FBQXVRLFFBQVE7SUFBQzFCLE9BQU8sRUFBRXhHO0VBQWEsZ0JBQzVCeEksS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd1EsWUFBWSxxQkFDVDNRLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3ZNLE9BQUEsQ0FBQW1CLE9BQU07SUFBQ2lQLFFBQVEsRUFBQztFQUFPLENBQUUsQ0FDaEIsQ0FBQyxlQUNmNVEsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBMFEsVUFBVSxRQUFDLFNBQW1CLENBQ3pCLENBQ1IsQ0FDTCxDQUNBLENBQ0wsQ0FBQyxlQUVUN1EsS0FBQSxDQUFBK00sYUFBQSxDQUFDMUosWUFBWTtJQUFDME4sT0FBTyxFQUFFN0ksUUFBUSxHQUFHLFdBQVcsR0FBRyxXQUFZO0lBQUN0RSxJQUFJLEVBQUVBO0VBQUssZ0JBQ3BFNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxNQUFFLENBQUMsZUFDWDNPLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3pMLGtCQUFBLENBQUFLLE9BQWlCLEVBQUFpQixRQUFBLEtBQ1Y4QyxLQUFLO0lBQ1RnQixNQUFNLEVBQUVBLE1BQU87SUFDZjlDLElBQUksRUFBRUEsSUFBSztJQUNYc0MsV0FBVyxFQUFFLFNBQVU7SUFDdkJFLG1CQUFtQixFQUFFQSxtQkFBb0I7SUFDekM0SyxZQUFZLEVBQUVBLENBQUEsS0FBTXBMLE9BQU8sQ0FBQyxJQUFJLENBQUU7SUFDbENxTCxlQUFlLEVBQUV2TCxLQUFLLENBQUNvRyxpQkFBaUIsR0FBRztNQUN2Q3JCLEVBQUUsRUFBRSxXQUFXO01BQ2ZzQixJQUFJLEVBQUU7SUFDVixDQUFDLEdBQUcsSUFBSztJQUNUbUYsaUJBQWlCLEVBQUVBLENBQUEsS0FBTTtNQUNyQnhELGVBQWUsQ0FBQyxDQUFDO0lBQ3JCLENBQUU7SUFDRnlELFdBQVcsR0FBQXhMLGtCQUFBLEdBQUVELEtBQUssQ0FBQ3lMLFdBQVcsY0FBQXhMLGtCQUFBLGNBQUFBLGtCQUFBLEdBQUksRUFBRztJQUNyQ2lCLElBQUksRUFBRTtNQUNGd0ssVUFBVSxFQUFFLEVBQUU7TUFDZEMsSUFBSSxFQUFFLEVBQUU7TUFDUkMsTUFBTSxFQUFFMUs7SUFDWixDQUFFO0lBQ0YySyxTQUFTLEVBQUU3TCxLQUFLLENBQUM2TCxTQUFVO0lBQzNCOUQsWUFBWSxFQUFFQTtFQUFhLEVBQzlCLENBQUMsRUFBQyxHQUNPLENBQUMsZUFDZnpOLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQ3ZJLElBQUk7SUFBQ1osSUFBSSxFQUFFQTtFQUFLLGdCQUNiNUQsS0FBQSxDQUFBK00sYUFBQSxDQUFDNU0sU0FBQSxDQUFBd08sT0FBTyxNQUFFLENBQUMsZUFDWDNPLEtBQUEsQ0FBQStNLGFBQUE7SUFBSzdGLFNBQVMsRUFBQyx3QkFBd0I7SUFBQ3NLLEtBQUssRUFBRTtNQUFDaEMsTUFBTSxFQUFFLG9CQUFvQjtNQUFFaUMsU0FBUyxFQUFFO0lBQW9CO0VBQUUsZ0JBQzNHelIsS0FBQSxDQUFBK00sYUFBQTtJQUFLN0YsU0FBUyxFQUFDO0VBQThDLGdCQUN6RGxILEtBQUEsQ0FBQStNLGFBQUE7SUFBS3lFLEtBQUssRUFBRTtNQUNSM04sS0FBSyxFQUFFMkQsWUFBWSxHQUFHLG9CQUFvQixHQUFHLE1BQU07TUFDbkRnSSxNQUFNLEVBQUUsTUFBTTtNQUNka0MsUUFBUSxFQUFFLE1BQU07TUFDaEJ0QixRQUFRLEVBQUUsTUFBTTtNQUNoQnVCLFVBQVUsRUFBRTtJQUNoQjtFQUFFLGdCQUNFM1IsS0FBQSxDQUFBK00sYUFBQSxDQUFDbE0sU0FBQSxDQUFBYyxPQUFRO0lBQUM2RixZQUFZLEVBQUVBLFlBQWE7SUFBQ29LLFVBQVUsRUFBRWhPLElBQUksR0FBR1YsWUFBWSxHQUFHRTtFQUFXLENBQUMsQ0FDbkYsQ0FBQyxlQUNOcEQsS0FBQSxDQUFBK00sYUFBQTtJQUFLN0YsU0FBUyxFQUFFLDBCQUEyQjtJQUFDc0ssS0FBSyxFQUFFO01BQy9DM04sS0FBSyxFQUFFMkQsWUFBWSxHQUFHLE9BQU8sR0FBRyxHQUFHO01BQUVxSyxNQUFNLEVBQUU7SUFDakQ7RUFBRSxnQkFDRTdSLEtBQUEsQ0FBQStNLGFBQUEsQ0FBQzNMLGVBQUEsQ0FBQU8sT0FBYztJQUFDbVEsa0JBQWtCLEVBQUd4RixLQUFLLElBQUs7TUFDM0M3RSxlQUFlLENBQUM2RSxLQUFLLENBQUN5RixNQUFNLENBQUM7SUFDakM7RUFBRSxDQUFDLENBQ0YsQ0FDSixDQUNKLENBQ0gsQ0FDTCxDQUFDO0FBRWQ7QUFFQXRNLHVCQUF1QixDQUFDdU0sU0FBUyxHQUFHO0VBQ2hDQyxRQUFRLEVBQUVDLGtCQUFTLENBQUNDLE9BQU87RUFDM0J0TyxLQUFLLEVBQUVxTyxrQkFBUyxDQUFDRSxNQUFNO0VBQ3ZCbEksUUFBUSxFQUFFZ0ksa0JBQVMsQ0FBQ0csTUFBTTtFQUMxQnZHLGlCQUFpQixFQUFFb0csa0JBQVMsQ0FBQ0ksSUFBSTtFQUNqQzFMLElBQUksRUFBRXNMLGtCQUFTLENBQUNLLE1BQU07RUFDdEJoQixTQUFTLEVBQUVXLGtCQUFTLENBQUNHLE1BQU07RUFDM0JsQixXQUFXLEVBQUVlLGtCQUFTLENBQUNHLE1BQU07RUFDN0I5QyxNQUFNLEVBQUUyQyxrQkFBUyxDQUFDSyxNQUFNO0VBQ3hCOUosY0FBYyxFQUFFeUosa0JBQVMsQ0FBQ007QUFDOUIsQ0FBQyIsImlnbm9yZUxpc3QiOltdfQ==
|
|
475
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJuYW1lcyI6WyJSZWFjdCIsIl9pbnRlcm9wUmVxdWlyZVdpbGRjYXJkIiwicmVxdWlyZSIsIl9tYXRlcmlhbCIsIl9NZW51T3BlbiIsIl9pbnRlcm9wUmVxdWlyZURlZmF1bHQiLCJfTWVudSIsIl9NYWlsIiwiX0xvZ291dCIsIl9NYW5hZ2VBY2NvdW50cyIsIl93aXRoV2lkdGgiLCJfcHJvcFR5cGVzIiwiX1V0aWxzIiwiX1ZpZXdQb3J0IiwiX3JlYWN0Um91dGVyRG9tIiwiX3BlcmZlY3RTY3JvbGxiYXIiLCJfSG9tZU5hdmJhciIsIl9EYXNoYm9hcmRTdG9yZSIsIl9BcHBsaWNhdGlvbk1hbmFnZXIiLCJfU29ja2V0TWFuYWdlciIsIl9XaW5kb3dWaWV3UG9ydCIsIl9BY3Rpb25IYW5kbGVycyIsIl9Gb2xkaW5nVGFiU2lkZWJhciIsIl9zdHlsZXMiLCJfdXNlTWVkaWFRdWVyeSIsImUiLCJfX2VzTW9kdWxlIiwiZGVmYXVsdCIsInQiLCJXZWFrTWFwIiwiciIsIm4iLCJvIiwiaSIsImYiLCJfX3Byb3RvX18iLCJoYXMiLCJnZXQiLCJzZXQiLCJoYXNPd25Qcm9wZXJ0eSIsImNhbGwiLCJPYmplY3QiLCJkZWZpbmVQcm9wZXJ0eSIsImdldE93blByb3BlcnR5RGVzY3JpcHRvciIsIl9leHRlbmRzIiwiYXNzaWduIiwiYmluZCIsImFyZ3VtZW50cyIsImxlbmd0aCIsImFwcGx5IiwiRFJBV0VSX1dJRFRIIiwiZXhwb3J0cyIsIk1JTklfV0lEVEgiLCJEcmF3ZXJTdHlsZWQiLCJzdHlsZWQiLCJEcmF3ZXIiLCJzaG91bGRGb3J3YXJkUHJvcCIsInByb3AiLCJfcmVmIiwidGhlbWUiLCJvcGVuIiwid2lkdGgiLCJmbGV4U2hyaW5rIiwid2hpdGVTcGFjZSIsIm92ZXJmbG93WCIsInRyYW5zaXRpb24iLCJ0cmFuc2l0aW9ucyIsImNyZWF0ZSIsImVhc2luZyIsInNoYXJwIiwiZHVyYXRpb24iLCJzdGFuZGFyZCIsIk1haW4iLCJfcmVmMiIsImZsZXhHcm93IiwicGFkZGluZyIsImJhY2tncm91bmQiLCJwcyIsIkRBVEFfVVJMX1BSRUZJWCIsIm5vcm1hbGl6ZUxvZ28iLCJzcmMiLCJ1bmRlZmluZWQiLCJzIiwidHJpbSIsInRlc3QiLCJkdXAiLCJSZWdFeHAiLCJjb25jYXQiLCJyZXBsYWNlIiwiRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQiLCJwcm9wcyIsIl9wcm9wcyRhcHBMb2dvUGF0aCIsInNldE9wZW4iLCJ1c2VTdGF0ZSIsIm5hdkRyYXdlck9wZW4iLCJzZXROYXZEcmF3ZXJPcGVuIiwibG9hZGluZyIsInNldExvYWRpbmciLCJhY3RpdmVDb2xvciIsInNldEFjdGl2ZUNvbG9yIiwic2Vjb25kYXJ5VGhlbWVDb2xvciIsInNldFNlY29uZGFyeVRoZW1lQ29sb3IiLCJwcmltYXJ5VGhlbWVDb2xvciIsInNldFByaW1hcnlUaGVtZUNvbG9yIiwidGhlbWVUZXh0Q29sb3IiLCJzZXRUaGVtZVRleHRDb2xvciIsInJvdXRlcyIsInNldFJvdXRlcyIsImxvZ28iLCJzZXRMb2dvIiwic2lkZWJhck9wZW5lZCIsInNldFNpZGViYXJPcGVuZWQiLCJkb2N1bWVudCIsImRvY3VtZW50RWxlbWVudCIsImNsYXNzTmFtZSIsImluZGV4T2YiLCJzaWRlYmFyTWluaSIsInNldFNpZGViYXJNaW5pIiwib3BhY2l0eSIsInNldE9wYWNpdHkiLCJ3aW5kb3dQaW5uZWQiLCJzZXRXaW5kb3dQaW5uZWQiLCJ1c2VyTWVudUVsIiwic2V0VXNlck1lbnVFbCIsInVzZXJNZW51T3BlbiIsIkJvb2xlYW4iLCJoYW5kbGVVc2VyTWVudU9wZW4iLCJjdXJyZW50VGFyZ2V0IiwiaGFuZGxlVXNlck1lbnVDbG9zZSIsInVzZVRoZW1lIiwiaXNNb2JpbGUiLCJ1c2VNZWRpYVF1ZXJ5IiwiYnJlYWtwb2ludHMiLCJkb3duIiwiaGFuZGxlUHJvZmlsZSIsImxhdW5jaFZpZXciLCJoYW5kbGVMb2dvdXQiLCJsb2dvdXRDYWxsQmFjayIsImhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIiLCJoYW5kbGVCZ0NsaWNrIiwiY29sb3IiLCJ1c2VFZmZlY3QiLCJhcHBsaWNhdGlvbk1hbmFnZXIiLCJzZXREYXNoYm9hcmRTdGF0ZSIsImxlZnRPZmZzZXQiLCJuYXZpZ2F0b3IiLCJwbGF0Zm9ybSIsImNsYXNzTGlzdCIsImFkZCIsInJlbW92ZSIsInRhYmxlcyIsInF1ZXJ5U2VsZWN0b3JBbGwiLCJQZXJmZWN0U2Nyb2xsYmFyIiwid2luZG93IiwiYWRkRXZlbnRMaXN0ZW5lciIsInNob3dOYXZiYXJCdXR0b24iLCJMQVJHRSIsIlNvY2tldHMiLCJpbml0IiwiZGlzY29ubmVjdCIsImJvZHkiLCJyZW1vdmVFdmVudExpc3RlbmVyIiwic2V0dGluZ3MiLCJzeXN0ZW1Qcm9maWxlRHRvIiwic2Vjb25kQ29ycG9yYXRlQnJhbmRDb2xvciIsImZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvciIsIlV0aWxzIiwiaXNOdWxsIiwiZGFzaGJvYXJkTWVudSIsImlkIiwibWVudXMiLCJteURhc2hib2FyZE1lbnUiLCJpdGVtcyIsImF0dHJpYnV0ZXMiLCJsYWJlbCIsInB1c2giLCJ1c2VyRGFzaGJvYXJkcyIsInVzZXJEYXNoYm9hcmQiLCJpdGVtIiwicGFyYW1ldGVycyIsIm1hcCIsImRhc2hib2FyZE5hbWUiLCJjcmVhdGVOZXdNZW51IiwibW9kdWxlcyIsIm1vZHVsZSIsImRhc2hCb2FyZE1lbnVCYXIiLCJqIiwibWVudSIsIm5ld1JvdXRlcyIsIm5ld1JvdXRlIiwic2hvd0Rhc2hib2FyZE1lbnUiLCJuYW1lIiwiaWNvbiIsImxheW91dCIsImxldmVsIiwiaXNQYXJlbnQiLCJyb3V0ZSIsImNvbGxhcHNlIiwic3RhdGUiLCJzZXR0aW5nc01lbnUiLCJ0b2dnbGVTaWRlYmFyIiwidG9nZ2xlIiwic2Nyb2xsVG9wIiwic2Nyb2xsaW5nRWxlbWVudCIsImdldFJvdXRlcyIsImtleSIsInZpZXdzIiwiY3JlYXRlRWxlbWVudCIsIlJvdXRlIiwicGF0aCIsImNvbXBvbmVudCIsImdldEFjdGl2ZVJvdXRlIiwiYWN0aXZlUm91dGUiLCJjb2xsYXBzZUFjdGl2ZVJvdXRlIiwibG9jYXRpb24iLCJocmVmIiwiaGFuZGxlQWN0aXZlQ2xpY2siLCJjbG9zZVNpZGViYXIiLCJsYXVuY2hEYXNoYm9hcmQiLCJjbG9zZUFsbFZpZXdzIiwibmF2aWdhdGUiLCJhY3Rpb25Db25maWciLCJhY3Rpb25UeXBlIiwicGFyZW50IiwiQWN0aW9uSGFuZGxlcnMiLCJpbnZva2VIYW5kbGVyIiwiQm94Iiwic3giLCJkaXNwbGF5IiwiQ3NzQmFzZWxpbmUiLCJBcHBCYXIiLCJwb3NpdGlvbiIsImVsZXZhdGlvbiIsInpJbmRleCIsImRyYXdlciIsIlRvb2xiYXIiLCJUb29sdGlwIiwidGl0bGUiLCJJY29uQnV0dG9uIiwiZWRnZSIsIm9uQ2xpY2siLCJtbCIsImZvbnRXZWlnaHQiLCJhbGlnbkl0ZW1zIiwic2l6ZSIsIkF2YXRhciIsImFsdCIsImF2YXRhciIsImhlaWdodCIsImJvcmRlclJhZGl1cyIsIk1lbnUiLCJhbmNob3JFbCIsIm9uQ2xvc2UiLCJ0cmFuc2Zvcm1PcmlnaW4iLCJob3Jpem9udGFsIiwidmVydGljYWwiLCJhbmNob3JPcmlnaW4iLCJQYXBlclByb3BzIiwibXQiLCJtaW5XaWR0aCIsIm92ZXJmbG93IiwiY29udGVudCIsInRvcCIsInJpZ2h0IiwiYmdjb2xvciIsInRyYW5zZm9ybSIsIk1lbnVJdGVtIiwiTGlzdEl0ZW1JY29uIiwiZm9udFNpemUiLCJUeXBvZ3JhcGh5IiwiRGl2aWRlciIsInZhcmlhbnQiLCJvbk9wZW5EcmF3ZXIiLCJhY3RpdmVSb3V0ZU1lbnUiLCJkYXNoYm9hcmRMYXVuY2hlciIsImFwcExvZ29QYXRoIiwib3V0dGVyTGluayIsInRleHQiLCJpbWdTcmMiLCJsb2dvU3R5bGUiLCJzdHlsZSIsIm1heEhlaWdodCIsIm14SGVpZ2h0IiwibWVudU9mZnNldCIsIm1hcmdpbiIsInN0YXRlQ2hhbmdlSGFuZGxlciIsInBpbm5lZCIsInByb3BUeXBlcyIsImNoaWxkcmVuIiwiUHJvcFR5cGVzIiwiZWxlbWVudCIsIm51bWJlciIsIm9iamVjdCIsImJvb2wiLCJzdHJpbmciLCJmdW5jIl0sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2xpYi9jb21wb25lbnRzL2Rhc2hib2FyZC9Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5qc3giXSwic291cmNlc0NvbnRlbnQiOlsiLy8gRm9sZGluZ1NpZGVUYWJEYXNoYm9hcmQuanN4XG5pbXBvcnQgKiBhcyBSZWFjdCBmcm9tIFwicmVhY3RcIjtcbmltcG9ydCB7XG4gICAgQXBwQmFyLFxuICAgIFRvb2xiYXIsXG4gICAgSWNvbkJ1dHRvbixcbiAgICBEcmF3ZXIsXG4gICAgTGlzdCxcbiAgICBMaXN0SXRlbUJ1dHRvbixcbiAgICBMaXN0SXRlbUljb24sXG4gICAgTGlzdEl0ZW1UZXh0LFxuICAgIEJveCxcbiAgICBDc3NCYXNlbGluZSxcbiAgICBUb29sdGlwLFxuICAgIEF2YXRhcixcbiAgICBNZW51LFxuICAgIE1lbnVJdGVtLFxuICAgIERpdmlkZXIsXG4gICAgVHlwb2dyYXBoeVxufSBmcm9tIFwiQG11aS9tYXRlcmlhbFwiO1xuaW1wb3J0IE1lbnVPcGVuSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NZW51T3BlblwiO1xuaW1wb3J0IE1lbnVJY29uIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01lbnVcIjtcbmltcG9ydCBNYWlsSWNvbiBmcm9tIFwiQG11aS9pY29ucy1tYXRlcmlhbC9NYWlsXCI7XG5pbXBvcnQgTG9nb3V0IGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL0xvZ291dFwiO1xuaW1wb3J0IE1hbmFnZUFjY291bnRzIGZyb20gXCJAbXVpL2ljb25zLW1hdGVyaWFsL01hbmFnZUFjY291bnRzXCI7XG5pbXBvcnQgeyBQYXBlciB9IGZyb20gXCJAbXVpL21hdGVyaWFsXCI7XG5cbmltcG9ydCB7IExBUkdFIH0gZnJvbSBcIm1hdGVyaWFsLXVpL3V0aWxzL3dpdGhXaWR0aFwiO1xuaW1wb3J0IFByb3BUeXBlcyBmcm9tIFwicHJvcC10eXBlc1wiO1xuaW1wb3J0IFV0aWxzIGZyb20gXCIuLi8uLi9VdGlsc1wiO1xuaW1wb3J0IFZpZXdQb3J0IGZyb20gXCIuLi9sYXlvdXQvVmlld1BvcnRcIjtcbmltcG9ydCB7IFJvdXRlIH0gZnJvbSBcInJlYWN0LXJvdXRlci1kb21cIjtcbmltcG9ydCBQZXJmZWN0U2Nyb2xsYmFyIGZyb20gXCJwZXJmZWN0LXNjcm9sbGJhclwiO1xuaW1wb3J0IEhvbWVOYXZiYXIgZnJvbSBcIi4uL25hdmJhcnMvSG9tZU5hdmJhclwiO1xuaW1wb3J0IHsgYWN0aW9uQ3JlYXRvcnMgfSBmcm9tIFwiLi4vLi4vcmVkdXgvc3RvcmUvRGFzaGJvYXJkU3RvcmVcIjtcbmltcG9ydCBhcHBsaWNhdGlvbk1hbmFnZXIgZnJvbSBcIi4uLy4uL0FwcGxpY2F0aW9uTWFuYWdlclwiO1xuaW1wb3J0IFNvY2tldHMgZnJvbSBcIi4uL1NvY2tldE1hbmFnZXJcIjtcbmltcG9ydCBXaW5kb3dWaWV3UG9ydCBmcm9tIFwiLi4vbGF5b3V0L1dpbmRvd1ZpZXdQb3J0XCI7XG5pbXBvcnQgXCIuL0ZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkLmNzc1wiO1xuaW1wb3J0IEFjdGlvbkhhbmRsZXJzIGZyb20gXCIuLi8uLi9ldmVudC9BY3Rpb25IYW5kbGVyc1wiO1xuaW1wb3J0IEZvbGRpbmdUYWJTaWRlYmFyIGZyb20gXCIuL2NvbXBvbmVudHMvYmxhY2tEYXNoYm9hcmQvc2lkZWJhci9Gb2xkaW5nVGFiU2lkZWJhclwiO1xuaW1wb3J0IHsgc3R5bGVkLCB1c2VUaGVtZSB9IGZyb20gXCJAbXVpL21hdGVyaWFsL3N0eWxlc1wiO1xuaW1wb3J0IHVzZU1lZGlhUXVlcnkgZnJvbSBcIkBtdWkvbWF0ZXJpYWwvdXNlTWVkaWFRdWVyeVwiO1xuXG5leHBvcnQgY29uc3QgRFJBV0VSX1dJRFRIID0gMzIwO1xuY29uc3QgTUlOSV9XSURUSCA9IDcyO1xuXG5jb25zdCBEcmF3ZXJTdHlsZWQgPSBzdHlsZWQoRHJhd2VyLCB7XG4gICAgc2hvdWxkRm9yd2FyZFByb3A6IChwcm9wKSA9PiBwcm9wICE9PSBcIm9wZW5cIlxufSkoKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICB3aWR0aDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEgsXG4gICAgZmxleFNocmluazogMCxcbiAgICB3aGl0ZVNwYWNlOiBcIm5vd3JhcFwiLFxuICAgIFwiJiAuTXVpRHJhd2VyLXBhcGVyXCI6IHtcbiAgICAgICAgd2lkdGg6IG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRILFxuICAgICAgICBvdmVyZmxvd1g6IFwiaGlkZGVuXCIsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIndpZHRoXCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pXG4gICAgfVxufSkpO1xuXG5jb25zdCBNYWluID0gc3R5bGVkKFwibWFpblwiLCB7IHNob3VsZEZvcndhcmRQcm9wOiAocHJvcCkgPT4gcHJvcCAhPT0gXCJvcGVuXCIgfSkoXG4gICAgKHsgdGhlbWUsIG9wZW4gfSkgPT4gKHtcbiAgICAgICAgZmxleEdyb3c6IDEsXG4gICAgICAgIHRyYW5zaXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmNyZWF0ZShcIm1hcmdpbi1sZWZ0XCIsIHtcbiAgICAgICAgICAgIGVhc2luZzogdGhlbWUudHJhbnNpdGlvbnMuZWFzaW5nLnNoYXJwLFxuICAgICAgICAgICAgZHVyYXRpb246IHRoZW1lLnRyYW5zaXRpb25zLmR1cmF0aW9uLnN0YW5kYXJkXG4gICAgICAgIH0pLFxuICAgICAgICBwYWRkaW5nOiAwLFxuICAgICAgICBiYWNrZ3JvdW5kOiBcInRyYW5zcGFyZW50XCJcbiAgICB9KVxuKTtcblxubGV0IHBzO1xuY29uc3QgREFUQV9VUkxfUFJFRklYID0gXCJkYXRhOmltYWdlL3BuZztiYXNlNjQsXCI7XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZUxvZ28oc3JjKSB7XG4gICAgaWYgKCFzcmMpIHJldHVybiB1bmRlZmluZWQ7XG4gICAgY29uc3QgcyA9IHNyYy50cmltKCk7XG5cbiAgICBpZiAoL15kYXRhOi9pLnRlc3QocykpIHtcbiAgICAgICAgY29uc3QgZHVwID0gbmV3IFJlZ0V4cChgXigke0RBVEFfVVJMX1BSRUZJWH0pK2AsIFwiaVwiKTtcbiAgICAgICAgcmV0dXJuIHMucmVwbGFjZShkdXAsIERBVEFfVVJMX1BSRUZJWCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIERBVEFfVVJMX1BSRUZJWCArIHM7XG59XG5cbmV4cG9ydCBkZWZhdWx0IGZ1bmN0aW9uIEZvbGRpbmdTaWRlVGFiRGFzaGJvYXJkKHByb3BzKSB7XG4gICAgY29uc3QgW29wZW4sIHNldE9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW25hdkRyYXdlck9wZW4sIHNldE5hdkRyYXdlck9wZW5dID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2xvYWRpbmcsIHNldExvYWRpbmddID0gUmVhY3QudXNlU3RhdGUodHJ1ZSk7XG4gICAgY29uc3QgW2FjdGl2ZUNvbG9yLCBzZXRBY3RpdmVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcImJsdWVcIik7XG4gICAgY29uc3QgW3NlY29uZGFyeVRoZW1lQ29sb3IsIHNldFNlY29uZGFyeVRoZW1lQ29sb3JdID0gUmVhY3QudXNlU3RhdGUoXCJcIik7XG4gICAgY29uc3QgW3ByaW1hcnlUaGVtZUNvbG9yLCBzZXRQcmltYXJ5VGhlbWVDb2xvcl0gPSBSZWFjdC51c2VTdGF0ZShcIlwiKTtcbiAgICBjb25zdCBbdGhlbWVUZXh0Q29sb3IsIHNldFRoZW1lVGV4dENvbG9yXSA9IFJlYWN0LnVzZVN0YXRlKFwiXCIpO1xuICAgIGNvbnN0IFtyb3V0ZXMsIHNldFJvdXRlc10gPSBSZWFjdC51c2VTdGF0ZShbXSk7XG4gICAgY29uc3QgW2xvZ28sIHNldExvZ29dID0gUmVhY3QudXNlU3RhdGUobm9ybWFsaXplTG9nbyhwcm9wcy5sb2dvKSk7XG4gICAgY29uc3QgW3NpZGViYXJPcGVuZWQsIHNldFNpZGViYXJPcGVuZWRdID0gUmVhY3QudXNlU3RhdGUoXG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc05hbWUuaW5kZXhPZihcIm5hdi1vcGVuXCIpICE9PSAtMVxuICAgICk7XG4gICAgY29uc3QgW3NpZGViYXJNaW5pLCBzZXRTaWRlYmFyTWluaV0gPSBSZWFjdC51c2VTdGF0ZSh0cnVlKTtcbiAgICBjb25zdCBbb3BhY2l0eSwgc2V0T3BhY2l0eV0gPSBSZWFjdC51c2VTdGF0ZSgwKTtcbiAgICBjb25zdCBbd2luZG93UGlubmVkLCBzZXRXaW5kb3dQaW5uZWRdID0gUmVhY3QudXNlU3RhdGUoZmFsc2UpO1xuXG4gICAgLy8gQXZhdGFyIG1lbnUgc3RhdGVcbiAgICBjb25zdCBbdXNlck1lbnVFbCwgc2V0VXNlck1lbnVFbF0gPSBSZWFjdC51c2VTdGF0ZShudWxsKTtcbiAgICBjb25zdCB1c2VyTWVudU9wZW4gPSBCb29sZWFuKHVzZXJNZW51RWwpO1xuICAgIGNvbnN0IGhhbmRsZVVzZXJNZW51T3BlbiA9IChlKSA9PiBzZXRVc2VyTWVudUVsKGUuY3VycmVudFRhcmdldCk7XG4gICAgY29uc3QgaGFuZGxlVXNlck1lbnVDbG9zZSA9ICgpID0+IHNldFVzZXJNZW51RWwobnVsbCk7XG4gICAgY29uc3QgdGhlbWUgPSB1c2VUaGVtZSgpO1xuICAgIGNvbnN0IGlzTW9iaWxlID0gdXNlTWVkaWFRdWVyeSh0aGVtZS5icmVha3BvaW50cy5kb3duKFwic21cIikpO1xuXG4gICAgY29uc3QgaGFuZGxlUHJvZmlsZSA9ICgpID0+IHtcbiAgICAgICAgaGFuZGxlVXNlck1lbnVDbG9zZSgpO1xuICAgICAgICBsYXVuY2hWaWV3KFwiL3N5c3RlbS92aWV3cy91c2VyLXByb2ZpbGUuanNvblwiKTtcbiAgICB9O1xuXG4gICAgY29uc3QgaGFuZGxlTG9nb3V0ID0gKCkgPT4ge1xuICAgICAgICBoYW5kbGVVc2VyTWVudUNsb3NlKCk7XG4gICAgICAgIHByb3BzLmxvZ291dENhbGxCYWNrICYmIHByb3BzLmxvZ291dENhbGxCYWNrKCk7XG4gICAgfTtcblxuICAgIGNvbnN0IGhhbmRsZUNoYW5nZVJlcXVlc3ROYXZEcmF3ZXIgPSAoKSA9PiB7XG4gICAgICAgIHNldE5hdkRyYXdlck9wZW4oIW5hdkRyYXdlck9wZW4pO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVCZ0NsaWNrID0gKGNvbG9yKSA9PiB7XG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKGNvbG9yKTtcbiAgICB9O1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKGlzTW9iaWxlKSB7XG4gICAgICAgICAgICBzZXRPcGVuKGZhbHNlKTsgICAvLyBhdXRvIGNvbGxhcHNlIHdoZW4gc2NyZWVuIGlzIHNtYWxsXG4gICAgICAgIH1cbiAgICB9LCBbaXNNb2JpbGVdKTtcblxuICAgIFJlYWN0LnVzZUVmZmVjdCgoKSA9PiB7XG4gICAgICAgIGFwcGxpY2F0aW9uTWFuYWdlci5zZXREYXNoYm9hcmRTdGF0ZSh7bGVmdE9mZnNldDogb3BlbiA/IERSQVdFUl9XSURUSCA6IE1JTklfV0lEVEh9KVxuICAgIH0sIFtvcGVuXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBpZiAobmF2aWdhdG9yLnBsYXRmb3JtLmluZGV4T2YoXCJXaW5cIikgPiAtMSkge1xuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LmNsYXNzTGlzdC5hZGQoXCJwZXJmZWN0LXNjcm9sbGJhci1vblwiKTtcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwicGVyZmVjdC1zY3JvbGxiYXItb2ZmXCIpO1xuICAgICAgICAgICAgbGV0IHRhYmxlcyA9IGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXCIudGFibGUtcmVzcG9uc2l2ZVwiKTtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGFibGVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgcHMgPSBuZXcgUGVyZmVjdFNjcm9sbGJhcih0YWJsZXNbaV0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuICAgIH0pO1xuXG4gICAgUmVhY3QudXNlRWZmZWN0KCgpID0+IHtcbiAgICAgICAgaWYgKHByb3BzLndpZHRoICE9PSBudWxsICYmIHR5cGVvZiBwcm9wcy53aWR0aCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgICAgICAgICAgc2V0TmF2RHJhd2VyT3Blbihwcm9wcy53aWR0aCA9PT0gTEFSR0UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLndpZHRoXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBTb2NrZXRzLmluaXQoKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLnNldERhc2hib2FyZFN0YXRlKHtsZWZ0T2Zmc2V0OiBvcGVuID8gRFJBV0VSX1dJRFRIIDogTUlOSV9XSURUSH0pXG4gICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICBTb2NrZXRzLmRpc2Nvbm5lY3QoKTtcbiAgICAgICAgfTtcbiAgICB9LCBbXSk7XG5cbiAgICBSZWFjdC51c2VFZmZlY3QoKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmNsYXNzTGlzdC5hZGQoXCJ3aGl0ZS1jb250ZW50XCIpO1xuXG4gICAgICAgIGlmIChuYXZpZ2F0b3IucGxhdGZvcm0uaW5kZXhPZihcIldpblwiKSA+IC0xKSB7XG4gICAgICAgICAgICAvLyBLZWVwaW5nIGZvciBwYXJpdHkgd2l0aCB5b3VyIG9yaWdpbmFsIGNvZGVcbiAgICAgICAgfVxuXG4gICAgICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKFwic2Nyb2xsXCIsIHNob3dOYXZiYXJCdXR0b24pO1xuXG4gICAgICAgIHNldEFjdGl2ZUNvbG9yKFwiYWdpbGl0eVwiKTtcbiAgICAgICAgc2V0U2Vjb25kYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLnNlY29uZENvcnBvcmF0ZUJyYW5kQ29sb3IpO1xuICAgICAgICBzZXRQcmltYXJ5VGhlbWVDb2xvcihwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLmZpcnN0Q29ycG9yYXRlQnJhbmRDb2xvcik7XG4gICAgICAgIHNldFRoZW1lVGV4dENvbG9yKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8udGhlbWVUZXh0Q29sb3IpO1xuXG4gICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzKSkge1xuICAgICAgICAgICAgbGV0IGRhc2hib2FyZE1lbnUgPSB7fTtcbiAgICAgICAgICAgIGRhc2hib2FyZE1lbnUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cyA9IFtdO1xuXG4gICAgICAgICAgICBsZXQgbXlEYXNoYm9hcmRNZW51ID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaWQgPSBcIm15RGFzaGJvYXJkXCI7XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuaXRlbXMgPSBbXTtcbiAgICAgICAgICAgIG15RGFzaGJvYXJkTWVudS5hdHRyaWJ1dGVzID0ge307XG4gICAgICAgICAgICBteURhc2hib2FyZE1lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiTXkgRGFzaGJvYXJkc1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKG15RGFzaGJvYXJkTWVudSk7XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnVzZXJEYXNoYm9hcmRzKSkge1xuICAgICAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcHJvcHMuc2V0dGluZ3MudXNlckRhc2hib2FyZHMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IHVzZXJEYXNoYm9hcmQgPSBwcm9wcy5zZXR0aW5ncy51c2VyRGFzaGJvYXJkc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgbGV0IGl0ZW0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgaXRlbS5pZCA9IHVzZXJEYXNoYm9hcmQuaWQ7XG4gICAgICAgICAgICAgICAgICAgIGl0ZW0uYXR0cmlidXRlcyA9IHt9O1xuICAgICAgICAgICAgICAgICAgICBpdGVtLmF0dHJpYnV0ZXMubGFiZWwgPSB1c2VyRGFzaGJvYXJkLnBhcmFtZXRlcnMubWFwLmRhc2hib2FyZE5hbWU7XG5cbiAgICAgICAgICAgICAgICAgICAgbXlEYXNoYm9hcmRNZW51Lml0ZW1zLnB1c2goaXRlbSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBsZXQgY3JlYXRlTmV3TWVudSA9IHt9O1xuICAgICAgICAgICAgY3JlYXRlTmV3TWVudS5pZCA9IFwiY3JlYXRlTmV3XCI7XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51Lml0ZW1zID0gW107XG4gICAgICAgICAgICBjcmVhdGVOZXdNZW51LmF0dHJpYnV0ZXMgPSB7fTtcbiAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuYXR0cmlidXRlcy5sYWJlbCA9IFwiQ3JlYXRlIE5ld1wiO1xuICAgICAgICAgICAgZGFzaGJvYXJkTWVudS5tZW51cy5wdXNoKGNyZWF0ZU5ld01lbnUpO1xuXG4gICAgICAgICAgICBpZiAoIVV0aWxzLmlzTnVsbChwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMpKSB7XG4gICAgICAgICAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBwcm9wcy5zZXR0aW5ncy5zeXN0ZW1Qcm9maWxlRHRvLm1vZHVsZXMubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgICAgICAgICAgICAgbGV0IG1vZHVsZSA9IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlc1tpXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFVdGlscy5pc051bGwobW9kdWxlLmRhc2hCb2FyZE1lbnVCYXIpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBmb3IgKGxldCBqID0gMDsgaiA8IG1vZHVsZS5kYXNoQm9hcmRNZW51QmFyLm1lbnVzLmxlbmd0aDsgaisrKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IG1lbnUgPSBtb2R1bGUuZGFzaEJvYXJkTWVudUJhci5tZW51c1tqXTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8vIFRvIGtlZXAgdGhlIG1vZHVsZSBjbGFzc2lmaWNhdGlvbiwgcmVwbGFjZSB0aGUgbGluZSBiZWxvdyB3aXRoIGNyZWF0ZU5ld01lbnUuaXRlbXMucHVzaChtZW51KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWF0ZU5ld01lbnUuaXRlbXMgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmNvbmNhdChtZW51Lml0ZW1zKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgbGV0IG5ld1JvdXRlcyA9IFtdO1xuICAgICAgICAgICAgbGV0IG5ld1JvdXRlID0ge307XG5cbiAgICAgICAgICAgIGlmIChVdGlscy5pc051bGwocHJvcHMuc2hvd0Rhc2hib2FyZE1lbnUpIHx8IHByb3BzLnNob3dEYXNoYm9hcmRNZW51KSB7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiRGFzaGJvYXJkXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUuaWQgPSBcImRhc2hib2FyZFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmljb24gPSBcImZhIGZhLXBpZS1jaGFydFwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmxheW91dCA9IFwiL2FkbWluXCI7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZXMucHVzaChuZXdSb3V0ZSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmICghVXRpbHMuaXNOdWxsKHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcykpIHtcbiAgICAgICAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHByb3BzLnNldHRpbmdzLnN5c3RlbVByb2ZpbGVEdG8ubW9kdWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgICAgICAgICBsZXQgbW9kdWxlID0gcHJvcHMuc2V0dGluZ3Muc3lzdGVtUHJvZmlsZUR0by5tb2R1bGVzW2ldO1xuICAgICAgICAgICAgICAgICAgICBsZXQgcm91dGUgPSB7fTtcblxuICAgICAgICAgICAgICAgICAgICByb3V0ZS5uYW1lID0gbW9kdWxlLmxhYmVsO1xuICAgICAgICAgICAgICAgICAgICByb3V0ZS5pY29uID0gbW9kdWxlLmljb247XG4gICAgICAgICAgICAgICAgICAgIHJvdXRlLm1lbnUgPSBtb2R1bGUubWVudTtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGF5b3V0ID0gXCIvYWRtaW5cIjtcbiAgICAgICAgICAgICAgICAgICAgcm91dGUubGV2ZWwgPSAwO1xuXG4gICAgICAgICAgICAgICAgICAgIGlmIChtb2R1bGUubWVudSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuY29sbGFwc2UgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgcm91dGUuc3RhdGUgPSBtb2R1bGUubmFtZSArIFwiQ29sbGFwc2VcIjtcbiAgICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKHJvdXRlKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGlmIChwcm9wcy5zZXR0aW5ncy5zZXR0aW5nc01lbnUpIHtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZSA9IHt9O1xuXG4gICAgICAgICAgICAgICAgbmV3Um91dGUubmFtZSA9IFwiU2V0dGluZ3NcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5pY29uID0gXCJmYSBmYS1jb2dcIjtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5sYXlvdXQgPSBcIi9hZG1pblwiO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLmlzUGFyZW50ID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5jb2xsYXBzZSA9IHRydWU7XG4gICAgICAgICAgICAgICAgbmV3Um91dGUubGV2ZWwgPSAwO1xuICAgICAgICAgICAgICAgIG5ld1JvdXRlLm1lbnUgPSBcIlwiOyAvLyBUT0RPIDogc2V0IG1lbnUgdmFsdWVcbiAgICAgICAgICAgICAgICBuZXdSb3V0ZS5zdGF0ZSA9IFwic2V0dGluZ3NNZW51Q29sbGFwc2VcIjtcblxuICAgICAgICAgICAgICAgIG5ld1JvdXRlcy5wdXNoKG5ld1JvdXRlKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgc2V0Um91dGVzKG5ld1JvdXRlcyk7XG5cbiAgICAgICAgICAgIHByb3BzLnNldHRpbmdzLmRhc2hib2FyZE1lbnUgPSBjcmVhdGVOZXdNZW51Lml0ZW1zLmxlbmd0aCA+IDAgPyBkYXNoYm9hcmRNZW51IDogbnVsbDtcbiAgICAgICAgICAgIHNldExvYWRpbmcoZmFsc2UpO1xuICAgICAgICB9XG4gICAgfSwgW3Byb3BzLnNldHRpbmdzXSk7XG5cbiAgICBjb25zdCB0b2dnbGVTaWRlYmFyID0gKCkgPT4ge1xuICAgICAgICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuY2xhc3NMaXN0LnRvZ2dsZShcIm5hdi1vcGVuXCIpO1xuICAgICAgICBzZXRTaWRlYmFyT3BlbmVkKCFzaWRlYmFyT3BlbmVkKTtcbiAgICB9O1xuXG4gICAgY29uc3Qgc2hvd05hdmJhckJ1dHRvbiA9ICgpID0+IHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcCA+IDUwIHx8XG4gICAgICAgICAgICBkb2N1bWVudC5zY3JvbGxpbmdFbGVtZW50LnNjcm9sbFRvcCA+IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgxKTtcbiAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5zY3JvbGxUb3AgPD0gNTAgfHxcbiAgICAgICAgICAgIGRvY3VtZW50LnNjcm9sbGluZ0VsZW1lbnQuc2Nyb2xsVG9wIDw9IDUwXG4gICAgICAgICkge1xuICAgICAgICAgICAgc2V0T3BhY2l0eSgwKTtcbiAgICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBnZXRSb3V0ZXMgPSAocm91dGVzKSA9PiB7XG4gICAgICAgIHJldHVybiByb3V0ZXMubWFwKChwcm9wLCBrZXkpID0+IHtcbiAgICAgICAgICAgIGlmIChwcm9wLmNvbGxhcHNlKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGdldFJvdXRlcyhwcm9wLnZpZXdzKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgaWYgKHByb3AubGF5b3V0ID09PSBcIi9hZG1pblwiKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgPFJvdXRlXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwcm9wLmxheW91dCArIHByb3AucGF0aH1cbiAgICAgICAgICAgICAgICAgICAgICAgIGNvbXBvbmVudD17cHJvcC5jb21wb25lbnR9XG4gICAgICAgICAgICAgICAgICAgICAgICBrZXk9e2tleX1cbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gbnVsbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfTtcblxuICAgIGNvbnN0IGdldEFjdGl2ZVJvdXRlID0gKHJvdXRlcykgPT4ge1xuICAgICAgICBsZXQgYWN0aXZlUm91dGUgPSBcIkRhc2hib2FyZFwiO1xuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHJvdXRlcy5sZW5ndGg7IGkrKykge1xuICAgICAgICAgICAgaWYgKHJvdXRlc1tpXS5jb2xsYXBzZSAmJiByb3V0ZXNbaV0udmlld3MpIHtcbiAgICAgICAgICAgICAgICBsZXQgY29sbGFwc2VBY3RpdmVSb3V0ZSA9IGdldEFjdGl2ZVJvdXRlKHJvdXRlc1tpXS52aWV3cyk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbGxhcHNlQWN0aXZlUm91dGUgIT09IGFjdGl2ZVJvdXRlKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb2xsYXBzZUFjdGl2ZVJvdXRlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICB3aW5kb3cubG9jYXRpb24uaHJlZi5pbmRleE9mKHJvdXRlc1tpXS5sYXlvdXQgKyByb3V0ZXNbaV0ucGF0aCkgIT09IC0xXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiByb3V0ZXNbaV0ubmFtZTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGFjdGl2ZVJvdXRlO1xuICAgIH07XG5cbiAgICBjb25zdCBoYW5kbGVBY3RpdmVDbGljayA9IChjb2xvcikgPT4ge1xuICAgICAgICBzZXRBY3RpdmVDb2xvcihjb2xvcik7XG4gICAgfTtcblxuICAgIGNvbnN0IGNsb3NlU2lkZWJhciA9ICgpID0+IHtcbiAgICAgICAgc2V0U2lkZWJhck9wZW5lZChmYWxzZSk7XG4gICAgICAgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5jbGFzc0xpc3QucmVtb3ZlKFwibmF2LW9wZW5cIik7XG4gICAgfTtcblxuICAgIGZ1bmN0aW9uIGxhdW5jaERhc2hib2FyZCgpIHtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLmNsb3NlQWxsVmlld3MoKTtcbiAgICAgICAgLy9hcHBsaWNhdGlvbk1hbmFnZXIubmF2aWdhdGUoJy9zd2l0Y2gnKTtcbiAgICAgICAgYXBwbGljYXRpb25NYW5hZ2VyLm5hdmlnYXRlKFwiL3ZpZXcvZGFzaGJvYXJkXCIpO1xuICAgIH1cblxuICAgIGZ1bmN0aW9uIGxhdW5jaFZpZXcocGF0aCkge1xuICAgICAgICBsZXQgYWN0aW9uQ29uZmlnID0ge307XG4gICAgICAgIGFjdGlvbkNvbmZpZy5hY3Rpb25UeXBlID0gXCJyb3V0ZVwiO1xuICAgICAgICBhY3Rpb25Db25maWcucGF0aCA9IHBhdGg7XG4gICAgICAgIGFjdGlvbkNvbmZpZy5wYXJlbnQgPSB0cnVlO1xuXG4gICAgICAgIEFjdGlvbkhhbmRsZXJzLmludm9rZUhhbmRsZXIoYWN0aW9uQ29uZmlnKTtcbiAgICB9XG5cbiAgICBpZiAobG9hZGluZykge1xuICAgICAgICByZXR1cm4gPGRpdj5Mb2FkaW5nLi4uPC9kaXY+O1xuICAgIH1cblxuICAgIHJldHVybiAoXG4gICAgICAgIDxCb3ggc3g9e3sgZGlzcGxheTogXCJmbGV4XCIgfX0+XG4gICAgICAgICAgICA8Q3NzQmFzZWxpbmUgLz5cblxuICAgICAgICAgICAgey8qIEVuc3VyZSB0aGUgdG9nZ2xlIGJ1dHRvbiBhbHdheXMgc2l0cyBhYm92ZSB0aGUgZHJhd2VyICovfVxuICAgICAgICAgICAgPEFwcEJhclxuICAgICAgICAgICAgICAgIHBvc2l0aW9uPVwiZml4ZWRcIlxuICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgZWxldmF0aW9uPXsxfVxuICAgICAgICAgICAgICAgIHN4PXt7IHpJbmRleDogKHRoZW1lKSA9PiB0aGVtZS56SW5kZXguZHJhd2VyICsgMSB9fVxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDxUb29sYmFyPlxuICAgICAgICAgICAgICAgICAgICA8VG9vbHRpcCB0aXRsZT17b3BlbiA/IFwiQ29sbGFwc2UgbWVudVwiIDogXCJFeHBhbmQgbWVudVwifT5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxJY29uQnV0dG9uIGNvbG9yPVwiaW5oZXJpdFwiIGVkZ2U9XCJzdGFydFwiIG9uQ2xpY2s9eygpID0+IHNldE9wZW4oKG8pID0+ICFvKX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge29wZW4gPyA8TWVudU9wZW5JY29uIC8+IDogPE1lbnVJY29uIC8+fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8L1Rvb2x0aXA+XG4gICAgICAgICAgICAgICAgICAgIDxCb3ggc3g9e3sgbWw6IDEsIGZvbnRXZWlnaHQ6IDYwMCB9fT48L0JveD5cbiAgICAgICAgICAgICAgICAgICAgPEJveCBzeD17eyBtbDogXCJhdXRvXCIsIGRpc3BsYXk6IFwiZmxleFwiLCBhbGlnbkl0ZW1zOiBcImNlbnRlclwiIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgPFRvb2x0aXAgdGl0bGU9XCJBY2NvdW50XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPEljb25CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbGljaz17aGFuZGxlVXNlck1lbnVPcGVufVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzaXplPVwic21hbGxcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzeD17eyBtbDogMSB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWNvbnRyb2xzPXt1c2VyTWVudU9wZW4gPyBcImFjY291bnQtbWVudVwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhcmlhLWhhc3BvcHVwPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFyaWEtZXhwYW5kZWQ9e3VzZXJNZW51T3BlbiA/IFwidHJ1ZVwiIDogdW5kZWZpbmVkfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPEF2YXRhclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWx0PVwiVXNlclwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzcmM9e3Byb3BzLmF2YXRhcn1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN4PXt7IHdpZHRoOiAzNiwgaGVpZ2h0OiAzNiwgYm9yZGVyUmFkaXVzOiBcIjUwJVwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9JY29uQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9Ub29sdGlwPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICA8TWVudVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuY2hvckVsPXt1c2VyTWVudUVsfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiYWNjb3VudC1tZW51XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvcGVuPXt1c2VyTWVudU9wZW59XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25DbG9zZT17aGFuZGxlVXNlck1lbnVDbG9zZX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBvbkNsaWNrPXtoYW5kbGVVc2VyTWVudUNsb3NlfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRyYW5zZm9ybU9yaWdpbj17eyBob3Jpem9udGFsOiBcInJpZ2h0XCIsIHZlcnRpY2FsOiBcInRvcFwiIH19XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5jaG9yT3JpZ2luPXt7IGhvcml6b250YWw6IFwicmlnaHRcIiwgdmVydGljYWw6IFwiYm90dG9tXCIgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBQYXBlclByb3BzPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGVsZXZhdGlvbjogMyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3g6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG10OiAxLjUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtaW5XaWR0aDogMjIwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3ZlcmZsb3c6IFwidmlzaWJsZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgXCImOmJlZm9yZVwiOiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29udGVudDogJ1wiXCInLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpc3BsYXk6IFwiYmxvY2tcIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbjogXCJhYnNvbHV0ZVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRvcDogMCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByaWdodDogMTQsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IDEwLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogMTAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYmdjb2xvcjogXCJiYWNrZ3JvdW5kLnBhcGVyXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHJhbnNmb3JtOiBcInRyYW5zbGF0ZVkoLTUwJSkgcm90YXRlKDQ1ZGVnKVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHpJbmRleDogMFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0gb25DbGljaz17aGFuZGxlUHJvZmlsZX0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMaXN0SXRlbUljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWFuYWdlQWNjb3VudHMgZm9udFNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5Qcm9maWxlPC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPERpdmlkZXIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8TWVudUl0ZW0gb25DbGljaz17aGFuZGxlTG9nb3V0fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPExpc3RJdGVtSWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxMb2dvdXQgZm9udFNpemU9XCJzbWFsbFwiIC8+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTGlzdEl0ZW1JY29uPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8VHlwb2dyYXBoeT5Mb2cgb3V0PC9UeXBvZ3JhcGh5PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvTWVudUl0ZW0+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L01lbnU+XG4gICAgICAgICAgICAgICAgICAgIDwvQm94PlxuICAgICAgICAgICAgICAgIDwvVG9vbGJhcj5cbiAgICAgICAgICAgIDwvQXBwQmFyPlxuXG4gICAgICAgICAgICA8RHJhd2VyU3R5bGVkIHZhcmlhbnQ9e2lzTW9iaWxlID8gXCJ0ZW1wb3JhcnlcIiA6IFwicGVybWFuZW50XCJ9IG9wZW49e29wZW59PlxuICAgICAgICAgICAgICAgIDxUb29sYmFyIC8+XG4gICAgICAgICAgICAgICAgPEZvbGRpbmdUYWJTaWRlYmFyXG4gICAgICAgICAgICAgICAgICAgIHsuLi5wcm9wc31cbiAgICAgICAgICAgICAgICAgICAgcm91dGVzPXtyb3V0ZXN9XG4gICAgICAgICAgICAgICAgICAgIG9wZW49e29wZW59XG4gICAgICAgICAgICAgICAgICAgIGFjdGl2ZUNvbG9yPXsnYWdpbGl0eSd9XG4gICAgICAgICAgICAgICAgICAgIHNlY29uZGFyeVRoZW1lQ29sb3I9e3NlY29uZGFyeVRoZW1lQ29sb3J9XG4gICAgICAgICAgICAgICAgICAgIG9uT3BlbkRyYXdlcj17KCkgPT4gc2V0T3Blbih0cnVlKX1cbiAgICAgICAgICAgICAgICAgICAgYWN0aXZlUm91dGVNZW51PXtwcm9wcy5zaG93RGFzaGJvYXJkTWVudSA/IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkOiAnZGFzaGJvYXJkJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIG5hbWU6ICdEYXNoYm9hcmQnXG4gICAgICAgICAgICAgICAgICAgIH0gOiBudWxsfVxuICAgICAgICAgICAgICAgICAgICBkYXNoYm9hcmRMYXVuY2hlcj17KCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgbGF1bmNoRGFzaGJvYXJkKCk7XG4gICAgICAgICAgICAgICAgICAgIH19XG4gICAgICAgICAgICAgICAgICAgIGFwcExvZ29QYXRoPXtwcm9wcy5hcHBMb2dvUGF0aCA/PyAnJ31cbiAgICAgICAgICAgICAgICAgICAgbG9nbz17e1xuICAgICAgICAgICAgICAgICAgICAgICAgb3V0dGVyTGluazogJycsXG4gICAgICAgICAgICAgICAgICAgICAgICB0ZXh0OiAnJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGltZ1NyYzogbG9nbyxcbiAgICAgICAgICAgICAgICAgICAgfX1cbiAgICAgICAgICAgICAgICAgICAgbG9nb1N0eWxlPXtwcm9wcy5sb2dvU3R5bGV9XG4gICAgICAgICAgICAgICAgICAgIGNsb3NlU2lkZWJhcj17Y2xvc2VTaWRlYmFyfVxuICAgICAgICAgICAgICAgIC8+eycgJ31cbiAgICAgICAgICAgIDwvRHJhd2VyU3R5bGVkPlxuICAgICAgICAgICAgPE1haW4gb3Blbj17b3Blbn0+XG4gICAgICAgICAgICAgICAgPFRvb2xiYXIgLz5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT1cImRhc2hib2FyZC1tYWluLWNvbnRlbnRcIiBzdHlsZT17e2hlaWdodDogXCJjYWxjKDEwMHZoIC0gNzBweClcIiwgbWF4SGVpZ2h0OiBcImNhbGMoMTAwdmggLSA3MHB4KVwifX0+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3NOYW1lPVwiY29udGVudCB3LTEwMCBoLTEwMCByb3cgbm8tbWFyZ2luIG5vLXBhZGRpbmdcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9e3tcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBPbiBtb2JpbGUgYSBwaW5uZWQgd2luZG93IGNvbGxhcHNlcyB0byBhIGZsb2F0aW5nIHBpbGwsIHNvXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLy8gZG9uJ3QgcmVzZXJ2ZSB0aGUgMzIwcHggc3RyaXAgKGl0IHdvdWxkIHNocmluayBjb250ZW50IHRvIGFcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvLyBzbGl2ZXIgYW5kIG92ZXJmbG93IHRoZSB2aWV3cG9ydCkuIFBpbGwgZmxvYXRzIG92ZXIgY29udGVudC5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aDogd2luZG93UGlubmVkICYmICFpc01vYmlsZSA/ICdjYWxjKDEwMCUgLSAzMjBweCknIDogJzEwMCUnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIxMDAlXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbXhIZWlnaHQ6IFwiMTAwJVwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG92ZXJmbG93OiAnYXV0bydcbiAgICAgICAgICAgICAgICAgICAgICAgIH19PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxWaWV3UG9ydCB3aW5kb3dQaW5uZWQ9e3dpbmRvd1Bpbm5lZH0gbWVudU9mZnNldD17aXNNb2JpbGUgPyAwIDogKG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRIKX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17J2NvbCBuby1tYXJnaW4gbm8tcGFkZGluZyd9IHN0eWxlPXt7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGg6IHdpbmRvd1Bpbm5lZCAmJiAhaXNNb2JpbGUgPyAnMzIwcHgnIDogJzAnLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcmdpbjogd2luZG93UGlubmVkICYmICFpc01vYmlsZSA/ICc4cHgnIDogJzAnXG4gICAgICAgICAgICAgICAgICAgICAgICB9fT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8V2luZG93Vmlld1BvcnQgbWVudU9mZnNldD17aXNNb2JpbGUgPyAwIDogKG9wZW4gPyBEUkFXRVJfV0lEVEggOiBNSU5JX1dJRFRIKX0gc3RhdGVDaGFuZ2VIYW5kbGVyPXsoc3RhdGUpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2V0V2luZG93UGlubmVkKHN0YXRlLnBpbm5lZCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfX0vPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9NYWluPlxuICAgICAgICA8L0JveD5cbiAgICApO1xufVxuXG5Gb2xkaW5nU2lkZVRhYkRhc2hib2FyZC5wcm9wVHlwZXMgPSB7XG4gICAgY2hpbGRyZW46IFByb3BUeXBlcy5lbGVtZW50LFxuICAgIHdpZHRoOiBQcm9wVHlwZXMubnVtYmVyLFxuICAgIHNldHRpbmdzOiBQcm9wVHlwZXMub2JqZWN0LFxuICAgIHNob3dEYXNoYm9hcmRNZW51OiBQcm9wVHlwZXMuYm9vbCxcbiAgICBsb2dvOiBQcm9wVHlwZXMuc3RyaW5nLFxuICAgIGxvZ29TdHlsZTogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhcHBMb2dvUGF0aDogUHJvcFR5cGVzLm9iamVjdCxcbiAgICBhdmF0YXI6IFByb3BUeXBlcy5zdHJpbmcsXG4gICAgbG9nb3V0Q2FsbEJhY2s6IFByb3BUeXBlcy5mdW5jXG59O1xuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7O0FBQ0EsSUFBQUEsS0FBQSxHQUFBQyx1QkFBQSxDQUFBQyxPQUFBO0FBQ0EsSUFBQUMsU0FBQSxHQUFBRCxPQUFBO0FBa0JBLElBQUFFLFNBQUEsR0FBQUMsc0JBQUEsQ0FBQUgsT0FBQTtBQUNBLElBQUFJLEtBQUEsR0FBQUQsc0JBQUEsQ0FBQUgsT0FBQTtBQUNB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
|